Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
masks.h File Reference
#include "common/darktable.h"
#include "common/opencl.h"
#include "develop/pixelpipe.h"
#include "dtgtk/button.h"
#include "dtgtk/gradientslider.h"
#include "gui/draw.h"
#include "control/control.h"
#include <assert.h>
+ Include dependency graph for masks.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_masks_point_circle_t
 
struct  dt_masks_point_ellipse_t
 
struct  dt_masks_point_path_t
 
struct  dt_masks_point_brush_t
 
struct  dt_masks_point_gradient_t
 
struct  dt_masks_point_group_t
 
struct  dt_masks_functions_t
 
struct  dt_masks_form_t
 
struct  dt_masks_form_gui_points_t
 
struct  dt_masks_dynbuf_t
 
struct  dt_masks_form_gui_t
 

Macros

#define DEVELOP_MASKS_VERSION   (6)
 

Typedefs

typedef enum dt_masks_type_t dt_masks_type_t
 
typedef enum dt_masks_state_t dt_masks_state_t
 
typedef enum dt_masks_points_states_t dt_masks_points_states_t
 
typedef enum dt_masks_gradient_states_t dt_masks_gradient_states_t
 
typedef enum dt_masks_increment_t dt_masks_increment_t
 
typedef enum dt_masks_edit_mode_t dt_masks_edit_mode_t
 
typedef enum dt_masks_pressure_sensitivity_t dt_masks_pressure_sensitivity_t
 
typedef enum dt_masks_ellipse_flags_t dt_masks_ellipse_flags_t
 
typedef enum dt_masks_source_pos_type_t dt_masks_source_pos_type_t
 
typedef struct dt_masks_point_circle_t dt_masks_point_circle_t
 
typedef struct dt_masks_point_ellipse_t dt_masks_point_ellipse_t
 
typedef struct dt_masks_point_path_t dt_masks_point_path_t
 
typedef struct dt_masks_point_brush_t dt_masks_point_brush_t
 
typedef struct dt_masks_point_gradient_t dt_masks_point_gradient_t
 
typedef struct dt_masks_point_group_t dt_masks_point_group_t
 
typedef enum dt_masks_interaction_t dt_masks_interaction_t
 
typedef struct dt_masks_functions_t dt_masks_functions_t
 
typedef struct dt_masks_form_t dt_masks_form_t
 
typedef struct dt_masks_form_gui_points_t dt_masks_form_gui_points_t
 
typedef struct dt_masks_dynbuf_t dt_masks_dynbuf_t
 
typedef struct dt_masks_form_gui_t dt_masks_form_gui_t
 

Enumerations

enum  dt_masks_type_t {
  DT_MASKS_NONE = 0 ,
  DT_MASKS_CIRCLE = 1 << 0 ,
  DT_MASKS_PATH = 1 << 1 ,
  DT_MASKS_GROUP = 1 << 2 ,
  DT_MASKS_CLONE = 1 << 3 ,
  DT_MASKS_GRADIENT = 1 << 4 ,
  DT_MASKS_ELLIPSE = 1 << 5 ,
  DT_MASKS_BRUSH = 1 << 6 ,
  DT_MASKS_NON_CLONE = 1 << 7
}
 
enum  dt_masks_state_t {
  DT_MASKS_STATE_NONE = 0 ,
  DT_MASKS_STATE_USE = 1 << 0 ,
  DT_MASKS_STATE_SHOW = 1 << 1 ,
  DT_MASKS_STATE_INVERSE = 1 << 2 ,
  DT_MASKS_STATE_UNION = 1 << 3 ,
  DT_MASKS_STATE_INTERSECTION = 1 << 4 ,
  DT_MASKS_STATE_DIFFERENCE = 1 << 5 ,
  DT_MASKS_STATE_EXCLUSION = 1 << 6
}
 
enum  dt_masks_points_states_t {
  DT_MASKS_POINT_STATE_NORMAL = 1 ,
  DT_MASKS_POINT_STATE_USER = 2
}
 
enum  dt_masks_gradient_states_t {
  DT_MASKS_GRADIENT_STATE_LINEAR = 1 ,
  DT_MASKS_GRADIENT_STATE_SIGMOIDAL = 2
}
 
enum  dt_masks_increment_t {
  DT_MASKS_INCREMENT_ABSOLUTE = 0 ,
  DT_MASKS_INCREMENT_SCALE = 1 ,
  DT_MASKS_INCREMENT_OFFSET = 2
}
 
enum  dt_masks_edit_mode_t {
  DT_MASKS_EDIT_OFF = 0 ,
  DT_MASKS_EDIT_FULL = 1 ,
  DT_MASKS_EDIT_RESTRICTED = 2
}
 
enum  dt_masks_pressure_sensitivity_t {
  DT_MASKS_PRESSURE_OFF = 0 ,
  DT_MASKS_PRESSURE_HARDNESS_REL = 1 ,
  DT_MASKS_PRESSURE_HARDNESS_ABS = 2 ,
  DT_MASKS_PRESSURE_OPACITY_REL = 3 ,
  DT_MASKS_PRESSURE_OPACITY_ABS = 4 ,
  DT_MASKS_PRESSURE_BRUSHSIZE_REL = 5
}
 
enum  dt_masks_ellipse_flags_t {
  DT_MASKS_ELLIPSE_EQUIDISTANT = 0 ,
  DT_MASKS_ELLIPSE_PROPORTIONAL = 1
}
 
enum  dt_masks_source_pos_type_t {
  DT_MASKS_SOURCE_POS_RELATIVE = 0 ,
  DT_MASKS_SOURCE_POS_RELATIVE_TEMP = 1 ,
  DT_MASKS_SOURCE_POS_ABSOLUTE = 2
}
 
enum  dt_masks_interaction_t {
  DT_MASKS_INTERACTION_UNDEF = 0 ,
  DT_MASKS_INTERACTION_SIZE = 1 ,
  DT_MASKS_INTERACTION_HARDNESS = 2 ,
  DT_MASKS_INTERACTION_OPACITY = 3 ,
  DT_MASKS_INTERACTION_LAST
}
 

Functions

void dt_masks_init_form_gui (dt_masks_form_gui_t *gui)
 
int dt_masks_get_points_border (dt_develop_t *dev, dt_masks_form_t *form, float **points, int *points_count, float **border, int *border_count, int source, dt_iop_module_t *module)
 
int dt_masks_get_area (dt_iop_module_t *module, dt_dev_pixelpipe_iop_t *piece, dt_masks_form_t *form, int *width, int *height, int *posx, int *posy)
 
int dt_masks_get_source_area (dt_iop_module_t *module, dt_dev_pixelpipe_iop_t *piece, dt_masks_form_t *form, int *width, int *height, int *posx, int *posy)
 
static int dt_masks_get_mask (const dt_iop_module_t *const module, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, float **buffer, int *width, int *height, int *posx, int *posy)
 
static int dt_masks_get_mask_roi (const dt_iop_module_t *const module, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, const dt_iop_roi_t *roi, float *buffer)
 
int dt_masks_group_render_roi (dt_iop_module_t *module, dt_dev_pixelpipe_iop_t *piece, dt_masks_form_t *form, const dt_iop_roi_t *roi, float *buffer)
 
int dt_masks_version (void)
 
void dt_masks_append_form (dt_develop_t *dev, dt_masks_form_t *form)
 
void dt_masks_remove_form (dt_develop_t *dev, dt_masks_form_t *form)
 
int dt_masks_legacy_params (dt_develop_t *dev, void *params, const int old_version, const int new_version)
 
dt_masks_form_tdt_masks_create (dt_masks_type_t type)
 
dt_masks_form_tdt_masks_create_ext (dt_masks_type_t type)
 
void dt_masks_replace_current_forms (dt_develop_t *dev, GList *forms)
 
dt_masks_form_tdt_masks_get_from_id_ext (GList *forms, int id)
 
dt_masks_form_tdt_masks_get_from_id (dt_develop_t *dev, int id)
 
void dt_masks_read_masks_history (dt_develop_t *dev, const int32_t imgid)
 
void dt_masks_write_masks_history_item (const int32_t imgid, const int num, dt_masks_form_t *form)
 
void dt_masks_free_form (dt_masks_form_t *form)
 
void dt_masks_cleanup_unused (dt_develop_t *dev)
 
void dt_masks_change_form_gui (dt_masks_form_t *newform)
 
void dt_masks_clear_form_gui (dt_develop_t *dev)
 
void dt_masks_reset_form_gui (void)
 
void dt_masks_soft_reset_form_gui (dt_masks_form_gui_t *gui)
 
void dt_masks_reset_show_masks_icons (void)
 
int dt_masks_events_mouse_moved (struct dt_iop_module_t *module, double x, double y, double pressure, int which)
 
int dt_masks_events_button_released (struct dt_iop_module_t *module, double x, double y, int which, uint32_t state)
 
int dt_masks_events_button_pressed (struct dt_iop_module_t *module, double x, double y, double pressure, int which, int type, uint32_t state)
 
int dt_masks_events_mouse_scrolled (struct dt_iop_module_t *module, double x, double y, int up, uint32_t state)
 
void dt_masks_events_post_expose (struct dt_iop_module_t *module, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
 
int dt_masks_events_mouse_leave (struct dt_iop_module_t *module)
 
int dt_masks_events_mouse_enter (struct dt_iop_module_t *module)
 
void dt_masks_gui_form_create (dt_masks_form_t *form, dt_masks_form_gui_t *gui, int index, struct dt_iop_module_t *module)
 
void dt_masks_gui_form_remove (dt_masks_form_t *form, dt_masks_form_gui_t *gui, int index)
 
void dt_masks_gui_form_test_create (dt_masks_form_t *form, dt_masks_form_gui_t *gui, struct dt_iop_module_t *module)
 
void dt_masks_gui_form_save_creation (dt_develop_t *dev, struct dt_iop_module_t *module, dt_masks_form_t *form, dt_masks_form_gui_t *gui)
 
void dt_masks_group_ungroup (dt_masks_form_t *dest_grp, dt_masks_form_t *grp)
 
void dt_masks_group_update_name (dt_iop_module_t *module)
 
dt_masks_point_group_tdt_masks_group_add_form (dt_masks_form_t *grp, dt_masks_form_t *form)
 
void dt_masks_iop_value_changed_callback (GtkWidget *widget, struct dt_iop_module_t *module)
 
dt_masks_edit_mode_t dt_masks_get_edit_mode (struct dt_iop_module_t *module)
 
void dt_masks_set_edit_mode (struct dt_iop_module_t *module, dt_masks_edit_mode_t value)
 
void dt_masks_iop_update (struct dt_iop_module_t *module)
 
void dt_masks_iop_combo_populate (GtkWidget *w, void *module)
 
void dt_masks_iop_use_same_as (struct dt_iop_module_t *module, struct dt_iop_module_t *src)
 
uint64_t dt_masks_group_get_hash (uint64_t hash, dt_masks_form_t *form)
 
void dt_masks_form_remove (struct dt_iop_module_t *module, dt_masks_form_t *grp, dt_masks_form_t *form)
 
int dt_masks_form_change_opacity (dt_masks_form_t *form, int parentid, int up)
 
void dt_masks_form_move (dt_masks_form_t *grp, int formid, int up)
 
int dt_masks_form_duplicate (dt_develop_t *dev, int formid)
 
dt_masks_form_tdt_masks_dup_masks_form (const dt_masks_form_t *form)
 
GList * dt_masks_dup_forms_deep (GList *forms, dt_masks_form_t *form)
 
int dt_masks_point_in_form_exact (float x, float y, float *points, int points_start, int points_count)
 
int dt_masks_point_in_form_near (float x, float y, float *points, int points_start, int points_count, float distance, int *near)
 
void dt_masks_select_form (struct dt_iop_module_t *module, dt_masks_form_t *sel)
 
void dt_masks_draw_clone_source_pos (cairo_t *cr, const float zoom_scale, const float x, const float y)
 
void dt_masks_set_source_pos_initial_state (dt_masks_form_gui_t *gui, const uint32_t state, const float pzx, const float pzy)
 
void dt_masks_set_source_pos_initial_value (dt_masks_form_gui_t *gui, const int mask_type, dt_masks_form_t *form, const float pzx, const float pzy)
 
void dt_masks_calculate_source_pos_value (dt_masks_form_gui_t *gui, const int mask_type, const float initial_xpos, const float initial_ypos, const float xpos, const float ypos, float *px, float *py, const int adding)
 
float dt_masks_form_get_opacity (dt_masks_form_t *form, int parentid)
 
int dt_masks_form_set_opacity (dt_masks_form_t *form, int parentid, float opacity, dt_masks_increment_t offset)
 
float dt_masks_get_set_conf_value (dt_masks_form_t *form, char *feature, float new_value, float v_min, float v_max, dt_masks_increment_t increment)
 Change a numerical property of a mask shape, either by in/de-crementing the current value or setting it in an absolute fashion, then save it to configuration.
 
void dt_masks_extend_border (float *const mask, const int width, const int height, const int border)
 
void dt_masks_blur_9x9_coeff (float *coeffs, const float sigma)
 
void dt_masks_blur_9x9 (float *const src, float *const out, const int width, const int height, const float sigma)
 
void dt_masks_calc_rawdetail_mask (float *const src, float *const out, float *const tmp, const int width, const int height, const dt_aligned_pixel_t wb)
 
void dt_masks_calc_detail_mask (float *const src, float *const out, float *const tmp, const int width, const int height, const float threshold, const gboolean detail)
 
void dt_group_events_post_expose (cairo_t *cr, float zoom_scale, dt_masks_form_t *form, dt_masks_form_gui_t *gui)
 
static gboolean _dt_masks_dynbuf_growto (dt_masks_dynbuf_t *a, size_t size)
 
static dt_masks_dynbuf_tdt_masks_dynbuf_init (size_t size, const char *tag)
 
static void dt_masks_dynbuf_add_2 (dt_masks_dynbuf_t *a, float value1, float value2)
 
static float * dt_masks_dynbuf_reserve_n (dt_masks_dynbuf_t *a, const int n)
 
static void dt_masks_dynbuf_add_zeros (dt_masks_dynbuf_t *a, const int n)
 
static float dt_masks_dynbuf_get (dt_masks_dynbuf_t *a, int offset)
 
static void dt_masks_dynbuf_set (dt_masks_dynbuf_t *a, int offset, float value)
 
static float * dt_masks_dynbuf_buffer (dt_masks_dynbuf_t *a)
 
static size_t dt_masks_dynbuf_position (dt_masks_dynbuf_t *a)
 
static void dt_masks_dynbuf_reset (dt_masks_dynbuf_t *a)
 
static float * dt_masks_dynbuf_harvest (dt_masks_dynbuf_t *a)
 
static void dt_masks_dynbuf_free (dt_masks_dynbuf_t *a)
 
static int dt_masks_roundup (int num, int mult)
 

Variables

const dt_masks_functions_t dt_masks_functions_circle
 
const dt_masks_functions_t dt_masks_functions_ellipse
 
const dt_masks_functions_t dt_masks_functions_brush
 
const dt_masks_functions_t dt_masks_functions_path
 
const dt_masks_functions_t dt_masks_functions_gradient
 
const dt_masks_functions_t dt_masks_functions_group
 

Macro Definition Documentation

◆ DEVELOP_MASKS_VERSION

#define DEVELOP_MASKS_VERSION   (6)

Typedef Documentation

◆ dt_masks_dynbuf_t

structure for dynamic buffers

◆ dt_masks_edit_mode_t

◆ dt_masks_ellipse_flags_t

◆ dt_masks_form_gui_points_t

◆ dt_masks_form_gui_t

structure used to display a form

◆ dt_masks_form_t

structure used to define a form

◆ dt_masks_functions_t

structure used to store pointers to the functions implementing operations on a mask shape plus a few per-class descriptive data items

◆ dt_masks_gradient_states_t

◆ dt_masks_increment_t

◆ dt_masks_interaction_t

◆ dt_masks_point_brush_t

structure used to store 1 point for a brush form

◆ dt_masks_point_circle_t

structure used to store 1 point for a circle

◆ dt_masks_point_ellipse_t

structure used to store 1 point for an ellipse

◆ dt_masks_point_gradient_t

structure used to store anchor for a gradient

◆ dt_masks_point_group_t

structure used to store all forms's id for a group

◆ dt_masks_point_path_t

structure used to store 1 point for a path form

◆ dt_masks_points_states_t

◆ dt_masks_pressure_sensitivity_t

◆ dt_masks_source_pos_type_t

◆ dt_masks_state_t

masts states

◆ dt_masks_type_t

forms types

Enumeration Type Documentation

◆ dt_masks_edit_mode_t

Enumerator
DT_MASKS_EDIT_OFF 
DT_MASKS_EDIT_FULL 
DT_MASKS_EDIT_RESTRICTED 

◆ dt_masks_ellipse_flags_t

Enumerator
DT_MASKS_ELLIPSE_EQUIDISTANT 
DT_MASKS_ELLIPSE_PROPORTIONAL 

◆ dt_masks_gradient_states_t

Enumerator
DT_MASKS_GRADIENT_STATE_LINEAR 
DT_MASKS_GRADIENT_STATE_SIGMOIDAL 

◆ dt_masks_increment_t

Enumerator
DT_MASKS_INCREMENT_ABSOLUTE 
DT_MASKS_INCREMENT_SCALE 
DT_MASKS_INCREMENT_OFFSET 

◆ dt_masks_interaction_t

Enumerator
DT_MASKS_INTERACTION_UNDEF 
DT_MASKS_INTERACTION_SIZE 
DT_MASKS_INTERACTION_HARDNESS 
DT_MASKS_INTERACTION_OPACITY 
DT_MASKS_INTERACTION_LAST 

◆ dt_masks_points_states_t

Enumerator
DT_MASKS_POINT_STATE_NORMAL 
DT_MASKS_POINT_STATE_USER 

◆ dt_masks_pressure_sensitivity_t

Enumerator
DT_MASKS_PRESSURE_OFF 
DT_MASKS_PRESSURE_HARDNESS_REL 
DT_MASKS_PRESSURE_HARDNESS_ABS 
DT_MASKS_PRESSURE_OPACITY_REL 
DT_MASKS_PRESSURE_OPACITY_ABS 
DT_MASKS_PRESSURE_BRUSHSIZE_REL 

◆ dt_masks_source_pos_type_t

Enumerator
DT_MASKS_SOURCE_POS_RELATIVE 
DT_MASKS_SOURCE_POS_RELATIVE_TEMP 
DT_MASKS_SOURCE_POS_ABSOLUTE 

◆ dt_masks_state_t

masts states

Enumerator
DT_MASKS_STATE_NONE 
DT_MASKS_STATE_USE 
DT_MASKS_STATE_SHOW 
DT_MASKS_STATE_INVERSE 
DT_MASKS_STATE_UNION 
DT_MASKS_STATE_INTERSECTION 
DT_MASKS_STATE_DIFFERENCE 
DT_MASKS_STATE_EXCLUSION 

◆ dt_masks_type_t

forms types

Enumerator
DT_MASKS_NONE 
DT_MASKS_CIRCLE 
DT_MASKS_PATH 
DT_MASKS_GROUP 
DT_MASKS_CLONE 
DT_MASKS_GRADIENT 
DT_MASKS_ELLIPSE 
DT_MASKS_BRUSH 
DT_MASKS_NON_CLONE 

Function Documentation

◆ _dt_masks_dynbuf_growto()

static gboolean _dt_masks_dynbuf_growto ( dt_masks_dynbuf_t a,
size_t  size 
)
inlinestatic

◆ dt_group_events_post_expose()

◆ dt_masks_append_form()

void dt_masks_append_form ( dt_develop_t dev,
dt_masks_form_t form 
)

◆ dt_masks_blur_9x9()

void dt_masks_blur_9x9 ( float *const  src,
float *const  out,
const int  width,
const int  height,
const float  sigma 
)

◆ dt_masks_blur_9x9_coeff()

void dt_masks_blur_9x9_coeff ( float *  coeffs,
const float  sigma 
)

References kernel(), and sqf().

Referenced by dt_masks_blur_9x9().

◆ dt_masks_calc_detail_mask()

void dt_masks_calc_detail_mask ( float *const  src,
float *const  out,
float *const  tmp,
const int  width,
const int  height,
const float  threshold,
const gboolean  detail 
)

◆ dt_masks_calc_rawdetail_mask()

void dt_masks_calc_rawdetail_mask ( float *const  src,
float *const  out,
float *const  tmp,
const int  width,
const int  height,
const dt_aligned_pixel_t  wb 
)

◆ dt_masks_calculate_source_pos_value()

◆ dt_masks_change_form_gui()

◆ dt_masks_cleanup_unused()

◆ dt_masks_clear_form_gui()

void dt_masks_clear_form_gui ( dt_develop_t dev)

References dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::border_toggling, dt_masks_form_gui_t::creation, dt_masks_form_gui_t::creation_closing_form, dt_masks_form_gui_t::creation_module, dt_masks_dynbuf_free(), DT_MASKS_EDIT_OFF, dt_masks_form_gui_points_free(), DT_MASKS_PRESSURE_OFF, dt_masks_select_form(), dt_masks_form_gui_t::dx, dt_masks_form_gui_t::dy, dt_masks_form_gui_t::edit_mode, FALSE, dt_masks_form_gui_t::feather_dragging, dt_masks_form_gui_t::feather_selected, dt_masks_form_gui_t::form_dragging, dt_develop_t::form_gui, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::formid, dt_masks_form_gui_t::gradient_toggling, dt_masks_form_gui_t::group_selected, dt_masks_form_gui_t::guipoints, dt_masks_form_gui_t::guipoints_count, dt_masks_form_gui_t::guipoints_payload, dt_masks_form_gui_t::pipe_hash, dt_masks_form_gui_t::pivot_selected, dt_masks_form_gui_t::point_border_dragging, dt_masks_form_gui_t::point_border_selected, dt_masks_form_gui_t::point_dragging, dt_masks_form_gui_t::point_edited, dt_masks_form_gui_t::point_selected, dt_masks_form_gui_t::points, dt_masks_form_gui_t::pressure_sensitivity, dt_masks_form_gui_t::scrollx, dt_masks_form_gui_t::scrolly, dt_masks_form_gui_t::seg_dragging, dt_masks_form_gui_t::seg_selected, dt_masks_form_gui_t::source_dragging, and dt_masks_form_gui_t::source_selected.

Referenced by _circle_events_button_released(), _ellipse_events_button_released(), _gradient_events_button_released(), _path_events_button_pressed(), _remove_shape(), dt_masks_change_form_gui(), and leave().

◆ dt_masks_create()

◆ dt_masks_create_ext()

dt_masks_form_t * dt_masks_create_ext ( dt_masks_type_t  type)

we create a completely new form and add it to darktable.develop->allforms.

References dt_develop_t::allforms, darktable, darktable_t::develop, dt_masks_create(), and type.

Referenced by dt_masks_set_edit_mode(), and rt_show_forms_for_current_scale().

◆ dt_masks_draw_clone_source_pos()

void dt_masks_draw_clone_source_pos ( cairo_t *  cr,
const float  zoom_scale,
const float  x,
const float  y 
)

utils for selecting the source of a clone mask while creating it

Referenced by _brush_events_post_expose(), _circle_events_post_expose(), _ellipse_events_post_expose(), and _path_events_post_expose().

◆ dt_masks_dup_forms_deep()

GList * dt_masks_dup_forms_deep ( GList *  forms,
dt_masks_form_t form 
)

◆ dt_masks_dup_masks_form()

◆ dt_masks_dynbuf_add_2()

◆ dt_masks_dynbuf_add_zeros()

static void dt_masks_dynbuf_add_zeros ( dt_masks_dynbuf_t a,
const int  n 
)
inlinestatic

◆ dt_masks_dynbuf_buffer()

◆ dt_masks_dynbuf_free()

◆ dt_masks_dynbuf_get()

◆ dt_masks_dynbuf_harvest()

static float * dt_masks_dynbuf_harvest ( dt_masks_dynbuf_t a)
inlinestatic

◆ dt_masks_dynbuf_init()

◆ dt_masks_dynbuf_position()

static size_t dt_masks_dynbuf_position ( dt_masks_dynbuf_t a)
inlinestatic

◆ dt_masks_dynbuf_reserve_n()

◆ dt_masks_dynbuf_reset()

static void dt_masks_dynbuf_reset ( dt_masks_dynbuf_t a)
inlinestatic

References dt_masks_dynbuf_t::pos.

Referenced by _path_fill_gaps().

◆ dt_masks_dynbuf_set()

static void dt_masks_dynbuf_set ( dt_masks_dynbuf_t a,
int  offset,
float  value 
)
inlinestatic

◆ dt_masks_events_button_pressed()

◆ dt_masks_events_button_released()

◆ dt_masks_events_mouse_enter()

int dt_masks_events_mouse_enter ( struct dt_iop_module_t module)

◆ dt_masks_events_mouse_leave()

int dt_masks_events_mouse_leave ( struct dt_iop_module_t module)

◆ dt_masks_events_mouse_moved()

◆ dt_masks_events_mouse_scrolled()

◆ dt_masks_events_post_expose()

◆ dt_masks_extend_border()

void dt_masks_extend_border ( float *const  mask,
const int  width,
const int  height,
const int  border 
)

detail mask support

◆ dt_masks_form_change_opacity()

◆ dt_masks_form_duplicate()

◆ dt_masks_form_get_opacity()

float dt_masks_form_get_opacity ( dt_masks_form_t form,
int  parentid 
)

◆ dt_masks_form_move()

void dt_masks_form_move ( dt_masks_form_t grp,
int  formid,
int  up 
)

◆ dt_masks_form_remove()

◆ dt_masks_form_set_opacity()

◆ dt_masks_free_form()

◆ dt_masks_get_area()

int dt_masks_get_area ( dt_iop_module_t module,
dt_dev_pixelpipe_iop_t piece,
dt_masks_form_t form,
int *  width,
int *  height,
int *  posx,
int *  posy 
)

get the rectangle which include the form and his border

References dt_masks_form_t::functions, dt_masks_functions_t::get_area, height, and width.

Referenced by masks_form_is_in_roi(), rt_compute_roi_in(), and rt_masks_form_is_in_roi().

◆ dt_masks_get_edit_mode()

◆ dt_masks_get_from_id()

dt_masks_form_t * dt_masks_get_from_id ( dt_develop_t dev,
int  id 
)

returns a form with formid == id from dev->forms

References dt_masks_get_from_id_ext(), and dt_develop_t::forms.

Referenced by _blendop_masks_show_and_edit(), _brush_events_button_released(), _circle_events_button_pressed(), _circle_events_button_released(), _edit_masks(), _ellipse_events_button_pressed(), _ellipse_events_button_released(), _find_in_group(), _get_opacity(), _gradient_events_button_released(), _group_events_button_pressed(), _group_events_button_released(), _group_events_mouse_moved(), _group_events_mouse_scrolled(), _group_from_module(), _group_get_mask(), _group_get_mask_roi(), _gui_reset_callback(), _is_form_used(), _lib_masks_list_recurs(), _menu_add_exist(), _path_events_button_pressed(), _remove_shape(), _reset_form_creation(), _resynch_params(), _set_hinter_message(), _shape_is_being_added(), _tree_add_exist(), _tree_button_pressed(), _tree_cell_edited(), _tree_delete_shape(), _tree_difference(), _tree_exclusion(), _tree_intersection(), _tree_inverse(), _tree_movedown(), _tree_moveup(), _tree_selection_change(), _tree_union(), _update_foreach(), dt_group_events_post_expose(), dt_masks_form_duplicate(), dt_masks_form_get_opacity(), dt_masks_form_remove(), dt_masks_form_set_opacity(), dt_masks_group_get_hash(), dt_masks_group_ungroup(), dt_masks_gui_form_test_create(), dt_masks_iop_update(), dt_masks_iop_use_same_as(), dt_masks_set_edit_mode(), give_control_to_form(), gui_focus(), gui_update(), post_history_commit(), rt_display_selected_shapes_lbl(), rt_edit_masks_callback(), rt_get_mask_point_group(), rt_resynch_params(), rt_shape_is_being_added(), rt_show_forms_for_current_scale(), and rt_show_hide_controls().

◆ dt_masks_get_from_id_ext()

◆ dt_masks_get_mask()

static int dt_masks_get_mask ( const dt_iop_module_t *const  module,
const dt_dev_pixelpipe_iop_t *const  piece,
dt_masks_form_t *const  form,
float **  buffer,
int *  width,
int *  height,
int *  posx,
int *  posy 
)
inlinestatic

get the transparency mask of the form and his border

References dt_masks_form_t::functions, dt_masks_functions_t::get_mask, height, and width.

Referenced by _group_get_mask(), _process(), and rt_process_forms().

◆ dt_masks_get_mask_roi()

static int dt_masks_get_mask_roi ( const dt_iop_module_t *const  module,
const dt_dev_pixelpipe_iop_t *const  piece,
dt_masks_form_t *const  form,
const dt_iop_roi_t roi,
float *  buffer 
)
inlinestatic

◆ dt_masks_get_points_border()

int dt_masks_get_points_border ( dt_develop_t dev,
dt_masks_form_t form,
float **  points,
int *  points_count,
float **  border,
int *  border_count,
int  source,
dt_iop_module_t module 
)

get points in real space with respect of distortion dx and dy are used to eventually move the center of the circle

References dt_masks_form_t::functions, and dt_masks_functions_t::get_points_border.

Referenced by dt_masks_gui_form_create().

◆ dt_masks_get_set_conf_value()

float dt_masks_get_set_conf_value ( dt_masks_form_t form,
char *  feature,
float  new_value,
float  v_min,
float  v_max,
dt_masks_increment_t  increment 
)

Change a numerical property of a mask shape, either by in/de-crementing the current value or setting it in an absolute fashion, then save it to configuration.

Parameters
formthe shape to change. We will read its type internally
featurethe propertie to change: hardness, size, curvature (for gradients)
new_valueif increment is set to absolute, this is directly the updated value. if increment is offset, the updated value is old_value + new_value. if increment is scale, the updated value is old value * new_value.
v_minminimum acceptable value of the property for sanitization
v_maxmaximum acceptable value of the property for sanitization
increment

References _get_mask_plugin(), _get_mask_type(), dt_conf_get_float(), dt_conf_set_float(), DT_MASKS_INCREMENT_OFFSET, DT_MASKS_INCREMENT_SCALE, key, MAX, and MIN.

Referenced by _brush_events_button_pressed(), _brush_events_button_released(), _brush_events_post_expose(), _change_hardness(), _change_size(), _init_hardness(), _init_opacity(), and _init_size().

◆ dt_masks_get_source_area()

int dt_masks_get_source_area ( dt_iop_module_t module,
dt_dev_pixelpipe_iop_t piece,
dt_masks_form_t form,
int *  width,
int *  height,
int *  posx,
int *  posy 
)

◆ dt_masks_group_add_form()

◆ dt_masks_group_get_hash()

◆ dt_masks_group_render_roi()

int dt_masks_group_render_roi ( dt_iop_module_t module,
dt_dev_pixelpipe_iop_t piece,
dt_masks_form_t form,
const dt_iop_roi_t roi,
float *  buffer 
)

◆ dt_masks_group_ungroup()

◆ dt_masks_group_update_name()

◆ dt_masks_gui_form_create()

◆ dt_masks_gui_form_remove()

◆ dt_masks_gui_form_save_creation()

◆ dt_masks_gui_form_test_create()

◆ dt_masks_init_form_gui()

◆ dt_masks_iop_combo_populate()

◆ dt_masks_iop_update()

void dt_masks_iop_update ( struct dt_iop_module_t module)

◆ dt_masks_iop_use_same_as()

◆ dt_masks_iop_value_changed_callback()

◆ dt_masks_legacy_params()

int dt_masks_legacy_params ( dt_develop_t dev,
void params,
const int  old_version,
const int  new_version 
)

◆ dt_masks_point_in_form_exact()

int dt_masks_point_in_form_exact ( float  x,
float  y,
float *  points,
int  points_start,
int  points_count 
)

utils functions

Referenced by _circle_get_distance(), and _path_get_distance().

◆ dt_masks_point_in_form_near()

int dt_masks_point_in_form_near ( float  x,
float  y,
float *  points,
int  points_start,
int  points_count,
float  distance,
int *  near 
)
Todo:
: distance is only evaluated in x, not y...

Referenced by _circle_get_distance().

◆ dt_masks_read_masks_history()

◆ dt_masks_remove_form()

void dt_masks_remove_form ( dt_develop_t dev,
dt_masks_form_t form 
)

References dt_develop_t::forms.

Referenced by dt_masks_form_remove().

◆ dt_masks_replace_current_forms()

void dt_masks_replace_current_forms ( dt_develop_t dev,
GList *  forms 
)

◆ dt_masks_reset_form_gui()

◆ dt_masks_reset_show_masks_icons()

void dt_masks_reset_show_masks_icons ( void  )

◆ dt_masks_roundup()

static int dt_masks_roundup ( int  num,
int  mult 
)
inlinestatic

Referenced by _circle_get_mask_roi().

◆ dt_masks_select_form()

◆ dt_masks_set_edit_mode()

◆ dt_masks_set_source_pos_initial_state()

◆ dt_masks_set_source_pos_initial_value()

◆ dt_masks_soft_reset_form_gui()

◆ dt_masks_version()

int dt_masks_version ( void  )

◆ dt_masks_write_masks_history_item()

Variable Documentation

◆ dt_masks_functions_brush

const dt_masks_functions_t dt_masks_functions_brush
extern

◆ dt_masks_functions_circle

const dt_masks_functions_t dt_masks_functions_circle
extern

the shape-specific function tables

Referenced by dt_masks_calculate_source_pos_value(), and dt_masks_create().

◆ dt_masks_functions_ellipse

const dt_masks_functions_t dt_masks_functions_ellipse
extern

◆ dt_masks_functions_gradient

const dt_masks_functions_t dt_masks_functions_gradient
extern

Referenced by dt_masks_create().

◆ dt_masks_functions_group

const dt_masks_functions_t dt_masks_functions_group
extern

Referenced by dt_masks_create().

◆ dt_masks_functions_path

const dt_masks_functions_t dt_masks_functions_path
extern