![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#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_node_circle_t |
| struct | dt_masks_node_ellipse_t |
| struct | dt_masks_node_polygon_t |
| struct | dt_masks_node_brush_t |
| struct | dt_masks_anchor_gradient_t |
| struct | dt_masks_form_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 |
| struct | dt_masks_preview_buffers_t |
| struct | dt_masks_gui_center_point_t |
| struct | dt_masks_shape_buttons_config_t |
Macros | |
| #define | DEVELOP_MASKS_VERSION (6) |
| #define | DEVELOP_MASKS_NB_SHAPES 5 |
| #define | menu_item_set_fake_accel(menu_item, keyval, mods) |
Functions | |
| dt_masks_form_t * | dt_masks_get_visible_form (const struct dt_develop_t *dev) |
| void | dt_masks_set_visible_form (struct dt_develop_t *dev, dt_masks_form_t *form) |
| void | dt_masks_gui_init (struct dt_develop_t *dev) |
| void | dt_masks_gui_cleanup (struct dt_develop_t *dev) |
| void | dt_masks_gui_set_dragging (dt_masks_form_gui_t *gui) |
| void | dt_masks_gui_reset_dragging (dt_masks_form_gui_t *gui) |
| gboolean | dt_masks_gui_is_dragging (const dt_masks_form_gui_t *gui) |
| static gboolean | dt_masks_gui_was_anything_selected (const dt_masks_form_gui_t *gui) |
| static int | dt_masks_gui_selected_node_index (const dt_masks_form_gui_t *gui) |
| static int | dt_masks_gui_selected_handle_index (const dt_masks_form_gui_t *gui) |
| static int | dt_masks_gui_selected_handle_border_index (const dt_masks_form_gui_t *gui) |
| static int | dt_masks_gui_selected_segment_index (const dt_masks_form_gui_t *gui) |
| static gboolean | dt_masks_gui_change_affects_selected_node_or_all (const dt_masks_form_gui_t *gui, const int index) |
| static float | dt_masks_get_form_size_from_nodes (const GList *points) |
| static gboolean | dt_masks_gui_should_hit_test (dt_masks_form_gui_t *gui) |
| static void | dt_masks_gui_cursor_to_raw_norm (dt_develop_t *dev, const dt_masks_form_gui_t *gui, float point[2]) |
| static void | dt_masks_gui_delta_to_raw_norm (dt_develop_t *dev, const dt_masks_form_gui_t *gui, float point[2]) |
| static void | dt_masks_gui_delta_to_image_abs (const dt_masks_form_gui_t *gui, float point[2]) |
| static void | dt_masks_gui_delta_from_raw_anchor (dt_develop_t *dev, const dt_masks_form_gui_t *gui, const float anchor[2], float *delta_x, float *delta_y) |
| static gboolean | dt_masks_form_uses_spot_defaults (const dt_masks_form_t *form) |
| static gboolean | dt_masks_form_is_clone (const dt_masks_form_t *form) |
| static void | dt_masks_reset_source (dt_masks_form_t *form) |
| static void | dt_masks_translate_source (dt_masks_form_t *form, const float delta_x, const float delta_y) |
| static void | dt_masks_translate_ctrl_node (float node[2], float ctrl1[2], float ctrl2[2], const float delta_x, const float delta_y) |
| static void | dt_masks_set_ctrl_points (float ctrl1[2], float ctrl2[2], const float control_points[4]) |
| gboolean | dt_masks_node_is_cusp (const dt_masks_form_gui_points_t *gpt, const int index) |
| returns wether a node is a corner or not. A node is a corner if its 2 control handles are at the same position, else it's a curve. | |
| 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) |
| static gboolean | dt_masks_toggle_bezier_node_type (struct dt_iop_module_t *module, struct dt_masks_form_t *mask_form, struct dt_masks_form_gui_t *mask_gui, const int form_index, const struct dt_masks_form_gui_points_t *gui_points, const int node_index, float node[2], float ctrl1[2], float ctrl2[2], dt_masks_points_states_t *state) |
| static gboolean | dt_masks_reset_bezier_ctrl_points (struct dt_iop_module_t *module, struct dt_masks_form_t *mask_form, struct dt_masks_form_gui_t *mask_gui, const int form_index, const struct dt_masks_form_gui_points_t *gui_points, const int node_index, dt_masks_points_states_t *state) |
| static void | dt_masks_project_on_line (const float cursor[2], const float node[2], const float handle[2], float point[2]) |
| static float | dt_masks_border_from_projected_handle (dt_develop_t *dev, const float node[2], const float projected_image_pos[2], const float scale_ref) |
| static void | dt_masks_draw_preview_shape (cairo_t *cr, const float zoom_scale, const int num_points, float *points, const int points_count, float *border, const int border_count, void(*const *draw_shape)(cairo_t *cr, const float *points, const int points_count, const int nb, const gboolean border, const gboolean source), const cairo_line_cap_t shape_cap, const cairo_line_cap_t border_cap, const gboolean save_restore, const gboolean source) |
| static void | dt_masks_preview_buffers_cleanup (dt_masks_preview_buffers_t *buffers) |
| void | dt_masks_init_form_gui (dt_masks_form_gui_t *gui) |
| int | dt_masks_get_points_border (struct 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_t *pipe, 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_t *pipe, 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, dt_dev_pixelpipe_t *pipe, 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, dt_dev_pixelpipe_t *pipe, 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_t *pipe, const 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) |
| void | dt_masks_remove_node (struct dt_iop_module_t *module, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index, int node_index) |
| int | dt_masks_legacy_params (dt_develop_t *dev, void *params, const int old_version, const int new_version) |
| dt_masks_form_t * | dt_masks_create (dt_masks_type_t type) |
| dt_masks_form_t * | dt_masks_create_ext (dt_masks_type_t type) |
| void | dt_masks_replace_current_forms (dt_develop_t *dev, GList *forms) |
| GList * | dt_masks_snapshot_current_forms (dt_develop_t *dev, gboolean reset_changed) |
| dt_masks_form_t * | dt_masks_get_from_id_ext (GList *forms, int id) |
| dt_masks_form_t * | dt_masks_get_from_id (dt_develop_t *dev, int id) |
| int | dt_masks_copy_used_forms_for_module (dt_develop_t *dev_dest, dt_develop_t *dev_src, const struct dt_iop_module_t *mod_src) |
| struct dt_iop_module_t * | dt_masks_get_mask_manager (struct dt_develop_t *dev) |
| 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) |
| Cleanup unused masks and refresh the current forms snapshot. | |
| 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) |
| GtkWidget * | dt_masks_shape_buttons_create (const dt_masks_shape_buttons_config_t *config) |
| Build a synchronized toolbar for creating masks shapes. | |
| void | dt_masks_shape_buttons_deactivate_all (GtkWidget *active_button) |
| 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, int delta_y) |
| int | dt_masks_events_key_pressed (struct dt_iop_module_t *module, GdkEventKey *event) |
| void | dt_masks_draw_source (cairo_t *cr, dt_masks_form_gui_t *gui, const int index, const int nb, const float zoom_scale, struct dt_masks_gui_center_point_t *center_point, const shape_draw_function_t *draw_shape_func) |
| Draw the source for a correction mask. | |
| void | dt_masks_draw_path_seg_by_seg (cairo_t *cr, dt_masks_form_gui_t *gui, const int index, const float *points, const int points_count, const int node_count, const float zoom_scale) |
| 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) |
| gboolean | dt_masks_gui_form_create_throttled (dt_masks_form_t *form, dt_masks_form_gui_t *gui, int index, struct dt_iop_module_t *module, float posx, float posy) |
| gboolean | dt_masks_gui_remove (struct dt_iop_module_t *module, dt_masks_form_t *form, dt_masks_form_gui_t *gui, const int parentid) |
| remove a mask shape or node form from the GUI. This function is used with a popupmenu "Delete" action. | |
| gboolean | dt_masks_remove_or_delete (struct dt_iop_module_t *module, dt_masks_form_t *sel, int parent_id, dt_masks_form_gui_t *mask_gui, int form_id) |
| If the form to remove is used once, ask to the user if he wants to delete it from the list or just remove and keep for later reuse. | |
| gboolean | dt_masks_form_exit_creation (dt_iop_module_t *module, dt_masks_form_gui_t *gui) |
| 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) |
| Save the form creation right after a shape has been finished drawing. | |
| 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_form_group_t * | dt_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_delete (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, const int flow) |
| 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_t * | dt_masks_dup_masks_form (const dt_masks_form_t *form) |
| Deep-copy a mask form, including its points list. | |
| GList * | dt_masks_dup_forms_deep (GList *forms, dt_masks_form_t *form) |
| Duplicate the list of forms, replacing a single item by formid match. | |
| int | dt_masks_point_in_form_exact (const float *pts, int num_pts, const float *points, int points_start, int points_count) |
| Check whether any 2D point in pts[] lies inside the form points[]. | |
| void | dt_masks_select_form (struct dt_iop_module_t *module, dt_masks_form_t *sel) |
| Select or clear the current mask form, notifying the owning module if needed. | |
| void | dt_masks_set_source_pos_initial_state (dt_masks_form_gui_t *gui, const uint32_t state) |
| Decide initial source positioning mode for clone masks. | |
| void | dt_masks_set_source_pos_initial_value (dt_masks_form_gui_t *gui, dt_masks_form_t *form) |
| Initialize the clone source position based on current GUI state. | |
| void | dt_masks_calculate_source_pos_origin (dt_masks_form_gui_t *gui, const float initial_xpos, const float initial_ypos, const float xpos, const float ypos, float *px, float *py, const int adding) |
| Compute preview-space source position for drawing the clone indicator. | |
| static void | dt_masks_draw_source_preview (cairo_t *cr, const float zoom_scale, dt_masks_form_gui_t *gui, const float initial_xpos, const float initial_ypos, const float xpos, const float ypos, const int adding) |
| float | dt_masks_rotate_with_anchor (dt_develop_t *dev, const float anchor[2], const float center[2], dt_masks_form_gui_t *gui) |
| Rotate a mask shape around its center. WARNING: gui->delta will be updated with the new position after rotation. | |
| dt_masks_form_group_t * | dt_masks_form_group_from_parentid (int parentid, int formid) |
| Return the group entry for a (parent, form) pair. | |
| int | dt_masks_group_index_from_formid (const dt_masks_form_t *group_form, int formid) |
| dt_masks_form_group_t * | dt_masks_form_get_selected_group (const struct dt_masks_form_t *form, const struct dt_masks_form_gui_t *gui) |
| gboolean | dt_masks_is_anything_selected (const dt_masks_form_gui_t *mask_gui) |
| gboolean | dt_masks_is_anything_hovered (const dt_masks_form_gui_t *mask_gui) |
| dt_masks_form_group_t * | dt_masks_form_get_selected_group_live (const struct dt_masks_form_t *form, const struct dt_masks_form_gui_t *gui) |
| Return the currently selected group entry, resolving to the live form group when the GUI is operating on a temporary copy (for example the visible group created for editing). | |
| float | dt_masks_form_get_interaction_value (dt_masks_form_group_t *form_group, dt_masks_interaction_t interaction) |
| gboolean | dt_masks_form_get_gravity_center (const struct dt_masks_form_t *form, float center[2], float *area) |
| void | dt_masks_form_update_gravity_center (struct dt_masks_form_t *form) |
| int | dt_masks_center_view_on_form (struct dt_develop_t *dev, const struct dt_masks_form_t *form) |
| float | dt_masks_form_set_interaction_value (dt_masks_form_group_t *form_group, dt_masks_interaction_t interaction, float value, dt_masks_increment_t increment, int flow, struct dt_masks_form_gui_t *gui, struct dt_iop_module_t *module) |
| 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, const int flow) |
| 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. | |
| float | dt_masks_get_set_conf_value_with_toast (dt_masks_form_t *form, const char *feature, float amount, float v_min, float v_max, dt_masks_increment_t increment, int flow, const char *toast_fmt, float toast_scale) |
| Update a mask configuration value and emit a toast message. | |
| void | dt_masks_duplicate_points (const dt_masks_form_t *base, dt_masks_form_t *dest, size_t node_size) |
| Duplicate a points list for a mask using a fixed node size. | |
| float | dt_masks_apply_increment (float current, float amount, dt_masks_increment_t increment, int flow) |
| Apply a scroll increment to a scalar value. | |
| float | dt_masks_apply_increment_precomputed (float current, float amount, float scale_amount, float offset_amount, dt_masks_increment_t increment) |
| Apply a scroll increment using precomputed scale/offset factors. | |
| 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_t * | dt_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 gboolean | dt_masks_center_of_gravity_from_points (const float *points, const int points_count, float center[2], float *area) |
| 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) |
| gboolean | dt_masks_point_is_within_radius (const float px, const float py, const float cx, const float cy, const float radius) |
| Check if a point (px,py) is inside a radius from a center point (cx,cy) | |
| int | dt_masks_find_closest_handle_common (dt_masks_form_t *mask_form, dt_masks_form_gui_t *mask_gui, int form_index, int node_count_override, dt_masks_border_handle_fn border_handle_cb, dt_masks_curve_handle_fn curve_handle_cb, dt_masks_node_position_fn node_position_cb, dt_masks_distance_fn distance_cb, dt_masks_post_select_fn post_select_cb, void *user_data) |
| Shared selection logic for node/handle/segment hit testing. | |
| void | dt_masks_creation_mode_quit (dt_masks_form_gui_t *gui) |
| Exit mask creation mode, restoring cursor visibility and resetting GUI state. | |
| gboolean | dt_masks_creation_mode_enter (dt_iop_module_t *module, const dt_masks_type_t type) |
| Enter mask creation mode for a given shape type. | |
| void | apply_operation (struct dt_masks_form_group_t *pt, const dt_masks_state_t apply_state) |
| Apply a mask state operation on a group entry. | |
| void | _masks_gui_delete_node_callback (GtkWidget *menu, gpointer user_data) |
| GdkModifierType | dt_masks_get_accel_mods (dt_masks_interaction_t interaction) |
| GtkWidget * | dt_masks_create_menu (dt_masks_form_gui_t *gui, dt_masks_form_t *form, const dt_masks_form_group_t *fpt, const float pzx, const float pzy) |
| int | dt_masks_gui_confirm_delete_form_dialog (const char *form_name) |
| #define menu_item_set_fake_accel | ( | menu_item, | |
| keyval, | |||
| mods | |||
| ) |
Contextual menu
| typedef struct dt_masks_anchor_gradient_t dt_masks_anchor_gradient_t |
structure used to store anchor for a gradient
| typedef gboolean(* dt_masks_border_handle_fn) (const dt_masks_form_gui_points_t *gui_points, int node_count, int node_index, float *handle_x, float *handle_y, void *user_data) |
| typedef void(* dt_masks_curve_handle_fn) (const dt_masks_form_gui_points_t *gui_points, int node_index, float *handle_x, float *handle_y, void *user_data) |
| typedef void(* dt_masks_distance_fn) (float pointer_x, float pointer_y, float cursor_radius, dt_masks_form_gui_t *mask_gui, int form_index, int node_count, int *inside, int *inside_border, int *near, int *inside_source, float *dist, void *user_data) |
| typedef struct dt_masks_dynbuf_t dt_masks_dynbuf_t |
structure for dynamic buffers
| typedef enum dt_masks_edit_mode_t dt_masks_edit_mode_t |
| typedef enum dt_masks_ellipse_flags_t dt_masks_ellipse_flags_t |
| typedef enum dt_masks_event_t dt_masks_event_t |
masts states
| typedef struct dt_masks_form_group_t dt_masks_form_group_t |
structure used to store all forms's id for a group
| typedef struct dt_masks_form_gui_points_t dt_masks_form_gui_points_t |
structure used to define all the gui points to draw in viewport
| typedef struct dt_masks_form_gui_t dt_masks_form_gui_t |
structure used to display a form
| typedef struct dt_masks_form_t dt_masks_form_t |
structure used to define a form
| typedef struct dt_masks_functions_t 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
| typedef enum dt_masks_gradient_states_t dt_masks_gradient_states_t |
| typedef struct dt_masks_gui_center_point_t dt_masks_gui_center_point_t |
| typedef enum dt_masks_increment_t dt_masks_increment_t |
| typedef enum dt_masks_interaction_t dt_masks_interaction_t |
| typedef struct dt_masks_node_brush_t dt_masks_node_brush_t |
structure used to store 1 node for a brush form
| typedef struct dt_masks_node_circle_t dt_masks_node_circle_t |
structure used to store 1 node for a circle
| typedef struct dt_masks_node_ellipse_t dt_masks_node_ellipse_t |
structure used to store 1 node for an ellipse
| typedef struct dt_masks_node_polygon_t dt_masks_node_polygon_t |
structure used to store 1 node for a path form
| typedef void(* dt_masks_node_position_fn) (const dt_masks_form_gui_points_t *gui_points, int node_index, float *node_x, float *node_y, void *user_data) |
| typedef enum dt_masks_points_states_t dt_masks_points_states_t |
| typedef void(* dt_masks_post_select_fn) (dt_masks_form_gui_t *mask_gui, int inside, int inside_border, int inside_source, void *user_data) |
| typedef struct dt_masks_preview_buffers_t dt_masks_preview_buffers_t |
| typedef struct dt_masks_shape_buttons_config_t dt_masks_shape_buttons_config_t |
| typedef void(* dt_masks_shape_buttons_notify_f) (GtkWidget *button, dt_iop_module_t *module, dt_masks_type_t type, gpointer user_data) |
| typedef gboolean(* dt_masks_shape_buttons_start_f) (GtkWidget *button, dt_iop_module_t *module, dt_masks_type_t type, gpointer user_data) |
| typedef dt_masks_type_t(* dt_masks_shape_buttons_type_f) (dt_iop_module_t *module, dt_masks_type_t type, gpointer user_data) |
| typedef enum dt_masks_source_pos_type_t dt_masks_source_pos_type_t |
| typedef enum dt_masks_state_t dt_masks_state_t |
| typedef enum dt_masks_type_t dt_masks_type_t |
forms types
| enum dt_masks_edit_mode_t |
| enum dt_masks_event_t |
| enum dt_masks_increment_t |
| enum dt_masks_state_t |
| enum dt_masks_type_t |
forms types
|
inlinestatic |
code for dynamic handling of intermediate buffers
Definition at line 1218 of file masks.h.
References dt_masks_dynbuf_t::buffer, DT_DEBUG_MASKS, dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, dt_print(), dt_round_size_sse(), FALSE, IS_NULL_PTR, size, dt_masks_dynbuf_t::size, dt_masks_dynbuf_t::tag, and TRUE.
Referenced by dt_masks_dynbuf_add_2(), dt_masks_dynbuf_add_zeros(), dt_masks_dynbuf_init(), and dt_masks_dynbuf_reserve_n().
Definition at line 488 of file masks_gui.c.
References dt_masks_form_gui_t::creation, darktable, darktable_t::develop, dt_dev_add_history_item, dt_masks_form_exit_creation(), dt_masks_form_get_selected_group(), dt_masks_get_from_id(), dt_masks_get_visible_form(), dt_masks_remove_node(), dt_masks_form_group_t::formid, dt_masks_form_gui_t::group_selected, IS_NULL_PTR, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::node_hovered, dt_masks_form_group_t::parentid, and TRUE.
Referenced by _polygon_populate_context_menu(), and dt_masks_create_menu().
| void apply_operation | ( | struct dt_masks_form_group_t * | group_entry, |
| const dt_masks_state_t | apply_state | ||
| ) |
Apply a mask state operation on a group entry.
Inverse toggles its flag, combine operations replace the combine bits.
Definition at line 4380 of file develop/masks/masks.c.
References DT_MASKS_STATE_INVERSE, DT_MASKS_STATE_IS_COMBINE_OP, IS_NULL_PTR, and dt_masks_form_group_t::state.
Referenced by _blendop_masks_group_operation_callback(), _masks_operation_callback(), _tree_difference(), _tree_exclusion(), _tree_intersection(), _tree_inverse(), and _tree_union().
| void dt_group_events_post_expose | ( | cairo_t * | cr, |
| float | zoom_scale, | ||
| dt_masks_form_t * | form, | ||
| dt_masks_form_gui_t * | gui | ||
| ) |
Definition at line 138 of file group.c.
References _group_events_post_expose_draw(), dt_masks_form_gui_t::group_selected, and dt_masks_form_t::points.
Referenced by dt_masks_events_post_expose().
| void dt_masks_append_form | ( | dt_develop_t * | dev, |
| dt_masks_form_t * | form | ||
| ) |
Definition at line 1368 of file develop/masks/masks.c.
References dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, dt_develop_t::forms, and dt_develop_t::masks_mutex.
Referenced by _blendop_masks_group_create(), _group_create(), dt_masks_form_duplicate(), and dt_masks_gui_form_save_creation().
| float dt_masks_apply_increment | ( | float | current, |
| float | amount, | ||
| dt_masks_increment_t | increment, | ||
| int | flow | ||
| ) |
Apply a scroll increment to a scalar value.
Definition at line 3671 of file develop/masks/masks.c.
References DT_MASKS_INCREMENT_ABSOLUTE, DT_MASKS_INCREMENT_OFFSET, and DT_MASKS_INCREMENT_SCALE.
Referenced by _change_curvature(), _change_extent(), _change_hardness(), _change_hardness(), _change_opacity(), _change_rotation(), _change_rotation(), _change_size(), _change_size(), and dt_masks_get_set_conf_value().
| float dt_masks_apply_increment_precomputed | ( | float | current, |
| float | amount, | ||
| float | scale_amount, | ||
| float | offset_amount, | ||
| dt_masks_increment_t | increment | ||
| ) |
Apply a scroll increment using precomputed scale/offset factors.
Definition at line 3685 of file develop/masks/masks.c.
References DT_MASKS_INCREMENT_ABSOLUTE, DT_MASKS_INCREMENT_OFFSET, and DT_MASKS_INCREMENT_SCALE.
Referenced by _change_hardness(), _change_hardness(), and _change_size().
| void dt_masks_blur_9x9 | ( | float *const | src, |
| float *const | out, | ||
| const int | width, | ||
| const int | height, | ||
| const float | sigma | ||
| ) |
| void dt_masks_blur_9x9_coeff | ( | float * | coeffs, |
| const float | sigma | ||
| ) |
Definition at line 159 of file detail.c.
References i, k, kernel(), and sigma.
Referenced by _refine_with_detail_mask_cl(), dt_masks_blur_9x9(), and dual_demosaic_cl().
|
inlinestatic |
Definition at line 757 of file masks.h.
References dt_dev_coordinates_image_abs_to_raw_abs(), and dt_dev_coordinates_raw_norm_to_raw_abs().
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
| 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 | ||
| ) |
Referenced by _refine_with_detail_mask(), and dual_demosaic().
| 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 | ||
| ) |
Referenced by dual_demosaic(), and process().
| void dt_masks_calculate_source_pos_origin | ( | dt_masks_form_gui_t * | mask_gui, |
| const float | initial_xpos, | ||
| const float | initial_ypos, | ||
| const float | xpos, | ||
| const float | ypos, | ||
| float * | pos_x, | ||
| float * | pos_y, | ||
| const int | adding | ||
| ) |
Compute preview-space source position for drawing the clone indicator.
This uses the stored source positioning mode and can follow the cursor while adding.
Definition at line 4235 of file develop/masks/masks.c.
References darktable, darktable_t::develop, dt_masks_get_visible_form(), DT_MASKS_SOURCE_POS_ABSOLUTE, DT_MASKS_SOURCE_POS_RELATIVE, DT_MASKS_SOURCE_POS_RELATIVE_TEMP, dt_masks_form_t::functions, dt_masks_functions_t::initial_source_pos, IS_NULL_PTR, dt_masks_form_gui_t::pos_source, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, and dt_masks_form_gui_t::source_pos_type.
Referenced by _circle_get_creation_preview(), _ellipse_get_creation_preview(), and dt_masks_draw_source_preview().
|
inlinestatic |
Definition at line 1339 of file masks.h.
References darktable, DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_get_wtime(), dt_print(), FALSE, i, inv, IS_NULL_PTR, TRUE, and darktable_t::unmuted.
Referenced by _brush_get_gravity_center(), and _polygon_get_gravity_center().
| int dt_masks_center_view_on_form | ( | struct dt_develop_t * | dev, |
| const struct dt_masks_form_t * | form | ||
| ) |
| void dt_masks_change_form_gui | ( | dt_masks_form_t * | newform | ) |
function used to manipulate forms for masks
Definition at line 3084 of file develop/masks/masks.c.
References dt_develop_t::allforms, darktable, darktable_t::develop, dt_masks_clear_form_gui(), dt_masks_free_form(), dt_masks_get_visible_form(), dt_masks_set_visible_form(), dt_pthread_rwlock_rdlock, dt_pthread_rwlock_unlock, FALSE, dt_develop_t::forms, IS_NULL_PTR, dt_develop_t::masks_mutex, and TRUE.
Referenced by _blendop_masks_all_delete_callback(), _blendop_masks_all_selection_changed(), _blendop_masks_group_delete(), _blendop_masks_group_move_callback(), _blendop_masks_group_unlink(), _brush_events_button_released(), _edit_masks(), _masks_remove_shape(), _reset_form_creation(), _tree_delete_shape(), _tree_movedown(), _tree_moveup(), _tree_selection_change(), dt_masks_cleanup_unused(), dt_masks_creation_mode_enter(), dt_masks_form_exit_creation(), dt_masks_remove_or_delete(), dt_masks_reset_form_gui(), dt_masks_set_edit_mode(), gui_focus(), rt_edit_masks_callback(), and rt_show_forms_for_current_scale().
| void dt_masks_cleanup_unused | ( | dt_develop_t * | develop | ) |
Cleanup unused masks and refresh the current forms snapshot.
Assumption: caller already decided to drop unused forms (non-reversible).
Definition at line 4031 of file develop/masks/masks.c.
References dt_dev_get_history_end_ext(), dt_masks_change_form_gui(), dt_masks_cleanup_unused_from_list(), dt_masks_replace_current_forms(), dt_dev_history_item_t::forms, and dt_develop_t::history.
Referenced by _tree_cleanup().
| void dt_masks_clear_form_gui | ( | dt_develop_t * | dev | ) |
Definition at line 3034 of file develop/masks/masks.c.
References dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::border_toggling, dt_masks_form_gui_t::creation_closing_form, dt_masks_form_gui_t::creation_formids, dt_masks_form_gui_t::creation_last_formid, dt_masks_form_gui_t::creation_module, dt_masks_form_gui_t::creation_type, dt_masks_form_gui_t::delta, dt_masks_creation_mode_quit(), dt_masks_dynbuf_free(), DT_MASKS_EDIT_OFF, dt_masks_form_gui_points_free(), DT_MASKS_NONE, DT_MASKS_PRESSURE_OFF, dt_masks_select_form(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_masks_form_gui_t::edit_mode, FALSE, 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::handle_border_dragging, dt_masks_form_gui_t::handle_border_hovered, dt_masks_form_gui_t::handle_border_selected, dt_masks_form_gui_t::handle_dragging, dt_masks_form_gui_t::handle_hovered, dt_masks_form_gui_t::handle_selected, IS_NULL_PTR, dt_masks_form_gui_t::last_hit_test_pos, dt_masks_form_gui_t::last_rebuild_pos, dt_masks_form_gui_t::last_rebuild_ts, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::node_selected_idx, dt_masks_form_gui_t::pipe_hash, dt_masks_form_gui_t::pivot_selected, dt_masks_form_gui_t::points, dt_masks_form_gui_t::pressure_sensitivity, dt_masks_form_gui_t::rebuild_pending, 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_hovered, dt_masks_form_gui_t::seg_selected, dt_masks_form_gui_t::source_dragging, and dt_masks_form_gui_t::source_selected.
Referenced by _masks_remove_shape(), dt_masks_change_form_gui(), dt_masks_gui_cleanup(), dt_masks_gui_init(), and dt_masks_remove_or_delete().
| int dt_masks_copy_used_forms_for_module | ( | dt_develop_t * | dev_dest, |
| dt_develop_t * | dev_src, | ||
| const struct dt_iop_module_t * | mod_src | ||
| ) |
copy forms used by a module from dev_src to dev_dest
Referenced by dt_dev_copy_module_contents(), and dt_dev_history_item_from_source_history_item().
| dt_masks_form_t * dt_masks_create | ( | dt_masks_type_t | type | ) |
we create a completely new form.
Definition at line 1930 of file develop/masks/masks.c.
References DT_MASKS_BRUSH, DT_MASKS_CIRCLE, DT_MASKS_ELLIPSE, dt_masks_functions_brush, dt_masks_functions_circle, dt_masks_functions_ellipse, dt_masks_functions_gradient, dt_masks_functions_group, dt_masks_functions_polygon, DT_MASKS_GRADIENT, DT_MASKS_GROUP, DT_MASKS_POLYGON, dt_masks_version(), FALSE, form_id_seed, dt_masks_form_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_functions_t::sanitize_config, TRUE, type, dt_masks_form_t::type, dt_masks_form_t::uses_bezier_points_layout, and dt_masks_form_t::version.
Referenced by _blendop_masks_group_create(), _group_create(), _tree_group(), _tree_selection_change(), dt_masks_create_ext(), dt_masks_creation_mode_enter(), dt_masks_form_duplicate(), dt_masks_gui_form_save_creation(), dt_masks_read_masks_history(), and legacy_params().
| 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.
Definition at line 1959 of file develop/masks/masks.c.
References dt_develop_t::allforms, darktable, darktable_t::develop, dt_masks_create(), dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, dt_develop_t::masks_mutex, and type.
Referenced by dt_masks_set_edit_mode(), and rt_show_forms_for_current_scale().
| GtkWidget * dt_masks_create_menu | ( | dt_masks_form_gui_t * | gui, |
| dt_masks_form_t * | form, | ||
| const dt_masks_form_group_t * | fpt, | ||
| const float | pzx, | ||
| const float | pzy | ||
| ) |
Definition at line 603 of file masks_gui.c.
References _masks_gui_add_interaction_slider(), _masks_gui_delete_form_callback(), _masks_gui_delete_node_callback(), _masks_gui_exit_creation_callback(), _masks_movedown_callback(), _masks_moveup_callback(), dt_masks_form_gui_t::creation, ctx_gtk_menu_item_new_with_markup(), ctx_gtk_menu_item_new_with_markup_and_pixbuf(), darktable, darktable_t::develop, dt_draw_get_pixbuf_from_cairo(), dt_free, DT_MASKS_BRUSH, DT_MASKS_CIRCLE, DT_MASKS_ELLIPSE, dt_masks_form_get_interaction_value(), dt_masks_form_group_from_parentid(), dt_masks_get_from_id(), DT_MASKS_GRADIENT, DT_MASKS_GROUP, DT_MASKS_INCREMENT_ABSOLUTE, DT_MASKS_INCREMENT_SCALE, DT_MASKS_INTERACTION_HARDNESS, DT_MASKS_INTERACTION_OPACITY, DT_MASKS_INTERACTION_SIZE, DT_MASKS_IS_RETOUCHE, DT_MASKS_POLYGON, DT_MASKS_STATE_DIFFERENCE, DT_MASKS_STATE_EXCLUSION, DT_MASKS_STATE_INTERSECTION, DT_MASKS_STATE_INVERSE, DT_MASKS_STATE_IS_COMBINE_OP, DT_MASKS_STATE_UNION, DT_PIXEL_APPLY_DPI, dtgtk_cairo_paint_masks_difference(), dtgtk_cairo_paint_masks_exclusion(), dtgtk_cairo_paint_masks_intersection(), dtgtk_cairo_paint_masks_inverse(), dtgtk_cairo_paint_masks_union(), FALSE, dt_masks_form_gui_t::form_selected, dt_masks_form_group_t::formid, dt_masks_form_t::formid, dt_masks_form_t::functions, dt_develop_t::gui_module, IS_NULL_PTR, k, masks_gtk_menu_item_new_bold, MAX, menu_item_set_fake_accel, dt_masks_form_t::name, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_group_t::parentid, dt_masks_form_t::points, dt_masks_functions_t::populate_context_menu, dt_masks_form_gui_t::seg_hovered, dt_masks_form_group_t::state, state, TRUE, dt_masks_form_t::type, and width.
Referenced by dt_masks_events_button_pressed().
| gboolean dt_masks_creation_mode_enter | ( | dt_iop_module_t * | module, |
| const dt_masks_type_t | type | ||
| ) |
Enter mask creation mode for a given shape type.
NOTE: this does quite the same as _menu_add_shape.
Definition at line 4354 of file develop/masks/masks.c.
References dt_masks_form_gui_t::creation, dt_masks_form_gui_t::creation_formids, dt_masks_form_gui_t::creation_last_formid, dt_masks_form_gui_t::creation_module, dt_masks_form_gui_t::creation_type, darktable, darktable_t::develop, dt_iop_request_focus(), DT_MASKS_ALL, dt_masks_change_form_gui(), dt_masks_create(), dt_ui_center(), FALSE, dt_develop_t::form_gui, darktable_t::gui, IS_NULL_PTR, TRUE, type, and dt_gui_gtk_t::ui.
Referenced by _add_shape(), _masks_shape_button_pressed(), _menu_add_shape(), _tree_add_brush(), _tree_add_circle(), _tree_add_ellipse(), _tree_add_gradient(), _tree_add_polygon(), and rt_select_algorithm_callback().
| void dt_masks_creation_mode_quit | ( | dt_masks_form_gui_t * | mask_gui | ) |
Exit mask creation mode, restoring cursor visibility and resetting GUI state.
| mask_gui | The GUI state of the mask form |
Definition at line 4342 of file develop/masks/masks.c.
References dt_masks_form_gui_t::creation, FALSE, and IS_NULL_PTR.
Referenced by dt_masks_clear_form_gui(), and dt_masks_form_exit_creation().
| void dt_masks_draw_path_seg_by_seg | ( | cairo_t * | cr, |
| dt_masks_form_gui_t * | gui, | ||
| const int | index, | ||
| const float * | points, | ||
| const int | points_count, | ||
| const int | node_count, | ||
| const float | zoom_scale | ||
| ) |
Definition at line 2861 of file develop/masks/masks.c.
References dt_masks_form_gui_t::creation, dt_draw_stroke_line(), DT_MASKS_DASH_ROUND, dt_masks_gui_selected_segment_index(), dt_masks_is_anything_selected(), DT_MASKS_NO_DASH, FALSE, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::group_selected, and IS_NULL_PTR.
Referenced by _brush_events_post_expose(), and _polygon_events_post_expose().
|
inlinestatic |
Definition at line 773 of file masks.h.
References dt_draw_shape_lines(), DT_MASKS_DASH_STICK, DT_MASKS_NO_DASH, and FALSE.
Referenced by _circle_events_post_expose(), _ellipse_events_post_expose(), and _gradient_events_post_expose().
| void dt_masks_draw_source | ( | cairo_t * | cr, |
| dt_masks_form_gui_t * | gui, | ||
| const int | index, | ||
| const int | nb, | ||
| const float | zoom_scale, | ||
| struct dt_masks_gui_center_point_t * | center_point, | ||
| const shape_draw_function_t * | draw_shape_func | ||
| ) |
Draw the source for a correction mask.
| cr | the cairo context to draw into |
| gui | the GUI state of the mask form |
| index | the index of the mask form |
| nb | the number of coord for that shape |
| zoom_scale | the current zoom scale of the image |
| shape_function | the function to draw the shape |
Definition at line 2746 of file develop/masks/masks.c.
References _dt_masks_find_best_attachment_point(), dt_masks_form_gui_t::creation, darktable, DT_DEBUG_MASKS, dt_draw_arrow(), dt_draw_source_shape(), DT_MASKS_BRUSH, DT_MASKS_DASH_ROUND, DT_MASKS_ELLIPSE, DT_MASKS_IS_CLOSED_SHAPE, DT_MASKS_IS_OPEN_SHAPE, DT_MASKS_IS_PATH_SHAPE, dt_masks_point_in_form_exact(), DT_PIXEL_APPLY_DPI, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::group_selected, IS_NULL_PTR, M_PI, main(), dt_masks_gui_center_point_t::main, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_points_t::points_count, dt_masks_form_gui_points_t::source, dt_masks_gui_center_point_t::source, dt_masks_form_gui_points_t::source_count, dt_masks_form_gui_t::source_dragging, dt_masks_form_gui_t::source_selected, TRUE, dt_masks_form_gui_t::type, darktable_t::unmuted, dt_masks_gui_center_point_t::x, and dt_masks_gui_center_point_t::y.
Referenced by _brush_events_post_expose(), _circle_events_post_expose(), _ellipse_events_post_expose(), and _polygon_events_post_expose().
|
inlinestatic |
Definition at line 1111 of file masks.h.
References dt_draw_cross(), and dt_masks_calculate_source_pos_origin().
Referenced by _brush_events_post_expose(), _circle_events_post_expose(), _ellipse_events_post_expose(), and _polygon_events_post_expose().
| GList * dt_masks_dup_forms_deep | ( | GList * | forms, |
| dt_masks_form_t * | form | ||
| ) |
Duplicate the list of forms, replacing a single item by formid match.
Definition at line 727 of file develop/masks/masks.c.
References _dup_masks_form_cb().
Referenced by dt_dev_pixelpipe_process(), dt_history_duplicate(), dt_masks_replace_current_forms(), and dt_masks_snapshot_current_forms().
| dt_masks_form_t * dt_masks_dup_masks_form | ( | const dt_masks_form_t * | mask_form | ) |
Deep-copy a mask form, including its points list.
Caveats:
Definition at line 276 of file develop/masks/masks.c.
References dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_functions_t::point_struct_size, and dt_masks_form_t::points.
Referenced by _dup_masks_form_cb(), and dt_masks_copy_used_forms_for_module().
| void dt_masks_duplicate_points | ( | const dt_masks_form_t * | base, |
| dt_masks_form_t * | dest, | ||
| size_t | node_size | ||
| ) |
Duplicate a points list for a mask using a fixed node size.
The destination list is appended to, mirroring the previous per-mask implementations.
Definition at line 3742 of file develop/masks/masks.c.
References IS_NULL_PTR, and dt_masks_form_t::points.
Referenced by _brush_duplicate_points(), _circle_duplicate_points(), _ellipse_duplicate_points(), _gradient_duplicate_points(), and _polygon_duplicate_points().
|
inlinestatic |
Definition at line 1260 of file masks.h.
References _dt_masks_dynbuf_growto(), dt_masks_dynbuf_t::buffer, IS_NULL_PTR, dt_masks_dynbuf_t::pos, and dt_masks_dynbuf_t::size.
Referenced by _brush_events_button_pressed(), _brush_events_button_released(), _brush_events_mouse_moved(), _brush_get_pts_border(), _brush_payload_sync(), _brush_points_recurs(), _polygon_fill_gaps(), _polygon_find_self_intersection(), _polygon_get_pts_border(), and _polygon_points_recurs().
|
inlinestatic |
Definition at line 1295 of file masks.h.
References _dt_masks_dynbuf_growto(), dt_masks_dynbuf_t::buffer, IS_NULL_PTR, n, dt_masks_dynbuf_t::pos, and dt_masks_dynbuf_t::size.
Referenced by _brush_get_pts_border(), and _polygon_get_pts_border().
|
inlinestatic |
Definition at line 1333 of file masks.h.
References dt_masks_dynbuf_t::buffer, and IS_NULL_PTR.
Referenced by _brush_events_button_released(), _brush_events_post_expose(), _polygon_find_self_intersection(), and _polygon_get_pts_border().
|
inlinestatic |
Definition at line 1432 of file masks.h.
References dt_masks_dynbuf_t::buffer, DT_DEBUG_MASKS, dt_free, dt_pixelpipe_cache_free_align, dt_print(), IS_NULL_PTR, and dt_masks_dynbuf_t::tag.
Referenced by _brush_events_button_released(), _brush_get_pts_border(), _polygon_find_self_intersection(), _polygon_get_pts_border(), dt_masks_clear_form_gui(), dt_masks_form_exit_creation(), and dt_masks_gui_form_save_creation().
|
inlinestatic |
Definition at line 1315 of file masks.h.
References dt_masks_dynbuf_t::buffer, IS_NULL_PTR, and dt_masks_dynbuf_t::pos.
Referenced by _brush_events_button_released(), _brush_events_mouse_moved(), _brush_get_pts_border(), _polygon_find_self_intersection(), and _polygon_get_pts_border().
|
inlinestatic |
Definition at line 1422 of file masks.h.
References dt_masks_dynbuf_t::buffer, IS_NULL_PTR, dt_masks_dynbuf_t::pos, r, and dt_masks_dynbuf_t::size.
Referenced by _brush_get_pts_border(), and _polygon_get_pts_border().
|
inlinestatic |
Definition at line 1240 of file masks.h.
References _dt_masks_dynbuf_growto(), dt_masks_dynbuf_t::buffer, DT_DEBUG_MASKS, dt_free, dt_print(), IS_NULL_PTR, dt_masks_dynbuf_t::pos, size, dt_masks_dynbuf_t::size, and dt_masks_dynbuf_t::tag.
Referenced by _brush_events_button_pressed(), _brush_get_pts_border(), _polygon_find_self_intersection(), and _polygon_get_pts_border().
|
inlinestatic |
Definition at line 1410 of file masks.h.
References IS_NULL_PTR, and dt_masks_dynbuf_t::pos.
Referenced by _brush_get_pts_border(), _brush_payload_sync(), _polygon_find_self_intersection(), and _polygon_get_pts_border().
|
inlinestatic |
Definition at line 1275 of file masks.h.
References _dt_masks_dynbuf_growto(), dt_masks_dynbuf_t::buffer, IS_NULL_PTR, n, dt_masks_dynbuf_t::pos, and dt_masks_dynbuf_t::size.
Referenced by _brush_get_pts_border(), _brush_points_recurs_border_gaps(), _brush_points_recurs_border_small_gaps(), _brush_points_stamp(), _polygon_get_pts_border(), and _polygon_points_recurs_border_gaps().
|
inlinestatic |
Definition at line 1416 of file masks.h.
References IS_NULL_PTR, and dt_masks_dynbuf_t::pos.
Referenced by _polygon_fill_gaps().
|
inlinestatic |
Definition at line 1324 of file masks.h.
References dt_masks_dynbuf_t::buffer, IS_NULL_PTR, dt_masks_dynbuf_t::pos, and value.
Referenced by _brush_get_pts_border(), _init_hardness(), _init_size(), _polygon_find_self_intersection(), and _polygon_get_pts_border().
| 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 | ||
| ) |
Definition at line 2491 of file develop/masks/masks.c.
References _apply_gui_button_pressed_state(), _dt_masks_events_get_dispatch_form(), _dt_masks_events_group_update_selection(), _dt_masks_events_set_current_pos(), _dt_masks_events_update_hover(), dt_masks_functions_t::button_pressed, dt_masks_form_gui_t::creation, dt_develop_t::darkroom_skip_mouse_events, darktable, darktable_t::develop, dt_masks_create_menu(), dt_masks_get_visible_form(), DT_MASKS_GROUP, dt_masks_is_anything_hovered(), dt_masks_is_anything_selected(), dt_masks_select_form(), FALSE, dt_develop_t::form_gui, dt_masks_form_t::functions, dt_masks_form_gui_t::group_selected, IS_NULL_PTR, dt_masks_form_gui_t::rel_pos, state, TRUE, dt_masks_form_t::type, and x.
Referenced by button_pressed().
| int dt_masks_events_button_released | ( | struct dt_iop_module_t * | module, |
| double | x, | ||
| double | y, | ||
| int | which, | ||
| uint32_t | state | ||
| ) |
Definition at line 2444 of file develop/masks/masks.c.
References _dt_masks_events_flush_rebuild_if_needed(), _dt_masks_events_get_dispatch_form(), _dt_masks_events_set_current_pos(), _set_cursor_shape(), _set_hinter_message(), dt_masks_functions_t::button_released, dt_masks_form_gui_t::creation, dt_develop_t::darkroom_skip_mouse_events, darktable, darktable_t::develop, dt_dev_masks_selection_change(), dt_masks_form_get_selected_group_live(), dt_masks_get_visible_form(), DT_MASKS_GROUP, dt_masks_gui_reset_dragging(), FALSE, dt_develop_t::form_gui, dt_masks_form_group_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, state, dt_masks_form_t::type, and x.
Referenced by button_released().
| int dt_masks_events_key_pressed | ( | struct dt_iop_module_t * | module, |
| GdkEventKey * | event | ||
| ) |
Definition at line 2552 of file develop/masks/masks.c.
References _dt_masks_events_get_dispatch_form(), darktable, darktable_t::develop, dt_keys_mainpad_alternatives(), dt_masks_form_exit_creation(), dt_masks_form_get_selected_group(), dt_masks_get_from_id(), dt_masks_get_visible_form(), DT_MASKS_GROUP, dt_masks_gui_remove(), FALSE, dt_develop_t::form_gui, dt_masks_form_group_t::formid, dt_masks_form_t::functions, dt_masks_form_gui_t::group_selected, IS_NULL_PTR, key, dt_masks_functions_t::key_pressed, dt_masks_form_group_t::parentid, and dt_masks_form_t::type.
Referenced by key_pressed().
| int dt_masks_events_mouse_enter | ( | struct dt_iop_module_t * | module | ) |
Definition at line 2265 of file develop/masks/masks.c.
Referenced by mouse_enter().
| int dt_masks_events_mouse_leave | ( | struct dt_iop_module_t * | module | ) |
Definition at line 2260 of file develop/masks/masks.c.
Referenced by mouse_leave().
| int dt_masks_events_mouse_moved | ( | struct dt_iop_module_t * | module, |
| double | x, | ||
| double | y, | ||
| double | pressure, | ||
| int | which | ||
| ) |
Definition at line 2400 of file develop/masks/masks.c.
References _dt_masks_events_get_dispatch_form(), _dt_masks_events_group_blocks_motion(), _dt_masks_events_set_current_pos(), _dt_masks_events_should_update_hover_on_move(), _dt_masks_events_update_hover(), _set_cursor_shape(), _set_hinter_message(), dt_develop_t::darkroom_skip_mouse_events, darktable, darktable_t::develop, dt_masks_get_visible_form(), DT_MASKS_GROUP, dt_develop_t::form_gui, dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_functions_t::mouse_moved, dt_masks_form_t::type, and x.
Referenced by mouse_moved().
| int dt_masks_events_mouse_scrolled | ( | struct dt_iop_module_t * | module, |
| double | x, | ||
| double | y, | ||
| int | up, | ||
| uint32_t | state, | ||
| int | delta_y | ||
| ) |
Definition at line 2608 of file develop/masks/masks.c.
References _dt_masks_events_cursor_over_form(), _dt_masks_events_get_dispatch_form(), _dt_masks_events_set_current_pos(), _dt_masks_events_update_hover(), _set_hinter_message(), dt_masks_form_gui_t::creation, dt_develop_t::darkroom_skip_mouse_events, darktable, darktable_t::develop, DT_DEBUG_INPUT, dt_mask_scroll_increases(), dt_masks_get_visible_form(), DT_MASKS_INTERACTION_UNDEF, dt_masks_is_anything_selected(), dt_print(), dt_develop_t::form_gui, dt_masks_form_t::functions, dt_masks_form_gui_t::group_selected, IS_NULL_PTR, dt_masks_functions_t::mouse_scrolled, dt_masks_form_t::type, and x.
Referenced by scrolled().
| 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 | ||
| ) |
Definition at line 2960 of file develop/masks/masks.c.
References _masks_draw_creation_session_forms(), dt_masks_form_gui_t::creation, darktable, darktable_t::develop, dt_dev_get_processed_size(), dt_dev_get_zoom_level(), dt_dev_rescale_roi_to_input(), dt_group_events_post_expose(), dt_masks_get_visible_form(), DT_MASKS_GROUP, dt_masks_gui_form_test_create(), DT_MASKS_IS_PRIMITIVE_SHAPE, dt_develop_t::form_gui, dt_masks_form_t::functions, height, IS_NULL_PTR, dt_masks_form_t::points, dt_masks_functions_t::post_expose, dt_masks_form_t::type, dt_masks_form_gui_t::type, and width.
Referenced by expose().
| void dt_masks_extend_border | ( | float *const | mask, |
| const int | width, | ||
| const int | height, | ||
| const int | border | ||
| ) |
detail mask support
| int dt_masks_find_closest_handle_common | ( | dt_masks_form_t * | mask_form, |
| dt_masks_form_gui_t * | mask_gui, | ||
| int | form_index, | ||
| int | node_count_override, | ||
| dt_masks_border_handle_fn | border_handle_cb, | ||
| dt_masks_curve_handle_fn | curve_handle_cb, | ||
| dt_masks_node_position_fn | node_position_cb, | ||
| dt_masks_distance_fn | distance_cb, | ||
| dt_masks_post_select_fn | post_select_cb, | ||
| void * | user_data | ||
| ) |
Shared selection logic for node/handle/segment hit testing.
The shape-specific callbacks supply handles and distance tests while this function performs common selection bookkeeping on dt_masks_form_gui_t.
The cached cursor in mask_gui->pos is authoritative for hit testing.
Shared selection logic for node/handle/segment hit testing.
This function:
node_count_override can be used for shapes that don't expose nodes via GList (e.g. gradient/ellipse control points). Pass -1 to use g_list_length().
Callers provide shape-specific callbacks for handles and distance tests.
The cached cursor in mask_gui->pos is authoritative for hit testing.
Definition at line 92 of file develop/masks/masks.c.
References dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::creation, DT_GUI_MOUSE_EFFECT_RADIUS, dt_masks_gui_selected_node_index(), dt_masks_gui_was_anything_selected(), dt_masks_node_is_cusp(), dt_masks_point_is_within_radius(), FALSE, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::group_selected, dt_masks_form_gui_t::handle_border_dragging, dt_masks_form_gui_t::handle_border_hovered, dt_masks_form_gui_t::handle_dragging, dt_masks_form_gui_t::handle_hovered, IS_NULL_PTR, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::node_hovered, dt_masks_form_t::points, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_t::pos, dt_masks_form_gui_t::seg_dragging, dt_masks_form_gui_t::seg_hovered, dt_masks_form_gui_t::source_selected, TRUE, and dt_masks_form_t::uses_bezier_points_layout.
Referenced by _find_closest_handle(), _find_closest_handle(), _find_closest_handle(), _find_closest_handle(), and _find_closest_handle().
| int dt_masks_form_change_opacity | ( | dt_masks_form_t * | form, |
| int | parentid, | ||
| int | up, | ||
| const int | flow | ||
| ) |
Definition at line 3758 of file develop/masks/masks.c.
References dt_masks_form_group_from_parentid(), dt_masks_form_set_interaction_value(), DT_MASKS_INCREMENT_OFFSET, DT_MASKS_INTERACTION_OPACITY, dt_masks_form_t::formid, and IS_NULL_PTR.
Referenced by _brush_events_mouse_scrolled(), _circle_events_mouse_scrolled(), _ellipse_events_mouse_scrolled(), _gradient_events_mouse_scrolled(), and _polygon_events_mouse_scrolled().
| void dt_masks_form_delete | ( | struct dt_iop_module_t * | module, |
| dt_masks_form_t * | grp, | ||
| dt_masks_form_t * | form | ||
| ) |
Definition at line 3431 of file develop/masks/masks.c.
References _group_from_module(), dt_iop_module_t::blend_params, darktable, darktable_t::develop, dt_free, DT_MASKS_CLONE, dt_masks_form_delete(), dt_masks_form_update_gravity_center(), dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_iop_update(), DT_MASKS_NON_CLONE, dt_masks_remove_form(), dt_masks_form_group_t::formid, dt_masks_form_t::formid, dt_develop_t::forms, dt_develop_t::iop, IOP_FLAGS_SUPPORTS_BLENDING, IS_NULL_PTR, dt_develop_blend_params_t::mask_id, dt_masks_form_t::points, and dt_masks_form_t::type.
Referenced by _blendop_masks_all_delete_callback(), _blendop_masks_all_toggled(), _blendop_masks_group_delete(), _blendop_masks_group_unlink(), _gui_reset_callback(), _masks_remove_shape(), _menu_no_masks(), _tree_delete_shape(), dt_masks_form_delete(), and dt_masks_remove_or_delete().
| int dt_masks_form_duplicate | ( | dt_develop_t * | dev, |
| int | formid | ||
| ) |
Definition at line 1503 of file develop/masks/masks.c.
References _check_id(), dt_masks_append_form(), dt_masks_create(), dt_masks_get_from_id(), dt_masks_functions_t::duplicate_points, dt_masks_form_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_form_t::name, dt_masks_form_t::source, dt_masks_form_t::type, and dt_masks_form_t::version.
Referenced by _blendop_masks_all_duplicate_callback(), _group_duplicate_points(), and _tree_duplicate_shape().
| gboolean dt_masks_form_exit_creation | ( | dt_iop_module_t * | module, |
| dt_masks_form_gui_t * | gui | ||
| ) |
Definition at line 1135 of file develop/masks/masks.c.
References dt_iop_module_t::blend_data, dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::creation, dt_masks_form_gui_t::creation_formids, dt_masks_form_gui_t::creation_last_formid, dt_masks_form_gui_t::creation_module, dt_masks_form_gui_t::creation_type, darktable, darktable_t::develop, dt_dev_masks_selection_change(), dt_masks_change_form_gui(), dt_masks_creation_mode_quit(), dt_masks_dynbuf_free(), DT_MASKS_EDIT_FULL, dt_masks_free_form(), dt_masks_get_from_id(), dt_masks_get_visible_form(), dt_masks_group_index_from_formid(), dt_masks_iop_update(), DT_MASKS_NONE, dt_masks_set_edit_mode(), dt_masks_set_visible_form(), dt_masks_form_gui_t::edit_mode, FALSE, 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_t::formid, 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::handle_border_selected, dt_masks_form_gui_t::handle_selected, IS_NULL_PTR, dt_iop_gui_blend_data_t::masks_edit, dt_iop_gui_blend_data_t::masks_shown, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::node_selected_idx, dt_masks_form_gui_t::pivot_selected, dt_masks_form_gui_t::seg_selected, dt_masks_form_gui_t::source_dragging, dt_masks_form_gui_t::source_selected, and TRUE.
Referenced by _group_events_key_pressed(), _masks_gui_delete_node_callback(), _masks_gui_exit_creation_callback(), _masks_shape_button_pressed(), _polygon_events_key_pressed(), dt_masks_events_key_pressed(), dt_masks_gui_cleanup(), dt_masks_gui_form_save_creation(), and dt_masks_gui_remove().
| gboolean dt_masks_form_get_gravity_center | ( | const struct dt_masks_form_t * | form, |
| float | center[2], | ||
| float * | area | ||
| ) |
Referenced by _group_get_gravity_center().
| float dt_masks_form_get_interaction_value | ( | dt_masks_form_group_t * | form_group, |
| dt_masks_interaction_t | interaction | ||
| ) |
Definition at line 3533 of file develop/masks/masks.c.
References darktable, darktable_t::develop, dt_masks_get_from_id(), DT_MASKS_INTERACTION_OPACITY, dt_masks_form_group_t::formid, dt_masks_form_t::functions, dt_masks_functions_t::get_interaction_value, IS_NULL_PTR, and dt_masks_form_group_t::opacity.
Referenced by _set_hinter_message(), and dt_masks_create_menu().
| dt_masks_form_group_t * dt_masks_form_get_selected_group | ( | const struct dt_masks_form_t * | form, |
| const struct dt_masks_form_gui_t * | gui | ||
| ) |
| dt_masks_form_group_t * dt_masks_form_get_selected_group_live | ( | const struct dt_masks_form_t * | form, |
| const struct dt_masks_form_gui_t * | gui | ||
| ) |
Return the currently selected group entry, resolving to the live form group when the GUI is operating on a temporary copy (for example the visible group created for editing).
The selection is taken from gui->group_selected. If the selected entry belongs to a temporary group (non-zero parentid), the function resolves and returns the corresponding entry from the real group in dev->forms.
Referenced by rt_get_selected_shape_id().
| dt_masks_form_group_t * dt_masks_form_group_from_parentid | ( | int | parent_id, |
| int | form_id | ||
| ) |
Return the group entry for a (parent, form) pair.
Getters and setters for direct GUI interaction
Caveat: returns NULL if parent isn't a group or the entry is missing.
Definition at line 436 of file develop/masks/masks.c.
References _masks_group_find_form(), darktable, darktable_t::develop, dt_masks_get_from_id(), DT_MASKS_GROUP, IS_NULL_PTR, and dt_masks_form_t::type.
Referenced by _blendop_masks_group_operation_callback(), dt_masks_create_menu(), dt_masks_form_change_opacity(), and dt_masks_form_get_selected_group_live().
|
inlinestatic |
Definition at line 641 of file masks.h.
References DT_MASKS_CLONE, and dt_masks_form_t::type.
Referenced by _circle_events_post_expose(), _circle_get_creation_preview(), _circle_init_new(), _ellipse_events_post_expose(), _ellipse_get_creation_preview(), and _ellipse_init_new().
| void dt_masks_form_move | ( | dt_masks_form_t * | grp, |
| int | formid, | ||
| int | up | ||
| ) |
Definition at line 3771 of file develop/masks/masks.c.
References DT_MASKS_GROUP, dt_masks_form_group_t::formid, IS_NULL_PTR, dt_masks_form_t::points, and dt_masks_form_t::type.
Referenced by _masks_move_up_down_callback(), _tree_movedown(), and _tree_moveup().
| float dt_masks_form_set_interaction_value | ( | dt_masks_form_group_t * | form_group, |
| dt_masks_interaction_t | interaction, | ||
| float | value, | ||
| dt_masks_increment_t | increment, | ||
| int | flow, | ||
| struct dt_masks_form_gui_t * | gui, | ||
| struct dt_iop_module_t * | module | ||
| ) |
Definition at line 3617 of file develop/masks/masks.c.
References _change_opacity(), darktable, darktable_t::develop, dt_masks_form_update_gravity_center(), dt_masks_get_from_id(), DT_MASKS_INTERACTION_OPACITY, dt_masks_form_group_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_functions_t::set_interaction_value, and value.
Referenced by _masks_gui_interaction_apply_value(), and dt_masks_form_change_opacity().
| void dt_masks_form_update_gravity_center | ( | struct dt_masks_form_t * | form | ) |
Definition at line 3559 of file develop/masks/masks.c.
References dt_masks_form_t::area, DT_DEBUG_MASKS, dt_masks_form_get_gravity_center(), dt_print(), dt_masks_form_t::formid, dt_masks_form_t::gravity_center, IS_NULL_PTR, and dt_masks_form_t::type.
Referenced by dt_masks_form_delete(), dt_masks_form_set_interaction_value(), dt_masks_group_add_form(), dt_masks_group_ungroup(), dt_masks_gui_form_create(), dt_masks_gui_form_save_creation(), dt_masks_read_masks_history(), and dt_masks_replace_current_forms().
|
inlinestatic |
Definition at line 636 of file masks.h.
References DT_MASKS_CLONE, DT_MASKS_NON_CLONE, and dt_masks_form_t::type.
Referenced by _circle_get_creation_values(), and _ellipse_get_creation_values().
| void dt_masks_free_form | ( | dt_masks_form_t * | form | ) |
Definition at line 2252 of file develop/masks/masks.c.
References dt_free, dt_free_gpointer(), IS_NULL_PTR, and dt_masks_form_t::points.
Referenced by dt_dev_cleanup(), dt_dev_free_history_item(), dt_dev_history_item_update_from_params(), dt_dev_pixelpipe_cleanup(), dt_dev_pixelpipe_process(), dt_masks_change_form_gui(), dt_masks_form_exit_creation(), and leave().
| GdkModifierType dt_masks_get_accel_mods | ( | dt_masks_interaction_t | interaction | ) |
| int dt_masks_get_area | ( | dt_iop_module_t * | module, |
| dt_dev_pixelpipe_t * | pipe, | ||
| 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
Definition at line 1538 of file develop/masks/masks.c.
References dt_masks_form_t::functions, and dt_masks_functions_t::get_area.
Referenced by __attribute__(), rt_compute_roi_in(), and rt_masks_form_is_in_roi().
| dt_masks_edit_mode_t dt_masks_get_edit_mode | ( | struct dt_iop_module_t * | module | ) |
Definition at line 3155 of file develop/masks/masks.c.
References darktable, darktable_t::develop, DT_MASKS_EDIT_OFF, dt_masks_form_gui_t::edit_mode, and dt_develop_t::form_gui.
Referenced by dt_dev_history_undo_end_record_locked().
|
inlinestatic |
Definition at line 563 of file masks.h.
References IS_NULL_PTR.
Referenced by _brush_get_interaction_value(), and _polygon_get_interaction_value().
| dt_masks_form_t * dt_masks_get_from_id | ( | dt_develop_t * | dev, |
| int | id | ||
| ) |
returns a form with formid == id from dev->forms
Definition at line 2004 of file develop/masks/masks.c.
References dt_masks_get_from_id_ext(), dt_pthread_rwlock_rdlock, dt_pthread_rwlock_unlock, dt_develop_t::forms, and dt_develop_t::masks_mutex.
Referenced by _blendop_masks_all_delete_callback(), _blendop_masks_all_name_edited(), _blendop_masks_all_selection_changed(), _blendop_masks_all_toggled(), _blendop_masks_group_button_pressed(), _blendop_masks_group_delete(), _blendop_masks_group_from_module(), _blendop_masks_group_move_callback(), _blendop_masks_group_selection_changed(), _blendop_masks_group_tree_append(), _blendop_masks_group_unlink(), _blendop_masks_group_update_row(), _blendop_masks_is_group_with_shapes(), _blendop_masks_is_single_group_wrapper(), _blendop_masks_show_and_edit(), _brush_add_node_callback(), _brush_events_button_released(), _brush_reset_round_node_callback(), _brush_switch_node_callback(), _develop_blend_init_drawn_mask(), _dt_masks_events_get_dispatch_form(), _dt_masks_events_group_update_selection(), _edit_masks(), _find_in_group(), _group_from_module(), _group_get_child_at(), _group_get_gravity_center(), _group_get_mask(), _group_get_mask_roi(), _gui_reset_callback(), _is_form_used(), _lib_masks_handler_callback(), _lib_masks_list_recurs(), _lib_masks_update_item(), _masks_draw_creation_session_forms(), _masks_gui_delete_form_callback(), _masks_gui_delete_node_callback(), _masks_move_up_down_callback(), _masks_remove_shape(), _menu_add_exist(), _polygon_add_node_callback(), _polygon_events_post_expose(), _polygon_reset_round_node_callback(), _polygon_switch_node_callback(), _process(), _reset_form_creation(), _resynch_params(), _set_hinter_message(), _shape_is_being_added(), _tree_add_exist(), _tree_cell_edited(), _tree_context_menu(), _tree_delete_shape(), _tree_difference(), _tree_exclusion(), _tree_format_form_usage_label(), _tree_intersection(), _tree_inverse(), _tree_movedown(), _tree_moveup(), _tree_selection_change(), _tree_union(), _update_foreach(), dt_develop_blend_get_mask_usage(), dt_masks_copy_used_forms_for_module(), dt_masks_create_menu(), dt_masks_events_key_pressed(), dt_masks_form_delete(), dt_masks_form_duplicate(), dt_masks_form_exit_creation(), dt_masks_form_get_interaction_value(), dt_masks_form_group_from_parentid(), dt_masks_form_set_interaction_value(), 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_remove_or_delete(), dt_masks_set_edit_mode(), gui_focus(), gui_update(), modify_roi_in(), post_history_commit(), rt_compute_roi_in(), rt_display_selected_shapes_lbl(), rt_edit_masks_callback(), rt_extend_roi_in_for_clone(), rt_extend_roi_in_from_source_clones(), rt_get_mask_point_group(), rt_menu_select_algorithm_callback(), rt_process_forms(), rt_process_forms_cl(), rt_shape_is_being_added(), rt_show_forms_for_current_scale(), and rt_show_hide_controls().
| dt_masks_form_t * dt_masks_get_from_id_ext | ( | GList * | forms, |
| int | id | ||
| ) |
returns a form with formid == id from a list of forms
Definition at line 1994 of file develop/masks/masks.c.
References dt_masks_form_t::formid.
Referenced by _cleanup_unused_recurs(), _hm_history_masks_match(), _masks_fill_used_forms(), dt_iop_compute_blendop_hash(), dt_masks_copy_used_forms_for_module(), dt_masks_get_from_id(), and rt_resynch_params().
|
inlinestatic |
get the transparency mask of the form and his border
Definition at line 853 of file masks.h.
References dt_masks_form_t::functions, dt_masks_functions_t::get_mask, height, and width.
Referenced by _group_get_mask(), _process(), rt_process_forms(), and rt_process_forms_cl().
| struct dt_iop_module_t * dt_masks_get_mask_manager | ( | struct dt_develop_t * | dev | ) |
return the mask manager module instance if present
Definition at line 2012 of file develop/masks/masks.c.
References dt_develop_t::iop.
|
inlinestatic |
Definition at line 862 of file masks.h.
References dt_masks_form_t::functions, and dt_masks_functions_t::get_mask_roi.
Referenced by _group_get_mask_roi(), and dt_masks_group_render_roi().
| int dt_masks_get_points_border | ( | struct 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
Definition at line 1527 of file develop/masks/masks.c.
References dt_masks_form_t::functions, and dt_masks_functions_t::get_points_border.
Referenced by dt_masks_gui_form_create().
| 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, | ||
| const int | flow | ||
| ) |
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.
| form | the shape to change. We will read its type internally |
| feature | the propertie to change:Â hardness, size, curvature (for gradients) |
| new_value | if 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_min | minimum acceptable value of the property for sanitization |
| v_max | maximum acceptable value of the property for sanitization |
| increment | the increment type: absolute, offset or scale. |
| flow | the value of the scroll distance that can be postive or negative. |
Definition at line 3700 of file develop/masks/masks.c.
References _get_mask_plugin(), _get_mask_type(), dt_conf_get_float(), dt_conf_set_float(), dt_free, dt_masks_apply_increment(), MAX, and MIN.
Referenced by _brush_events_button_pressed(), _brush_events_button_released(), _brush_events_post_expose(), _change_hardness(), _change_size(), _init_hardness(), _init_size(), and dt_masks_get_set_conf_value_with_toast().
| float dt_masks_get_set_conf_value_with_toast | ( | dt_masks_form_t * | form, |
| const char * | feature, | ||
| float | amount, | ||
| float | v_min, | ||
| float | v_max, | ||
| dt_masks_increment_t | increment, | ||
| int | flow, | ||
| const char * | toast_fmt, | ||
| float | toast_scale | ||
| ) |
Update a mask configuration value and emit a toast message.
This is a convenience wrapper around dt_masks_get_set_conf_value() that keeps UI feedback consistent across mask types.
Definition at line 3730 of file develop/masks/masks.c.
References dt_masks_get_set_conf_value(), dt_toast_log(), IS_NULL_PTR, and value.
Referenced by _init_curvature(), _init_extent(), _init_hardness(), _init_hardness(), _init_hardness(), _init_opacity(), _init_opacity(), _init_opacity(), _init_opacity(), _init_rotation(), _init_rotation(), _init_size(), and _init_size().
| int dt_masks_get_source_area | ( | dt_iop_module_t * | module, |
| dt_dev_pixelpipe_t * | pipe, | ||
| dt_dev_pixelpipe_iop_t * | piece, | ||
| dt_masks_form_t * | form, | ||
| int * | width, | ||
| int * | height, | ||
| int * | posx, | ||
| int * | posy | ||
| ) |
Definition at line 1548 of file develop/masks/masks.c.
References DT_MASKS_CLONE, dt_masks_form_t::functions, dt_masks_functions_t::get_source_area, and dt_masks_form_t::type.
Referenced by modify_roi_in(), rt_extend_roi_in_for_clone(), and rt_extend_roi_in_from_source_clones().
| dt_masks_form_t * dt_masks_get_visible_form | ( | const struct dt_develop_t * | dev | ) |
Referenced by _blendop_masks_group_selection_changed(), _brush_add_node_callback(), _brush_events_button_released(), _brush_events_post_expose(), _circle_events_post_expose(), _ellipse_events_post_expose(), _masks_gui_delete_form_callback(), _masks_gui_delete_node_callback(), _masks_move_up_down_callback(), _masks_shape_button_is_current_creation(), _polygon_add_node_callback(), _polygon_creation_closing_form_callback(), _polygon_events_post_expose(), _shape_is_being_added(), button_pressed(), button_released(), dt_masks_iop_update(), expose(), in_mask_editing(), key_pressed(), mouse_leave(), mouse_moved(), rt_get_selected_shape_id(), rt_shape_is_being_added(), and scrolled().
| dt_masks_form_group_t * dt_masks_group_add_form | ( | dt_masks_form_t * | grp, |
| dt_masks_form_t * | form | ||
| ) |
Definition at line 3823 of file develop/masks/masks.c.
References _find_in_group(), dt_conf_get_float(), dt_control_log(), dt_masks_form_update_gravity_center(), DT_MASKS_GROUP, DT_MASKS_STATE_SHOW, DT_MASKS_STATE_UNION, DT_MASKS_STATE_USE, dt_masks_form_group_t::formid, dt_masks_form_t::formid, dt_masks_form_group_t::opacity, dt_masks_form_group_t::parentid, dt_masks_form_t::points, dt_masks_form_group_t::state, and dt_masks_form_t::type.
Referenced by _blendop_masks_all_toggled(), _menu_add_exist(), _tree_add_exist(), and dt_masks_iop_use_same_as().
| uint64_t dt_masks_group_get_hash | ( | uint64_t | hash, |
| dt_masks_form_t * | form | ||
| ) |
Definition at line 3876 of file develop/masks/masks.c.
References darktable, darktable_t::develop, dt_hash(), dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_group_get_hash(), dt_masks_form_group_t::formid, dt_masks_form_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_form_group_t::opacity, dt_masks_functions_t::point_struct_size, dt_masks_form_t::points, dt_masks_form_t::source, dt_masks_form_group_t::state, dt_masks_form_t::type, and dt_masks_form_t::version.
Referenced by _hm_history_masks_match(), dt_dev_masks_update_hash(), dt_iop_compute_blendop_hash(), and dt_masks_group_get_hash().
| int dt_masks_group_index_from_formid | ( | const dt_masks_form_t * | group_form, |
| int | formid | ||
| ) |
Definition at line 335 of file develop/masks/masks.c.
References DT_MASKS_GROUP, dt_masks_form_group_t::formid, IS_NULL_PTR, dt_masks_form_t::points, and dt_masks_form_t::type.
Referenced by _blendop_masks_group_selection_changed(), and dt_masks_form_exit_creation().
| int dt_masks_group_render_roi | ( | dt_iop_module_t * | module, |
| dt_dev_pixelpipe_t * | pipe, | ||
| const dt_dev_pixelpipe_iop_t * | piece, | ||
| dt_masks_form_t * | form, | ||
| const dt_iop_roi_t * | roi, | ||
| float * | buffer | ||
| ) |
Definition at line 663 of file group.c.
References darktable, DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_get_wtime(), dt_masks_get_mask_roi(), dt_print(), IS_NULL_PTR, and darktable_t::unmuted.
Referenced by _develop_blend_init_drawn_mask().
| void dt_masks_group_ungroup | ( | dt_masks_form_t * | dest_grp, |
| dt_masks_form_t * | grp | ||
| ) |
Definition at line 3846 of file develop/masks/masks.c.
References darktable, darktable_t::develop, dt_masks_form_update_gravity_center(), dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_group_ungroup(), dt_masks_form_group_t::formid, IS_NULL_PTR, dt_masks_form_group_t::opacity, dt_masks_form_group_t::parentid, dt_masks_form_t::points, dt_masks_form_group_t::state, and dt_masks_form_t::type.
Referenced by _tree_selection_change(), dt_masks_group_ungroup(), dt_masks_set_edit_mode(), and rt_show_forms_for_current_scale().
| void dt_masks_group_update_name | ( | dt_iop_module_t * | module | ) |
Definition at line 3231 of file develop/masks/masks.c.
References _group_from_module(), _set_group_name_from_module(), darktable, darktable_t::develop, dt_masks_iop_update(), and IS_NULL_PTR.
Referenced by _rename_module_key_press().
|
inlinestatic |
Definition at line 554 of file masks.h.
References dt_masks_gui_selected_node_index(), IS_NULL_PTR, and TRUE.
Referenced by _change_hardness(), _change_hardness(), _change_size(), and _change_size().
| void dt_masks_gui_cleanup | ( | struct dt_develop_t * | dev | ) |
Definition at line 383 of file develop/masks/masks.c.
References dt_free, dt_masks_clear_form_gui(), dt_masks_form_exit_creation(), dt_masks_set_visible_form(), dt_develop_t::form_gui, and IS_NULL_PTR.
Referenced by leave().
| int dt_masks_gui_confirm_delete_form_dialog | ( | const char * | form_name | ) |
Dialogs
Definition at line 439 of file masks_gui.c.
References darktable, dt_ui_main_window(), darktable_t::gui, IS_NULL_PTR, and dt_gui_gtk_t::ui.
Referenced by dt_masks_remove_or_delete().
|
inlinestatic |
Definition at line 603 of file masks.h.
References dt_dev_coordinates_raw_abs_to_raw_norm(), and dt_masks_form_gui_t::raw_pos.
Referenced by _add_node_to_segment(), _add_node_to_segment(), _circle_get_creation_preview(), _circle_init_new(), _ellipse_get_creation_preview(), _ellipse_init_new(), _gradient_get_creation_preview(), _gradient_init_new(), and _polygon_events_button_pressed().
|
inlinestatic |
Definition at line 626 of file masks.h.
References dt_masks_gui_delta_to_raw_norm().
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
|
inlinestatic |
Definition at line 618 of file masks.h.
References dt_masks_form_gui_t::delta, and dt_masks_form_gui_t::pos.
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
|
inlinestatic |
Definition at line 611 of file masks.h.
References dt_masks_form_gui_t::delta, dt_dev_coordinates_image_abs_to_raw_norm(), and dt_masks_form_gui_t::pos.
Referenced by _brush_events_mouse_moved(), _circle_events_mouse_moved(), _ellipse_events_mouse_moved(), _gradient_events_mouse_moved(), _polygon_events_mouse_moved(), and dt_masks_gui_delta_from_raw_anchor().
| 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 | ||
| ) |
functions used to manipulate gui data
Definition at line 844 of file develop/masks/masks.c.
References dt_dev_pixelpipe_t::backbuf, dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, darktable, darktable_t::develop, dt_dev_backbuf_get_hash(), DT_MASKS_CLONE, dt_masks_form_update_gravity_center(), dt_masks_get_points_border(), dt_masks_gui_form_remove(), dt_masks_form_t::formid, dt_masks_form_gui_t::formid, dt_masks_form_gui_t::pipe_hash, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_points_t::points_count, dt_develop_t::preview_pipe, dt_masks_form_gui_points_t::source, dt_masks_form_gui_points_t::source_count, TRUE, dt_masks_form_t::type, and dt_masks_form_gui_t::type.
Referenced by _add_node_to_segment(), _add_node_to_segment(), _brush_events_mouse_moved(), _change_curvature(), _change_extent(), _change_hardness(), _change_hardness(), _change_hardness(), _change_hardness(), _change_rotation(), _change_rotation(), _change_size(), _change_size(), _change_size(), _change_size(), _circle_events_mouse_moved(), _dt_masks_events_flush_rebuild_if_needed(), _ellipse_events_button_released(), _ellipse_events_mouse_moved(), _gradient_events_button_pressed(), _gradient_events_button_released(), _gradient_events_mouse_moved(), _polygon_events_button_pressed(), _polygon_events_mouse_moved(), dt_masks_gui_form_create_throttled(), dt_masks_gui_form_test_create(), dt_masks_remove_node(), dt_masks_reset_bezier_ctrl_points(), and dt_masks_toggle_bezier_node_type().
| gboolean dt_masks_gui_form_create_throttled | ( | dt_masks_form_t * | form, |
| dt_masks_form_gui_t * | gui, | ||
| int | index, | ||
| struct dt_iop_module_t * | module, | ||
| float | posx, | ||
| float | posy | ||
| ) |
Definition at line 880 of file develop/masks/masks.c.
References dt_dev_pixelpipe_t::backbuf, darktable, darktable_t::develop, dt_dev_backbuf_get_hash(), dt_get_wtime(), dt_masks_gui_form_create(), FALSE, IS_NULL_PTR, dt_masks_form_gui_t::last_rebuild_pos, dt_masks_form_gui_t::last_rebuild_ts, dt_masks_form_gui_t::pipe_hash, dt_develop_t::preview_pipe, dt_masks_form_gui_t::rebuild_pending, and TRUE.
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
| void dt_masks_gui_form_remove | ( | dt_masks_form_t * | form, |
| dt_masks_form_gui_t * | gui, | ||
| int | index | ||
| ) |
Definition at line 1271 of file develop/masks/masks.c.
References dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, dt_pixelpipe_cache_free_align, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_masks_form_gui_t::formid, IS_NULL_PTR, dt_masks_form_gui_t::pipe_hash, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_points_t::points_count, dt_masks_form_gui_points_t::source, and dt_masks_form_gui_points_t::source_count.
Referenced by dt_masks_gui_form_create().
| 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 | ||
| ) |
Save the form creation right after a shape has been finished drawing.
| dev | the develop structure |
| module | the module owning the mask |
| form | the form to save |
| gui | the GUI state of the form |
Definition at line 1382 of file develop/masks/masks.c.
References _check_id(), _group_create(), _group_from_module(), dt_masks_form_gui_t::creation_closing_form, dt_masks_form_gui_t::creation_formids, dt_masks_form_gui_t::creation_last_formid, dt_masks_form_gui_t::creation_type, darktable, dt_conf_get_float(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_masks_append_form(), DT_MASKS_CLONE, dt_masks_create(), dt_masks_dynbuf_free(), DT_MASKS_EVENT_ADD, dt_masks_form_exit_creation(), dt_masks_form_gui_points_free(), dt_masks_form_update_gravity_center(), DT_MASKS_GROUP, dt_masks_iop_update(), DT_MASKS_NON_CLONE, dt_masks_set_visible_form(), dt_masks_soft_reset_form_gui(), DT_MASKS_STATE_SHOW, DT_MASKS_STATE_UNION, DT_MASKS_STATE_USE, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pthread_rwlock_rdlock, dt_pthread_rwlock_unlock, DT_SIGNAL_MASK_CHANGED, FALSE, dt_masks_form_group_t::formid, dt_masks_form_t::formid, dt_masks_form_gui_t::formid, dt_develop_t::forms, dt_masks_form_t::functions, dt_masks_form_gui_t::guipoints, dt_masks_form_gui_t::guipoints_count, dt_masks_form_gui_t::guipoints_payload, IS_NULL_PTR, dt_develop_t::masks_mutex, dt_masks_form_t::name, dt_masks_form_group_t::opacity, dt_masks_form_group_t::parentid, dt_masks_form_gui_t::pipe_hash, dt_masks_form_t::points, dt_masks_form_gui_t::points, dt_masks_functions_t::set_form_name, darktable_t::signals, dt_masks_form_group_t::state, TRUE, and dt_masks_form_t::type.
Referenced by _brush_events_button_released(), _circle_events_button_pressed(), _ellipse_events_button_pressed(), _gradient_events_button_pressed(), _polygon_creation_closing_form(), and legacy_params().
| void dt_masks_gui_form_test_create | ( | dt_masks_form_t * | form, |
| dt_masks_form_gui_t * | gui, | ||
| struct dt_iop_module_t * | module | ||
| ) |
Definition at line 1290 of file develop/masks/masks.c.
References dt_dev_pixelpipe_t::backbuf, darktable, darktable_t::develop, dt_dev_backbuf_get_hash(), dt_masks_form_gui_points_free(), dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_gui_form_create(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_masks_form_group_t::formid, dt_masks_form_gui_t::formid, IS_NULL_PTR, dt_masks_form_gui_t::pipe_hash, dt_masks_form_t::points, dt_masks_form_gui_t::points, dt_develop_t::preview_pipe, and dt_masks_form_t::type.
Referenced by _masks_draw_creation_session_forms(), and dt_masks_events_post_expose().
| void dt_masks_gui_init | ( | struct dt_develop_t * | dev | ) |
Definition at line 367 of file develop/masks/masks.c.
References dt_masks_clear_form_gui(), dt_masks_init_form_gui(), dt_masks_set_visible_form(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_develop_t::form_gui, dt_masks_form_gui_t::formid, IS_NULL_PTR, and dt_masks_form_gui_t::pipe_hash.
Referenced by enter().
| gboolean dt_masks_gui_is_dragging | ( | const dt_masks_form_gui_t * | gui | ) |
Definition at line 422 of file develop/masks/masks.c.
References darktable, FALSE, dt_masks_form_gui_t::form_dragging, darktable_t::gui, dt_masks_form_gui_t::handle_border_dragging, dt_masks_form_gui_t::handle_dragging, dt_gui_gtk_t::is_dragging, IS_NULL_PTR, dt_gui_gtk_t::mouse, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::seg_dragging, and dt_masks_form_gui_t::source_dragging.
Referenced by _brush_events_button_released(), _dt_masks_events_flush_rebuild_if_needed(), _dt_masks_events_should_update_hover_on_move(), and _polygon_events_button_released().
| gboolean dt_masks_gui_remove | ( | struct dt_iop_module_t * | module, |
| dt_masks_form_t * | form, | ||
| dt_masks_form_gui_t * | gui, | ||
| const int | parentid | ||
| ) |
remove a mask shape or node form from the GUI. This function is used with a popupmenu "Delete" action.
| module | The module owning the mask |
| form | The form to remove |
| gui | The GUI state of the form |
| parentid | The parent ID of the form |
Definition at line 1241 of file develop/masks/masks.c.
References _masks_remove_shape(), DT_MASKS_EDIT_FULL, dt_masks_form_exit_creation(), DT_MASKS_IS_PATH_SHAPE, dt_masks_remove_node(), dt_masks_remove_or_delete(), dt_masks_form_gui_t::edit_mode, FALSE, dt_masks_form_t::formid, g_list_shorter_than(), dt_masks_form_gui_t::group_selected, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_t::points, TRUE, and dt_masks_form_t::type.
Referenced by _group_events_key_pressed(), and dt_masks_events_key_pressed().
| void dt_masks_gui_reset_dragging | ( | dt_masks_form_gui_t * | gui | ) |
Definition at line 410 of file develop/masks/masks.c.
References FALSE, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::handle_border_dragging, dt_masks_form_gui_t::handle_dragging, IS_NULL_PTR, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::seg_dragging, and dt_masks_form_gui_t::source_dragging.
Referenced by dt_masks_events_button_released().
|
inlinestatic |
Definition at line 544 of file masks.h.
References dt_masks_form_gui_t::handle_border_hovered, and dt_masks_form_gui_t::handle_border_selected.
Referenced by _brush_events_post_expose(), and _polygon_events_post_expose().
|
inlinestatic |
Definition at line 539 of file masks.h.
References dt_masks_form_gui_t::handle_hovered, and dt_masks_form_gui_t::handle_selected.
Referenced by _brush_events_post_expose(), _brush_reset_round_node_callback(), _polygon_events_post_expose(), and _polygon_reset_round_node_callback().
|
inlinestatic |
Definition at line 534 of file masks.h.
References dt_masks_form_gui_t::node_selected, and dt_masks_form_gui_t::node_selected_idx.
Referenced by _brush_events_post_expose(), _brush_switch_node_callback(), _ellipse_draw_handles(), _polygon_events_post_expose(), _polygon_switch_node_callback(), dt_masks_find_closest_handle_common(), and dt_masks_gui_change_affects_selected_node_or_all().
|
inlinestatic |
Definition at line 549 of file masks.h.
References dt_masks_form_gui_t::seg_hovered.
Referenced by _add_node_to_segment(), _add_node_to_segment(), _brush_events_post_expose(), and dt_masks_draw_path_seg_by_seg().
| void dt_masks_gui_set_dragging | ( | dt_masks_form_gui_t * | gui | ) |
Definition at line 396 of file develop/masks/masks.c.
References dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::handle_border_dragging, dt_masks_form_gui_t::handle_border_hovered, dt_masks_form_gui_t::handle_border_selected, dt_masks_form_gui_t::handle_dragging, dt_masks_form_gui_t::handle_hovered, dt_masks_form_gui_t::handle_selected, IS_NULL_PTR, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::seg_dragging, dt_masks_form_gui_t::seg_hovered, dt_masks_form_gui_t::seg_selected, dt_masks_form_gui_t::source_dragging, dt_masks_form_gui_t::source_selected, and TRUE.
Referenced by _apply_gui_button_pressed_state().
|
inlinestatic |
Definition at line 587 of file masks.h.
References DT_GUI_MOUSE_EFFECT_RADIUS, FALSE, dt_masks_form_gui_t::last_hit_test_pos, dt_masks_form_gui_t::pos, and TRUE.
Referenced by _dt_masks_events_should_update_hover_on_move().
|
inlinestatic |
Definition at line 529 of file masks.h.
References dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::pivot_selected, and dt_masks_form_gui_t::source_selected.
Referenced by dt_masks_find_closest_handle_common().
| void dt_masks_init_form_gui | ( | dt_masks_form_gui_t * | gui | ) |
init dt_masks_form_gui_t struct with default values
Definition at line 792 of file develop/masks/masks.c.
References dt_masks_form_gui_t::border_selected, DT_MASKS_SOURCE_POS_RELATIVE_TEMP, FALSE, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::handle_border_hovered, dt_masks_form_gui_t::handle_border_selected, dt_masks_form_gui_t::handle_hovered, dt_masks_form_gui_t::handle_selected, dt_masks_form_gui_t::last_hit_test_pos, dt_masks_form_gui_t::last_rebuild_pos, dt_masks_form_gui_t::last_rebuild_ts, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::node_selected_idx, dt_masks_form_gui_t::pivot_selected, dt_masks_form_gui_t::pos, dt_masks_form_gui_t::pos_source, dt_masks_form_gui_t::raw_pos, dt_masks_form_gui_t::rebuild_pending, dt_masks_form_gui_t::rel_pos, dt_masks_form_gui_t::seg_hovered, dt_masks_form_gui_t::seg_selected, dt_masks_form_gui_t::source_pos_type, and dt_masks_form_gui_t::source_selected.
Referenced by _masks_draw_creation_session_forms(), and dt_masks_gui_init().
Definition at line 3277 of file develop/masks/masks.c.
References _group_from_module(), darktable, darktable_t::develop, dt_bauhaus_combobox_add(), dt_bauhaus_combobox_length(), dt_bauhaus_combobox_remove_at(), dt_free, dt_history_item_get_name(), dt_iop_request_focus(), DT_MASKS_CLONE, DT_MASKS_GROUP, DT_MASKS_NON_CLONE, dt_pthread_rwlock_rdlock, dt_pthread_rwlock_unlock, dt_masks_form_group_t::formid, dt_masks_form_t::formid, IOP_FLAGS_NO_MASKS, IOP_FLAGS_SUPPORTS_BLENDING, dt_iop_gui_blend_data_t::masks_combo, dt_iop_gui_blend_data_t::masks_combo_ids, dt_masks_form_t::name, dt_masks_form_t::points, and dt_masks_form_t::type.
| void dt_masks_iop_update | ( | struct dt_iop_module_t * | module | ) |
Definition at line 3743 of file blend_gui.c.
References _blendop_masks_refresh_lists(), dt_iop_module_t::blend_data, dt_iop_module_t::blend_params, dt_masks_form_gui_t::creation, dt_masks_form_gui_t::creation_module, dt_masks_form_gui_t::creation_type, darktable, dt_iop_module_t::dev, darktable_t::develop, DEVELOP_COMBINE_MASKS_POS, DEVELOP_MASKS_NB_SHAPES, dt_bauhaus_combobox_add(), dt_bauhaus_combobox_clear(), dt_bauhaus_combobox_set(), dt_iop_add_remove_mask_indicator(), DT_MASKS_EDIT_OFF, dt_masks_get_from_id(), dt_masks_get_visible_form(), DT_MASKS_GROUP, DT_MASKS_NONE, dt_masks_set_edit_mode(), FALSE, darktable_t::gui, IS_NULL_PTR, dt_develop_blend_params_t::mask_combine, dt_develop_blend_params_t::mask_id, dt_iop_gui_blend_data_t::masks_combo, dt_iop_gui_blend_data_t::masks_edit, dt_iop_gui_blend_data_t::masks_inited, dt_iop_gui_blend_data_t::masks_polarity, dt_iop_gui_blend_data_t::masks_shapes, dt_iop_gui_blend_data_t::masks_shown, dt_iop_gui_blend_data_t::masks_support, dt_iop_gui_blend_data_t::masks_type, n, dt_masks_form_t::points, dt_gui_gtk_t::reset, TRUE, and dt_masks_form_t::type.
Referenced by _blendop_masks_apply_and_commit(), _brush_events_button_released(), _menu_add_exist(), _menu_no_masks(), _tree_add_exist(), dt_iop_gui_update_blending(), dt_masks_form_delete(), dt_masks_form_exit_creation(), dt_masks_group_update_name(), dt_masks_gui_form_save_creation(), and dt_masks_iop_value_changed_callback().
| void dt_masks_iop_use_same_as | ( | struct dt_iop_module_t * | module, |
| struct dt_iop_module_t * | src | ||
| ) |
Definition at line 3242 of file develop/masks/masks.c.
References _group_create(), _group_from_module(), dt_iop_module_t::blend_params, darktable, darktable_t::develop, dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_group_add_form(), dt_masks_form_group_t::formid, IS_NULL_PTR, dt_develop_blend_params_t::mask_id, dt_masks_form_group_t::opacity, dt_masks_form_t::points, dt_masks_form_group_t::state, and dt_masks_form_t::type.
Referenced by dt_iop_gui_duplicate(), and dt_masks_iop_value_changed_callback().
| void dt_masks_iop_value_changed_callback | ( | GtkWidget * | widget, |
| struct dt_iop_module_t * | module | ||
| ) |
Definition at line 3361 of file develop/masks/masks.c.
References _menu_add_exist(), _menu_add_shape(), _menu_no_masks(), dt_iop_module_t::blend_data, dt_iop_module_t::dev, dt_bauhaus_combobox_get(), dt_dev_add_history_item, DT_MASKS_BRUSH, DT_MASKS_CIRCLE, DT_MASKS_EDIT_FULL, DT_MASKS_ELLIPSE, DT_MASKS_GRADIENT, dt_masks_iop_update(), dt_masks_iop_use_same_as(), DT_MASKS_POLYGON, dt_masks_set_edit_mode(), dt_develop_t::iop, dt_iop_gui_blend_data_t::masks_combo, dt_iop_gui_blend_data_t::masks_combo_ids, and TRUE.
| gboolean dt_masks_is_anything_hovered | ( | const dt_masks_form_gui_t * | mask_gui | ) |
Returns TRUE if anything in the mask is hovered at all, regardless of what it is.
Definition at line 2280 of file develop/masks/masks.c.
References dt_masks_form_gui_t::handle_border_hovered, dt_masks_form_gui_t::handle_hovered, dt_masks_form_gui_t::node_hovered, and dt_masks_form_gui_t::seg_hovered.
Referenced by _dt_masks_events_group_update_selection(), _set_cursor_shape(), and dt_masks_events_button_pressed().
| gboolean dt_masks_is_anything_selected | ( | const dt_masks_form_gui_t * | mask_gui | ) |
Returns TRUE if anything in the mask is selected at all, regardless of what it is.
Definition at line 2270 of file develop/masks/masks.c.
References dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::handle_border_selected, dt_masks_form_gui_t::handle_selected, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::seg_selected, and dt_masks_form_gui_t::source_selected.
Referenced by _brush_events_mouse_scrolled(), _polygon_events_mouse_scrolled(), _set_cursor_shape(), dt_masks_draw_path_seg_by_seg(), dt_masks_events_button_pressed(), and dt_masks_events_mouse_scrolled().
| int dt_masks_legacy_params | ( | dt_develop_t * | dev, |
| void * | params, | ||
| const int | old_version, | ||
| const int | new_version | ||
| ) |
Definition at line 1884 of file develop/masks/masks.c.
References dt_masks_legacy_params_v1_to_v2(), dt_masks_legacy_params_v2_to_v3(), dt_masks_legacy_params_v3_to_v4(), dt_masks_legacy_params_v4_to_v5(), and dt_masks_legacy_params_v5_to_v6().
Referenced by dt_masks_read_masks_history(), and legacy_params().
| gboolean dt_masks_node_is_cusp | ( | const dt_masks_form_gui_points_t * | gpt, |
| const int | index | ||
| ) |
returns wether a node is a corner or not. A node is a corner if its 2 control handles are at the same position, else it's a curve.
| gpt | the GUI points of the mask form |
| index | the index of the node to test |
| nb | the number of coord by node |
| coord_offset | the offset of the coordinates in the points array |
Definition at line 2660 of file develop/masks/masks.c.
References FALSE, IS_NULL_PTR, dt_masks_form_gui_points_t::points, and dt_masks_form_gui_points_t::points_count.
Referenced by _brush_events_button_pressed(), _brush_events_post_expose(), _brush_populate_context_menu(), _polygon_events_button_pressed(), _polygon_events_post_expose(), _polygon_populate_context_menu(), dt_masks_find_closest_handle_common(), dt_masks_reset_bezier_ctrl_points(), and dt_masks_toggle_bezier_node_type().
| int dt_masks_point_in_form_exact | ( | const float * | test_points, |
| int | test_point_count, | ||
| const float * | form_points, | ||
| int | form_points_start, | ||
| int | form_points_count | ||
| ) |
Check whether any 2D point in pts[] lies inside the form points[].
utils functions
We use the ray casting algorithm for each tested point.
| pts | Flat array of tested points [x0, y0, x1, y1, ...]. |
| num_pts | Number of tested points in pts. |
| points | The array of form vertices. |
| points_start | The starting index of the form vertices in the array. |
| points_count | The total number of vertices in the form. |
Definition at line 4066 of file develop/masks/masks.c.
References i, and IS_NULL_PTR.
Referenced by _circle_get_distance(), _ellipse_get_distance(), _polygon_get_distance(), and dt_masks_draw_source().
| gboolean dt_masks_point_is_within_radius | ( | const float | point_x, |
| const float | point_y, | ||
| const float | center_x, | ||
| const float | center_y, | ||
| const float | squared_radius | ||
| ) |
Check if a point (px,py) is inside a radius from a center point (cx,cy)
| px | x coord of the point to test |
| py | y coord of the point to test |
| cx | center x coord |
| cy | center y coord |
| radius | the radius from center |
Check if a point (px,py) is inside a radius from a center point (cx,cy)
Assumptions/caveats:
Definition at line 66 of file develop/masks/masks.c.
Referenced by dt_masks_find_closest_handle_common().
|
inlinestatic |
Definition at line 807 of file masks.h.
References dt_masks_preview_buffers_t::border, dt_pixelpipe_cache_free_align, dt_masks_preview_buffers_t::points, and dt_masks_preview_buffers_t::source_points.
Referenced by _circle_events_post_expose(), _circle_get_creation_preview(), _ellipse_events_post_expose(), _ellipse_get_creation_preview(), and _gradient_events_post_expose().
|
inlinestatic |
Definition at line 732 of file masks.h.
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
| void dt_masks_read_masks_history | ( | dt_develop_t * | dev, |
| const int32_t | imgid | ||
| ) |
read the forms from the db
Definition at line 2103 of file develop/masks/masks.c.
References darktable, darktable_t::db, dt_control_log(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_dev_get_history_end_ext(), dt_masks_create(), dt_masks_form_update_gravity_center(), dt_masks_legacy_params(), dt_masks_replace_current_forms(), dt_masks_version(), dt_image_t::filename, dt_masks_form_t::formid, dt_dev_history_item_t::forms, dt_masks_form_t::functions, dt_develop_t::history, dt_develop_t::image_storage, dt_masks_form_t::name, dt_dev_history_item_t::num, dt_masks_functions_t::point_struct_size, dt_masks_form_t::points, dt_masks_form_t::source, and dt_masks_form_t::version.
Referenced by dt_dev_read_history_ext().
| void dt_masks_remove_form | ( | dt_develop_t * | dev, |
| dt_masks_form_t * | form | ||
| ) |
Definition at line 1375 of file develop/masks/masks.c.
References dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, dt_develop_t::forms, and dt_develop_t::masks_mutex.
Referenced by dt_masks_form_delete().
| void dt_masks_remove_node | ( | struct dt_iop_module_t * | module, |
| dt_masks_form_t * | form, | ||
| int | parentid, | ||
| dt_masks_form_gui_t * | gui, | ||
| int | index, | ||
| int | node_index | ||
| ) |
Definition at line 932 of file develop/masks/masks.c.
References dt_free, dt_masks_gui_form_create(), FALSE, dt_masks_form_t::functions, dt_masks_functions_t::init_ctrl_points, IS_NULL_PTR, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::node_selected_idx, and dt_masks_form_t::points.
Referenced by _masks_gui_delete_node_callback(), _polygon_events_key_pressed(), and dt_masks_gui_remove().
| gboolean dt_masks_remove_or_delete | ( | struct dt_iop_module_t * | module, |
| dt_masks_form_t * | sel, | ||
| int | parent_id, | ||
| dt_masks_form_gui_t * | mask_gui, | ||
| int | form_id | ||
| ) |
If the form to remove is used once, ask to the user if he wants to delete it from the list or just remove and keep for later reuse.
| module | The module owning the mask |
| sel | The form to remove |
| parent_id | The parent ID of the form |
| mask_gui | The GUI state of the form |
| form_id | The form ID of the form to remove |
Definition at line 1030 of file develop/masks/masks.c.
References _masks_gui_form_group_use_count(), _masks_remove_shape(), darktable, darktable_t::develop, DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_add_history_item, dt_dev_masks_selection_change(), dt_free, dt_masks_change_form_gui(), dt_masks_clear_form_gui(), DT_MASKS_EVENT_DELETE, DT_MASKS_EVENT_REMOVE, dt_masks_form_delete(), dt_masks_get_from_id(), dt_masks_get_visible_form(), DT_MASKS_GROUP, dt_masks_gui_confirm_delete_form_dialog(), dt_masks_select_form(), DT_SIGNAL_MASK_CHANGED, dt_masks_form_gui_t::edit_mode, FALSE, dt_masks_form_gui_t::form_selected, dt_masks_form_group_t::formid, dt_masks_form_t::formid, g_list_shorter_than(), dt_masks_form_gui_t::group_selected, IS_NULL_PTR, dt_masks_form_t::name, dt_masks_form_t::points, darktable_t::signals, TRUE, and dt_masks_form_t::type.
Referenced by _masks_gui_delete_form_callback(), and dt_masks_gui_remove().
| void dt_masks_replace_current_forms | ( | dt_develop_t * | dev, |
| GList * | forms | ||
| ) |
replace dev->forms with forms
Definition at line 1973 of file develop/masks/masks.c.
References dt_develop_t::allforms, darktable, darktable_t::develop, dt_masks_dup_forms_deep(), dt_masks_form_update_gravity_center(), dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, dt_develop_t::forms, and dt_develop_t::masks_mutex.
Referenced by dt_dev_pop_history_items_ext(), dt_masks_cleanup_unused(), and dt_masks_read_masks_history().
|
inlinestatic |
Definition at line 710 of file masks.h.
References dt_masks_gui_form_create(), dt_masks_node_is_cusp(), DT_MASKS_POINT_STATE_NORMAL, FALSE, dt_masks_form_t::functions, dt_masks_functions_t::init_ctrl_points, IS_NULL_PTR, state, and TRUE.
Referenced by _brush_reset_round_node_callback(), and _polygon_reset_round_node_callback().
Definition at line 3120 of file develop/masks/masks.c.
References dt_masks_change_form_gui(), DT_MASKS_EDIT_OFF, dt_masks_shape_buttons_deactivate_all(), IOP_FLAGS_NO_MASKS, IOP_FLAGS_SUPPORTS_BLENDING, IS_NULL_PTR, dt_iop_gui_blend_data_t::masks_edit, and dt_iop_gui_blend_data_t::masks_shown.
Referenced by dt_iop_request_focus(), and gui_reset().
Definition at line 3135 of file develop/masks/masks.c.
References darktable, darktable_t::develop, DT_MASKS_EDIT_OFF, dt_masks_shape_buttons_deactivate_all(), FALSE, dt_develop_t::iop, IOP_FLAGS_SUPPORTS_BLENDING, and IS_NULL_PTR.
Referenced by _tree_selection_change().
|
inlinestatic |
Definition at line 646 of file masks.h.
References dt_masks_form_t::source.
Referenced by _circle_init_new(), and _ellipse_init_new().
| float dt_masks_rotate_with_anchor | ( | dt_develop_t * | develop, |
| const float | anchor[2], | ||
| const float | center[2], | ||
| dt_masks_form_gui_t * | mask_gui | ||
| ) |
Rotate a mask shape around its center. WARNING: gui->delta will be updated with the new position after rotation.
| dev | the develop structure |
| anchor | the current cursor position in absolute output-image coordinates. |
| center | the origin point of rotation in absolute output-image coordinates. |
| gui | the GUI form structure |
Rotate a mask shape around its center. WARNING: gui->delta will be updated with the new position after rotation.
anchor, center, and mask_gui->delta are absolute output-image coordinates. The angle accounts for possible axis inversion due to distortion transforms. Updates mask_gui->delta to store the last anchor position.
Definition at line 4298 of file develop/masks/masks.c.
References dt_masks_form_gui_t::delta, dt_dev_coordinates_image_abs_to_raw_abs(), and M_PI.
Referenced by _ellipse_events_mouse_moved(), and _gradient_events_mouse_moved().
|
inlinestatic |
Definition at line 1441 of file masks.h.
Referenced by _circle_get_mask_roi().
| void dt_masks_select_form | ( | struct dt_iop_module_t * | module, |
| dt_masks_form_t * | selected_form | ||
| ) |
Select or clear the current mask form, notifying the owning module if needed.
allow to select a shape inside an iop
Passing NULL clears the selection.
Definition at line 4122 of file develop/masks/masks.c.
References dt_masks_form_t::formid, and IS_NULL_PTR.
Referenced by _brush_events_button_released(), dt_masks_clear_form_gui(), dt_masks_events_button_pressed(), and dt_masks_remove_or_delete().
|
inlinestatic |
Definition at line 669 of file masks.h.
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
| void dt_masks_set_edit_mode | ( | struct dt_iop_module_t * | module, |
| dt_masks_edit_mode_t | value | ||
| ) |
Definition at line 3162 of file develop/masks/masks.c.
References dt_iop_module_t::blend_data, dt_iop_module_t::blend_params, darktable, dt_iop_module_t::dev, darktable_t::develop, dt_control_queue_redraw_center(), dt_dev_masks_selection_change(), dt_masks_change_form_gui(), dt_masks_create_ext(), DT_MASKS_EDIT_OFF, dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_group_ungroup(), dt_masks_form_gui_t::edit_mode, FALSE, dt_develop_t::form_gui, dt_masks_form_t::formid, IS_NULL_PTR, dt_develop_blend_params_t::mask_id, dt_iop_gui_blend_data_t::masks_edit, dt_iop_gui_blend_data_t::masks_shown, dt_iop_gui_blend_data_t::masks_support, TRUE, and value.
Referenced by _blendop_masks_all_toggled(), _blendop_masks_group_selection_changed(), _blendop_masks_show_and_edit(), _brush_events_button_released(), _edit_masks(), _menu_add_exist(), _menu_no_masks(), _pop_undo(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_update_blending(), dt_masks_form_exit_creation(), dt_masks_iop_update(), dt_masks_iop_value_changed_callback(), and gui_focus().
| void dt_masks_set_source_pos_initial_state | ( | dt_masks_form_gui_t * | mask_gui, |
| const uint32_t | key_state | ||
| ) |
Decide initial source positioning mode for clone masks.
utils for selecting the source of a clone mask while creating it
Uses key modifiers to choose absolute vs. relative positioning, and stores the reference position in preview coordinates. The current implementation caches that reference in absolute output-image coordinates.
Definition at line 4140 of file develop/masks/masks.c.
References DT_MASKS_SOURCE_POS_ABSOLUTE, DT_MASKS_SOURCE_POS_RELATIVE_TEMP, dt_modifier_is(), dt_masks_form_gui_t::pos, dt_masks_form_gui_t::pos_source, and dt_masks_form_gui_t::source_pos_type.
Referenced by _brush_events_button_pressed(), _circle_events_button_pressed(), _ellipse_events_button_pressed(), and _polygon_events_button_pressed().
| void dt_masks_set_source_pos_initial_value | ( | dt_masks_form_gui_t * | mask_gui, |
| dt_masks_form_t * | mask_form | ||
| ) |
Initialize the clone source position based on current GUI state.
Handles first-time relative positioning, existing relative offsets, and absolute coordinates. Updates mask_form->source accordingly. mask_gui->rel_pos is the normalized output-image cursor, while mask_gui->pos_source stores either an absolute output-image position or an absolute output-image delta depending on the current source mode.
Definition at line 4165 of file develop/masks/masks.c.
References darktable, darktable_t::develop, dt_dev_coordinates_image_abs_to_raw_abs(), dt_dev_coordinates_image_abs_to_raw_norm(), dt_dev_coordinates_raw_abs_to_raw_norm(), DT_MASKS_SOURCE_POS_ABSOLUTE, DT_MASKS_SOURCE_POS_RELATIVE, DT_MASKS_SOURCE_POS_RELATIVE_TEMP, dt_masks_form_t::functions, dt_masks_functions_t::initial_source_pos, dt_masks_form_gui_t::pos, dt_masks_form_gui_t::pos_source, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, dt_masks_form_t::source, and dt_masks_form_gui_t::source_pos_type.
Referenced by _brush_events_button_pressed(), _circle_init_new(), _ellipse_init_new(), and _polygon_events_button_pressed().
| void dt_masks_set_visible_form | ( | struct dt_develop_t * | dev, |
| dt_masks_form_t * | form | ||
| ) |
Definition at line 361 of file develop/masks/masks.c.
References dt_develop_t::form_gui, dt_masks_form_gui_t::form_visible, and IS_NULL_PTR.
Referenced by _lib_masks_handler_callback(), dt_masks_change_form_gui(), dt_masks_form_exit_creation(), dt_masks_gui_cleanup(), dt_masks_gui_form_save_creation(), and dt_masks_gui_init().
| GtkWidget * dt_masks_shape_buttons_create | ( | const dt_masks_shape_buttons_config_t * | config | ) |
Build a synchronized toolbar for creating masks shapes.
The buttons all use the same creation callback and listen to a process-wide deactivation signal. This keeps multiple mask toolbars, such as blending, retouch and the shape manager, from showing stale active buttons after another toolbar starts or exits a shape creation.
Definition at line 180 of file masks_gui.c.
References _masks_shape_button_defs, _masks_shape_button_pressed(), _masks_shape_buttons_deactivate_signal(), _masks_shape_buttons_destroy(), dt_masks_shape_buttons_config_t::action_section, dt_masks_shape_buttons_data_t::box, dt_masks_shape_buttons_config_t::buttons, dt_masks_shape_buttons_data_t::buttons, dt_masks_shape_buttons_data_t::config, dt_masks_shape_button_def_t::ctrl_label, darktable, DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_GUI_BOX_SPACING, dt_iop_togglebutton_new(), dt_iop_togglebutton_new_no_register(), DT_SIGNAL_MASK_SHAPE_BUTTONS_DEACTIVATE, dtgtk_togglebutton_new(), FALSE, dt_masks_shape_button_def_t::flag, dt_masks_shape_buttons_config_t::flags, i, dt_masks_shape_button_def_t::index, IS_NULL_PTR, dt_masks_shape_button_def_t::label, dt_masks_shape_buttons_config_t::local, dt_masks_shape_buttons_config_t::owner_module, dt_masks_shape_button_def_t::paint, dt_masks_shape_buttons_config_t::register_flags, darktable_t::signals, dt_masks_shape_button_def_t::type, dt_masks_shape_buttons_config_t::types, and dt_masks_shape_buttons_data_t::types.
Referenced by _blendop_masks_create_shape_buttons(), gui_init(), and gui_init().
Definition at line 86 of file masks_gui.c.
References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_MASK_SHAPE_BUTTONS_DEACTIVATE, and darktable_t::signals.
Referenced by _blendop_masks_show_and_edit(), _lib_masks_recreate_list(), _masks_shape_button_pressed(), dt_iop_gui_blending_lose_focus(), dt_iop_gui_update_blending(), dt_masks_reset_form_gui(), dt_masks_reset_show_masks_icons(), gui_focus(), and rt_edit_masks_callback().
| GList * dt_masks_snapshot_current_forms | ( | dt_develop_t * | dev, |
| gboolean | reset_changed | ||
| ) |
snapshot current dev->forms (deep copy) and optionally reset dev->forms_changed
Definition at line 2023 of file develop/masks/masks.c.
References dt_masks_dup_forms_deep(), dt_pthread_rwlock_rdlock, dt_pthread_rwlock_unlock, FALSE, dt_develop_t::forms, dt_develop_t::forms_changed, and dt_develop_t::masks_mutex.
Referenced by dt_dev_add_history_item_ext(), and dt_dev_history_item_from_source_history_item().
| void dt_masks_soft_reset_form_gui | ( | dt_masks_form_gui_t * | gui | ) |
Definition at line 820 of file develop/masks/masks.c.
References dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::delta, FALSE, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::group_selected, dt_masks_form_gui_t::handle_border_dragging, dt_masks_form_gui_t::handle_border_hovered, dt_masks_form_gui_t::handle_border_selected, dt_masks_form_gui_t::handle_dragging, dt_masks_form_gui_t::handle_hovered, dt_masks_form_gui_t::handle_selected, dt_masks_form_gui_t::last_hit_test_pos, dt_masks_form_gui_t::last_rebuild_pos, dt_masks_form_gui_t::last_rebuild_ts, dt_masks_form_gui_t::node_dragging, dt_masks_form_gui_t::node_hovered, dt_masks_form_gui_t::node_selected, dt_masks_form_gui_t::node_selected_idx, dt_masks_form_gui_t::pivot_selected, dt_masks_form_gui_t::rebuild_pending, dt_masks_form_gui_t::seg_dragging, dt_masks_form_gui_t::seg_hovered, dt_masks_form_gui_t::seg_selected, and dt_masks_form_gui_t::source_selected.
Referenced by _dt_masks_events_group_update_selection(), and dt_masks_gui_form_save_creation().
|
inlinestatic |
Definition at line 682 of file masks.h.
References dt_masks_gui_form_create(), dt_masks_node_is_cusp(), DT_MASKS_POINT_STATE_NORMAL, DT_MASKS_POINT_STATE_USER, FALSE, dt_masks_form_t::functions, dt_masks_functions_t::init_ctrl_points, IS_NULL_PTR, state, and TRUE.
Referenced by _brush_events_button_pressed(), _brush_switch_node_callback(), _polygon_events_button_pressed(), and _polygon_switch_node_callback().
|
inlinestatic |
Definition at line 658 of file masks.h.
Referenced by _brush_translate_node(), and _polygon_translate_node().
|
inlinestatic |
Definition at line 652 of file masks.h.
References dt_masks_form_t::source.
Referenced by _brush_events_mouse_moved(), and _polygon_events_mouse_moved().
| int dt_masks_version | ( | void | ) |
Definition at line 1565 of file develop/masks/masks.c.
References DEVELOP_MASKS_VERSION.
Referenced by dt_masks_create(), dt_masks_read_masks_history(), and legacy_params().
| void dt_masks_write_masks_history_item | ( | const int32_t | imgid, |
| const int | num, | ||
| dt_masks_form_t * | form | ||
| ) |
write the forms into the db
Definition at line 2209 of file develop/masks/masks.c.
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_HISTORY, DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_free, dt_print(), dt_masks_form_t::formid, dt_masks_form_t::functions, dt_masks_form_t::name, dt_masks_functions_t::point_struct_size, dt_masks_form_t::points, dt_masks_form_t::source, dt_masks_form_t::type, and dt_masks_form_t::version.
Referenced by dt_dev_write_history_item(), and legacy_params().
|
extern |
Definition at line 3234 of file develop/masks/brush.c.
Referenced by _brush_events_post_expose(), and dt_masks_create().
|
extern |
the shape-specific function tables
Definition at line 1129 of file circle.c.
Referenced by _circle_events_post_expose(), and dt_masks_create().
|
extern |
Definition at line 1692 of file ellipse.c.
Referenced by _ellipse_events_post_expose(), and dt_masks_create().
|
extern |
Definition at line 1516 of file gradient.c.
Referenced by _gradient_events_post_expose(), and dt_masks_create().
|
extern |
Definition at line 745 of file group.c.
Referenced by dt_masks_create().
|
extern |
Definition at line 3643 of file polygon.c.
Referenced by _polygon_events_post_expose(), and dt_masks_create().