Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
layers.c File Reference

Private drawlayer layer cache, sidecar sync and widget cache state. More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  drawlayer_dir_info_t
 
struct  drawlayer_layer_cache_key_t
 

Typedefs

typedef struct drawlayer_dir_info_t drawlayer_dir_info_t
 
typedef struct drawlayer_layer_cache_key_t drawlayer_layer_cache_key_t
 

Functions

static void _layerio_append_error (GString *errors, const char *message)
 
static void _layerio_log_errors (GString *errors)
 
static void _populate_layer_list (dt_iop_module_t *self)
 
static void _reset_stroke_session (dt_iop_drawlayer_gui_data_t *g)
 
static gboolean _layer_cache_matches (const dt_iop_drawlayer_gui_data_t *g, const drawlayer_layer_cache_key_t *key)
 
gboolean dt_drawlayer_ensure_layer_cache (dt_iop_module_t *self)
 
gboolean dt_drawlayer_flush_layer_cache (dt_iop_module_t *self)
 
static gboolean _ensure_widget_cache (dt_iop_module_t *self)
 
void dt_drawlayer_set_pipeline_realtime_mode (dt_iop_module_t *self, const gboolean state)
 
gboolean dt_drawlayer_sync_widget_cache (dt_iop_module_t *self)
 

Detailed Description

Private drawlayer layer cache, sidecar sync and widget cache state.

This file is text-included from drawlayer.c on purpose. The goal is to keep the main module file readable while preserving one translation unit, so cache ownership, worker synchronization and GUI side effects stay visible to the caller instead of being hidden behind a separate API boundary.

Typedef Documentation

◆ drawlayer_dir_info_t

◆ drawlayer_layer_cache_key_t

Function Documentation

◆ _ensure_widget_cache()

◆ _layer_cache_matches()

static gboolean _layer_cache_matches ( const dt_iop_drawlayer_gui_data_t g,
const drawlayer_layer_cache_key_t key 
)
static

References FALSE, g, IS_NULL_PTR, key, and TRUE.

Referenced by dt_drawlayer_ensure_layer_cache().

◆ _layerio_append_error()

static void _layerio_append_error ( GString *  errors,
const char *  message 
)
static

◆ _layerio_log_errors()

static void _layerio_log_errors ( GString *  errors)
static

◆ _populate_layer_list()

◆ _reset_stroke_session()

◆ dt_drawlayer_ensure_layer_cache()

gboolean dt_drawlayer_ensure_layer_cache ( dt_iop_module_t self)

References _flush_layer_cache, _get_current_work_profile_key(), _layer_cache_matches(), _layer_name_non_empty(), _layerio_append_error(), _layerio_log_errors(), _populate_layer_list(), _refresh_layer_widgets(), _release_all_base_patch_extra_refs, _reset_stroke_session(), _retain_base_patch_loaded_ref(), _sanitize_params(), _sidecar_timestamp_from_path(), dt_drawlayer_io_layer_info_t::count, drawlayer_dir_info_t::count, dt_iop_module_t::dev, DRAWLAYER_PROFILE_SIZE, dt_drawlayer_cache_clear_transparent_float(), dt_drawlayer_cache_ensure_mask_buffer(), dt_drawlayer_cache_patch_alloc_shared(), dt_drawlayer_cache_patch_clear(), dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), dt_drawlayer_io_find_layer(), dt_drawlayer_io_load_layer(), dt_drawlayer_io_sidecar_path(), dt_drawlayer_paint_runtime_state_reset(), dt_drawlayer_process_state_invalidate(), FALSE, dt_drawlayer_io_layer_info_t::found, drawlayer_dir_info_t::found, g, dt_iop_module_t::gui_data, dt_drawlayer_io_layer_info_t::height, drawlayer_dir_info_t::height, dt_image_t::id, dt_develop_t::image_storage, drawlayer_layer_cache_key_t::imgid, dt_drawlayer_io_layer_info_t::index, drawlayer_dir_info_t::index, dt_develop_t::iop, IS_NULL_PTR, dt_drawlayer_io_layer_info_t::name, drawlayer_dir_info_t::name, dt_iop_module_t::params, PATH_MAX, dt_develop_t::pipe, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, TRUE, dt_drawlayer_io_layer_info_t::width, drawlayer_dir_info_t::width, dt_drawlayer_io_layer_info_t::work_profile, drawlayer_dir_info_t::work_profile, and dt_drawlayer_io_patch_t::x.

Referenced by _perform_runtime_widget_cache_sync(), and dt_drawlayer_runtime_manager_update().

◆ dt_drawlayer_flush_layer_cache()

◆ dt_drawlayer_set_pipeline_realtime_mode()

◆ dt_drawlayer_sync_widget_cache()