![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
Private runtime state/helpers shared by drawlayer module entrypoints. More...
#include "iop/drawlayer/cache.h"#include "iop/drawlayer/coordinates.h"#include "iop/drawlayer/widgets.h"#include "iop/drawlayer/worker.h"#include <stdint.h>
Include dependency graph for runtime.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | DT_DRAWLAYER_MAPPING_ROWS 3 |
| How many input axes the tablet mapping offers (pressure, tilt, acceleration). | |
| #define | DT_DRAWLAYER_MAPPING_TARGETS 4 |
| How many brush properties each axis can drive (size, opacity, flow, hardness). | |
Private runtime state/helpers shared by drawlayer module entrypoints.
Definition in file runtime.h.
| #define DT_DRAWLAYER_MAPPING_ROWS 3 |
| #define DT_DRAWLAYER_MAPPING_TARGETS 4 |
| typedef struct dt_drawlayer_brush_settings_t dt_drawlayer_brush_settings_t |
The brush as the input path needs it, resolved from conf once per change.
dt_conf_get_float runs dt_calculator_solve – an expression parser – on the stored string at EVERY call, and the motion handler read eleven floats, twelve bools and three ints per pointer event. None of it depends on where the pointer is. Cached here beside the brush colour, which already worked this way.
| typedef struct dt_drawlayer_controls_t dt_drawlayer_controls_t |
| typedef struct dt_drawlayer_mapping_cell_t dt_drawlayer_mapping_cell_t |
One cell of the tablet-mapping grid: a widget slot and the conf key it mirrors.
| typedef struct dt_drawlayer_mapping_row_t dt_drawlayer_mapping_row_t |
One input axis: the four properties it can drive, and its response curve.
| typedef struct dt_drawlayer_process_state_t dt_drawlayer_process_state_t |
| typedef struct dt_drawlayer_process_view_t dt_drawlayer_process_view_t |
| typedef enum dt_drawlayer_runtime_actor_t dt_drawlayer_runtime_actor_t |
| typedef struct dt_drawlayer_runtime_context_t dt_drawlayer_runtime_context_t |
| typedef enum dt_drawlayer_runtime_event_t dt_drawlayer_runtime_event_t |
| typedef struct dt_drawlayer_runtime_host_t dt_drawlayer_runtime_host_t |
What the runtime manager is given to reach its caller's state.
‘user_data’ is the one member: every consumer casts it back to a dt_drawlayer_runtime_context_t. It carried two callback pointers as well, ‘collect_inputs’ and ‘perform_action’, which were assigned NULL at all nineteen construction sites and never called from anywhere – a host interface that was declared and never wired up. The forward-declared dt_drawlayer_runtime_action_request_t existed only in that second signature and was never defined at all.
| typedef struct dt_drawlayer_runtime_inputs_t dt_drawlayer_runtime_inputs_t |
| typedef struct dt_drawlayer_runtime_manager_t dt_drawlayer_runtime_manager_t |
| typedef struct dt_drawlayer_runtime_private_t dt_drawlayer_runtime_private_t |
| typedef struct dt_drawlayer_runtime_release_t dt_drawlayer_runtime_release_t |
| typedef struct dt_drawlayer_runtime_request_t dt_drawlayer_runtime_request_t |
| typedef struct dt_drawlayer_runtime_result_t dt_drawlayer_runtime_result_t |
| typedef struct dt_drawlayer_runtime_source_t dt_drawlayer_runtime_source_t |
| typedef struct dt_drawlayer_session_state_t dt_drawlayer_session_state_t |
| typedef struct dt_drawlayer_stroke_state_t dt_drawlayer_stroke_state_t |
| typedef struct dt_drawlayer_ui_state_t dt_drawlayer_ui_state_t |
| typedef struct dt_iop_drawlayer_gui_data_t dt_iop_drawlayer_gui_data_t |
| void dt_drawlayer_mapping_rows | ( | dt_iop_drawlayer_gui_data_t * | g, |
| dt_drawlayer_mapping_row_t | rows[3] | ||
| ) |
Pair every tablet-mapping widget with the configuration key it mirrors.
Three places walk this grid and each used to spell it out: the builder that creates the fifteen widgets, gui_update reading conf into them, and sync_params_from_gui writing them back. Three unrolled copies of one list is how a fourth input axis gets added to two of them. The labels are NOT here – they are the GUI's and are translated at build time.
dt_drawlayer_conf_ensure_defaults() deliberately does not use this: its keys carry one-off migrations from the older map_speed_* spellings, so its list is not uniform.
| void dt_drawlayer_process_state_cleanup | ( | dt_drawlayer_process_state_t * | state | ) |
Definition at line 907 of file runtime.c.
References dt_drawlayer_cache_patch_clear(), IS_NULL_PTR, and state.
Referenced by cleanup_pipe(), and gui_cleanup().
| void dt_drawlayer_process_state_init | ( | dt_drawlayer_process_state_t * | state | ) |
Definition at line 899 of file runtime.c.
References IS_NULL_PTR, and state.
Referenced by gui_init(), and init_pipe().
| void dt_drawlayer_process_state_invalidate | ( | dt_drawlayer_process_state_t * | state | ) |
Definition at line 924 of file runtime.c.
References dt_drawlayer_cache_patch_clear(), FALSE, IS_NULL_PTR, and state.
Referenced by __attribute__(), dt_drawlayer_ensure_layer_cache(), and dt_drawlayer_runtime_manager_update().
| void dt_drawlayer_process_state_reset_stroke | ( | dt_drawlayer_process_state_t * | state | ) |
Definition at line 917 of file runtime.c.
References IS_NULL_PTR, and state.
Referenced by dt_drawlayer_layers_reset_stroke_session().
| void dt_drawlayer_runtime_manager_bind_piece | ( | dt_drawlayer_runtime_manager_t * | headless_manager, |
| dt_drawlayer_process_state_t * | headless_process, | ||
| dt_drawlayer_runtime_manager_t * | gui_manager, | ||
| dt_drawlayer_process_state_t * | gui_process, | ||
| gboolean | display_pipe, | ||
| dt_drawlayer_runtime_manager_t ** | runtime_manager, | ||
| dt_drawlayer_process_state_t ** | runtime_process, | ||
| gboolean * | runtime_display_pipe | ||
| ) |
Definition at line 885 of file runtime.c.
References IS_NULL_PTR.
Referenced by _process_bind_runtime(), commit_params(), and init_pipe().
| void dt_drawlayer_runtime_manager_cleanup | ( | dt_drawlayer_runtime_manager_t * | state | ) |
Definition at line 85 of file runtime.c.
References dt_free, dt_pthread_mutex_destroy(), IS_NULL_PTR, and state.
Referenced by cleanup_pipe(), and gui_cleanup().
| void dt_drawlayer_runtime_manager_init | ( | dt_drawlayer_runtime_manager_t * | state | ) |
Definition at line 77 of file runtime.c.
References dt_pthread_mutex_init(), IS_NULL_PTR, and state.
Referenced by gui_init(), and init_pipe().
| void dt_drawlayer_runtime_manager_note_buffer_lock | ( | dt_drawlayer_runtime_manager_t * | state, |
| dt_drawlayer_runtime_buffer_t | buffer, | ||
| dt_drawlayer_runtime_actor_t | actor, | ||
| gboolean | write_lock, | ||
| gboolean | acquire | ||
| ) |
Definition at line 96 of file runtime.c.
References _runtime_private(), dt_drawlayer_runtime_private_t::buffers, DT_DRAWLAYER_RUNTIME_ACTOR_NONE, DT_DRAWLAYER_RUNTIME_BUFFER_COUNT, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), IS_NULL_PTR, dt_drawlayer_runtime_buffer_state_t::last_reader, dt_drawlayer_runtime_private_t::mutex, dt_drawlayer_runtime_buffer_state_t::read_locks, state, dt_drawlayer_runtime_buffer_state_t::write_locked, and dt_drawlayer_runtime_buffer_state_t::writer.
Referenced by _release_runtime_source().
| dt_drawlayer_runtime_result_t dt_drawlayer_runtime_manager_update | ( | dt_drawlayer_runtime_manager_t * | state, |
| const dt_drawlayer_runtime_update_request_t * | request, | ||
| const dt_drawlayer_runtime_host_t * | host | ||
| ) |
Definition at line 659 of file runtime.c.
References _perform_runtime_commit_sequence(), _perform_runtime_widget_cache_sync(), _release_runtime_source(), _update_manager_information(), dt_drawlayer_runtime_schedule_t::commit_mode, dt_control_alert(), dt_control_log(), dt_control_queue_redraw_center(), dt_control_set_cursor_visible, dt_drawlayer_begin_gui_stroke_capture(), dt_drawlayer_cache_patch_clear(), dt_drawlayer_end_gui_stroke_capture(), dt_drawlayer_ensure_layer_cache(), dt_drawlayer_flush_layer_cache(), dt_drawlayer_paint_runtime_state_reset(), dt_drawlayer_process_state_invalidate(), dt_drawlayer_release_all_base_patch_extra_refs(), DT_DRAWLAYER_RUNTIME_EVENT_COMMIT_BEGIN, DT_DRAWLAYER_RUNTIME_EVENT_COMMIT_END, DT_DRAWLAYER_RUNTIME_EVENT_GUI_CHANGE_IMAGE, DT_DRAWLAYER_RUNTIME_EVENT_GUI_FOCUS_GAIN, DT_DRAWLAYER_RUNTIME_EVENT_GUI_FOCUS_LOSS, DT_DRAWLAYER_RUNTIME_EVENT_GUI_MOUSE_ENTER, DT_DRAWLAYER_RUNTIME_EVENT_GUI_MOUSE_LEAVE, DT_DRAWLAYER_RUNTIME_EVENT_GUI_PIPE_FINISHED, DT_DRAWLAYER_RUNTIME_EVENT_GUI_RAW_INPUT, DT_DRAWLAYER_RUNTIME_EVENT_GUI_RESYNC, DT_DRAWLAYER_RUNTIME_EVENT_GUI_SCROLL, DT_DRAWLAYER_RUNTIME_EVENT_GUI_STROKE_ABORT, DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, DT_DRAWLAYER_RUNTIME_EVENT_NONE, DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_AFTER, DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_BEFORE, DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_AFTER, DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_BEFORE, DT_DRAWLAYER_RUNTIME_EVENT_SIDECAR_LOAD_BEGIN, DT_DRAWLAYER_RUNTIME_EVENT_SIDECAR_LOAD_END, DT_DRAWLAYER_RUNTIME_EVENT_SIDECAR_SAVE_BEGIN, DT_DRAWLAYER_RUNTIME_EVENT_SIDECAR_SAVE_END, DT_DRAWLAYER_RUNTIME_FEEDBACK_NONE, DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, DT_DRAWLAYER_RUNTIME_RAW_INPUT_SAMPLE, DT_DRAWLAYER_RUNTIME_RAW_INPUT_STROKE_BEGIN, DT_DRAWLAYER_RUNTIME_RAW_INPUT_STROKE_END, dt_drawlayer_set_pipeline_realtime_mode(), dt_drawlayer_show_runtime_feedback(), dt_drawlayer_worker_enqueue_input(), dt_drawlayer_worker_enqueue_stroke_end(), dt_drawlayer_worker_ensure_running(), dt_drawlayer_worker_request_commit(), dt_drawlayer_worker_stop(), dt_drawlayer_runtime_schedule_t::ensure_layer_cache, dt_drawlayer_runtime_schedule_t::ensure_worker_running, dt_drawlayer_runtime_update_request_t::event, FALSE, dt_drawlayer_runtime_schedule_t::feedback, dt_drawlayer_runtime_schedule_t::flush_sidecar, g, dt_drawlayer_runtime_request_t::gui, gui_update(), dt_drawlayer_runtime_update_request_t::inputs, dt_drawlayer_runtime_schedule_t::invalidate_layer_cache, IS_NULL_PTR, dt_drawlayer_runtime_result_t::ok, dt_drawlayer_runtime_schedule_t::pointer_hide_cursor, dt_drawlayer_runtime_schedule_t::pointer_valid, dt_drawlayer_runtime_release_t::process, dt_drawlayer_runtime_schedule_t::queue_raw_input, dt_drawlayer_runtime_schedule_t::queue_redraw_center, dt_drawlayer_runtime_context_t::raw_input, dt_drawlayer_runtime_update_request_t::raw_input_kind, dt_drawlayer_runtime_result_t::raw_input_ok, dt_drawlayer_runtime_schedule_t::refresh_gui, dt_drawlayer_runtime_update_request_t::release, dt_drawlayer_runtime_schedule_t::request_commit, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, dt_drawlayer_runtime_schedule_t::set_pointer_state, dt_drawlayer_runtime_release_t::source, state, dt_drawlayer_runtime_schedule_t::stop_worker, dt_drawlayer_runtime_schedule_t::sync_realtime_mode, dt_drawlayer_runtime_schedule_t::sync_widget_cache, TRUE, and dt_drawlayer_runtime_host_t::user_data.
Referenced by _update_gui_runtime_manager(), button_pressed(), button_released(), mouse_moved(), process(), and process_cl().
| void dt_drawlayer_ui_cursor_clear | ( | dt_drawlayer_ui_state_t * | state | ) |
Definition at line 958 of file runtime.c.
References IS_NULL_PTR, and state.
Referenced by _ensure_cursor_stamp_surface(), dt_drawlayer_conf_apply_display_brush_color(), and gui_cleanup().