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

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
 

Typedefs

typedef struct dt_drawlayer_session_state_t dt_drawlayer_session_state_t
 
typedef struct dt_drawlayer_process_state_t dt_drawlayer_process_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_drawlayer_controls_t dt_drawlayer_controls_t
 
typedef enum dt_drawlayer_runtime_actor_t dt_drawlayer_runtime_actor_t
 
typedef enum dt_drawlayer_runtime_buffer_t dt_drawlayer_runtime_buffer_t
 
typedef enum dt_drawlayer_runtime_event_t dt_drawlayer_runtime_event_t
 
typedef enum dt_drawlayer_runtime_raw_input_kind_t dt_drawlayer_runtime_raw_input_kind_t
 
typedef enum dt_drawlayer_runtime_commit_mode_t dt_drawlayer_runtime_commit_mode_t
 
typedef struct dt_drawlayer_runtime_result_t dt_drawlayer_runtime_result_t
 
typedef struct dt_drawlayer_runtime_private_t dt_drawlayer_runtime_private_t
 
typedef struct dt_drawlayer_runtime_manager_t dt_drawlayer_runtime_manager_t
 
typedef struct dt_drawlayer_runtime_inputs_t dt_drawlayer_runtime_inputs_t
 
typedef struct dt_drawlayer_runtime_action_request_t dt_drawlayer_runtime_action_request_t
 
typedef struct dt_drawlayer_runtime_host_t dt_drawlayer_runtime_host_t
 
typedef struct dt_iop_drawlayer_gui_data_t dt_iop_drawlayer_gui_data_t
 
typedef struct dt_drawlayer_runtime_request_t dt_drawlayer_runtime_request_t
 
typedef struct dt_drawlayer_runtime_context_t dt_drawlayer_runtime_context_t
 
typedef struct dt_drawlayer_process_view_t dt_drawlayer_process_view_t
 
typedef enum dt_drawlayer_runtime_source_kind_t dt_drawlayer_runtime_source_kind_t
 
typedef struct dt_drawlayer_runtime_source_t dt_drawlayer_runtime_source_t
 
typedef struct dt_drawlayer_runtime_release_t dt_drawlayer_runtime_release_t
 
typedef struct dt_drawlayer_runtime_update_request_t dt_drawlayer_runtime_update_request_t
 

Enumerations

enum  dt_drawlayer_runtime_actor_t {
  DT_DRAWLAYER_RUNTIME_ACTOR_NONE = 0 ,
  DT_DRAWLAYER_RUNTIME_ACTOR_GUI ,
  DT_DRAWLAYER_RUNTIME_ACTOR_PIPELINE_CPU ,
  DT_DRAWLAYER_RUNTIME_ACTOR_PIPELINE_CL ,
  DT_DRAWLAYER_RUNTIME_ACTOR_RASTER_BACKEND ,
  DT_DRAWLAYER_RUNTIME_ACTOR_RASTER_FULLRES ,
  DT_DRAWLAYER_RUNTIME_ACTOR_TIFF_IO ,
  DT_DRAWLAYER_RUNTIME_ACTOR_COUNT
}
 
enum  dt_drawlayer_runtime_buffer_t {
  DT_DRAWLAYER_RUNTIME_BUFFER_BASE_PATCH = 0 ,
  DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_PATCH ,
  DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_SNAPSHOT ,
  DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_CL ,
  DT_DRAWLAYER_RUNTIME_BUFFER_STROKE_MASK ,
  DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_STROKE_MASK ,
  DT_DRAWLAYER_RUNTIME_BUFFER_COUNT
}
 
enum  dt_drawlayer_runtime_event_t {
  DT_DRAWLAYER_RUNTIME_EVENT_NONE = 0 ,
  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_SCROLL ,
  DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS ,
  DT_DRAWLAYER_RUNTIME_EVENT_GUI_CHANGE_IMAGE ,
  DT_DRAWLAYER_RUNTIME_EVENT_GUI_RESYNC ,
  DT_DRAWLAYER_RUNTIME_EVENT_GUI_PIPE_FINISHED ,
  DT_DRAWLAYER_RUNTIME_EVENT_GUI_STROKE_ABORT ,
  DT_DRAWLAYER_RUNTIME_EVENT_GUI_RAW_INPUT ,
  DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_BEFORE ,
  DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_AFTER ,
  DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_BEFORE ,
  DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_AFTER ,
  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_EVENT_COMMIT_BEGIN ,
  DT_DRAWLAYER_RUNTIME_EVENT_COMMIT_END
}
 
enum  dt_drawlayer_runtime_raw_input_kind_t {
  DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE = 0 ,
  DT_DRAWLAYER_RUNTIME_RAW_INPUT_SAMPLE ,
  DT_DRAWLAYER_RUNTIME_RAW_INPUT_STROKE_BEGIN ,
  DT_DRAWLAYER_RUNTIME_RAW_INPUT_STROKE_END
}
 
enum  dt_drawlayer_runtime_commit_mode_t {
  DT_DRAWLAYER_RUNTIME_COMMIT_NONE = 0 ,
  DT_DRAWLAYER_RUNTIME_COMMIT_QUIET ,
  DT_DRAWLAYER_RUNTIME_COMMIT_HISTORY
}
 
enum  dt_drawlayer_runtime_source_kind_t {
  DT_DRAWLAYER_SOURCE_NONE = 0 ,
  DT_DRAWLAYER_SOURCE_GUI_PROCESS ,
  DT_DRAWLAYER_SOURCE_HEADLESS_BASE
}
 

Functions

void dt_drawlayer_process_state_init (dt_drawlayer_process_state_t *state)
 
void dt_drawlayer_process_state_cleanup (dt_drawlayer_process_state_t *state)
 
void dt_drawlayer_process_state_reset_stroke (dt_drawlayer_process_state_t *state)
 
void dt_drawlayer_process_state_invalidate (dt_drawlayer_process_state_t *state)
 
gboolean dt_drawlayer_process_state_publish_locked (dt_drawlayer_process_state_t *state, const dt_drawlayer_damaged_rect_t *damage, gboolean full_copy)
 
void dt_drawlayer_ui_cursor_clear (dt_drawlayer_ui_state_t *state)
 
void dt_drawlayer_runtime_manager_init (dt_drawlayer_runtime_manager_t *state)
 
void dt_drawlayer_runtime_manager_cleanup (dt_drawlayer_runtime_manager_t *state)
 
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)
 
void dt_drawlayer_runtime_manager_note_sidecar_io (dt_drawlayer_runtime_manager_t *state, gboolean active)
 
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)
 
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)
 
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)
 

Detailed Description

Private runtime state/helpers shared by drawlayer module entrypoints.

Typedef Documentation

◆ dt_drawlayer_controls_t

◆ dt_drawlayer_process_state_t

◆ dt_drawlayer_process_view_t

◆ dt_drawlayer_runtime_action_request_t

◆ dt_drawlayer_runtime_actor_t

◆ dt_drawlayer_runtime_buffer_t

◆ dt_drawlayer_runtime_commit_mode_t

◆ dt_drawlayer_runtime_context_t

◆ dt_drawlayer_runtime_event_t

◆ dt_drawlayer_runtime_host_t

◆ dt_drawlayer_runtime_inputs_t

◆ dt_drawlayer_runtime_manager_t

◆ dt_drawlayer_runtime_private_t

◆ dt_drawlayer_runtime_raw_input_kind_t

◆ dt_drawlayer_runtime_release_t

◆ dt_drawlayer_runtime_request_t

◆ dt_drawlayer_runtime_result_t

◆ dt_drawlayer_runtime_source_kind_t

◆ dt_drawlayer_runtime_source_t

◆ dt_drawlayer_runtime_update_request_t

◆ dt_drawlayer_session_state_t

◆ dt_drawlayer_stroke_state_t

◆ dt_drawlayer_ui_state_t

◆ dt_iop_drawlayer_gui_data_t

Enumeration Type Documentation

◆ dt_drawlayer_runtime_actor_t

Enumerator
DT_DRAWLAYER_RUNTIME_ACTOR_NONE 
DT_DRAWLAYER_RUNTIME_ACTOR_GUI 
DT_DRAWLAYER_RUNTIME_ACTOR_PIPELINE_CPU 
DT_DRAWLAYER_RUNTIME_ACTOR_PIPELINE_CL 
DT_DRAWLAYER_RUNTIME_ACTOR_RASTER_BACKEND 
DT_DRAWLAYER_RUNTIME_ACTOR_RASTER_FULLRES 
DT_DRAWLAYER_RUNTIME_ACTOR_TIFF_IO 
DT_DRAWLAYER_RUNTIME_ACTOR_COUNT 

◆ dt_drawlayer_runtime_buffer_t

Enumerator
DT_DRAWLAYER_RUNTIME_BUFFER_BASE_PATCH 
DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_PATCH 
DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_SNAPSHOT 
DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_CL 
DT_DRAWLAYER_RUNTIME_BUFFER_STROKE_MASK 
DT_DRAWLAYER_RUNTIME_BUFFER_PROCESS_STROKE_MASK 
DT_DRAWLAYER_RUNTIME_BUFFER_COUNT 

◆ dt_drawlayer_runtime_commit_mode_t

Enumerator
DT_DRAWLAYER_RUNTIME_COMMIT_NONE 
DT_DRAWLAYER_RUNTIME_COMMIT_QUIET 
DT_DRAWLAYER_RUNTIME_COMMIT_HISTORY 

◆ dt_drawlayer_runtime_event_t

Enumerator
DT_DRAWLAYER_RUNTIME_EVENT_NONE 
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_SCROLL 
DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS 
DT_DRAWLAYER_RUNTIME_EVENT_GUI_CHANGE_IMAGE 
DT_DRAWLAYER_RUNTIME_EVENT_GUI_RESYNC 
DT_DRAWLAYER_RUNTIME_EVENT_GUI_PIPE_FINISHED 
DT_DRAWLAYER_RUNTIME_EVENT_GUI_STROKE_ABORT 
DT_DRAWLAYER_RUNTIME_EVENT_GUI_RAW_INPUT 
DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_BEFORE 
DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_AFTER 
DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_BEFORE 
DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_AFTER 
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_EVENT_COMMIT_BEGIN 
DT_DRAWLAYER_RUNTIME_EVENT_COMMIT_END 

◆ dt_drawlayer_runtime_raw_input_kind_t

Enumerator
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_runtime_source_kind_t

Enumerator
DT_DRAWLAYER_SOURCE_NONE 
DT_DRAWLAYER_SOURCE_GUI_PROCESS 
DT_DRAWLAYER_SOURCE_HEADLESS_BASE 

Function Documentation

◆ dt_drawlayer_process_state_cleanup()

◆ dt_drawlayer_process_state_init()

◆ dt_drawlayer_process_state_invalidate()

◆ dt_drawlayer_process_state_publish_locked()

◆ dt_drawlayer_process_state_reset_stroke()

◆ dt_drawlayer_runtime_manager_bind_piece()

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().

◆ dt_drawlayer_runtime_manager_cleanup()

◆ dt_drawlayer_runtime_manager_init()

◆ dt_drawlayer_runtime_manager_note_buffer_lock()

◆ dt_drawlayer_runtime_manager_note_sidecar_io()

◆ dt_drawlayer_runtime_manager_note_thread()

◆ dt_drawlayer_runtime_manager_update()

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().

◆ dt_drawlayer_ui_cursor_clear()