Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
retouch.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/bilateral.h"
#include "common/bilateralcl.h"
#include "common/colorspaces_inline_conversions.h"
#include "common/dwt.h"
#include "common/gaussian.h"
#include "common/heal.h"
#include "common/imagebuf.h"
#include "common/opencl.h"
#include "develop/blend.h"
#include "develop/imageop_math.h"
#include "develop/imageop_gui.h"
#include "develop/masks.h"
#include "develop/tiling.h"
#include "iop/iop_api.h"
#include "dtgtk/drawingarea.h"
#include "gui/color_picker_proxy.h"
#include <stdlib.h>
+ Include dependency graph for retouch.c:

Data Structures

struct  dt_iop_retouch_form_data_t
 
struct  retouch_user_data_t
 
struct  dt_iop_retouch_params_t
 
struct  dt_iop_retouch_gui_data_t
 
struct  dt_iop_retouch_global_data_t
 

Macros

#define RETOUCH_NO_FORMS   300
 
#define RETOUCH_MAX_SCALES   15
 
#define RETOUCH_NO_SCALES   (RETOUCH_MAX_SCALES + 2)
 
#define RETOUCH_PREVIEW_LVL_MIN   -3.0f
 
#define RETOUCH_PREVIEW_LVL_MAX   3.0f
 
#define RT_WDBAR_INSET   0.2f
 
#define lw   DT_PIXEL_APPLY_DPI(1.0f)
 
#define NEUTRAL_GRAY   0.5
 

Typedefs

typedef enum dt_iop_retouch_drag_types_t dt_iop_retouch_drag_types_t
 
typedef enum dt_iop_retouch_fill_modes_t dt_iop_retouch_fill_modes_t
 
typedef enum dt_iop_retouch_blur_types_t dt_iop_retouch_blur_types_t
 
typedef enum dt_iop_retouch_algo_type_t dt_iop_retouch_algo_type_t
 
typedef struct dt_iop_retouch_form_data_t dt_iop_retouch_form_data_t
 
typedef struct retouch_user_data_t retouch_user_data_t
 
typedef struct dt_iop_retouch_params_t dt_iop_retouch_params_t
 
typedef struct dt_iop_retouch_gui_data_t dt_iop_retouch_gui_data_t
 
typedef struct dt_iop_retouch_params_t dt_iop_retouch_data_t
 
typedef struct dt_iop_retouch_global_data_t dt_iop_retouch_global_data_t
 

Enumerations

enum  dt_iop_retouch_drag_types_t {
  DT_IOP_RETOUCH_WDBAR_DRAG_TOP = 1 ,
  DT_IOP_RETOUCH_WDBAR_DRAG_BOTTOM = 2
}
 
enum  dt_iop_retouch_fill_modes_t {
  DT_IOP_RETOUCH_FILL_ERASE = 0 ,
  DT_IOP_RETOUCH_FILL_COLOR = 1
}
 
enum  dt_iop_retouch_blur_types_t {
  DT_IOP_RETOUCH_BLUR_GAUSSIAN = 0 ,
  DT_IOP_RETOUCH_BLUR_BILATERAL = 1
}
 
enum  dt_iop_retouch_algo_type_t {
  DT_IOP_RETOUCH_NONE = 0 ,
  DT_IOP_RETOUCH_CLONE = 1 ,
  DT_IOP_RETOUCH_HEAL = 2 ,
  DT_IOP_RETOUCH_BLUR = 3 ,
  DT_IOP_RETOUCH_FILL = 4
}
 

Functions

const char * name ()
 
const char * aliases ()
 
const char ** description (struct dt_iop_module_t *self)
 
int default_group ()
 
int flags ()
 
int default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
static int rt_shape_is_being_added (dt_iop_module_t *self, const int shape_type)
 
int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
static int rt_get_index_from_formid (dt_iop_retouch_params_t *p, const int formid)
 
static int rt_get_selected_shape_id ()
 
static dt_masks_point_group_trt_get_mask_point_group (dt_iop_module_t *self, int formid)
 
static float rt_get_shape_opacity (dt_iop_module_t *self, const int formid)
 
static void rt_display_selected_fill_color (dt_iop_retouch_gui_data_t *g, dt_iop_retouch_params_t *p)
 
static void rt_show_hide_controls (const dt_iop_module_t *self)
 
static void rt_display_selected_shapes_lbl (dt_iop_retouch_gui_data_t *g)
 
static int rt_get_selected_shape_index (dt_iop_retouch_params_t *p)
 
static void rt_shape_selection_changed (dt_iop_module_t *self)
 
static void rt_masks_form_change_opacity (dt_iop_module_t *self, int formid, float opacity)
 
static float rt_masks_form_get_opacity (dt_iop_module_t *self, int formid)
 
static void rt_paste_forms_from_scale (dt_iop_retouch_params_t *p, const int source_scale, const int dest_scale)
 
static int rt_allow_create_form (dt_iop_module_t *self)
 
static void rt_reset_form_creation (GtkWidget *widget, dt_iop_module_t *self)
 
static void rt_show_forms_for_current_scale (dt_iop_module_t *self)
 
static void rt_resynch_params (struct dt_iop_module_t *self)
 
void post_history_commit (dt_iop_module_t *self)
 
static gboolean rt_masks_form_is_in_roi (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, dt_masks_form_t *form, const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out)
 
static void rt_masks_point_denormalize (dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi, const float *points, size_t points_count, float *new)
 
static int rt_masks_point_calc_delta (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi, const float *target, const float *source, float *dx, float *dy, const int distort_mode)
 
static int rt_masks_get_delta_to_destination (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi, dt_masks_form_t *form, float *dx, float *dy, const int distort_mode)
 
static void rt_clamp_minmax (float levels_old[3], float levels_new[3])
 
static gboolean rt_add_shape (GtkWidget *widget, dt_iop_module_t *self)
 
static void rt_colorpick_color_set_callback (GtkColorButton *widget, dt_iop_module_t *self)
 
static void rt_update_wd_bar_labels (dt_iop_retouch_params_t *p, dt_iop_retouch_gui_data_t *g)
 
static void rt_num_scales_update (const int _num_scales, dt_iop_module_t *self)
 
static void rt_curr_scale_update (const int _curr_scale, dt_iop_module_t *self)
 
static void rt_merge_from_scale_update (const int _merge_from_scale, dt_iop_module_t *self)
 
static gboolean rt_wdbar_leave_notify (GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self)
 
static gboolean rt_wdbar_button_press (GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self)
 
static gboolean rt_wdbar_button_release (GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self)
 
static gboolean rt_wdbar_scrolled (GtkWidget *widget, GdkEventScroll *event, dt_iop_module_t *self)
 
static gboolean rt_wdbar_motion_notify (GtkWidget *widget, GdkEventMotion *event, dt_iop_module_t *self)
 
static int rt_scale_has_shapes (dt_iop_retouch_params_t *p, const int scale)
 
static gboolean rt_wdbar_draw (GtkWidget *widget, cairo_t *crf, dt_iop_module_t *self)
 
static float rt_gslider_scale_callback (GtkWidget *self, float inval, int dir)
 
static void rt_gslider_changed (GtkDarktableGradientSlider *gslider, dt_iop_module_t *self)
 
void color_picker_apply (dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece)
 
static gboolean rt_copypaste_scale_callback (GtkToggleButton *togglebutton, GdkEventButton *event, dt_iop_module_t *self)
 
static gboolean rt_display_wavelet_scale_callback (GtkToggleButton *togglebutton, GdkEventButton *event, dt_iop_module_t *self)
 
static void rt_develop_ui_pipe_finished_callback (gpointer instance, gpointer user_data)
 
static gboolean rt_auto_levels_callback (GtkToggleButton *togglebutton, GdkEventButton *event, dt_iop_module_t *self)
 
static void rt_mask_opacity_callback (GtkWidget *slider, dt_iop_module_t *self)
 
void gui_post_expose (struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
 
static gboolean rt_edit_masks_callback (GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self)
 
static gboolean rt_add_shape_callback (GtkWidget *widget, GdkEventButton *e, dt_iop_module_t *self)
 
static gboolean rt_select_algorithm_callback (GtkToggleButton *togglebutton, GdkEventButton *e, dt_iop_module_t *self)
 
static gboolean rt_showmask_callback (GtkToggleButton *togglebutton, GdkEventButton *event, dt_iop_module_t *module)
 
static gboolean rt_suppress_callback (GtkToggleButton *togglebutton, GdkEventButton *event, dt_iop_module_t *module)
 
void gui_changed (dt_iop_module_t *self, GtkWidget *w, void *previous)
 
void masks_selection_changed (struct dt_iop_module_t *self, const int form_selected_id)
 
void init (dt_iop_module_t *module)
 
void init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
void gui_focus (struct dt_iop_module_t *self, gboolean in)
 
void commit_params (struct dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void tiling_callback (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling)
 
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)
 
void gui_update (dt_iop_module_t *self)
 
void change_image (struct dt_iop_module_t *self)
 
void gui_init (dt_iop_module_t *self)
 
void gui_reset (struct dt_iop_module_t *self)
 
void reload_defaults (dt_iop_module_t *self)
 
void gui_cleanup (dt_iop_module_t *self)
 
void modify_roi_out (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_out, const dt_iop_roi_t *roi_in)
 
static void rt_compute_roi_in (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_in, int *_roir, int *_roib, int *_roix, int *_roiy)
 
static void rt_extend_roi_in_from_source_clones (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_in, const int formid_src, const int fl_src, const int ft_src, const int fw_src, const int fh_src, int *_roir, int *_roib, int *_roix, int *_roiy)
 
static void rt_extend_roi_in_for_clone (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_in, int *_roir, int *_roib, int *_roix, int *_roiy)
 
void modify_roi_in (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_out, dt_iop_roi_t *roi_in)
 
static void image_rgb2lab (float *img_src, const int width, const int height, const int ch, const int use_sse)
 
static void image_lab2rgb (float *img_src, const int width, const int height, const int ch, const int use_sse)
 
static void rt_process_stats (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const img_src, const int width, const int height, const int ch, float levels[3])
 
static void rt_adjust_levels (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *img_src, const int width, const int height, const int ch, const float levels[3])
 
static void rt_intersect_2_rois (dt_iop_roi_t *const roi_1, dt_iop_roi_t *const roi_2, const int dx, const int dy, const int padding, dt_iop_roi_t *roi_dest)
 
static void rt_copy_in_to_out (const float *const in, const struct dt_iop_roi_t *const roi_in, float *const out, const struct dt_iop_roi_t *const roi_out, const int ch, const int dx, const int dy)
 
static void rt_build_scaled_mask (float *const mask, dt_iop_roi_t *const roi_mask, float **mask_scaled, dt_iop_roi_t *roi_mask_scaled, dt_iop_roi_t *const roi_in, const int dx, const int dy, const int algo)
 
static void rt_copy_image_masked (float *const img_src, float *img_dest, dt_iop_roi_t *const roi_dest, float *const mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const float opacity)
 
static void rt_copy_mask_to_alpha (float *const img, dt_iop_roi_t *const roi_img, const int ch, float *const mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const float opacity)
 
static void _retouch_fill (float *const in, dt_iop_roi_t *const roi_in, float *const mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const float opacity, const float *const fill_color)
 
static void _retouch_clone (float *const in, dt_iop_roi_t *const roi_in, float *const mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const int dx, const int dy, const float opacity)
 
static void _retouch_blur (dt_iop_module_t *self, float *const in, dt_iop_roi_t *const roi_in, float *const mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const float opacity, const int blur_type, const float blur_radius, dt_dev_pixelpipe_iop_t *piece, const int use_sse)
 
static void _retouch_heal (float *const in, dt_iop_roi_t *const roi_in, float *const mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const int dx, const int dy, const float opacity, const int max_iter)
 
static void rt_process_forms (float *layer, dwt_params_t *const wt_p, const int scale1)
 
static void process_internal (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const int use_sse)
 
void process (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
void distort_mask (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, float *const out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 

Macro Definition Documentation

◆ lw

#define lw   DT_PIXEL_APPLY_DPI(1.0f)

◆ NEUTRAL_GRAY

#define NEUTRAL_GRAY   0.5

◆ RETOUCH_MAX_SCALES

#define RETOUCH_MAX_SCALES   15

◆ RETOUCH_NO_FORMS

#define RETOUCH_NO_FORMS   300

◆ RETOUCH_NO_SCALES

#define RETOUCH_NO_SCALES   (RETOUCH_MAX_SCALES + 2)

◆ RETOUCH_PREVIEW_LVL_MAX

#define RETOUCH_PREVIEW_LVL_MAX   3.0f

◆ RETOUCH_PREVIEW_LVL_MIN

#define RETOUCH_PREVIEW_LVL_MIN   -3.0f

◆ RT_WDBAR_INSET

#define RT_WDBAR_INSET   0.2f

Typedef Documentation

◆ dt_iop_retouch_algo_type_t

◆ dt_iop_retouch_blur_types_t

◆ dt_iop_retouch_data_t

◆ dt_iop_retouch_drag_types_t

◆ dt_iop_retouch_fill_modes_t

◆ dt_iop_retouch_form_data_t

◆ dt_iop_retouch_global_data_t

◆ dt_iop_retouch_gui_data_t

◆ dt_iop_retouch_params_t

◆ retouch_user_data_t

Enumeration Type Documentation

◆ dt_iop_retouch_algo_type_t

Enumerator
DT_IOP_RETOUCH_NONE 
DT_IOP_RETOUCH_CLONE 
DT_IOP_RETOUCH_HEAL 
DT_IOP_RETOUCH_BLUR 
DT_IOP_RETOUCH_FILL 

◆ dt_iop_retouch_blur_types_t

Enumerator
DT_IOP_RETOUCH_BLUR_GAUSSIAN 
DT_IOP_RETOUCH_BLUR_BILATERAL 

◆ dt_iop_retouch_drag_types_t

Enumerator
DT_IOP_RETOUCH_WDBAR_DRAG_TOP 
DT_IOP_RETOUCH_WDBAR_DRAG_BOTTOM 

◆ dt_iop_retouch_fill_modes_t

Enumerator
DT_IOP_RETOUCH_FILL_ERASE 
DT_IOP_RETOUCH_FILL_COLOR 

Function Documentation

◆ _retouch_blur()

◆ _retouch_clone()

static void _retouch_clone ( float *const  in,
dt_iop_roi_t *const  roi_in,
float *const  mask_scaled,
dt_iop_roi_t *const  roi_mask_scaled,
const int  dx,
const int  dy,
const float  opacity 
)
static

◆ _retouch_fill()

static void _retouch_fill ( float *const  in,
dt_iop_roi_t *const  roi_in,
float *const  mask_scaled,
dt_iop_roi_t *const  roi_mask_scaled,
const float  opacity,
const float *const  fill_color 
)
static

◆ _retouch_heal()

static void _retouch_heal ( float *const  in,
dt_iop_roi_t *const  roi_in,
float *const  mask_scaled,
dt_iop_roi_t *const  roi_mask_scaled,
const int  dx,
const int  dy,
const float  opacity,
const int  max_iter 
)
static

◆ aliases()

const char * aliases ( )

◆ change_image()

◆ cleanup_global()

◆ cleanup_pipe()

void cleanup_pipe ( struct dt_iop_module_t self,
dt_dev_pixelpipe_t pipe,
dt_dev_pixelpipe_iop_t piece 
)

◆ color_picker_apply()

◆ commit_params()

void commit_params ( struct dt_iop_module_t self,
dt_iop_params_t params,
dt_dev_pixelpipe_t pipe,
dt_dev_pixelpipe_iop_t piece 
)

commit is the synch point between core and gui, so it copies params to pipe data.

References dt_dev_pixelpipe_iop_t::data.

◆ default_colorspace()

int default_colorspace ( dt_iop_module_t self,
dt_dev_pixelpipe_t pipe,
dt_dev_pixelpipe_iop_t piece 
)

References IOP_CS_RGB.

◆ default_group()

int default_group ( )

References IOP_GROUP_REPAIR.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ distort_mask()

void distort_mask ( struct dt_iop_module_t self,
struct dt_dev_pixelpipe_iop_t piece,
const float *const  in,
float *const  out,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out 
)

References rt_copy_in_to_out().

◆ flags()

◆ gui_changed()

◆ gui_cleanup()

◆ gui_focus()

◆ gui_init()

void gui_init ( dt_iop_module_t self)

References _gradient_L, darktable_t::bauhaus, change_image(), darktable, dt_iop_module_t::default_params, dt_bauhaus_combobox_from_params(), dt_bauhaus_slider_from_params(), dt_bauhaus_slider_new_with_range(), dt_bauhaus_slider_set_digits(), dt_bauhaus_slider_set_format(), dt_bauhaus_widget_set_label(), dt_color_picker_new(), DT_COLOR_PICKER_POINT, DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_gui_add_class(), DT_GUI_MODULE, dt_iop_togglebutton_new(), DT_PIXEL_APPLY_DPI, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, dt_ui_label_new(), dt_ui_section_label_new(), dtgtk_cairo_paint_auto_levels(), dtgtk_cairo_paint_cut_forms(), dtgtk_cairo_paint_display_wavelet_scale(), dtgtk_cairo_paint_eye_toggle(), dtgtk_cairo_paint_masks_brush(), dtgtk_cairo_paint_masks_circle(), dtgtk_cairo_paint_masks_ellipse(), dtgtk_cairo_paint_masks_eye(), dtgtk_cairo_paint_masks_path(), dtgtk_cairo_paint_paste_forms(), dtgtk_cairo_paint_showmask(), dtgtk_cairo_paint_tool_blur(), dtgtk_cairo_paint_tool_clone(), dtgtk_cairo_paint_tool_fill(), dtgtk_cairo_paint_tool_heal(), DTGTK_GRADIENT_SLIDER_MULTIVALUE, dtgtk_gradient_slider_multivalue_new_with_color_and_name(), dtgtk_gradient_slider_multivalue_set_marker(), dtgtk_gradient_slider_multivalue_set_resetvalues(), dtgtk_gradient_slider_multivalue_set_values(), FALSE, GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG, darktable_t::gui, IOP_GUI_ALLOC, NEUTRAL_GRAY, PROPORTIONAL_MARKERS, RETOUCH_PREVIEW_LVL_MAX, RETOUCH_PREVIEW_LVL_MIN, rt_add_shape_callback(), rt_auto_levels_callback(), rt_colorpick_color_set_callback(), rt_copypaste_scale_callback(), rt_develop_ui_pipe_finished_callback(), rt_display_wavelet_scale_callback(), rt_edit_masks_callback(), rt_gslider_changed(), rt_gslider_scale_callback(), rt_mask_opacity_callback(), rt_select_algorithm_callback(), rt_showmask_callback(), rt_suppress_callback(), rt_wdbar_button_press(), rt_wdbar_button_release(), rt_wdbar_draw(), rt_wdbar_leave_notify(), rt_wdbar_motion_notify(), rt_wdbar_scrolled(), dt_gui_gtk_t::scroll_mask, darktable_t::signals, TRUE, and dt_iop_module_t::widget.

◆ gui_post_expose()

void gui_post_expose ( struct dt_iop_module_t self,
cairo_t *  cr,
int32_t  width,
int32_t  height,
int32_t  pointerx,
int32_t  pointery 
)

◆ gui_reset()

◆ gui_update()

◆ image_lab2rgb()

static void image_lab2rgb ( float *  img_src,
const int  width,
const int  height,
const int  ch,
const int  use_sse 
)
static

◆ image_rgb2lab()

static void image_rgb2lab ( float *  img_src,
const int  width,
const int  height,
const int  ch,
const int  use_sse 
)
static

◆ init()

◆ init_global()

◆ init_pipe()

◆ legacy_params()

◆ masks_selection_changed()

void masks_selection_changed ( struct dt_iop_module_t self,
const int  form_selected_id 
)

◆ modify_roi_in()

◆ modify_roi_out()

void modify_roi_out ( struct dt_iop_module_t self,
struct dt_dev_pixelpipe_iop_t piece,
dt_iop_roi_t roi_out,
const dt_iop_roi_t roi_in 
)

◆ name()

const char * name ( )

◆ post_history_commit()

◆ process()

void process ( struct dt_iop_module_t self,
dt_dev_pixelpipe_iop_t piece,
const void *const  ivoid,
void *const  ovoid,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out 
)

References process_internal().

◆ process_internal()

◆ reload_defaults()

void reload_defaults ( dt_iop_module_t self)

◆ rt_add_shape()

◆ rt_add_shape_callback()

static gboolean rt_add_shape_callback ( GtkWidget *  widget,
GdkEventButton *  e,
dt_iop_module_t self 
)
static

◆ rt_adjust_levels()

◆ rt_allow_create_form()

static int rt_allow_create_form ( dt_iop_module_t self)
static

References dt_iop_module_t::params, and RETOUCH_NO_FORMS.

Referenced by rt_add_shape().

◆ rt_auto_levels_callback()

static gboolean rt_auto_levels_callback ( GtkToggleButton *  togglebutton,
GdkEventButton *  event,
dt_iop_module_t self 
)
static

◆ rt_build_scaled_mask()

static void rt_build_scaled_mask ( float *const  mask,
dt_iop_roi_t *const  roi_mask,
float **  mask_scaled,
dt_iop_roi_t roi_mask_scaled,
dt_iop_roi_t *const  roi_in,
const int  dx,
const int  dy,
const int  algo 
)
static

◆ rt_clamp_minmax()

static void rt_clamp_minmax ( float  levels_old[3],
float  levels_new[3] 
)
static

◆ rt_colorpick_color_set_callback()

◆ rt_compute_roi_in()

◆ rt_copy_image_masked()

static void rt_copy_image_masked ( float *const  img_src,
float *  img_dest,
dt_iop_roi_t *const  roi_dest,
float *const  mask_scaled,
dt_iop_roi_t *const  roi_mask_scaled,
const float  opacity 
)
static

◆ rt_copy_in_to_out()

static void rt_copy_in_to_out ( const float *const  in,
const struct dt_iop_roi_t *const  roi_in,
float *const  out,
const struct dt_iop_roi_t *const  roi_out,
const int  ch,
const int  dx,
const int  dy 
)
static

◆ rt_copy_mask_to_alpha()

static void rt_copy_mask_to_alpha ( float *const  img,
dt_iop_roi_t *const  roi_img,
const int  ch,
float *const  mask_scaled,
dt_iop_roi_t *const  roi_mask_scaled,
const float  opacity 
)
static

◆ rt_copypaste_scale_callback()

static gboolean rt_copypaste_scale_callback ( GtkToggleButton *  togglebutton,
GdkEventButton *  event,
dt_iop_module_t self 
)
static

◆ rt_curr_scale_update()

◆ rt_develop_ui_pipe_finished_callback()

static void rt_develop_ui_pipe_finished_callback ( gpointer  instance,
gpointer  user_data 
)
static

◆ rt_display_selected_fill_color()

static void rt_display_selected_fill_color ( dt_iop_retouch_gui_data_t g,
dt_iop_retouch_params_t p 
)
static

◆ rt_display_selected_shapes_lbl()

◆ rt_display_wavelet_scale_callback()

◆ rt_edit_masks_callback()

◆ rt_extend_roi_in_for_clone()

◆ rt_extend_roi_in_from_source_clones()

static void rt_extend_roi_in_from_source_clones ( struct dt_iop_module_t self,
struct dt_dev_pixelpipe_iop_t piece,
dt_iop_roi_t roi_in,
const int  formid_src,
const int  fl_src,
const int  ft_src,
const int  fw_src,
const int  fh_src,
int *  _roir,
int *  _roib,
int *  _roix,
int *  _roiy 
)
static

◆ rt_get_index_from_formid()

◆ rt_get_mask_point_group()

◆ rt_get_selected_shape_id()

◆ rt_get_selected_shape_index()

◆ rt_get_shape_opacity()

static float rt_get_shape_opacity ( dt_iop_module_t self,
const int  formid 
)
static

◆ rt_gslider_changed()

◆ rt_gslider_scale_callback()

static float rt_gslider_scale_callback ( GtkWidget *  self,
float  inval,
int  dir 
)
static

◆ rt_intersect_2_rois()

static void rt_intersect_2_rois ( dt_iop_roi_t *const  roi_1,
dt_iop_roi_t *const  roi_2,
const int  dx,
const int  dy,
const int  padding,
dt_iop_roi_t roi_dest 
)
static

◆ rt_mask_opacity_callback()

◆ rt_masks_form_change_opacity()

static void rt_masks_form_change_opacity ( dt_iop_module_t self,
int  formid,
float  opacity 
)
static

◆ rt_masks_form_get_opacity()

static float rt_masks_form_get_opacity ( dt_iop_module_t self,
int  formid 
)
static

◆ rt_masks_form_is_in_roi()

static gboolean rt_masks_form_is_in_roi ( dt_iop_module_t self,
dt_dev_pixelpipe_iop_t piece,
dt_masks_form_t form,
const dt_iop_roi_t roi_in,
const dt_iop_roi_t roi_out 
)
static

◆ rt_masks_get_delta_to_destination()

◆ rt_masks_point_calc_delta()

static int rt_masks_point_calc_delta ( dt_iop_module_t self,
dt_dev_pixelpipe_iop_t piece,
const dt_iop_roi_t roi,
const float *  target,
const float *  source,
float *  dx,
float *  dy,
const int  distort_mode 
)
static

◆ rt_masks_point_denormalize()

static void rt_masks_point_denormalize ( dt_dev_pixelpipe_iop_t piece,
const dt_iop_roi_t roi,
const float *  points,
size_t  points_count,
float *  new 
)
static

◆ rt_merge_from_scale_update()

◆ rt_num_scales_update()

◆ rt_paste_forms_from_scale()

static void rt_paste_forms_from_scale ( dt_iop_retouch_params_t p,
const int  source_scale,
const int  dest_scale 
)
static

References RETOUCH_NO_FORMS.

Referenced by rt_copypaste_scale_callback().

◆ rt_process_forms()

◆ rt_process_stats()

◆ rt_reset_form_creation()

static void rt_reset_form_creation ( GtkWidget *  widget,
dt_iop_module_t self 
)
static

◆ rt_resynch_params()

◆ rt_scale_has_shapes()

static int rt_scale_has_shapes ( dt_iop_retouch_params_t p,
const int  scale 
)
static

References RETOUCH_NO_FORMS.

Referenced by rt_wdbar_draw().

◆ rt_select_algorithm_callback()

◆ rt_shape_is_being_added()

◆ rt_shape_selection_changed()

◆ rt_show_forms_for_current_scale()

◆ rt_show_hide_controls()

◆ rt_showmask_callback()

static gboolean rt_showmask_callback ( GtkToggleButton *  togglebutton,
GdkEventButton *  event,
dt_iop_module_t module 
)
static

◆ rt_suppress_callback()

static gboolean rt_suppress_callback ( GtkToggleButton *  togglebutton,
GdkEventButton *  event,
dt_iop_module_t module 
)
static

◆ rt_update_wd_bar_labels()

◆ rt_wdbar_button_press()

◆ rt_wdbar_button_release()

static gboolean rt_wdbar_button_release ( GtkWidget *  widget,
GdkEventButton *  event,
dt_iop_module_t self 
)
static

References dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ rt_wdbar_draw()

◆ rt_wdbar_leave_notify()

static gboolean rt_wdbar_leave_notify ( GtkWidget *  widget,
GdkEventCrossing *  event,
dt_iop_module_t self 
)
static

References FALSE, dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ rt_wdbar_motion_notify()

static gboolean rt_wdbar_motion_notify ( GtkWidget *  widget,
GdkEventMotion *  event,
dt_iop_module_t self 
)
static

◆ rt_wdbar_scrolled()

◆ tiling_callback()

void tiling_callback ( struct dt_iop_module_t self,
struct dt_dev_pixelpipe_iop_t piece,
const dt_iop_roi_t roi_in,
const dt_iop_roi_t roi_out,
struct dt_develop_tiling_t tiling 
)
Todo:
the above are worst case values, we might iterate through the dt_iop_retouch_form_data_t to get

References dt_iop_module_t::params.