![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
Drawlayer module entrypoints and runtime orchestration. More...
#include "bauhaus/bauhaus.h"#include "common/colorspaces_inline_conversions.h"#include "common/dtpthread.h"#include "common/image.h"#include "common/imagebuf.h"#include "common/imageio.h"#include "common/imageio_module.h"#include "common/iop_profile.h"#include "common/opencl.h"#include "control/conf.h"#include "control/control.h"#include "control/jobs.h"#include "develop/blend.h"#include "develop/dev_history.h"#include "develop/develop.h"#include "develop/imageop.h"#include "develop/imageop_gui.h"#include "develop/imageop_math.h"#include "develop/noise_generator.h"#include "develop/pixelpipe_cache.h"#include "gui/color_picker_proxy.h"#include "gui/gtk.h"#include "gui/gui_throttle.h"#include "iop/drawlayer/brush.h"#include "iop/drawlayer/cache.h"#include "iop/drawlayer/common.h"#include "iop/drawlayer/coordinates.h"#include "iop/drawlayer/io.h"#include "iop/drawlayer/module.h"#include "iop/drawlayer/paint.h"#include "iop/drawlayer/runtime.h"#include "iop/drawlayer/widgets.h"#include "iop/drawlayer/worker.h"#include "iop/iop_api.h"#include <glib/gstdio.h>#include <inttypes.h>#include <limits.h>#include <math.h>#include <sched.h>#include <stdlib.h>#include <string.h>#include "drawlayer/conf.c"#include "drawlayer/coordinates.c"#include "drawlayer/worker.c"#include "drawlayer/layers.c"
Include dependency graph for drawlayer.c:Data Structures | |
| struct | dt_iop_drawlayer_global_data_t |
| struct | drawlayer_preview_background_t |
| struct | drawlayer_wait_dialog_t |
| struct | drawlayer_process_scratch_t |
| struct | drawlayer_cl_image_handle_t |
| struct | drawlayer_modal_wait_state_t |
| struct | drawlayer_hud_brush_state_t |
Typedefs | |
| typedef struct dt_iop_drawlayer_global_data_t | dt_iop_drawlayer_global_data_t |
| typedef struct drawlayer_preview_background_t | drawlayer_preview_background_t |
| typedef dt_drawlayer_runtime_request_t | drawlayer_runtime_request_t |
| typedef dt_drawlayer_runtime_context_t | drawlayer_runtime_host_context_t |
| typedef struct drawlayer_wait_dialog_t | drawlayer_wait_dialog_t |
| typedef struct drawlayer_process_scratch_t | drawlayer_process_scratch_t |
| typedef struct drawlayer_cl_image_handle_t | drawlayer_cl_image_handle_t |
| typedef struct drawlayer_modal_wait_state_t | drawlayer_modal_wait_state_t |
| typedef struct drawlayer_hud_brush_state_t | drawlayer_hud_brush_state_t |
Functions | |
| gboolean | dt_drawlayer_commit_dabs (dt_iop_module_t *self, gboolean record_history) |
| gboolean | dt_drawlayer_flush_layer_cache (dt_iop_module_t *self) |
| static void | _sync_mode_sensitive_widgets (dt_iop_module_t *self) |
| static void | _refresh_layer_widgets (dt_iop_module_t *self) |
| static void | _sync_layer_controls (dt_iop_module_t *self) |
| static void | _sanitize_requested_layer_name (const char *requested, char *name, size_t name_size) |
| static gboolean | _prompt_layer_name_dialog (const char *title, const char *message, const char *initial_name, char *name, size_t name_size) |
| gboolean | dt_drawlayer_sync_widget_cache (dt_iop_module_t *self) |
| void | dt_drawlayer_set_pipeline_realtime_mode (dt_iop_module_t *self, gboolean state) |
| static gboolean | _background_layer_job_done_idle (gpointer user_data) |
| static dt_drawlayer_runtime_result_t | _update_gui_runtime_manager (dt_iop_module_t *self, dt_iop_drawlayer_gui_data_t *g, dt_drawlayer_runtime_event_t event, gboolean flush_pending) |
| static void | _sync_cached_brush_colors (dt_iop_module_t *self, const float display_rgb[3]) |
| Cache brush colors in GUI state so stroke input snapshots don't re-transform per event. | |
| static void | _brush_pipeline_color_from_display (dt_iop_module_t *self, const float display_rgb[3], float pipeline_rgb[3]) |
| Convert one display-space brush color snapshot to pipeline space. | |
| static void | _fill_input_brush_settings (dt_iop_module_t *self, dt_drawlayer_paint_raw_input_t *input) |
| static void | _fill_input_layer_coords (dt_iop_module_t *self, dt_drawlayer_paint_raw_input_t *input) |
| static gboolean | _layer_name_non_empty (const char *name) |
| static gboolean | _get_current_work_profile_key (dt_iop_module_t *self, GList *iop_list, dt_dev_pixelpipe_t *pipe, char *key, const size_t key_size) |
| static void | _destroy_process_scratch (gpointer data) |
| static drawlayer_process_scratch_t * | _get_process_scratch (void) |
| static | __attribute__ ((always_inline)) |
| static gboolean | _rekey_shared_base_patch (drawlayer_patch_t *patch, const int32_t imgid, const dt_iop_drawlayer_params_t *params) |
| static void | _retain_base_patch_loaded_ref (dt_iop_drawlayer_gui_data_t *g) |
| static void | _retain_base_patch_stroke_ref (dt_iop_drawlayer_gui_data_t *g) |
| void | dt_drawlayer_release_all_base_patch_extra_refs (dt_iop_drawlayer_gui_data_t *g) |
| static __DT_CLONE_TARGETS__ void | _blend_layer_over_input (float *output, const float *input, const float *layerbuf, const size_t pixels, const gboolean use_preview_bg, const float preview_bg) |
| static gboolean | _drawlayer_sync_host_image_to_device (const int devid, cl_mem device_image, void *host_pixels, const int width, const int height, const int bpp, const dt_drawlayer_damaged_rect_t *dirty_rect) |
| static gboolean | _drawlayer_acquire_source_image (const int devid, const float *layer_pixels, dt_pixel_cache_entry_t *resolved_entry, const gboolean force_device_copy, const gboolean realtime_reuse, const int source_w, const int source_h, dt_drawlayer_process_state_t *process, drawlayer_cl_image_handle_t *source) |
| static int | _drawlayer_copy_or_resample_layer_roi (const int devid, cl_mem dev_source_rgba, cl_mem dev_layer_rgba, const int source_w, const int source_h, const dt_iop_roi_t *const target_roi, const dt_iop_roi_t *const source_roi) |
| static gboolean | _drawlayer_acquire_layer_image (const int devid, dt_pixel_cache_entry_t *resolved_entry, const gboolean realtime_reuse, const gboolean direct_copy, cl_mem dev_source_rgba, const int source_w, const int source_h, const dt_iop_roi_t *const target_roi, const dt_iop_roi_t *const source_roi, drawlayer_cl_image_handle_t *layer, int *err) |
| static int | _drawlayer_run_premult_over_kernel (const int devid, const int kernel_premult_over, cl_mem dev_background, cl_mem dev_layer_rgba, cl_mem dev_out, const int width, const int height, const int background_offset_x, const int background_offset_y) |
| static int | _blend_layer_over_input_cl (const int devid, const int kernel_premult_over, cl_mem dev_out, cl_mem dev_in, drawlayer_process_scratch_t *scratch, const float *layer_pixels, dt_pixel_cache_entry_t *source_entry, cl_mem source_mem_override, const int source_w, const int source_h, dt_drawlayer_process_state_t *process, const dt_iop_roi_t *const target_roi, const dt_iop_roi_t *const source_roi, const gboolean direct_copy, const gboolean use_preview_bg, const float preview_bg, const gboolean realtime_reuse, const gboolean force_device_copy) |
| static gboolean | _profile_key_is_sane (const char *value) |
| static int64_t | _sidecar_timestamp_from_path (const char *path) |
| static void | _ensure_cursor_stamp_surface (dt_iop_module_t *self, const float widget_radius, const float opacity, const float hardness) |
| void | dt_drawlayer_set_os_cursor_hidden (const gboolean hidden) |
| static drawlayer_wait_dialog_t | _show_drawlayer_wait_dialog (const char *title, const char *message) |
| static gboolean | _drawlayer_modal_wait_tick (gpointer user_data) |
| void | dt_drawlayer_wait_for_rasterization_modal (const dt_iop_drawlayer_gui_data_t *g, const char *title, const char *message) |
| static void | _show_drawlayer_modal_message (const GtkMessageType type, const char *primary, const char *secondary) |
| static gboolean | _color_picker_set_from_position (dt_iop_module_t *self, const float x, const float y) |
| static gboolean | _color_picker_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) |
| static gboolean | _color_swatch_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) |
| static gboolean | _color_swatch_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| static void | _sync_brush_profile_preview_widget (dt_iop_module_t *self) |
| static gboolean | _brush_profile_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) |
| static gboolean | _brush_profile_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| static gboolean | _working_rgb_to_display_rgb (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, const float working_rgb[3], float display_rgb[3]) |
| void | color_picker_apply (dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) |
| Apply selected picker color to drawlayer brush color. | |
| static gboolean | _color_picker_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| static gboolean | _color_picker_button_release (GtkWidget *widget, GdkEventButton *event, gpointer user_data) |
| static gboolean | _color_picker_motion (GtkWidget *widget, GdkEventMotion *event, gpointer user_data) |
| static void | _sanitize_params (dt_iop_module_t *self, dt_iop_drawlayer_params_t *params) |
| void | dt_drawlayer_touch_stroke_commit_hash (dt_iop_drawlayer_params_t *params, const int dab_count, const gboolean have_last_dab, const float last_dab_x, const float last_dab_y, const uint32_t publish_serial) |
| static void | _sync_preview_bg_buttons (dt_iop_module_t *self) |
| static void | _develop_ui_pipe_finished_callback (gpointer instance, gpointer user_data) |
| static gboolean | _delete_current_layer (dt_iop_module_t *self) |
| static gboolean | _confirm_delete_layer (dt_iop_module_t *self, const gboolean removing_module) |
| static gboolean | _rename_current_layer_from_gui (dt_iop_module_t *self, const char *requested_name) |
| static gboolean | _create_new_layer (dt_iop_module_t *self, const char *requested_name) |
| static void | _build_pre_module_filter_string (dt_iop_module_t *self, char *filter, const size_t filter_size) |
| static gboolean | _create_background_layer_from_input (dt_iop_module_t *self) |
| static void | _widget_changed (GtkWidget *widget, gpointer user_data) |
| static gboolean | _apply_selected_layer_attachment (dt_iop_module_t *self, dt_iop_drawlayer_gui_data_t *g, dt_iop_drawlayer_params_t *params, const char *layer_name, const int layer_order) |
| Apply one selected on-disk layer from the combobox to module params/history. | |
| static void | _layer_selected (GtkWidget *widget, gpointer user_data) |
| static void | _attach_selected_layer_clicked (GtkButton *button, gpointer user_data) |
| static void | _rename_layer_clicked (GtkButton *button, gpointer user_data) |
| static void | _delete_layer_clicked (GtkButton *button, gpointer user_data) |
| static gboolean | _fill_current_layer (dt_iop_module_t *self, const float value) |
| static gboolean | _clear_current_layer (dt_iop_module_t *self) |
| static void | _fill_white_clicked (GtkButton *button, gpointer user_data) |
| static void | _fill_black_clicked (GtkButton *button, gpointer user_data) |
| static void | _fill_transparent_clicked (GtkButton *button, gpointer user_data) |
| static void | _save_layer_clicked (GtkButton *button, gpointer user_data) |
| static void | _create_layer_clicked (GtkButton *button, gpointer user_data) |
| static void | _create_background_clicked (GtkButton *button, gpointer user_data) |
| static void | _preview_bg_toggled (GtkToggleButton *button, gpointer user_data) |
| static gboolean | _build_raw_input_event (dt_iop_module_t *self, const double wx, const double wy, const double pressure, const dt_drawlayer_paint_stroke_pos_t stroke_pos, dt_drawlayer_paint_raw_input_t *input) |
| void | dt_drawlayer_begin_gui_stroke_capture (dt_iop_module_t *self, const dt_drawlayer_paint_raw_input_t *first_input) |
| void | dt_drawlayer_end_gui_stroke_capture (dt_iop_module_t *self) |
| void | dt_drawlayer_show_runtime_feedback (const dt_iop_drawlayer_gui_data_t *g, const dt_drawlayer_runtime_feedback_t feedback) |
| const char * | name () |
| Module display name. | |
| const char ** | description (struct dt_iop_module_t *self) |
| Module description strings used by UI/help. | |
| void | init_global (dt_iop_module_so_t *module) |
| Initialize global OpenCL resources for drawlayer kernels. | |
| void | cleanup_global (dt_iop_module_so_t *module) |
| Release global OpenCL resources for drawlayer. | |
| int | default_group () |
| Return default iop group for drawlayer module. | |
| int | flags () |
| Return module capability flags. | |
| int | default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece) |
| Return default colorspace expected by drawlayer process paths. | |
| void | init (dt_iop_module_t *module) |
| Allocate and initialize module parameter blocks. | |
| void | init_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) |
| void | cleanup_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) |
| Cleanup per-pipe runtime data. | |
| void | commit_params (dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) |
| Commit params to runtime piece and refresh base cache state. | |
| void | gui_reset (dt_iop_module_t *self) |
| Reset GUI/session state for current drawlayer instance. | |
| gboolean | module_will_remove (dt_iop_module_t *self) |
| Hook called before module removal from history stack. | |
| void | gui_init (dt_iop_module_t *self) |
| Build GUI widgets and initialize worker/caches. | |
| void | gui_update (dt_iop_module_t *self) |
| Refresh GUI controls from current params and configuration. | |
| void | change_image (dt_iop_module_t *self) |
| Invalidate module state when active image changes. | |
| void | gui_focus (dt_iop_module_t *self, gboolean in) |
| Focus transition hook (enter/leave) for drawlayer GUI mode. | |
| void | gui_cleanup (dt_iop_module_t *self) |
| Destroy GUI resources and stop background worker. | |
| static void | _compute_hud_brush_state (const dt_control_pointer_input_t *pointer_input, drawlayer_hud_brush_state_t *state) |
| static void | _draw_brush_hud (cairo_t *cr, const drawlayer_hud_brush_state_t *state) |
| void | gui_post_expose (dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery) |
| Draw post-expose overlay (cursor, HUD, temp preview). | |
| int | mouse_leave (dt_iop_module_t *self) |
| Mouse leave handler. | |
| int | mouse_moved (dt_iop_module_t *self, double x, double y, double pressure, int which) |
| Mouse motion handler. | |
| int | button_pressed (dt_iop_module_t *self, double x, double y, double pressure, int which, int type, uint32_t state) |
| Button press handler (starts stroke capture on left button). | |
| int | button_released (dt_iop_module_t *self, double x, double y, int which, uint32_t state) |
| Button release handler (ends current stroke). | |
| int | scrolled (dt_iop_module_t *self, double x, double y, int up, uint32_t state) |
| Scroll handler used for interactive brush-size changes. | |
| int | process_cl (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out) |
| OpenCL processing path for layer-over-input compositing. | |
| __DT_CLONE_TARGETS__ int | process (dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid) |
| CPU processing path for layer-over-input compositing. | |
Variables | |
| static GPrivate | _drawlayer_process_scratch_key = G_PRIVATE_INIT(_destroy_process_scratch) |
Drawlayer module entrypoints and runtime orchestration.
| #define _commit_dabs dt_drawlayer_commit_dabs |
| #define _current_live_padding dt_drawlayer_current_live_padding |
| #define _drawlayer_runtime_collect_inputs NULL |
| #define _drawlayer_runtime_perform_action NULL |
| #define _drawlayer_wait_for_rasterization_modal dt_drawlayer_wait_for_rasterization_modal |
| #define _ensure_layer_cache dt_drawlayer_ensure_layer_cache |
| #define _flush_layer_cache dt_drawlayer_flush_layer_cache |
| #define _layer_to_widget_coords dt_drawlayer_layer_to_widget_coords |
| #define _release_all_base_patch_extra_refs dt_drawlayer_release_all_base_patch_extra_refs |
| #define _set_drawlayer_os_cursor_hidden dt_drawlayer_set_os_cursor_hidden |
| #define _set_drawlayer_pipeline_realtime_mode dt_drawlayer_set_pipeline_realtime_mode |
| #define _sync_widget_cache dt_drawlayer_sync_widget_cache |
| #define _touch_stroke_commit_hash dt_drawlayer_touch_stroke_commit_hash |
| typedef struct drawlayer_cl_image_handle_t drawlayer_cl_image_handle_t |
| typedef struct drawlayer_hud_brush_state_t drawlayer_hud_brush_state_t |
| typedef struct drawlayer_modal_wait_state_t drawlayer_modal_wait_state_t |
| typedef struct drawlayer_preview_background_t drawlayer_preview_background_t |
| typedef struct drawlayer_process_scratch_t drawlayer_process_scratch_t |
| typedef struct drawlayer_wait_dialog_t drawlayer_wait_dialog_t |
| typedef struct dt_iop_drawlayer_global_data_t dt_iop_drawlayer_global_data_t |
|
inlinestatic |
References dt_dev_pixelpipe_iop_t::buf_out, dt_iop_module_t::dev, FALSE, dt_iop_roi_t::height, IS_NULL_PTR, dt_develop_t::processed_height, dt_dev_pixelpipe_t::processed_height, dt_develop_t::processed_width, dt_dev_pixelpipe_t::processed_width, dt_develop_t::roi, dt_dev_pixelpipe_iop_t::roi_out, dt_iop_roi_t::scale, dt_develop_t::virtual_pipe, and dt_iop_roi_t::width.
|
static |
Apply one selected on-disk layer from the combobox to module params/history.
References _layer_name_non_empty(), _refresh_layer_widgets(), _touch_stroke_commit_hash, _update_gui_runtime_manager(), dt_iop_module_t::dev, DRAWLAYER_NAME_SIZE, dt_dev_add_history_item, dt_dev_pixelpipe_update_history_all, DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, FALSE, g, gui_update(), IS_NULL_PTR, and TRUE.
Referenced by _attach_selected_layer_clicked(), and _layer_selected().
|
static |
|
static |
References _refresh_layer_widgets(), darktable, darktable_t::develop, dt_control_log(), dt_free, FALSE, g, dt_image_t::id, dt_develop_t::image_storage, dt_drawlayer_io_background_job_result_t::imgid, dt_drawlayer_io_background_job_result_t::initiator_layer_name, dt_drawlayer_io_background_job_result_t::initiator_layer_order, dt_develop_t::iop, IS_NULL_PTR, dt_drawlayer_io_background_job_result_t::message, dt_drawlayer_io_background_job_result_t::sidecar_timestamp, dt_drawlayer_io_background_job_result_t::success, and TRUE.
Referenced by _create_background_layer_from_input().
|
static |
References __OMP_PARALLEL_FOR__, _clamp01(), dt_store_simd_aligned(), and IS_NULL_PTR.
Referenced by process().
|
static |
References __OMP_PARALLEL_FOR__, _drawlayer_acquire_layer_image(), _drawlayer_acquire_source_image(), _drawlayer_run_premult_over_kernel(), drawlayer_process_scratch_t::cl_background_rgba, drawlayer_process_scratch_t::cl_background_rgba_pixels, cleanup(), darktable, DT_DEBUG_OPENCL, dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_cache_put_pinned_image(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_for_host_ptr(), dt_dev_pixelpipe_cache_release_cl_buffer(), dt_drawlayer_cache_ensure_scratch_buffer(), dt_opencl_finish(), dt_opencl_release_mem_object(), dt_print(), FALSE, height, dt_iop_roi_t::height, drawlayer_cl_image_handle_t::is_cached_device, IS_NULL_PTR, drawlayer_cl_image_handle_t::is_pinned, drawlayer_cl_image_handle_t::mem, darktable_t::pixelpipe_cache, process(), TRUE, and dt_iop_roi_t::width.
Referenced by process_cl().
|
static |
Convert one display-space brush color snapshot to pipeline space.
References _clamp01(), _conf_hdr_exposure(), dt_iop_module_t::dev, dt_ioppr_get_iop_work_profile_info(), dt_ioppr_get_pipe_output_profile_info(), dt_ioppr_transform_image_colorspace_rgb(), dt_develop_t::iop, IS_NULL_PTR, out, and dt_develop_t::pipe.
Referenced by _fill_input_brush_settings(), and _sync_cached_brush_colors().
|
static |
References _sync_brush_profile_preview_widget(), _sync_mode_sensitive_widgets(), _sync_params_from_gui(), _update_gui_runtime_manager(), DT_DRAWLAYER_BRUSH_SHAPE_LINEAR, DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, dt_drawlayer_widgets_pick_brush_profile(), FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, and TRUE.
Referenced by gui_init().
|
static |
References darktable, dt_drawlayer_widgets_draw_brush_profiles(), FALSE, g, darktable_t::gui, dt_iop_module_t::gui_data, IS_NULL_PTR, and dt_gui_gtk_t::ppd.
Referenced by gui_init().
|
static |
|
static |
References _clamp01(), _fill_input_brush_settings(), _fill_input_layer_coords(), dt_control_pointer_input_t::acceleration, dt_control_get_pointer_input(), FALSE, g, dt_iop_module_t::gui_data, dt_control_pointer_input_t::has_pressure, IS_NULL_PTR, dt_control_pointer_input_t::pressure, dt_control_pointer_input_t::tilt, TRUE, dt_drawlayer_paint_raw_input_t::wx, dt_control_pointer_input_t::x, and dt_control_pointer_input_t::y.
Referenced by mouse_moved().
|
static |
References _commit_dabs, _reset_stroke_session(), _touch_stroke_commit_hash, _update_gui_runtime_manager(), dt_iop_module_t::dev, dt_dev_add_history_item, dt_drawlayer_cache_clear_transparent_float(), dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, and TRUE.
Referenced by _fill_transparent_clicked().
|
static |
References _color_picker_set_from_position(), FALSE, IS_NULL_PTR, and void().
Referenced by gui_init().
|
static |
References _remember_display_color(), dt_drawlayer_widgets_finish_picker_drag(), FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, and void().
Referenced by gui_init().
|
static |
References darktable, dt_drawlayer_widgets_draw_picker(), FALSE, g, darktable_t::gui, dt_iop_module_t::gui_data, IS_NULL_PTR, and dt_gui_gtk_t::ppd.
Referenced by gui_init().
|
static |
References _color_picker_set_from_position(), dt_drawlayer_widgets_is_picker_dragging(), FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, and void().
Referenced by gui_init().
|
static |
References _apply_display_brush_color(), dt_drawlayer_widgets_update_from_picker_position(), FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, TRUE, and x.
Referenced by _color_picker_button_press(), and _color_picker_motion().
|
static |
References _apply_display_brush_color(), dt_drawlayer_widgets_pick_history_color(), FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, and TRUE.
Referenced by gui_init().
|
static |
References dt_drawlayer_widgets_draw_swatch(), FALSE, g, dt_iop_module_t::gui_data, and IS_NULL_PTR.
Referenced by gui_init().
|
static |
References _clamp01(), _conf_flow(), _conf_hardness(), _conf_mapping_profile(), _conf_opacity(), _conf_size(), _mapping_profile_value(), dt_control_pointer_input_t::acceleration, DRAWLAYER_CONF_ACCEL_PROFILE, DRAWLAYER_CONF_MAP_ACCEL_FLOW, DRAWLAYER_CONF_MAP_ACCEL_OPACITY, DRAWLAYER_CONF_MAP_ACCEL_SIZE, DRAWLAYER_CONF_MAP_ACCEL_SOFTNESS, DRAWLAYER_CONF_MAP_PRESSURE_FLOW, DRAWLAYER_CONF_MAP_PRESSURE_OPACITY, DRAWLAYER_CONF_MAP_PRESSURE_SIZE, DRAWLAYER_CONF_MAP_PRESSURE_SOFTNESS, DRAWLAYER_CONF_MAP_TILT_FLOW, DRAWLAYER_CONF_MAP_TILT_OPACITY, DRAWLAYER_CONF_MAP_TILT_SIZE, DRAWLAYER_CONF_MAP_TILT_SOFTNESS, DRAWLAYER_CONF_PRESSURE_PROFILE, DRAWLAYER_CONF_TILT_PROFILE, dt_conf_get_bool(), dt_control_pointer_input_t::has_pressure, dt_control_pointer_input_t::has_tilt, IS_NULL_PTR, dt_control_pointer_input_t::pressure, state, and dt_control_pointer_input_t::tilt.
Referenced by gui_post_expose().
|
static |
References _delete_current_layer(), _layer_name_non_empty(), darktable, dt_iop_module_t::dev, dt_ui_main_window(), FALSE, darktable_t::gui, IS_NULL_PTR, dt_iop_module_t::params, TRUE, and dt_gui_gtk_t::ui.
Referenced by _delete_layer_clicked(), gui_reset(), and module_will_remove().
|
static |
References _create_background_layer_from_input(), dt_control_log(), and void().
Referenced by gui_init().
|
static |
References _background_layer_job_done_idle(), _build_pre_module_filter_string(), _commit_dabs, _ensure_layer_cache, _flush_layer_cache, _layer_name_non_empty(), darktable_t::control, dt_drawlayer_io_layer_info_t::count, drawlayer_dir_info_t::count, darktable, dt_iop_module_t::dev, dt_drawlayer_io_background_job_params_t::done_idle, dt_drawlayer_io_background_job_params_t::dst_x, dt_drawlayer_io_background_job_params_t::dst_y, dt_control_add_job(), dt_control_job_add_progress(), dt_control_job_create(), dt_control_job_set_params(), dt_dev_distort_get_iop_pipe(), dt_drawlayer_io_background_layer_job_run(), dt_drawlayer_io_find_layer(), dt_drawlayer_io_sidecar_path(), dt_free, DT_JOB_QUEUE_USER_BG, FALSE, dt_drawlayer_io_background_job_params_t::filter, 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, dt_drawlayer_io_background_job_params_t::imgid, dt_drawlayer_io_layer_info_t::index, drawlayer_dir_info_t::index, dt_drawlayer_io_background_job_params_t::initiator_layer_name, dt_drawlayer_io_background_job_params_t::initiator_layer_order, dt_drawlayer_io_background_job_params_t::insert_after_order, IS_NULL_PTR, dt_drawlayer_io_background_job_params_t::layer_height, dt_drawlayer_io_background_job_params_t::layer_width, dt_drawlayer_io_layer_info_t::name, drawlayer_dir_info_t::name, dt_iop_module_t::params, PATH_MAX, dt_develop_t::pipe, dt_drawlayer_io_background_job_params_t::requested_bg_name, dt_drawlayer_io_background_job_params_t::sidecar_path, TRUE, dt_drawlayer_io_layer_info_t::width, drawlayer_dir_info_t::width, dt_drawlayer_io_layer_info_t::work_profile, dt_drawlayer_io_background_job_params_t::work_profile, and drawlayer_dir_info_t::work_profile.
Referenced by _create_background_clicked().
|
static |
References _create_new_layer(), _prompt_layer_name_dialog(), DRAWLAYER_NAME_SIZE, dt_control_log(), IS_NULL_PTR, and void().
Referenced by gui_init().
|
static |
References _commit_dabs, _flush_layer_cache, _refresh_layer_widgets(), _sanitize_requested_layer_name(), _show_drawlayer_modal_message(), _touch_stroke_commit_hash, _update_gui_runtime_manager(), dt_iop_module_t::dev, DRAWLAYER_NAME_SIZE, dt_dev_add_history_item, dt_dev_pixelpipe_update_history_all, dt_drawlayer_io_layer_name_exists(), dt_drawlayer_io_sidecar_path(), DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, FALSE, g, dt_iop_module_t::gui_data, gui_update(), dt_image_t::id, dt_develop_t::image_storage, IS_NULL_PTR, dt_iop_module_t::params, PATH_MAX, and TRUE.
Referenced by _create_layer_clicked().
|
static |
References _layer_name_non_empty(), _layerio_append_error(), _layerio_log_errors(), _refresh_layer_widgets(), _release_all_base_patch_extra_refs, _reset_stroke_session(), dt_iop_module_t::dev, dt_drawlayer_cache_patch_clear(), dt_drawlayer_io_delete_layer(), dt_drawlayer_io_sidecar_path(), dt_drawlayer_paint_runtime_state_reset(), FALSE, g, dt_iop_module_t::gui_data, dt_image_t::id, dt_develop_t::image_storage, IS_NULL_PTR, dt_iop_module_t::params, PATH_MAX, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, and TRUE.
Referenced by _confirm_delete_layer().
|
static |
References _commit_dabs, _confirm_delete_layer(), _refresh_layer_widgets(), _touch_stroke_commit_hash, dt_iop_module_t::dev, dt_dev_add_history_item, FALSE, gui_update(), IS_NULL_PTR, dt_iop_module_t::params, TRUE, and void().
Referenced by gui_init().
|
static |
|
static |
References _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, dt_iop_module_t::dev, dt_drawlayer_runtime_manager_update(), g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, dt_drawlayer_runtime_host_t::user_data, and void().
Referenced by gui_cleanup(), and gui_init().
|
static |
References DT_PIXEL_APPLY_DPI, i, IS_NULL_PTR, state, and x.
Referenced by gui_post_expose().
|
static |
References _drawlayer_copy_or_resample_layer_roi(), dt_dev_pixelpipe_cache_get_cl_buffer(), dt_opencl_alloc_device(), FALSE, dt_iop_roi_t::height, drawlayer_cl_image_handle_t::is_cached_device, IS_NULL_PTR, drawlayer_cl_image_handle_t::mem, TRUE, and dt_iop_roi_t::width.
Referenced by _blend_layer_over_input_cl().
|
static |
References _drawlayer_sync_host_image_to_device(), darktable, dt_dev_pixelpipe_cache_get_cl_buffer(), dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_cache_release_cl_buffer(), dt_drawlayer_paint_runtime_state_reset(), dt_opencl_alloc_device_use_host_pointer(), dt_opencl_copy_host_to_device(), dt_opencl_release_mem_object(), FALSE, drawlayer_cl_image_handle_t::is_cached_device, IS_NULL_PTR, drawlayer_cl_image_handle_t::is_pinned, drawlayer_cl_image_handle_t::mem, darktable_t::pixelpipe_cache, process(), TRUE, and dt_iop_roi_t::width.
Referenced by _blend_layer_over_input_cl().
|
static |
References dt_iop_clip_and_zoom_cl(), dt_opencl_enqueue_copy_image(), dt_iop_roi_t::height, dt_iop_roi_t::scale, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.
Referenced by _drawlayer_acquire_layer_image().
|
static |
References dt_drawlayer_worker_any_active(), IS_NULL_PTR, and state.
Referenced by dt_drawlayer_wait_for_rasterization_modal().
|
static |
References dt_opencl_enqueue_kernel_2d(), dt_opencl_set_kernel_arg(), height, ROUNDUPDHT, ROUNDUPDWD, and width.
Referenced by _blend_layer_over_input_cl().
|
static |
References bpp, dt_opencl_is_pinned_memory(), dt_opencl_map_image(), dt_opencl_unmap_mem_object(), dt_opencl_write_host_to_device(), dt_opencl_write_host_to_device_raw(), FALSE, height, IS_NULL_PTR, dt_drawlayer_damaged_rect_t::nw, dt_drawlayer_damaged_rect_t::se, TRUE, dt_drawlayer_damaged_rect_t::valid, and width.
Referenced by _drawlayer_acquire_source_image().
|
static |
|
static |
References _fill_current_layer(), dt_control_log(), and void().
Referenced by gui_init().
|
static |
References __OMP_PARALLEL_FOR__, _clamp01(), _commit_dabs, _reset_stroke_session(), _touch_stroke_commit_hash, _update_gui_runtime_manager(), dt_iop_module_t::dev, dt_dev_add_history_item, dt_drawlayer_cache_patch_wrlock(), dt_drawlayer_cache_patch_wrunlock(), DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, k, dt_iop_module_t::params, TRUE, and value.
Referenced by _fill_black_clicked(), and _fill_white_clicked().
|
static |
References _brush_pipeline_color_from_display(), _clamp01(), _conf_brush_mode(), _conf_brush_shape(), _conf_display_color(), _conf_distance(), _conf_flow(), _conf_hardness(), _conf_mapping_profile(), _conf_opacity(), _conf_size(), _conf_smoothing(), _conf_sprinkle_coarseness(), _conf_sprinkle_size(), _conf_sprinkles(), _sync_cached_brush_colors(), dt_drawlayer_paint_raw_input_t::accel_profile, dt_drawlayer_paint_raw_input_t::brush_flow, dt_drawlayer_paint_raw_input_t::brush_hardness, dt_drawlayer_paint_raw_input_t::brush_mode, dt_drawlayer_paint_raw_input_t::brush_opacity, dt_drawlayer_paint_raw_input_t::brush_radius, dt_drawlayer_paint_raw_input_t::brush_shape, dt_drawlayer_paint_raw_input_t::brush_sprinkle_coarseness, dt_drawlayer_paint_raw_input_t::brush_sprinkle_size, dt_drawlayer_paint_raw_input_t::brush_sprinkles, dt_drawlayer_paint_raw_input_t::color, dt_drawlayer_paint_raw_input_t::display_color, dt_drawlayer_paint_raw_input_t::distance_percent, DRAWLAYER_CONF_ACCEL_PROFILE, DRAWLAYER_CONF_MAP_ACCEL_FLOW, DRAWLAYER_CONF_MAP_ACCEL_OPACITY, DRAWLAYER_CONF_MAP_ACCEL_SIZE, DRAWLAYER_CONF_MAP_ACCEL_SOFTNESS, DRAWLAYER_CONF_MAP_PRESSURE_FLOW, DRAWLAYER_CONF_MAP_PRESSURE_OPACITY, DRAWLAYER_CONF_MAP_PRESSURE_SIZE, DRAWLAYER_CONF_MAP_PRESSURE_SOFTNESS, DRAWLAYER_CONF_MAP_TILT_FLOW, DRAWLAYER_CONF_MAP_TILT_OPACITY, DRAWLAYER_CONF_MAP_TILT_SIZE, DRAWLAYER_CONF_MAP_TILT_SOFTNESS, DRAWLAYER_CONF_PRESSURE_PROFILE, DRAWLAYER_CONF_TILT_PROFILE, DRAWLAYER_INPUT_MAP_ACCEL_FLOW, DRAWLAYER_INPUT_MAP_ACCEL_OPACITY, DRAWLAYER_INPUT_MAP_ACCEL_SIZE, DRAWLAYER_INPUT_MAP_ACCEL_SOFTNESS, DRAWLAYER_INPUT_MAP_PRESSURE_FLOW, DRAWLAYER_INPUT_MAP_PRESSURE_OPACITY, DRAWLAYER_INPUT_MAP_PRESSURE_SIZE, DRAWLAYER_INPUT_MAP_PRESSURE_SOFTNESS, DRAWLAYER_INPUT_MAP_TILT_FLOW, DRAWLAYER_INPUT_MAP_TILT_OPACITY, DRAWLAYER_INPUT_MAP_TILT_SIZE, DRAWLAYER_INPUT_MAP_TILT_SOFTNESS, dt_conf_get_bool(), g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_drawlayer_paint_raw_input_t::map_flags, dt_drawlayer_paint_raw_input_t::pressure_profile, dt_drawlayer_paint_raw_input_t::smoothing_percent, and dt_drawlayer_paint_raw_input_t::tilt_profile.
Referenced by _build_raw_input_event(), button_pressed(), and button_released().
|
static |
References darktable, DT_DEBUG_INPUT, dt_drawlayer_widget_to_layer_coords(), dt_print(), dt_drawlayer_paint_raw_input_t::event_index, FALSE, dt_drawlayer_paint_raw_input_t::have_layer_coords, IS_NULL_PTR, dt_drawlayer_paint_raw_input_t::lx, dt_drawlayer_paint_raw_input_t::ly, dt_drawlayer_paint_raw_input_t::stroke_batch, dt_drawlayer_paint_raw_input_t::stroke_pos, TRUE, darktable_t::unmuted, dt_drawlayer_paint_raw_input_t::wx, and dt_drawlayer_paint_raw_input_t::wy.
Referenced by _build_raw_input_event(), button_pressed(), and button_released().
|
static |
References _clear_current_layer(), dt_control_log(), and void().
Referenced by gui_init().
|
static |
References _fill_current_layer(), dt_control_log(), and void().
Referenced by gui_init().
|
static |
|
static |
References _drawlayer_process_scratch_key, and IS_NULL_PTR.
Referenced by process(), and process_cl().
|
static |
References DRAWLAYER_NAME_SIZE, FALSE, IS_NULL_PTR, and name().
Referenced by _apply_selected_layer_attachment(), _attach_selected_layer_clicked(), _confirm_delete_layer(), _create_background_layer_from_input(), _delete_current_layer(), _layer_selected(), _populate_layer_list(), _prompt_layer_name_dialog(), _rename_current_layer_from_gui(), _rename_layer_clicked(), _sanitize_params(), _save_layer_clicked(), _sync_layer_controls(), button_pressed(), dt_drawlayer_ensure_layer_cache(), and dt_drawlayer_flush_layer_cache().
References _apply_selected_layer_attachment(), _layer_name_non_empty(), _sync_layer_controls(), darktable, dt_bauhaus_combobox_get(), dt_bauhaus_combobox_get_text(), g, darktable_t::gui, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, and dt_gui_gtk_t::reset.
Referenced by gui_init().
|
static |
References _sync_preview_bg_buttons(), _touch_stroke_commit_hash, darktable, dt_iop_module_t::dev, DRAWLAYER_PREVIEW_BG_BLACK, DRAWLAYER_PREVIEW_BG_GREY, DRAWLAYER_PREVIEW_BG_IMAGE, DRAWLAYER_PREVIEW_BG_WHITE, dt_dev_add_history_item, dt_dev_pixelpipe_update_history_all, FALSE, g, darktable_t::gui, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, dt_gui_gtk_t::reset, and TRUE.
Referenced by gui_init().
|
static |
References FALSE, IS_NULL_PTR, and value.
Referenced by _sanitize_params().
|
static |
References _layer_name_non_empty(), _sanitize_requested_layer_name(), darktable, DT_PIXEL_APPLY_DPI, dt_ui_main_window(), FALSE, darktable_t::gui, IS_NULL_PTR, name(), TRUE, and dt_gui_gtk_t::ui.
Referenced by _create_layer_clicked(), and _rename_layer_clicked().
|
static |
References _populate_layer_list(), _sync_layer_controls(), g, dt_iop_module_t::gui_data, IS_NULL_PTR, and dt_iop_module_t::params.
Referenced by _apply_selected_layer_attachment(), _background_layer_job_done_idle(), _create_new_layer(), _delete_current_layer(), _delete_layer_clicked(), _rename_current_layer_from_gui(), _save_layer_clicked(), dt_drawlayer_ensure_layer_cache(), and gui_reset().
|
static |
References dt_drawlayer_cache_patch_t::cache_entry, dt_drawlayer_cache_patch_t::cache_hash, darktable, DT_DEBUG_PERF, DT_DEBUG_VERBOSE, dt_dev_pixelpipe_cache_flush_host_pinned_image(), dt_dev_pixelpipe_cache_rekey(), dt_drawlayer_cache_patch_alloc_shared(), dt_drawlayer_cache_patch_clear(), dt_drawlayer_cache_patch_rdlock(), dt_drawlayer_cache_patch_rdunlock(), dt_print(), FALSE, dt_drawlayer_cache_patch_t::height, IS_NULL_PTR, darktable_t::pixelpipe_cache, dt_drawlayer_cache_patch_t::pixels, TRUE, darktable_t::unmuted, and dt_drawlayer_cache_patch_t::width.
Referenced by _save_layer_clicked(), and dt_drawlayer_flush_layer_cache().
|
static |
References _commit_dabs, _flush_layer_cache, _layer_name_non_empty(), _layerio_append_error(), _layerio_log_errors(), _refresh_layer_widgets(), _sanitize_requested_layer_name(), _sidecar_timestamp_from_path(), dt_iop_module_t::dev, DRAWLAYER_NAME_SIZE, dt_dev_add_history_item, dt_drawlayer_io_rename_layer(), dt_drawlayer_io_sidecar_path(), FALSE, g, dt_iop_module_t::gui_data, dt_image_t::id, dt_develop_t::image_storage, dt_drawlayer_io_layer_info_t::index, IS_NULL_PTR, dt_iop_module_t::params, PATH_MAX, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, and TRUE.
Referenced by _rename_layer_clicked().
|
static |
|
static |
References darktable, dt_dev_pixelpipe_cache_ref_count_entry(), g, IS_NULL_PTR, darktable_t::pixelpipe_cache, and TRUE.
Referenced by dt_drawlayer_ensure_layer_cache().
|
static |
References darktable, dt_dev_pixelpipe_cache_ref_count_entry(), g, IS_NULL_PTR, darktable_t::pixelpipe_cache, and TRUE.
Referenced by dt_drawlayer_commit_dabs().
|
static |
References _get_current_work_profile_key(), _layer_name_non_empty(), _profile_key_is_sane(), _sanitize_requested_layer_name(), dt_iop_module_t::dev, DRAWLAYER_NAME_SIZE, DRAWLAYER_PROFILE_SIZE, dt_develop_t::iop, IS_NULL_PTR, and dt_develop_t::pipe.
Referenced by commit_params(), dt_drawlayer_ensure_layer_cache(), gui_init(), and gui_update().
|
static |
References ch, FALSE, IS_NULL_PTR, name(), out, and TRUE.
Referenced by _create_new_layer(), _prompt_layer_name_dialog(), _rename_current_layer_from_gui(), and _sanitize_params().
|
static |
References _commit_dabs, _drawlayer_wait_for_rasterization_modal, _flush_layer_cache, _layer_name_non_empty(), _refresh_layer_widgets(), _rekey_shared_base_patch(), _release_all_base_patch_extra_refs, _show_drawlayer_modal_message(), darktable, dt_iop_module_t::dev, dt_ui_main_window(), FALSE, g, darktable_t::gui, dt_iop_module_t::gui_data, dt_image_t::id, dt_develop_t::image_storage, IS_NULL_PTR, dt_iop_module_t::params, dt_gui_gtk_t::ui, and void().
Referenced by gui_init().
|
static |
References darktable, dt_ui_main_window(), darktable_t::gui, IS_NULL_PTR, type, and dt_gui_gtk_t::ui.
Referenced by _create_new_layer(), and _save_layer_clicked().
|
static |
References darktable, drawlayer_wait_dialog_t::dialog, DT_PIXEL_APPLY_DPI, dt_ui_main_window(), FALSE, darktable_t::gui, IS_NULL_PTR, k, main(), TRUE, and dt_gui_gtk_t::ui.
Referenced by dt_drawlayer_wait_for_rasterization_modal().
|
static |
References IS_NULL_PTR.
Referenced by _rename_current_layer_from_gui(), dt_drawlayer_ensure_layer_cache(), and dt_drawlayer_flush_layer_cache().
|
static |
References _conf_brush_shape(), _conf_hardness(), _conf_opacity(), _conf_sprinkle_coarseness(), _conf_sprinkle_size(), _conf_sprinkles(), dt_drawlayer_widgets_set_brush_profile_preview(), g, dt_iop_module_t::gui_data, and IS_NULL_PTR.
Referenced by _brush_profile_button_press(), _widget_changed(), and gui_update().
|
static |
Cache brush colors in GUI state so stroke input snapshots don't re-transform per event.
References _brush_pipeline_color_from_display(), _clamp01(), g, dt_iop_module_t::gui_data, IS_NULL_PTR, and TRUE.
Referenced by _apply_display_brush_color(), _fill_input_brush_settings(), _sync_color_picker_from_conf(), and _widget_changed().
|
static |
References _layer_name_non_empty(), dt_bauhaus_combobox_length(), g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, and TRUE.
Referenced by _layer_selected(), _refresh_layer_widgets(), and gui_update().
|
static |
References _conf_brush_mode(), _conf_brush_shape(), DT_DRAWLAYER_BRUSH_MODE_PAINT, DT_DRAWLAYER_BRUSH_SHAPE_GAUSSIAN, g, dt_iop_module_t::gui_data, and IS_NULL_PTR.
Referenced by _brush_profile_button_press(), _widget_changed(), gui_reset(), and gui_update().
|
static |
References DRAWLAYER_PREVIEW_BG_BLACK, DRAWLAYER_PREVIEW_BG_GREY, DRAWLAYER_PREVIEW_BG_IMAGE, DRAWLAYER_PREVIEW_BG_WHITE, g, dt_iop_module_t::gui_data, and IS_NULL_PTR.
Referenced by _preview_bg_toggled(), and gui_update().
|
static |
References _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, dt_drawlayer_runtime_manager_update(), g, IS_NULL_PTR, dt_drawlayer_runtime_result_t::ok, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, TRUE, and dt_drawlayer_runtime_host_t::user_data.
Referenced by _apply_selected_layer_attachment(), _brush_profile_button_press(), _clear_current_layer(), _create_new_layer(), _fill_current_layer(), _widget_changed(), and gui_cleanup().
References _sync_brush_profile_preview_widget(), _sync_cached_brush_colors(), _sync_mode_sensitive_widgets(), _sync_params_from_gui(), _update_gui_runtime_manager(), darktable, DT_DRAWLAYER_RUNTIME_EVENT_GUI_SYNC_TEMP_BUFFERS, dt_drawlayer_widgets_get_display_color(), FALSE, g, darktable_t::gui, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_gui_gtk_t::reset, and TRUE.
Referenced by gui_init().
|
static |
| int button_pressed | ( | dt_iop_module_t * | self, |
| double | x, | ||
| double | y, | ||
| double | pressure, | ||
| int | which, | ||
| int | type, | ||
| uint32_t | state | ||
| ) |
Button press handler (starts stroke capture on left button).
References _clamp01(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _fill_input_brush_settings(), _fill_input_layer_coords(), _layer_name_non_empty(), dt_control_pointer_input_t::acceleration, dt_iop_module_t::dev, dt_control_get_pointer_input(), dt_control_log(), dt_control_queue_redraw_center(), DT_DRAWLAYER_PAINT_STROKE_FIRST, DT_DRAWLAYER_RUNTIME_EVENT_GUI_RAW_INPUT, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_STROKE_BEGIN, dt_iop_request_focus(), dt_drawlayer_runtime_update_request_t::event, g, dt_iop_module_t::gui_data, dt_develop_t::gui_module, dt_control_pointer_input_t::has_pressure, IS_NULL_PTR, dt_drawlayer_runtime_result_t::ok, dt_iop_module_t::params, dt_control_pointer_input_t::pressure, dt_drawlayer_runtime_result_t::raw_input_ok, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, dt_control_pointer_input_t::tilt, dt_drawlayer_runtime_host_t::user_data, dt_drawlayer_paint_raw_input_t::wx, x, dt_control_pointer_input_t::x, and dt_control_pointer_input_t::y.
| int button_released | ( | dt_iop_module_t * | self, |
| double | x, | ||
| double | y, | ||
| int | which, | ||
| uint32_t | state | ||
| ) |
Button release handler (ends current stroke).
References _clamp01(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _fill_input_brush_settings(), _fill_input_layer_coords(), dt_control_pointer_input_t::acceleration, dt_iop_module_t::dev, dt_control_get_pointer_input(), dt_control_log(), dt_control_queue_redraw_center(), DT_DRAWLAYER_PAINT_STROKE_END, DT_DRAWLAYER_RUNTIME_EVENT_GUI_RAW_INPUT, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_STROKE_END, dt_drawlayer_runtime_update_request_t::event, g, dt_iop_module_t::gui_data, dt_control_pointer_input_t::has_pressure, IS_NULL_PTR, dt_drawlayer_runtime_result_t::ok, dt_iop_module_t::params, dt_control_pointer_input_t::pressure, dt_drawlayer_runtime_result_t::raw_input_ok, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, dt_control_pointer_input_t::tilt, dt_drawlayer_runtime_host_t::user_data, dt_drawlayer_paint_raw_input_t::wx, x, dt_control_pointer_input_t::x, and dt_control_pointer_input_t::y.
| void change_image | ( | dt_iop_module_t * | self | ) |
Invalidate module state when active image changes.
References _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, DT_DRAWLAYER_RUNTIME_EVENT_GUI_CHANGE_IMAGE, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, dt_drawlayer_runtime_update_request_t::event, g, dt_iop_module_t::gui_data, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, and dt_drawlayer_runtime_host_t::user_data.
| void cleanup_global | ( | dt_iop_module_so_t * | module | ) |
Release global OpenCL resources for drawlayer.
References dt_iop_module_so_t::data, dt_free, dt_opencl_free_kernel(), IS_NULL_PTR, and dt_iop_drawlayer_global_data_t::kernel_premult_over.
| void cleanup_pipe | ( | struct dt_iop_module_t * | self, |
| dt_dev_pixelpipe_t * | pipe, | ||
| dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
Cleanup per-pipe runtime data.
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::data_size, dt_drawlayer_process_state_cleanup(), dt_drawlayer_runtime_manager_cleanup(), dt_free, dt_iop_drawlayer_data_t::headless_manager, IS_NULL_PTR, dt_iop_drawlayer_data_t::process, and void().
| void color_picker_apply | ( | dt_iop_module_t * | self, |
| GtkWidget * | picker, | ||
| dt_dev_pixelpipe_t * | pipe, | ||
| dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
Apply selected picker color to drawlayer brush color.
References _apply_display_brush_color(), _conf_pick_source(), _working_rgb_to_display_rgb(), darktable, DRAWLAYER_PICK_SOURCE_OUTPUT, darktable_t::gui, IS_NULL_PTR, dt_iop_module_t::picked_color, dt_iop_module_t::picked_color_max, dt_iop_module_t::picked_color_min, dt_iop_module_t::picked_output_color, dt_iop_module_t::picked_output_color_max, dt_iop_module_t::picked_output_color_min, dt_gui_gtk_t::reset, TRUE, and void().
| void commit_params | ( | dt_iop_module_t * | self, |
| dt_iop_params_t * | params, | ||
| dt_dev_pixelpipe_t * | pipe, | ||
| dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
Commit params to runtime piece and refresh base cache state.
References _sanitize_params(), dt_dev_pixelpipe_iop_t::data, dt_iop_module_t::dev, dt_drawlayer_runtime_manager_bind_piece(), g, dt_iop_module_t::gui_data, dt_iop_drawlayer_data_t::headless_manager, dt_iop_drawlayer_data_t::params, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_iop_drawlayer_data_t::process, dt_iop_drawlayer_data_t::runtime_display_pipe, dt_iop_drawlayer_data_t::runtime_manager, and dt_iop_drawlayer_data_t::runtime_process.
| int default_colorspace | ( | dt_iop_module_t * | self, |
| dt_dev_pixelpipe_t * | pipe, | ||
| const dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
Return default colorspace expected by drawlayer process paths.
References IOP_CS_RGB.
| int default_group | ( | ) |
Return default iop group for drawlayer module.
References IOP_GROUP_EFFECTS.
| const char ** description | ( | struct dt_iop_module_t * | self | ) |
Module description strings used by UI/help.
References dt_iop_set_description().
| void dt_drawlayer_begin_gui_stroke_capture | ( | dt_iop_module_t * | self, |
| const dt_drawlayer_paint_raw_input_t * | first_input | ||
| ) |
References dt_drawlayer_worker_active(), dt_drawlayer_worker_reset_backend_path(), dt_drawlayer_worker_reset_live_publish(), dt_iop_gui_enter_critical_section(), dt_iop_gui_leave_critical_section(), dt_drawlayer_paint_raw_input_t::event_index, FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_drawlayer_paint_raw_input_t::stroke_batch, and TRUE.
Referenced by dt_drawlayer_runtime_manager_update().
| gboolean dt_drawlayer_commit_dabs | ( | dt_iop_module_t * | self, |
| gboolean | record_history | ||
| ) |
References _cancel_async_commit(), _reset_stroke_session(), _retain_base_patch_stroke_ref(), _set_drawlayer_pipeline_realtime_mode, _touch_stroke_commit_hash, _wait_worker_idle(), dt_iop_module_t::dev, dt_control_queue_redraw_center(), dt_dev_add_history_item_ext(), dt_dev_history_compute_hash(), dt_dev_history_notify_change(), dt_dev_pixelpipe_update_history_all, dt_dev_set_history_hash(), dt_dev_undo_end_record(), dt_dev_undo_start_record(), dt_dev_write_history(), dt_drawlayer_worker_publish_backend_stroke_damage(), dt_drawlayer_worker_request_commit(), dt_drawlayer_worker_reset_stroke(), dt_drawlayer_worker_seal_for_commit(), dt_iop_gui_enter_critical_section(), dt_iop_gui_leave_critical_section(), dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, FALSE, g, dt_develop_t::gui_attached, dt_iop_module_t::gui_data, dt_develop_t::history_mutex, dt_image_t::id, dt_develop_t::image_storage, IS_NULL_PTR, dt_iop_module_t::params, and TRUE.
Referenced by _perform_runtime_commit_sequence().
| void dt_drawlayer_end_gui_stroke_capture | ( | dt_iop_module_t * | self | ) |
References g, dt_iop_module_t::gui_data, and IS_NULL_PTR.
Referenced by dt_drawlayer_runtime_manager_update().
| gboolean dt_drawlayer_flush_layer_cache | ( | dt_iop_module_t * | self | ) |
References _layer_name_non_empty(), _rekey_shared_base_patch(), _release_all_base_patch_extra_refs, _sidecar_timestamp_from_path(), _wait_worker_idle(), dt_iop_module_t::dev, dt_drawlayer_cache_patch_rdlock(), dt_drawlayer_cache_patch_rdunlock(), dt_drawlayer_io_sidecar_path(), dt_drawlayer_io_store_layer(), dt_drawlayer_paint_runtime_state_reset(), dt_drawlayer_worker_any_active(), FALSE, g, dt_iop_module_t::gui_data, dt_image_t::id, dt_develop_t::image_storage, IS_NULL_PTR, dt_iop_drawlayer_params_t::layer_name, dt_iop_drawlayer_params_t::layer_order, dt_iop_module_t::params, PATH_MAX, dt_iop_drawlayer_params_t::sidecar_timestamp, TRUE, dt_drawlayer_io_patch_t::width, and dt_drawlayer_io_patch_t::x.
Referenced by dt_drawlayer_runtime_manager_update().
| void dt_drawlayer_release_all_base_patch_extra_refs | ( | dt_iop_drawlayer_gui_data_t * | g | ) |
References darktable, dt_dev_pixelpipe_cache_ref_count_entry(), FALSE, g, IS_NULL_PTR, and darktable_t::pixelpipe_cache.
Referenced by dt_drawlayer_runtime_manager_update().
| void dt_drawlayer_set_os_cursor_hidden | ( | const gboolean | hidden | ) |
References darktable, dt_control_set_cursor(), dt_ui_center(), dt_ui_main_window(), darktable_t::gui, IS_NULL_PTR, main(), and dt_gui_gtk_t::ui.
Referenced by dt_drawlayer_runtime_manager_update().
| void dt_drawlayer_set_pipeline_realtime_mode | ( | dt_iop_module_t * | self, |
| gboolean | state | ||
| ) |
References dt_iop_module_t::dev, dt_atomic_set_int(), dt_dev_pixelpipe_get_realtime(), dt_dev_pixelpipe_resync_history_main, dt_dev_pixelpipe_set_realtime(), IS_NULL_PTR, dt_dev_pixelpipe_t::pause, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_dev_pixelpipe_t::shutdown, state, and TRUE.
Referenced by _perform_runtime_commit_sequence(), and dt_drawlayer_runtime_manager_update().
| void dt_drawlayer_show_runtime_feedback | ( | const dt_iop_drawlayer_gui_data_t * | g, |
| const dt_drawlayer_runtime_feedback_t | feedback | ||
| ) |
| gboolean dt_drawlayer_sync_widget_cache | ( | dt_iop_module_t * | self | ) |
References _current_live_padding, _ensure_widget_cache(), _pause_worker(), _resume_worker(), dt_iop_module_t::dev, FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, and TRUE.
Referenced by _perform_runtime_widget_cache_sync().
| void dt_drawlayer_touch_stroke_commit_hash | ( | dt_iop_drawlayer_params_t * | params, |
| const int | dab_count, | ||
| const gboolean | have_last_dab, | ||
| const float | last_dab_x, | ||
| const float | last_dab_y, | ||
| const uint32_t | publish_serial | ||
| ) |
References dt_hash(), and IS_NULL_PTR.
Referenced by _publish_backend_progress().
| void dt_drawlayer_wait_for_rasterization_modal | ( | const dt_iop_drawlayer_gui_data_t * | g, |
| const char * | title, | ||
| const char * | message | ||
| ) |
| int flags | ( | ) |
Return module capability flags.
References IOP_FLAGS_SUPPORTS_BLENDING.
| void gui_cleanup | ( | dt_iop_module_t * | self | ) |
Destroy GUI resources and stop background worker.
References _develop_ui_pipe_finished_callback(), _release_all_base_patch_extra_refs, _set_drawlayer_os_cursor_hidden, _update_gui_runtime_manager(), darktable, DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, dt_drawlayer_process_state_cleanup(), DT_DRAWLAYER_RUNTIME_EVENT_GUI_FOCUS_LOSS, dt_drawlayer_runtime_manager_cleanup(), dt_drawlayer_ui_cursor_clear(), dt_drawlayer_widgets_cleanup(), dt_drawlayer_worker_cleanup(), FALSE, g, dt_iop_module_t::gui_data, IOP_GUI_FREE, IS_NULL_PTR, and darktable_t::signals.
| void gui_focus | ( | dt_iop_module_t * | self, |
| gboolean | in | ||
| ) |
Focus transition hook (enter/leave) for drawlayer GUI mode.
References _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _set_drawlayer_os_cursor_hidden, _touch_stroke_commit_hash, dt_iop_module_t::dev, dt_dev_add_history_item_ext(), dt_dev_history_compute_hash(), dt_dev_history_notify_change(), dt_dev_set_history_hash(), dt_dev_undo_end_record(), dt_dev_undo_start_record(), dt_dev_write_history(), DT_DRAWLAYER_RUNTIME_EVENT_GUI_FOCUS_GAIN, DT_DRAWLAYER_RUNTIME_EVENT_GUI_FOCUS_LOSS, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, dt_drawlayer_runtime_update_request_t::event, FALSE, g, dt_iop_module_t::gui_data, dt_develop_t::history_mutex, dt_image_t::id, dt_develop_t::image_storage, IS_NULL_PTR, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, TRUE, and dt_drawlayer_runtime_host_t::user_data.
| void gui_init | ( | dt_iop_module_t * | self | ) |
Build GUI widgets and initialize worker/caches.
References _attach_selected_layer_clicked(), _brush_profile_button_press(), _brush_profile_draw(), _color_picker_button_press(), _color_picker_button_release(), _color_picker_draw(), _color_picker_motion(), _color_swatch_button_press(), _color_swatch_draw(), _create_background_clicked(), _create_layer_clicked(), _delete_layer_clicked(), _develop_ui_pipe_finished_callback(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _ensure_gui_conf_defaults(), _fill_black_clicked(), _fill_transparent_clicked(), _fill_white_clicked(), _layer_selected(), _load_color_history(), _preview_bg_toggled(), _rename_layer_clicked(), _sanitize_params(), _save_layer_clicked(), _widget_changed(), darktable_t::bauhaus, darktable, dt_iop_module_t::dev, dt_bauhaus_combobox_add(), dt_bauhaus_combobox_new(), dt_bauhaus_slider_new_with_range(), dt_bauhaus_slider_set_factor(), dt_bauhaus_slider_set_format(), dt_bauhaus_widget_set_label(), dt_color_picker_new_with_cst(), DT_COLOR_PICKER_POINT_AREA, DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_DRAWLAYER_COLOR_HISTORY_HEIGHT, DT_DRAWLAYER_COLOR_PICKER_HEIGHT, dt_drawlayer_process_state_init(), dt_drawlayer_runtime_manager_init(), dt_drawlayer_runtime_manager_update(), dt_drawlayer_widgets_init(), dt_drawlayer_worker_init(), dt_gui_add_class(), DT_GUI_IOP_MODULE_CONTROL_SPACING, DT_GUI_MODULE, DT_PIXEL_APPLY_DPI, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, FALSE, g, dt_iop_module_t::gui_data, IOP_CS_NONE, IOP_GUI_ALLOC, dt_iop_module_t::params, r, dt_iop_module_t::reset_button, dt_develop_t::roi, dt_drawlayer_runtime_context_t::runtime, dt_develop_t::scaling, dt_drawlayer_runtime_request_t::self, darktable_t::signals, TRUE, dt_drawlayer_runtime_host_t::user_data, dt_iop_module_t::widget, dt_develop_t::x, and dt_develop_t::y.
| void gui_post_expose | ( | dt_iop_module_t * | self, |
| cairo_t * | cr, | ||
| int32_t | width, | ||
| int32_t | height, | ||
| int32_t | pointerx, | ||
| int32_t | pointery | ||
| ) |
Draw post-expose overlay (cursor, HUD, temp preview).
References _compute_hud_brush_state(), _conf_brush_mode(), _draw_brush_hud(), _ensure_cursor_stamp_surface(), _layer_to_widget_coords, dt_iop_module_t::dev, dt_control_get_pointer_input(), dt_dev_get_overlay_scale(), DT_DRAWLAYER_BRUSH_MODE_PAINT, dt_drawlayer_widget_brush_radius(), dt_drawlayer_widget_to_layer_coords(), g, dt_iop_module_t::gui_data, dt_develop_t::gui_module, drawlayer_hud_brush_state_t::hardness, IS_NULL_PTR, M_PI, drawlayer_hud_brush_state_t::opacity, drawlayer_hud_brush_state_t::radius, dt_control_pointer_input_t::x, dt_drawlayer_brush_dab_t::x, and dt_control_pointer_input_t::y.
| void gui_reset | ( | dt_iop_module_t * | self | ) |
Reset GUI/session state for current drawlayer instance.
References _commit_dabs, _confirm_delete_layer(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _refresh_layer_widgets(), _sync_mode_sensitive_widgets(), _touch_stroke_commit_hash, dt_iop_module_t::dev, dt_drawlayer_runtime_manager_update(), FALSE, g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, and dt_drawlayer_runtime_host_t::user_data.
| void gui_update | ( | dt_iop_module_t * | self | ) |
Refresh GUI controls from current params and configuration.
References _conf_brush_mode(), _conf_distance(), _conf_flow(), _conf_hardness(), _conf_hdr_exposure(), _conf_mapping_profile(), _conf_opacity(), _conf_pick_source(), _conf_size(), _conf_smoothing(), _conf_sprinkle_coarseness(), _conf_sprinkle_size(), _conf_sprinkles(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _populate_layer_list(), _sanitize_params(), _sync_brush_profile_preview_widget(), _sync_color_picker_from_conf(), _sync_layer_controls(), _sync_mode_sensitive_widgets(), _sync_preview_bg_buttons(), dt_iop_module_t::dev, DRAWLAYER_CONF_ACCEL_PROFILE, DRAWLAYER_CONF_MAP_ACCEL_FLOW, DRAWLAYER_CONF_MAP_ACCEL_OPACITY, DRAWLAYER_CONF_MAP_ACCEL_SIZE, DRAWLAYER_CONF_MAP_ACCEL_SOFTNESS, DRAWLAYER_CONF_MAP_PRESSURE_FLOW, DRAWLAYER_CONF_MAP_PRESSURE_OPACITY, DRAWLAYER_CONF_MAP_PRESSURE_SIZE, DRAWLAYER_CONF_MAP_PRESSURE_SOFTNESS, DRAWLAYER_CONF_MAP_TILT_FLOW, DRAWLAYER_CONF_MAP_TILT_OPACITY, DRAWLAYER_CONF_MAP_TILT_SIZE, DRAWLAYER_CONF_MAP_TILT_SOFTNESS, DRAWLAYER_CONF_PRESSURE_PROFILE, DRAWLAYER_CONF_TILT_PROFILE, dt_bauhaus_combobox_set(), dt_bauhaus_slider_set(), dt_conf_get_bool(), dt_drawlayer_runtime_manager_update(), g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, and dt_drawlayer_runtime_host_t::user_data.
Referenced by _apply_selected_layer_attachment(), _create_new_layer(), and _delete_layer_clicked().
| void init | ( | dt_iop_module_t * | module | ) |
Allocate and initialize module parameter blocks.
References dt_iop_module_t::default_params, and dt_iop_module_t::params.
| void init_global | ( | dt_iop_module_so_t * | module | ) |
Initialize global OpenCL resources for drawlayer kernels.
References dt_opencl_create_kernel(), IS_NULL_PTR, and dt_iop_drawlayer_global_data_t::kernel_premult_over.
| void init_pipe | ( | struct dt_iop_module_t * | self, |
| dt_dev_pixelpipe_t * | pipe, | ||
| dt_dev_pixelpipe_iop_t * | piece | ||
| ) |
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::data_size, dt_drawlayer_process_state_init(), dt_drawlayer_runtime_manager_bind_piece(), dt_drawlayer_runtime_manager_init(), FALSE, dt_iop_drawlayer_data_t::headless_manager, IS_NULL_PTR, dt_iop_drawlayer_params_t::layer_order, dt_iop_drawlayer_data_t::params, dt_iop_drawlayer_data_t::process, dt_iop_drawlayer_data_t::runtime_display_pipe, dt_iop_drawlayer_data_t::runtime_manager, and dt_iop_drawlayer_data_t::runtime_process.
| gboolean module_will_remove | ( | dt_iop_module_t * | self | ) |
Hook called before module removal from history stack.
References _commit_dabs, _confirm_delete_layer(), _flush_layer_cache, dt_iop_module_t::dev, FALSE, IS_NULL_PTR, and TRUE.
| int mouse_leave | ( | dt_iop_module_t * | self | ) |
Mouse leave handler.
References _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, DT_DRAWLAYER_RUNTIME_EVENT_GUI_MOUSE_LEAVE, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, dt_drawlayer_runtime_update_request_t::event, g, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, and dt_drawlayer_runtime_host_t::user_data.
| int mouse_moved | ( | dt_iop_module_t * | self, |
| double | x, | ||
| double | y, | ||
| double | pressure, | ||
| int | which | ||
| ) |
Mouse motion handler.
References _build_raw_input_event(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, darktable, dt_iop_module_t::dev, DT_DRAWLAYER_PAINT_STROKE_MIDDLE, DT_DRAWLAYER_RUNTIME_EVENT_GUI_MOUSE_LEAVE, DT_DRAWLAYER_RUNTIME_EVENT_GUI_RAW_INPUT, DT_DRAWLAYER_RUNTIME_EVENT_GUI_STROKE_ABORT, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, DT_DRAWLAYER_RUNTIME_RAW_INPUT_SAMPLE, DT_REQUEST_COLORPICK_OFF, dt_ui_center(), dt_drawlayer_runtime_update_request_t::event, FALSE, g, darktable_t::gui, dt_iop_module_t::gui_data, IS_NULL_PTR, dt_drawlayer_runtime_result_t::ok, dt_iop_module_t::params, dt_drawlayer_runtime_result_t::raw_input_ok, dt_iop_module_t::request_color_pick, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, dt_gui_gtk_t::ui, dt_drawlayer_runtime_host_t::user_data, and x.
| const char * name | ( | ) |
Module display name.
Referenced by _layer_name_non_empty(), _prompt_layer_name_dialog(), and _sanitize_requested_layer_name().
| __DT_CLONE_TARGETS__ int process | ( | dt_iop_module_t * | self, |
| const dt_dev_pixelpipe_t * | pipe, | ||
| const dt_dev_pixelpipe_iop_t * | piece, | ||
| const void *const | ivoid, | ||
| void *const | ovoid | ||
| ) |
CPU processing path for layer-over-input compositing.
References _blend_layer_over_input(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _get_process_scratch(), darktable, dt_dev_pixelpipe_iop_t::data, dt_iop_module_t::dev, dt_drawlayer_runtime_source_t::direct_copy, DT_DEBUG_PERF, DT_DEBUG_VERBOSE, dt_drawlayer_cache_ensure_scratch_buffer(), DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_AFTER, DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CPU_BEFORE, dt_drawlayer_runtime_manager_bind_piece(), dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, dt_iop_clip_and_zoom(), dt_iop_image_copy_by_size(), dt_print(), drawlayer_preview_background_t::enabled, dt_drawlayer_runtime_update_request_t::event, FALSE, dt_iop_module_t::gui_data, dt_iop_roi_t::height, IS_NULL_PTR, dt_iop_drawlayer_params_t::layer_name, drawlayer_process_scratch_t::layerbuf, drawlayer_process_scratch_t::layerbuf_pixels, dt_iop_drawlayer_gui_data_t::manager, dt_drawlayer_runtime_request_t::manager, ovoid, dt_iop_drawlayer_data_t::params, dt_develop_t::pipe, dt_drawlayer_runtime_source_t::pixels, dt_develop_t::preview_pipe, dt_iop_drawlayer_gui_data_t::process, dt_drawlayer_runtime_release_t::process, dt_drawlayer_runtime_request_t::process_state, dt_drawlayer_runtime_update_request_t::release, dt_dev_pixelpipe_iop_t::roi_in, dt_dev_pixelpipe_iop_t::roi_out, dt_drawlayer_runtime_context_t::runtime, dt_iop_drawlayer_data_t::runtime_display_pipe, dt_iop_drawlayer_data_t::runtime_manager, dt_iop_drawlayer_data_t::runtime_process, dt_drawlayer_runtime_request_t::self, dt_drawlayer_runtime_source_t::source_roi, dt_drawlayer_runtime_source_t::target_roi, TRUE, darktable_t::unmuted, dt_drawlayer_runtime_host_t::user_data, drawlayer_preview_background_t::value, dt_iop_roi_t::width, and dt_drawlayer_runtime_source_t::width.
Referenced by _blend_layer_over_input_cl(), and _drawlayer_acquire_source_image().
| int process_cl | ( | struct dt_iop_module_t * | self, |
| const dt_dev_pixelpipe_t * | pipe, | ||
| const dt_dev_pixelpipe_iop_t * | piece, | ||
| cl_mem | dev_in, | ||
| cl_mem | dev_out | ||
| ) |
OpenCL processing path for layer-over-input compositing.
References _blend_layer_over_input_cl(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, _get_process_scratch(), dt_drawlayer_runtime_source_t::cache_entry, darktable, dt_dev_pixelpipe_iop_t::data, dt_iop_module_t::dev, dt_dev_pixelpipe_t::devid, dt_drawlayer_runtime_source_t::direct_copy, DT_DEBUG_PERF, DT_DEBUG_VERBOSE, dt_dev_pixelpipe_get_realtime(), DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_AFTER, DT_DRAWLAYER_RUNTIME_EVENT_PROCESS_CL_BEFORE, dt_drawlayer_runtime_manager_bind_piece(), dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, dt_iop_clip_and_zoom_roi_cl(), dt_print(), drawlayer_preview_background_t::enabled, dt_drawlayer_runtime_update_request_t::event, FALSE, dt_iop_module_t::global_data, dt_iop_module_t::gui_data, dt_drawlayer_runtime_source_t::height, IS_NULL_PTR, dt_iop_drawlayer_global_data_t::kernel_premult_over, dt_iop_drawlayer_params_t::layer_name, dt_iop_drawlayer_gui_data_t::manager, dt_drawlayer_runtime_request_t::manager, dt_iop_drawlayer_data_t::params, dt_develop_t::pipe, dt_drawlayer_runtime_source_t::pixels, dt_develop_t::preview_pipe, dt_iop_drawlayer_gui_data_t::process, dt_drawlayer_runtime_release_t::process, dt_drawlayer_runtime_request_t::process_state, dt_drawlayer_runtime_update_request_t::release, dt_dev_pixelpipe_iop_t::roi_in, dt_dev_pixelpipe_iop_t::roi_out, dt_drawlayer_runtime_context_t::runtime, dt_iop_drawlayer_data_t::runtime_display_pipe, dt_iop_drawlayer_data_t::runtime_manager, dt_iop_drawlayer_data_t::runtime_process, dt_drawlayer_runtime_request_t::self, dt_drawlayer_runtime_source_t::source_roi, dt_drawlayer_runtime_source_t::target_roi, TRUE, darktable_t::unmuted, dt_drawlayer_runtime_host_t::user_data, drawlayer_preview_background_t::value, and dt_drawlayer_runtime_source_t::width.
| int scrolled | ( | dt_iop_module_t * | self, |
| double | x, | ||
| double | y, | ||
| int | up, | ||
| uint32_t | state | ||
| ) |
Scroll handler used for interactive brush-size changes.
References _conf_size(), _drawlayer_runtime_collect_inputs, _drawlayer_runtime_perform_action, dt_iop_module_t::dev, DRAWLAYER_CONF_SIZE, dt_bauhaus_slider_set(), dt_conf_set_float(), DT_DRAWLAYER_RUNTIME_EVENT_GUI_SCROLL, dt_drawlayer_runtime_manager_update(), DT_DRAWLAYER_RUNTIME_RAW_INPUT_NONE, dt_mask_scroll_increases(), dt_drawlayer_runtime_update_request_t::event, factor, g, dt_iop_module_t::gui_data, dt_develop_t::gui_module, IS_NULL_PTR, dt_iop_module_t::params, dt_drawlayer_runtime_context_t::runtime, dt_drawlayer_runtime_request_t::self, and dt_drawlayer_runtime_host_t::user_data.
|
static |
Referenced by _get_process_scratch().