![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
Private runtime state/helpers shared by drawlayer module entrypoints. More...
#include "iop/drawlayer/coordinates.h"#include "common/dtpthread.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.
Data Structures | |
| struct | dt_drawlayer_session_state_t |
| struct | dt_drawlayer_process_state_t |
| struct | dt_drawlayer_stroke_state_t |
| struct | dt_drawlayer_ui_state_t |
| struct | dt_drawlayer_controls_t |
| struct | dt_drawlayer_runtime_result_t |
| struct | dt_drawlayer_runtime_manager_t |
| struct | dt_drawlayer_runtime_inputs_t |
| struct | dt_drawlayer_runtime_host_t |
| struct | dt_iop_drawlayer_gui_data_t |
| struct | dt_drawlayer_runtime_request_t |
| struct | dt_drawlayer_runtime_context_t |
| struct | dt_drawlayer_process_view_t |
| struct | dt_drawlayer_runtime_source_t |
| struct | dt_drawlayer_runtime_release_t |
| struct | dt_drawlayer_runtime_update_request_t |
Private runtime state/helpers shared by drawlayer module entrypoints.
| typedef struct dt_drawlayer_controls_t dt_drawlayer_controls_t |
| 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 |
| 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_process_state_cleanup | ( | dt_drawlayer_process_state_t * | state | ) |
References dt_drawlayer_process_state_t::base_patch, dt_drawlayer_process_state_t::cache_imgid, dt_drawlayer_process_state_t::cache_layer_order, dt_drawlayer_cache_patch_clear(), dt_drawlayer_paint_runtime_state_reset(), dt_drawlayer_process_state_t::process_patch, dt_drawlayer_process_state_t::process_read_patch, dt_drawlayer_process_state_t::process_stroke_mask, dt_drawlayer_process_state_t::stroke_mask, and TRUE.
Referenced by cleanup_pipe(), and gui_cleanup().
| void dt_drawlayer_process_state_init | ( | dt_drawlayer_process_state_t * | state | ) |
References dt_drawlayer_process_state_t::cache_imgid, dt_drawlayer_process_state_t::cache_layer_order, dt_drawlayer_paint_runtime_state_reset(), and TRUE.
Referenced by gui_init(), and init_pipe().
| void dt_drawlayer_process_state_invalidate | ( | dt_drawlayer_process_state_t * | state | ) |
References dt_drawlayer_cache_invalidate_process_patch_state(), dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), dt_drawlayer_paint_runtime_state_reset(), FALSE, dt_drawlayer_process_state_t::process_combined_roi, dt_drawlayer_process_state_t::process_dirty_rect, dt_drawlayer_process_state_t::process_patch, dt_drawlayer_process_state_t::process_patch_dirty, dt_drawlayer_process_state_t::process_patch_padding, dt_drawlayer_process_state_t::process_patch_valid, dt_drawlayer_process_state_t::process_snapshot_valid, and TRUE.
Referenced by _invalidate_process_patch(), _refresh_piece_base_cache(), and dt_drawlayer_runtime_manager_update().
| gboolean dt_drawlayer_process_state_publish_locked | ( | dt_drawlayer_process_state_t * | state, |
| const dt_drawlayer_damaged_rect_t * | damage, | ||
| gboolean | full_copy | ||
| ) |
References _copy_patch_rect(), _ensure_external_patch_buffer(), darktable, dt_dev_pixelpipe_cache_flush_host_pinned_image(), dt_drawlayer_cache_patch_rdlock(), dt_drawlayer_cache_patch_rdunlock(), dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), dt_drawlayer_paint_runtime_note_dab_damage(), FALSE, height, dt_drawlayer_cache_patch_t::height, darktable_t::pixelpipe_cache, dt_drawlayer_cache_patch_t::pixels, dt_drawlayer_process_state_t::process_patch, dt_drawlayer_process_state_t::process_read_patch, dt_drawlayer_process_state_t::process_snapshot_valid, TRUE, dt_drawlayer_damaged_rect_t::valid, width, and dt_drawlayer_cache_patch_t::width.
Referenced by _publish_backend_progress(), and dt_drawlayer_build_process_patch_from_base().
| void dt_drawlayer_process_state_reset_stroke | ( | dt_drawlayer_process_state_t * | state | ) |
References dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), dt_drawlayer_paint_runtime_state_reset(), dt_drawlayer_cache_patch_t::height, dt_drawlayer_cache_patch_t::pixels, dt_drawlayer_process_state_t::process_dirty_rect, dt_drawlayer_process_state_t::process_patch, dt_drawlayer_process_state_t::process_stroke_mask, dt_drawlayer_process_state_t::stroke_mask, and dt_drawlayer_cache_patch_t::width.
Referenced by _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 | ||
| ) |
Referenced by commit_params(), init_pipe(), and process().
| void dt_drawlayer_runtime_manager_cleanup | ( | dt_drawlayer_runtime_manager_t * | state | ) |
References dt_free, dt_pthread_mutex_destroy(), dt_drawlayer_runtime_private_t::mutex, and dt_drawlayer_runtime_manager_t::priv.
Referenced by cleanup_pipe(), and gui_cleanup().
| void dt_drawlayer_runtime_manager_init | ( | dt_drawlayer_runtime_manager_t * | state | ) |
References dt_pthread_mutex_init(), dt_drawlayer_runtime_private_t::mutex, and dt_drawlayer_runtime_manager_t::priv.
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 | ||
| ) |
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(), dt_drawlayer_runtime_buffer_state_t::last_reader, dt_drawlayer_runtime_private_t::mutex, dt_drawlayer_runtime_buffer_state_t::read_locks, dt_drawlayer_runtime_buffer_state_t::write_locked, and dt_drawlayer_runtime_buffer_state_t::writer.
Referenced by _release_runtime_source(), and _update_runtime_state().
| void dt_drawlayer_runtime_manager_note_sidecar_io | ( | dt_drawlayer_runtime_manager_t * | state, |
| gboolean | active | ||
| ) |
References _runtime_private(), dt_drawlayer_runtime_thread_state_t::active, DT_DRAWLAYER_RUNTIME_ACTOR_TIFF_IO, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, dt_drawlayer_runtime_private_t::mutex, dt_drawlayer_runtime_private_t::sidecar_io_active, dt_drawlayer_runtime_private_t::threads, and dt_drawlayer_runtime_thread_state_t::waiting.
| void dt_drawlayer_runtime_manager_note_thread | ( | dt_drawlayer_runtime_manager_t * | state, |
| dt_drawlayer_runtime_actor_t | actor, | ||
| gboolean | active, | ||
| gboolean | waiting, | ||
| guint | queued | ||
| ) |
References _runtime_private(), dt_drawlayer_runtime_thread_state_t::active, DT_DRAWLAYER_RUNTIME_ACTOR_COUNT, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_drawlayer_runtime_private_t::mutex, dt_drawlayer_runtime_thread_state_t::queued, dt_drawlayer_runtime_private_t::threads, and dt_drawlayer_runtime_thread_state_t::waiting.
| 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 | ||
| ) |
References _perform_runtime_commit_sequence(), _perform_runtime_widget_cache_sync(), _release_runtime_source(), _update_manager_information(), dt_drawlayer_runtime_schedule_t::build_process_patch, dt_drawlayer_runtime_schedule_t::commit_mode, dt_control_log(), dt_control_queue_redraw_center(), dt_drawlayer_begin_gui_stroke_capture(), dt_drawlayer_build_process_patch_from_base(), dt_drawlayer_cache_patch_clear(), dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), dt_drawlayer_end_gui_stroke_capture(), dt_drawlayer_ensure_layer_cache(), dt_drawlayer_flush_layer_cache(), dt_drawlayer_flush_process_patch_to_base(), dt_drawlayer_prime_live_process_patch_before_stroke(), 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_os_cursor_hidden(), 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_flush_finished_strokes(), 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_process_patch, 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, dt_drawlayer_runtime_result_t::ok, dt_drawlayer_runtime_request_t::piece, dt_drawlayer_runtime_schedule_t::pointer_hide_cursor, dt_drawlayer_runtime_schedule_t::pointer_valid, dt_drawlayer_runtime_schedule_t::prime_live_process_patch, process(), dt_drawlayer_runtime_release_t::process, dt_drawlayer_runtime_request_t::process_state, 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::release_process_clmem, dt_drawlayer_runtime_schedule_t::request_commit, dt_drawlayer_runtime_request_t::roi_in, dt_drawlayer_runtime_request_t::roi_out, 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, dt_drawlayer_runtime_schedule_t::stop_worker, dt_drawlayer_runtime_schedule_t::sync_realtime_mode, dt_drawlayer_runtime_schedule_t::sync_widget_cache, TRUE, dt_drawlayer_runtime_host_t::user_data, and dt_drawlayer_runtime_schedule_t::wait_fullres_worker.
Referenced by _develop_ui_pipe_finished_callback(), _update_gui_runtime_manager(), button_pressed(), button_released(), change_image(), gui_focus(), gui_init(), gui_reset(), gui_update(), mouse_leave(), mouse_moved(), process(), and scrolled().
| void dt_drawlayer_ui_cursor_clear | ( | dt_drawlayer_ui_state_t * | state | ) |
References dt_drawlayer_ui_state_t::cursor_color, dt_drawlayer_ui_state_t::cursor_hardness, dt_drawlayer_ui_state_t::cursor_opacity, dt_drawlayer_ui_state_t::cursor_radius, dt_drawlayer_ui_state_t::cursor_shape, dt_drawlayer_ui_state_t::cursor_surface, dt_drawlayer_ui_state_t::cursor_surface_ppd, and dt_drawlayer_ui_state_t::cursor_surface_size.
Referenced by _apply_display_brush_color(), _ensure_cursor_stamp_surface(), and gui_cleanup().