Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
image_cache.c File Reference
#include "common/image_cache.h"
#include "common/colorlabels.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/exif.h"
#include "common/image.h"
#include "common/datetime.h"
#include "control/conf.h"
#include "control/jobs.h"
#include "develop/develop.h"
#include <sqlite3.h>
#include <inttypes.h>
+ Include dependency graph for image_cache.c:

Functions

void dt_image_cache_allocate (void *data, dt_cache_entry_t *entry)
 
void dt_image_cache_deallocate (void *data, dt_cache_entry_t *entry)
 
void dt_image_cache_init (dt_image_cache_t *cache)
 
void dt_image_cache_cleanup (dt_image_cache_t *cache)
 
void dt_image_cache_print (dt_image_cache_t *cache)
 
dt_image_tdt_image_cache_get (dt_image_cache_t *cache, const int32_t imgid, char mode)
 
dt_image_tdt_image_cache_testget (dt_image_cache_t *cache, const int32_t imgid, char mode)
 
void dt_image_cache_read_release (dt_image_cache_t *cache, const dt_image_t *img)
 
void dt_image_cache_write_release (dt_image_cache_t *cache, dt_image_t *img, dt_image_cache_write_mode_t mode)
 
void dt_image_cache_remove (dt_image_cache_t *cache, const int32_t imgid)
 
void dt_image_cache_set_change_timestamp (dt_image_cache_t *cache, const int32_t imgid)
 
void dt_image_cache_set_change_timestamp_from_image (dt_image_cache_t *cache, const int32_t imgid, const int32_t sourceid)
 
void dt_image_cache_unset_change_timestamp (dt_image_cache_t *cache, const int32_t imgid)
 
void dt_image_cache_set_export_timestamp (dt_image_cache_t *cache, const int32_t imgid)
 
void dt_image_cache_set_print_timestamp (dt_image_cache_t *cache, const int32_t imgid)
 

Function Documentation

◆ dt_image_cache_allocate()

void dt_image_cache_allocate ( void data,
dt_cache_entry_t entry 
)

References dt_image_t::buf_dsc, dt_image_t::cache_entry, dt_image_t::change_timestamp, dt_iop_buffer_dsc_t::channels, dt_image_t::color_labels, dt_image_t::colorspace, dt_cache_entry_t::cost, dt_image_t::crop_height, dt_image_t::crop_width, dt_image_t::crop_x, dt_image_t::crop_y, dt_iop_buffer_dsc_t::cst, dt_image_t::d65_color_matrix, darktable, dt_cache_entry_t::data, dt_iop_buffer_dsc_t::datatype, darktable_t::db, dt_colorlabels_get_labels(), dt_database_get(), dt_datetime_exif_to_img(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, DT_IMAGE_HDR, dt_image_init(), DT_IMAGE_LDR, DT_IMAGE_RAW, dt_image_refresh_makermodel(), dt_image_geoloc_t::elevation, dt_image_t::exif_aperture, dt_image_t::exif_crop, dt_image_t::exif_datetime_taken, dt_image_t::exif_exposure, dt_image_t::exif_exposure_bias, dt_image_t::exif_focal_length, dt_image_t::exif_focus_distance, dt_image_t::exif_inited, dt_image_t::exif_iso, dt_image_t::exif_lens, dt_image_t::exif_maker, dt_image_t::exif_model, dt_image_t::export_timestamp, dt_image_t::filename, dt_image_t::film_id, dt_image_t::flags, dt_image_t::geoloc, dt_image_t::group_id, dt_image_t::height, dt_image_t::id, dt_image_t::import_timestamp, IOP_CS_RAW, IOP_CS_RGB, dt_cache_entry_t::key, dt_image_geoloc_t::latitude, dt_image_t::legacy_flip, dt_image_t::loader, LOADER_UNKNOWN, dt_image_geoloc_t::longitude, dt_image_t::orientation, dt_image_t::print_timestamp, dt_image_t::profile, dt_image_t::profile_size, dt_image_t::raw_black_level, dt_image_t::raw_black_level_separate, dt_image_t::raw_white_point, TYPE_FLOAT, TYPE_UINT16, dt_image_t::version, and dt_image_t::width.

Referenced by dt_image_cache_init().

◆ dt_image_cache_cleanup()

void dt_image_cache_cleanup ( dt_image_cache_t cache)

References dt_image_cache_t::cache, and dt_cache_cleanup().

Referenced by dt_cleanup().

◆ dt_image_cache_deallocate()

void dt_image_cache_deallocate ( void data,
dt_cache_entry_t entry 
)

◆ dt_image_cache_get()

dt_image_t * dt_image_cache_get ( dt_image_cache_t cache,
const int32_t  imgid,
char  mode 
)

References ASAN_UNPOISON_MEMORY_REGION, dt_image_cache_t::cache, dt_image_t::cache_entry, dt_cache_entry_t::data, and dt_cache_get.

Referenced by _colorlabels_execute(), _deflicker_prepare_histogram(), _dt_dev_load_raw(), _generate_blocking(), _get_base_value(), _get_image_copy(), _image_duplicate_with_version(), _image_get_infos(), _image_import_internal(), _image_set_monochrome_flag(), _image_update_group_tooltip(), _init_expansion(), _init_f(), _jump_to(), _metadata_view_update_values(), _pop_undo_execute(), _print_button_clicked(), _ratings_apply_to_image(), _remove_preset_flag(), _set_datetime(), _set_location(), _setup_selected_images_list(), checkreadimage(), checkwriteimage(), commit_params(), dt_control_export_job_run(), dt_control_gpx_apply_job_run(), dt_control_merge_hdr_process(), dt_control_refresh_exif_run(), dt_control_write_sidecar_files_job_run(), dt_dev_get_final_size(), dt_dev_read_history_ext(), dt_exif_read_blob(), dt_focus_draw_clusters(), dt_grouping_add_grouped_images(), dt_grouping_add_to_group(), dt_grouping_change_representative(), dt_grouping_get_group_images(), dt_grouping_get_image_group(), dt_grouping_remove_from_group(), dt_history_load_and_apply(), dt_image_cache_set_change_timestamp_from_image(), dt_image_find_best_color_profile(), dt_image_get_datetime(), dt_image_get_location(), dt_image_get_orientation(), dt_image_local_copy_reset(), dt_image_local_copy_set(), dt_image_read_duplicates(), dt_image_remove(), dt_image_rename(), dt_preview_window_spawn(), dt_ratings_get(), dt_view_image_get_surface(), finalize_store(), get_group(), group_with(), gui_changed(), image_set_rawcrops(), load_xmp_callback(), main(), store(), try_enter(), update_preview_cb(), and update_profile_list().

◆ dt_image_cache_init()

◆ dt_image_cache_print()

void dt_image_cache_print ( dt_image_cache_t cache)

◆ dt_image_cache_read_release()

◆ dt_image_cache_remove()

void dt_image_cache_remove ( dt_image_cache_t cache,
const int32_t  imgid 
)

◆ dt_image_cache_set_change_timestamp()

◆ dt_image_cache_set_change_timestamp_from_image()

◆ dt_image_cache_set_export_timestamp()

◆ dt_image_cache_set_print_timestamp()

◆ dt_image_cache_testget()

dt_image_t * dt_image_cache_testget ( dt_image_cache_t cache,
const int32_t  imgid,
char  mode 
)

◆ dt_image_cache_unset_change_timestamp()

◆ dt_image_cache_write_release()

void dt_image_cache_write_release ( dt_image_cache_t cache,
dt_image_t img,
dt_image_cache_write_mode_t  mode 
)
Todo:
: make this work in relaxed mode, too.
Todo:
Todo:
: protect XMP saving from concurrent accesses to DB history

References dt_image_cache_t::cache, dt_image_t::cache_entry, dt_image_t::change_timestamp, dt_image_t::color_labels, dt_image_t::colorspace, dt_image_t::d65_color_matrix, darktable, darktable_t::db, dt_cache_release, dt_colorlabels_set_labels(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_DOUBLE, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_INT64, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, DT_IMAGE_CACHE_SAFE, dt_image_write_sidecar_file(), dt_image_geoloc_t::elevation, dt_image_t::exif_aperture, dt_image_t::exif_crop, dt_image_t::exif_datetime_taken, dt_image_t::exif_exposure, dt_image_t::exif_exposure_bias, dt_image_t::exif_focal_length, dt_image_t::exif_focus_distance, dt_image_t::exif_iso, dt_image_t::exif_lens, dt_image_t::exif_maker, dt_image_t::exif_model, dt_image_t::export_timestamp, dt_image_t::filename, dt_image_t::film_id, dt_image_t::flags, flip(), dt_image_t::geoloc, dt_image_t::group_id, dt_image_t::height, dt_image_t::id, dt_image_t::import_timestamp, dt_image_geoloc_t::latitude, dt_image_t::legacy_flip, dt_image_geoloc_t::longitude, dt_image_t::orientation, dt_image_t::print_timestamp, dt_image_t::raw_black_level, dt_image_t::raw_white_point, and dt_image_t::width.

Referenced by _colorlabels_execute(), _generate_blocking(), _image_import_internal(), _image_set_monochrome_flag(), _pop_undo_execute(), _ratings_apply_to_image(), _remove_preset_flag(), _set_datetime(), _set_location(), dt_control_refresh_exif_run(), dt_dev_read_history_ext(), dt_grouping_add_to_group(), dt_grouping_change_representative(), dt_grouping_remove_from_group(), dt_history_load_and_apply(), dt_image_cache_set_change_timestamp(), dt_image_cache_set_change_timestamp_from_image(), dt_image_cache_set_export_timestamp(), dt_image_cache_set_print_timestamp(), dt_image_cache_unset_change_timestamp(), dt_image_find_best_color_profile(), dt_image_local_copy_reset(), dt_image_local_copy_set(), dt_image_read_duplicates(), dt_image_rename(), gui_changed(), image_set_rawcrops(), main(), and releasewriteimage().