![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <stdint.h>#include <inttypes.h>#include "develop/imageop_gui.h"#include "widgets/bauhaus.h"#include "widgets/resize_handle.h"#include "widgets/widget_settings.h"#include "common/color_picker.h"#include "common/color_vocabulary.h"#include "caches/pixelpipe_cache_alloc.h"#include "common/histogram.h"#include "common/image.h"#include "imageio/imageio_core.h"#include "develop/iop_profile.h"#include "common/logging.h"#include "system/macros.h"#include "math/math.h"#include "system/mem_alloc.h"#include "common/module_versioning.h"#include "system/openmp.h"#include "system/simd.h"#include "common/times.h"#include "common/conf.h"#include "control/control.h"#include "control/signal.h"#include "develop/dev_pixelpipe.h"#include "develop/develop.h"#include "caches/pixelpipe_cache.h"#include "widgets/button.h"#include "gui/color_picker_proxy.h"#include "widgets/draw.h"#include "gui/application.h"#include "libs/lib.h"#include "libs/lib_api.h"#include "libs/colorpicker.h"#include "widgets/collapsible_section.h"#include "widgets/label.h"#include "widgets/scroll_wrap.h"#include "widgets/widget_style.h"#include "gui/screen_metrics.h"#include "widgets/togglebutton.h"
Include dependency graph for libs/histogram.c:Go to the source code of this file.
Data Structures | |
| struct | dt_lib_histogram_cache_t |
| struct | dt_lib_histogram_t |
| struct | dt_histogram_pending_module_refresh_t |
| struct | dt_histogram_preview_refresh_state_t |
| struct | dt_histogram_scope_buf_t |
Macros | |
| #define | HISTOGRAM_BINS 256 |
| #define | GAMMA 1.f / 2.f |
| #define | DT_LIB_HISTOGRAM_SCOPE_MIN_VALUE (1.f / 256.f) |
| #define | DT_LIB_HISTOGRAM_SCOPE_ENABLE_SMOOTHING 1 |
| #define | DT_LIB_HISTOGRAM_SCOPE_SMOOTH_SPATIAL_PASSES 1 |
| #define | DT_LIB_HISTOGRAM_SCOPE_SMOOTH_TONE_PASSES 4 |
| #define | DT_LIB_HISTOGRAM_SCOPE_SMOOTH_FORCE (256 * 0.33) |
| #define | DT_LIB_HISTOGRAM_SCOPE_RESTRICTED_LABEL_OPERATOR CAIRO_OPERATOR_ADD |
| #define | DT_LIB_HISTOGRAM_SCOPE_DEFAULT_HEIGHT 250 |
| #define | DT_LIB_HISTOGRAM_SCOPE_MIN_HEIGHT 120 |
| #define | DT_LIB_HISTOGRAM_SCOPE_MAX_HEIGHT 500 |
| #define | DT_LIB_HISTOGRAM_SCOPE_HANDLE_HEIGHT 8 |
| #define | DT_LIB_HISTOGRAM_SCOPE_HEIGHT_CONF "plugin/darkroom/histogram/scope_height" |
Typedefs | |
| typedef enum dt_lib_histogram_scope_type_t | dt_lib_histogram_scope_type_t |
| typedef struct dt_lib_histogram_cache_t | dt_lib_histogram_cache_t |
| typedef enum dt_lib_colorpicker_model_t | dt_lib_colorpicker_model_t |
| typedef struct dt_lib_histogram_t | dt_lib_histogram_t |
| typedef struct dt_histogram_pending_module_refresh_t | dt_histogram_pending_module_refresh_t |
| typedef struct dt_histogram_preview_refresh_state_t | dt_histogram_preview_refresh_state_t |
| typedef struct dt_histogram_scope_buf_t | dt_histogram_scope_buf_t |
Functions | |
| static void | _schedule_histogram_refresh (dt_lib_module_t *self) |
| static void | _reset_cache (dt_lib_histogram_t *d) |
| static void | _histogram_restart_cache_wait (gpointer user_data) |
| static void | _histogram_restart_scope_cache_wait (gpointer user_data) |
| Retry a scope render after its source cacheline has been published. | |
| static void | _clear_pending_preview_histograms (void) |
| static void | _refresh_module_histogram (const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *const roi, const dt_iop_colorspace_type_t cst, const float *pixel, dt_iop_module_t *module) |
| static dt_backbuf_t * | _get_histogram_backbuf (dt_develop_t *dev, const char *op) |
| static void | _clear_histogram_backbuf (dt_backbuf_t *backbuf) |
| static gboolean | _refresh_global_histogram_backbuf_for_hash (dt_develop_t *dev, const char *op, const uint64_t expected_hash) |
| static gboolean | _refresh_preview_module_histogram_for_hash (dt_develop_t *dev, dt_iop_module_t *module, const uint64_t expected_hash) |
| static void | _refresh_preview_histograms (dt_develop_t *dev) |
| static void | _preview_history_resync_callback (gpointer instance, gpointer user_data) |
| static void | _preview_cacheline_ready_callback (gpointer instance, const guint64 hash, const guint64 producer_node_key, gpointer user_data) |
| const char * | name (struct dt_lib_module_t *self) |
| const char ** | views (dt_lib_module_t *self) |
| uint32_t | container (dt_lib_module_t *self) |
| int | expandable (dt_lib_module_t *self) |
| int | position () |
| static void | _update_picker_output (dt_lib_module_t *self) |
| static void | _update_sample_label (dt_lib_module_t *self, dt_colorpicker_sample_t *sample) |
| static void | _update_everything (dt_lib_module_t *self) |
| void | _backbuf_int_to_op (const int value, dt_lib_histogram_t *d) |
| int | _backbuf_op_to_int (dt_lib_histogram_t *d) |
| void | _scope_pixel_to_xyz (const dt_aligned_pixel_t rgb_in, dt_aligned_pixel_t xyz_out, dt_lib_histogram_t *d) |
| void | _scope_pixel_to_display_rgb (const dt_aligned_pixel_t rgb_in, dt_aligned_pixel_t rgb_out, dt_lib_histogram_t *d) |
| static void | _clear_pending_hashes (dt_lib_histogram_t *d) |
| static gboolean | _has_pending_hash (const dt_lib_histogram_t *d, const uint64_t hash) |
| static void | _add_pending_hash (dt_lib_histogram_t *d, const uint64_t hash) |
| static gboolean | _remove_pending_hash (dt_lib_histogram_t *d, const uint64_t hash) |
| static uint64_t | _get_live_histogram_hash (const char *op) |
| static gboolean | _histogram_refresh_idle (gpointer user_data) |
| static void | _sync_pending_histogram_hashes (dt_lib_module_t *self) |
| static const dt_dev_pixelpipe_iop_t * | _get_backbuf_source_piece (const dt_backbuf_t *backbuf, const char *op) |
| static gboolean | _is_backbuf_ready (dt_lib_histogram_t *d) |
| Check that the selected histogram backbuffer belongs to the current preview graph. | |
| static void | _redraw_scopes (dt_lib_histogram_t *d) |
| uint32_t | _find_max_histogram (const uint32_t *const restrict bins, const size_t binning_size) |
| static void | _sample_raw_box_to_image_norm (const dt_colorpicker_sample_t *const sample, float box[4]) |
| static void | _sample_raw_point_to_image_norm (const dt_colorpicker_sample_t *const sample, float point[2]) |
| static void | _bin_pixels_histogram_in_roi (const float *const restrict image, uint32_t *const restrict bins, const size_t min_x, const size_t max_x, const size_t min_y, const size_t max_y, const size_t stride) |
| static void | _bin_pickers_histogram (const float *const restrict image, const size_t width, const size_t height, uint32_t *bins, dt_colorpicker_sample_t *sample) |
| static gboolean | _is_restricted (dt_lib_histogram_t *d) |
| static dt_histogram_scope_buf_t | _orient_scope_buf (const void *data, const dt_backbuf_t *backbuf, const char *op) |
| static void | _process_histogram (dt_backbuf_t *backbuf, const char *op, cairo_t *cr, const int width, const int height, dt_lib_histogram_t *d) |
| static void | _bin_pixels_waveform_in_roi (const float *const restrict image, uint32_t *const restrict bins, const size_t min_x, const size_t max_x, const size_t min_y, const size_t max_y, const size_t source_width, const size_t source_height, const size_t tone_bins, const size_t raster_extent, const gboolean vertical) |
| static void | _bin_pickers_waveforms (const float *const restrict image, uint32_t *const restrict bins, const size_t width, const size_t height, const size_t tone_bins, const size_t raster_extent, const gboolean vertical, dt_colorpicker_sample_t *sample) |
| static void | _bin_pixels_waveform (const float *const restrict image, uint32_t *const restrict bins, const size_t width, const size_t height, const size_t binning_size, const size_t tone_bins, const size_t raster_extent, const gboolean vertical, const gboolean restricted) |
| static void | _create_waveform_image (const uint32_t *const restrict bins, uint8_t *const restrict image, const uint32_t max_hist, const size_t width, const size_t height) |
| static void | _paint_waveform (cairo_t *cr, uint8_t *const restrict image, const int width, const int height, const size_t img_width, const size_t img_height, const size_t tone_bins, const gboolean vertical) |
| static float | _Luv_to_vectorscope_coord_zoom (const float value, const float zoom) |
| static float | _vectorscope_coord_zoom_to_Luv (const float value, const float zoom) |
| static void | _bin_pixels_vectorscope_in_roi (const float *const restrict image, uint32_t *const restrict vectorscope, const size_t min_x, const size_t max_x, const size_t min_y, const size_t max_y, const size_t width, const float zoom, dt_lib_histogram_t *d) |
| static void | _bin_pickers_vectorscope (const float *const restrict image, uint32_t *const restrict vectorscope, const size_t width, const size_t height, const float zoom, dt_lib_histogram_t *d, const dt_colorpicker_sample_t *const sample) |
| static void | _create_vectorscope_image (const uint32_t *const restrict vectorscope, uint8_t *const restrict image, const uint32_t max_hist, const float zoom) |
| static void | _bin_vectorscope (const float *const restrict image, uint32_t *const vectorscope, const size_t width, const size_t height, const float zoom, dt_lib_histogram_t *d) |
| static void | _process_vectorscope (dt_backbuf_t *backbuf, const char *op, cairo_t *cr, const int width, const int height, const float zoom, dt_lib_histogram_t *d) |
| gboolean | _needs_recompute (dt_lib_histogram_t *d, const int width, const int height) |
| static gboolean | _draw_callback (GtkWidget *widget, cairo_t *crf, gpointer user_data) |
| void | _get_allocation_size (dt_lib_histogram_t *d, int *width, int *height) |
| static void | _process_restricted_text (dt_lib_histogram_t *d, cairo_t *cr, const int height) |
| Draw the restricted-scope label over the current Cairo surface. | |
| gboolean | _redraw_surface (dt_lib_histogram_t *d) |
| static void | _destroy_surface (dt_lib_histogram_t *d) |
| gboolean | _trigger_recompute (dt_lib_histogram_t *d) |
| static gboolean | _resolve_backbuf_sampling_source (const char *const op, const dt_backbuf_t *const backbuf, dt_iop_roi_t *const roi, dt_iop_buffer_dsc_t *const dsc, double *const iop_order, int *const direction) |
| Resolve the live preview-stage geometry behind one global histogram backbuffer. | |
| static void | _pixelpipe_pick_from_image (const dt_backbuf_t *const backbuf, dt_colorpicker_sample_t *const sample, dt_lib_histogram_t *d, const char *op) |
| static void | _pixelpipe_pick_samples (dt_lib_histogram_t *d) |
| static gboolean | _refresh_global_picker (dt_lib_module_t *self) |
| static void | _lib_histogram_history_resync_callback (gpointer instance, dt_lib_module_t *self) |
| static void | _lib_histogram_cacheline_ready_callback (gpointer instance, const guint64 hash, const guint64 producer_node_key, dt_lib_module_t *self) |
| void | view_enter (struct dt_lib_module_t *self, struct dt_view_t *old_view, struct dt_view_t *new_view) |
| void | view_leave (struct dt_lib_module_t *self, struct dt_view_t *old_view, struct dt_view_t *new_view) |
| static void | _set_stage (dt_lib_module_t *self, int value) |
| static void | _set_scope (dt_lib_module_t *self, dt_lib_histogram_scope_type_t scope) |
| static void | _resize_callback (GtkWidget *widget, GdkRectangle *allocation, dt_lib_histogram_t *d) |
| static gboolean | _area_scrolled_callback (GtkWidget *widget, GdkEventScroll *event, dt_lib_histogram_t *d) |
| static int | _scope_resize_handle_get_size (gpointer user_data) |
| static int | _scope_resize_handle_resize (int requested_size, gboolean finished, gpointer user_data) |
| Apply one vertical size request from the generic Bauhaus resize handle. | |
| void | _set_params (dt_lib_histogram_t *d) |
| static gboolean | _sample_draw_callback (GtkWidget *widget, cairo_t *cr, dt_colorpicker_sample_t *sample) |
| static void | _picker_button_toggled (GtkToggleButton *button, dt_lib_histogram_t *d) |
| static void | _set_sample_box_area (dt_lib_module_t *self, const dt_boundingbox_t box) |
| static void | _set_sample_point (dt_lib_module_t *self, const float pos[2]) |
| static gboolean | _sample_tooltip_callback (GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, const dt_colorpicker_sample_t *sample) |
| static void | _statistic_changed (GtkWidget *widget, dt_lib_module_t *self) |
| static void | _color_mode_changed (GtkWidget *widget, dt_lib_module_t *self) |
| static void | _label_size_allocate_callback (GtkWidget *widget, GdkRectangle *allocation, gpointer user_data) |
| static gboolean | _sample_enter_callback (GtkWidget *widget, GdkEvent *event, dt_colorpicker_sample_t *sample) |
| static gboolean | _sample_leave_callback (GtkWidget *widget, GdkEvent *event, gpointer data) |
| static void | _remove_sample (dt_colorpicker_sample_t *sample) |
| static void | _remove_sample_cb (GtkButton *widget, dt_colorpicker_sample_t *sample) |
| static gboolean | _live_sample_button (GtkWidget *widget, GdkEventButton *event, dt_colorpicker_sample_t *sample) |
| static void | _add_sample (GtkButton *widget, dt_lib_module_t *self) |
| static void | _display_samples_changed (GtkToggleButton *button, dt_lib_module_t *self) |
| static void | _restrict_histogram_changed (GtkToggleButton *button, dt_lib_module_t *self) |
| void | gui_reset (dt_lib_module_t *self) |
| static void | _pref_stage_toggled (GtkCheckMenuItem *item, gpointer user_data) |
| static void | _pref_display_toggled (GtkCheckMenuItem *item, gpointer user_data) |
| void | set_preferences (void *menu, dt_lib_module_t *self) |
| void | gui_cleanup (dt_lib_module_t *self) |
Variables | |
| const gchar * | dt_lib_colorpicker_model_names [] = { N_("RGB"), N_("Lab"), N_("LCh"), N_("HSL"), N_("HSV"), N_("none"), NULL } |
| const gchar * | dt_lib_colorpicker_statistic_names [] = { N_("mean"), N_("min"), N_("max"), NULL } |
| static dt_histogram_preview_refresh_state_t | _preview_refresh_state |
| #define DT_LIB_HISTOGRAM_SCOPE_DEFAULT_HEIGHT 250 |
Definition at line 107 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_ENABLE_SMOOTHING 1 |
Definition at line 102 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_HANDLE_HEIGHT 8 |
Definition at line 110 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_HEIGHT_CONF "plugin/darkroom/histogram/scope_height" |
Definition at line 111 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_MAX_HEIGHT 500 |
Definition at line 109 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_MIN_HEIGHT 120 |
Definition at line 108 of file libs/histogram.c.
Definition at line 101 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_RESTRICTED_LABEL_OPERATOR CAIRO_OPERATOR_ADD |
Definition at line 106 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_SMOOTH_FORCE (256 * 0.33) |
Definition at line 105 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_SMOOTH_SPATIAL_PASSES 1 |
Definition at line 103 of file libs/histogram.c.
| #define DT_LIB_HISTOGRAM_SCOPE_SMOOTH_TONE_PASSES 4 |
Definition at line 104 of file libs/histogram.c.
Definition at line 100 of file libs/histogram.c.
| #define HISTOGRAM_BINS 256 |
Definition at line 99 of file libs/histogram.c.
| typedef struct dt_histogram_scope_buf_t dt_histogram_scope_buf_t |
A scope backbuffer, reoriented to match the darkroom view when it comes from a pre-flip pipeline stage. Every scope binning function should read data/width/height from here instead of the raw backbuf/cache pointer – for already-view-oriented stages, or an identity orientation, this is a plain passthrough (no copy, no allocation).
Only "initialscale" (the "Raw image" scope stage) lives upstream of the flip module in iop_order; "colorout" and "gamma" already sit downstream of it, i.e. already in the same orientation the darkroom view shows – so those are always a passthrough regardless of the image's own orientation.
| typedef enum dt_lib_colorpicker_model_t dt_lib_colorpicker_model_t |
| typedef struct dt_lib_histogram_cache_t dt_lib_histogram_cache_t |
| typedef struct dt_lib_histogram_t dt_lib_histogram_t |
| Enumerator | |
|---|---|
| DT_LIB_COLORPICKER_MODEL_RGB | |
| DT_LIB_COLORPICKER_MODEL_LAB | |
| DT_LIB_COLORPICKER_MODEL_LCH | |
| DT_LIB_COLORPICKER_MODEL_HSL | |
| DT_LIB_COLORPICKER_MODEL_HSV | |
| DT_LIB_COLORPICKER_MODEL_NONE | |
Definition at line 137 of file libs/histogram.c.
Definition at line 115 of file libs/histogram.c.
|
static |
Definition at line 780 of file libs/histogram.c.
References _has_pending_hash(), d, DT_PIXELPIPE_CACHE_HASH_INVALID, and IS_NULL_PTR.
Referenced by _sync_pending_histogram_hashes().
|
static |
Definition at line 2876 of file libs/histogram.c.
References _label_size_allocate_callback(), _live_sample_button(), _remove_sample_cb(), _reset_cache(), _sample_draw_callback(), _sample_enter_callback(), _sample_leave_callback(), _sample_tooltip_callback(), _update_everything(), dt_pixel_cache_entry_t::age, dt_colorpicker_sample_t::backbuf_op, dt_colorpicker_sample_t::color_patch, dt_develop_t::color_picker, dt_colorpicker_sample_t::container, container(), d, dt_lib_module_t::data, dt_conf_get_bool(), dt_dev_get_global(), dt_gui_add_class(), DT_GUI_BOX_SPACING, dtgtk_cairo_paint_remove(), dtgtk_togglebutton_new(), FALSE, IS_NULL_PTR, dt_colorpicker_sample_t::locked, dt_colorpicker_sample_t::output_label, dt_develop_t::picker, dt_develop_t::primary_sample, dt_develop_t::samples, dt_develop_t::selected_sample, and TRUE.
|
static |
Definition at line 2512 of file libs/histogram.c.
References _is_backbuf_ready(), _redraw_scopes(), _redraw_surface(), dt_pixel_cache_entry_t::age, d, dt_conf_set_float(), dt_gui_get_scroll_unit_deltas(), DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE, FALSE, and TRUE.
| void _backbuf_int_to_op | ( | const int | value, |
| dt_lib_histogram_t * | d | ||
| ) |
Definition at line 675 of file libs/histogram.c.
Referenced by _set_stage().
| int _backbuf_op_to_int | ( | dt_lib_histogram_t * | d | ) |
Definition at line 697 of file libs/histogram.c.
References d.
Referenced by _scope_pixel_to_display_rgb(), _scope_pixel_to_xyz(), and set_preferences().
|
inlinestatic |
Definition at line 944 of file libs/histogram.c.
References _bin_pixels_histogram_in_roi(), _sample_raw_box_to_image_norm(), _sample_raw_point_to_image_norm(), DT_LIB_COLORPICKER_SIZE_BOX, height, dt_colorpicker_sample_t::size, width, and x.
Referenced by _process_histogram().
|
inlinestatic |
Definition at line 1715 of file libs/histogram.c.
References _bin_pixels_vectorscope_in_roi(), _sample_raw_box_to_image_norm(), _sample_raw_point_to_image_norm(), dt_pixel_cache_entry_t::age, d, DT_LIB_COLORPICKER_SIZE_BOX, height, dt_colorpicker_sample_t::size, width, and x.
Referenced by _bin_vectorscope().
|
inlinestatic |
Definition at line 1199 of file libs/histogram.c.
References _bin_pixels_waveform_in_roi(), _sample_raw_box_to_image_norm(), _sample_raw_point_to_image_norm(), dt_pixel_cache_entry_t::age, DT_LIB_COLORPICKER_SIZE_BOX, height, dt_colorpicker_sample_t::size, width, and x.
Referenced by _bin_pixels_waveform().
|
inlinestatic |
Definition at line 919 of file libs/histogram.c.
References __OMP_PARALLEL_FOR__, HISTOGRAM_BINS, i, and value.
Referenced by _bin_pickers_histogram(), and _process_histogram().
|
static |
Definition at line 1682 of file libs/histogram.c.
References _Luv_to_vectorscope_coord_zoom(), _scope_pixel_to_xyz(), dt_pixel_cache_entry_t::age, d, dt_xyY_to_Luv(), dt_XYZ_to_xyY(), HISTOGRAM_BINS, i, Luv, width, xyY, and XYZ_D50.
Referenced by _bin_pickers_vectorscope(), and _bin_vectorscope().
|
inlinestatic |
Definition at line 1229 of file libs/histogram.c.
References __OMP_FOR_SIMD__, _bin_pickers_waveforms(), _bin_pixels_waveform_in_roi(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, dt_dev_get_global(), height, k, dt_develop_t::picker, dt_develop_t::primary_sample, dt_develop_t::samples, and width.
|
inlinestatic |
Definition at line 1121 of file libs/histogram.c.
References __OMP_PARALLEL_FOR__, dt_pixel_cache_entry_t::age, CLAMPF, double(), i, MAX, MIN, value, and weight().
Referenced by _bin_pickers_waveforms(), and _bin_pixels_waveform().
|
static |
Definition at line 1777 of file libs/histogram.c.
References __OMP_FOR_SIMD__, _bin_pickers_vectorscope(), _bin_pixels_vectorscope_in_roi(), _is_restricted(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, d, dt_dev_get_global(), height, HISTOGRAM_BINS, k, dt_develop_t::picker, dt_develop_t::primary_sample, dt_develop_t::samples, and width.
Referenced by _process_vectorscope().
|
static |
Definition at line 285 of file libs/histogram.c.
References dt_dev_backbuf_get_hash(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_set_backbuf(), DT_PIXELPIPE_CACHE_HASH_INVALID, and IS_NULL_PTR.
Referenced by _refresh_global_histogram_backbuf_for_hash(), and _refresh_preview_histograms().
|
static |
Definition at line 764 of file libs/histogram.c.
References d, and IS_NULL_PTR.
Referenced by _sync_pending_histogram_hashes(), gui_cleanup(), and view_leave().
Definition at line 231 of file libs/histogram.c.
References _preview_refresh_state, dt_histogram_preview_refresh_state_t::colorout_hash, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_histogram_preview_refresh_state_t::gamma_hash, dt_histogram_preview_refresh_state_t::initialscale_hash, and dt_histogram_preview_refresh_state_t::module_histograms.
Referenced by gui_cleanup(), and view_leave().
|
static |
Definition at line 2767 of file libs/histogram.c.
References _update_everything(), d, dt_lib_module_t::data, dt_bauhaus_combobox_get(), dt_conf_set_string(), and dt_lib_colorpicker_model_names.
|
static |
Definition at line 1743 of file libs/histogram.c.
References __OMP_PARALLEL_FOR__, _vectorscope_coord_zoom_to_Luv(), dt_pixel_cache_entry_t::age, dt_apply_transposed_color_matrix(), dt_dev_get_global(), dt_Luv_to_xyY(), dt_xyY_to_XYZ(), HISTOGRAM_BINS, i, Luv, dt_iop_order_iccprofile_info_t::matrix_out_transposed, dt_dev_pixelpipe_t::output_profile_info, dt_develop_t::preview_pipe, RGB, value, xyY, and XYZ.
Referenced by _process_vectorscope().
|
static |
Definition at line 1261 of file libs/histogram.c.
References __OMP_FOR_SIMD__, dt_pixel_cache_entry_t::age, GAMMA, height, k, and width.
|
static |
Definition at line 2142 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, and d.
Referenced by _trigger_recompute(), gui_cleanup(), and gui_reset().
|
static |
Definition at line 2940 of file libs/histogram.c.
References _update_everything(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, dt_develop_t::display_samples, dt_conf_set_bool(), dt_control_queue_redraw_center(), and dt_dev_get_global().
|
static |
Definition at line 2000 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, d, and IS_NULL_PTR.
| uint32_t _find_max_histogram | ( | const uint32_t *const restrict | bins, |
| const size_t | binning_size | ||
| ) |
Definition at line 892 of file libs/histogram.c.
References __OMP_PARALLEL_FOR_SIMD__, k, and max.
Referenced by _process_histogram(), and _process_vectorscope().
| void _get_allocation_size | ( | dt_lib_histogram_t * | d, |
| int * | width, | ||
| int * | height | ||
| ) |
Definition at line 2012 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, d, height, and width.
Referenced by _redraw_surface(), and _trigger_recompute().
|
static |
Definition at line 2168 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, dt_dev_backbuf_get_hash(), dt_dev_get_global(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), dt_dev_pixelpipe_iop_t::global_hash, IS_NULL_PTR, and dt_develop_t::preview_pipe.
Referenced by _is_backbuf_ready(), _pixelpipe_pick_from_image(), _process_histogram(), and _process_vectorscope().
|
static |
Definition at line 271 of file libs/histogram.c.
References dt_develop_t::display_histogram, IS_NULL_PTR, dt_develop_t::output_histogram, and dt_develop_t::raw_histogram.
Referenced by _histogram_refresh_idle(), _pixelpipe_pick_samples(), _refresh_global_histogram_backbuf_for_hash(), _refresh_global_picker(), _refresh_preview_histograms(), _set_params(), and _sync_pending_histogram_hashes().
|
static |
Definition at line 802 of file libs/histogram.c.
References dt_dev_get_global(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_dev_pixelpipe_iop_t::global_hash, IS_NULL_PTR, and dt_develop_t::preview_pipe.
Referenced by _sync_pending_histogram_hashes().
|
static |
Definition at line 770 of file libs/histogram.c.
References d, DT_PIXELPIPE_CACHE_HASH_INVALID, FALSE, i, IS_NULL_PTR, and TRUE.
Referenced by _add_pending_hash().
|
static |
Definition at line 823 of file libs/histogram.c.
References _get_histogram_backbuf(), _update_everything(), d, dt_lib_module_t::data, dt_dev_get_global(), and IS_NULL_PTR.
Referenced by _schedule_histogram_refresh().
|
static |
Definition at line 206 of file libs/histogram.c.
References _schedule_histogram_refresh(), and IS_NULL_PTR.
Referenced by _pixelpipe_pick_from_image(), and _refresh_preview_module_histogram_for_hash().
|
static |
Retry a scope render after its source cacheline has been published.
The first render attempt stores the current backbuffer hash in the Cairo cache before the non-blocking GUI cache probe can report a miss. Invalidate that rendered-state cache here so the wait-manager wake-up retries pixel binning instead of treating the incomplete surface as current.
Definition at line 221 of file libs/histogram.c.
References _reset_cache(), _schedule_histogram_refresh(), d, dt_lib_module_t::data, and IS_NULL_PTR.
Referenced by _process_histogram(), and _process_vectorscope().
|
static |
Check that the selected histogram backbuffer belongs to the current preview graph.
Global histogram stages are independent published cachelines. Their CACHELINE_READY signal is raised while the preview pipeline is still processing, before its final backbuffer becomes valid. Requiring that final backbuffer here would discard the only refresh scheduled for the newly published histogram stage after a module parameter change.
Matching the stage hash against the current piece is sufficient: the histogram backbuffer owns its cache reference, and the piece hash proves that its pixels and geometry belong to the synchronized preview graph.
Definition at line 880 of file libs/histogram.c.
References _get_backbuf_source_piece(), d, FALSE, and IS_NULL_PTR.
Referenced by _area_scrolled_callback(), _refresh_global_picker(), and _trigger_recompute().
|
static |
Definition at line 971 of file libs/histogram.c.
References d, FALSE, and IS_NULL_PTR.
Referenced by _bin_vectorscope(), _process_histogram(), and _process_restricted_text().
|
static |
Definition at line 2775 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age.
Referenced by _add_sample().
|
static |
Definition at line 2429 of file libs/histogram.c.
References _remove_pending_hash(), _schedule_histogram_refresh(), d, dt_lib_module_t::data, dt_pixel_cache_entry_t::hash, IS_NULL_PTR, dt_pixel_cache_entry_t::producer_node_key, and void().
Referenced by view_enter(), and view_leave().
|
static |
Definition at line 2423 of file libs/histogram.c.
References _sync_pending_histogram_hashes(), and void().
Referenced by view_enter(), and view_leave().
|
static |
Definition at line 2840 of file libs/histogram.c.
References _sample_raw_box_to_image_norm(), _sample_raw_point_to_image_norm(), _set_sample_box_area(), _set_sample_point(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, dt_control_queue_redraw_center(), dt_dev_get_global(), DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, FALSE, dt_develop_t::histogram_module, IS_NULL_PTR, dt_colorpicker_sample_t::locked, dt_develop_t::picker, and dt_colorpicker_sample_t::size.
Referenced by _add_sample().
|
static |
Definition at line 1669 of file libs/histogram.c.
References HISTOGRAM_BINS, and value.
Referenced by _bin_pixels_vectorscope_in_roi(), and _process_vectorscope().
| gboolean _needs_recompute | ( | dt_lib_histogram_t * | d, |
| const int | width, | ||
| const int | height | ||
| ) |
Definition at line 1987 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, d, dt_dev_backbuf_get_hash(), height, IS_NULL_PTR, view, and width.
Referenced by _trigger_recompute().
|
static |
Definition at line 998 of file libs/histogram.c.
References bpp, dt_histogram_scope_buf_t::data, dt_alloc_align(), dt_dev_get_global(), dt_image_get_effective_orientation(), dt_imageio_flip_buffers(), FALSE, dt_backbuf_t::height, dt_histogram_scope_buf_t::height, IS_NULL_PTR, ORIENTATION_NONE, ORIENTATION_SWAP_XY, dt_histogram_scope_buf_t::owned, TRUE, width, dt_backbuf_t::width, and dt_histogram_scope_buf_t::width.
Referenced by _process_histogram().
|
static |
Definition at line 1277 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, double(), height, and width.
|
static |
Definition at line 2673 of file libs/histogram.c.
References _redraw_scopes(), _reset_cache(), _trigger_recompute(), dt_pixel_cache_entry_t::age, d, and IS_NULL_PTR.
|
static |
Definition at line 2245 of file libs/histogram.c.
References _get_backbuf_source_piece(), _histogram_restart_cache_wait(), _resolve_backbuf_sampling_source(), _sample_raw_box_to_image_norm(), _sample_raw_point_to_image_norm(), _scope_pixel_to_display_rgb(), _scope_pixel_to_xyz(), dt_pixel_cache_entry_t::age, dt_iop_buffer_dsc_t::channels, dt_iop_buffer_dsc_t::cst, d, dt_pixel_cache_entry_t::data, dt_colorpicker_sample_t::display, dt_color_picker_helper(), dt_dev_coordinates_image_norm_to_preview_abs(), dt_dev_distort_backtransform_plus(), dt_dev_get_global(), dt_dev_pixelpipe_cache_peek_gui(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_wait_set_owner(), DT_DEV_TRANSFORM_DIR_FORW_EXCL, DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, DT_LIB_COLORPICKER_STATISTIC_MAX, DT_LIB_COLORPICKER_STATISTIC_MEAN, DT_LIB_COLORPICKER_STATISTIC_MIN, DT_LIB_COLORPICKER_STATISTIC_N, dt_XYZ_to_Lab(), FALSE, for_four_channels, dt_backbuf_t::height, dt_iop_roi_t::height, IOP_CS_RGB, IS_NULL_PTR, k, dt_colorpicker_sample_t::lab, max, MAX, min, MIN, dt_lib_histogram_t::op, dt_colorpicker_sample_t::scope, dt_colorpicker_sample_t::size, TRUE, TYPE_FLOAT, dt_backbuf_t::width, dt_iop_roi_t::width, dt_iop_roi_t::x, XYZ, and dt_iop_roi_t::y.
Referenced by _pixelpipe_pick_samples().
|
static |
Definition at line 2358 of file libs/histogram.c.
References _get_histogram_backbuf(), _pixelpipe_pick_from_image(), dt_pixel_cache_entry_t::age, dt_colorpicker_sample_t::backbuf_op, dt_develop_t::color_picker, d, dt_dev_get_global(), dt_colorpicker_sample_t::locked, dt_develop_t::picker, dt_develop_t::primary_sample, and dt_develop_t::samples.
Referenced by _update_everything().
|
static |
Definition at line 3015 of file libs/histogram.c.
References _set_scope(), and dt_pixel_cache_entry_t::age.
Referenced by set_preferences().
|
static |
Definition at line 3008 of file libs/histogram.c.
References _set_stage(), and dt_pixel_cache_entry_t::age.
Referenced by set_preferences().
|
static |
Definition at line 602 of file libs/histogram.c.
References _preview_refresh_state, _refresh_global_histogram_backbuf_for_hash(), _refresh_preview_module_histogram_for_hash(), dt_histogram_preview_refresh_state_t::colorout_hash, dt_dev_get_global(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_histogram_preview_refresh_state_t::gamma_hash, dt_develop_t::gui_attached, dt_histogram_pending_module_refresh_t::hash, dt_histogram_preview_refresh_state_t::initialscale_hash, IS_NULL_PTR, dt_histogram_preview_refresh_state_t::module_histograms, dt_develop_t::preview_pipe, and void().
Referenced by view_enter(), and view_leave().
|
static |
Definition at line 595 of file libs/histogram.c.
References _refresh_preview_histograms(), dt_dev_get_global(), and void().
Referenced by view_enter(), and view_leave().
|
static |
Definition at line 1031 of file libs/histogram.c.
References _bin_pickers_histogram(), _bin_pixels_histogram_in_roi(), _find_max_histogram(), _get_backbuf_source_piece(), _histogram_restart_scope_cache_wait(), _is_restricted(), _orient_scope_buf(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, d, dt_pixel_cache_entry_t::data, dt_bauhaus_get_global(), dt_dev_get_global(), dt_dev_pixelpipe_cache_peek_gui(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_wait_set_owner(), dt_draw_grid(), dt_draw_histogram_8(), dt_free, dt_free_align, FALSE, height, HISTOGRAM_BINS, IS_NULL_PTR, k, log, dt_develop_t::picker, dt_develop_t::primary_sample, dt_develop_t::samples, set_color(), TRUE, and width.
Referenced by _redraw_surface().
|
static |
Draw the restricted-scope label over the current Cairo surface.
The scope content is rendered first because the label describes the final visible state. The theme owns the text color through graph_scope_restricted, while the module keeps the Cairo operator explicit because it controls how the label is composited with the already-rendered graph pixels.
Definition at line 2043 of file libs/histogram.c.
References _is_restricted(), dt_pixel_cache_entry_t::age, d, dt_bauhaus_get_global(), DT_LIB_HISTOGRAM_SCOPE_RESTRICTED_LABEL_OPERATOR, DT_PIXEL_APPLY_DPI, height, MAX, and set_color().
Referenced by _redraw_surface().
|
static |
Definition at line 1807 of file libs/histogram.c.
References _bin_vectorscope(), _create_vectorscope_image(), _find_max_histogram(), _get_backbuf_source_piece(), _histogram_restart_scope_cache_wait(), _Luv_to_vectorscope_coord_zoom(), dt_pixel_cache_entry_t::age, colors, d, dt_pixel_cache_entry_t::data, dt_apply_transposed_color_matrix(), dt_dev_get_global(), dt_dev_pixelpipe_cache_peek_gui(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_wait_set_owner(), dt_Lch_to_Luv(), dt_Luv_to_Lch(), dt_Luv_to_xyY(), DT_PIXEL_APPLY_DPI, dt_pixelpipe_cache_alloc_align_cache, dt_pixelpipe_cache_free_align, dt_xyY_to_Luv(), dt_xyY_to_XYZ(), dt_XYZ_to_xyY(), error(), FALSE, height, dt_backbuf_t::height, HISTOGRAM_BINS, IS_NULL_PTR, k, Lch, dt_iop_order_iccprofile_info_t::lut_in, dt_iop_order_iccprofile_info_t::lutsize, Luv, M_PI, M_PI_F, dt_iop_order_iccprofile_info_t::matrix_in_transposed, dt_iop_order_iccprofile_info_t::matrix_out_transposed, MIN, dt_iop_order_iccprofile_info_t::nonlinearlut, dt_dev_pixelpipe_t::output_profile_info, dt_develop_t::preview_pipe, RGB, TRUE, width, dt_backbuf_t::width, x, xyY, XYZ, and XYZ_D50.
Referenced by _redraw_surface().
|
static |
Definition at line 887 of file libs/histogram.c.
References d.
Referenced by _area_scrolled_callback(), _picker_button_toggled(), _set_scope(), and _update_everything().
| gboolean _redraw_surface | ( | dt_lib_histogram_t * | d | ) |
Definition at line 2075 of file libs/histogram.c.
References _get_allocation_size(), _process_histogram(), _process_restricted_text(), _process_vectorscope(), dt_pixel_cache_entry_t::age, d, dt_dev_backbuf_get_hash(), dt_get_times(), DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM, DT_LIB_HISTOGRAM_SCOPE_PARADE_HORIZONTAL, DT_LIB_HISTOGRAM_SCOPE_PARADE_VERTICAL, DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE, DT_LIB_HISTOGRAM_SCOPE_WAVEFORM_HORIZONTAL, DT_LIB_HISTOGRAM_SCOPE_WAVEFORM_VERTICAL, dt_show_times_f(), FALSE, height, IS_NULL_PTR, TRUE, and width.
Referenced by _area_scrolled_callback(), and _trigger_recompute().
|
static |
Definition at line 295 of file libs/histogram.c.
References _clear_histogram_backbuf(), _get_histogram_backbuf(), dt_iop_buffer_dsc_t::bpp, dt_dev_pixelpipe_iop_t::dsc_out, dt_dev_backbuf_get_hash(), dt_dev_pixelpipe_cache_peek_gui_retained(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), dt_dev_set_backbuf(), dt_iop_get_module_by_op_priority(), dt_pixel_cache_entry_get_size(), DT_PIXELPIPE_CACHE_HASH_INVALID, FALSE, dt_dev_pixelpipe_iop_t::global_hash, dt_iop_roi_t::height, dt_develop_t::iop, IS_NULL_PTR, dt_develop_t::preview_pipe, dt_dev_pixelpipe_iop_t::roi_out, TRUE, and dt_iop_roi_t::width.
Referenced by _preview_cacheline_ready_callback(), and _refresh_preview_histograms().
|
static |
Definition at line 2403 of file libs/histogram.c.
References _get_histogram_backbuf(), _is_backbuf_ready(), _reset_cache(), _update_everything(), d, dt_lib_module_t::data, dt_conf_get_bool(), dt_dev_get_global(), FALSE, IS_NULL_PTR, and TRUE.
|
static |
Definition at line 244 of file libs/histogram.c.
References dt_control_queue_redraw_widget(), dt_histogram_helper(), dt_histogram_max_helper(), dt_iop_gui_enter_critical_section(), dt_iop_gui_leave_critical_section(), dt_ioppr_get_pipe_work_profile_info(), dt_iop_module_t::gui, dt_iop_roi_t::height, dt_iop_module_t::histogram, dt_iop_module_t::histogram_cst, dt_iop_module_t::histogram_max, dt_iop_module_t::histogram_middle_grey, dt_dev_pixelpipe_iop_t::histogram_params, dt_iop_module_t::histogram_stats, IS_NULL_PTR, dt_dev_histogram_collection_params_t::roi, dt_iop_module_gui_t::widget, dt_histogram_roi_t::width, and dt_iop_roi_t::width.
Referenced by _refresh_preview_module_histogram_for_hash().
|
static |
Definition at line 477 of file libs/histogram.c.
References _clear_histogram_backbuf(), _get_histogram_backbuf(), _preview_refresh_state, _refresh_global_histogram_backbuf_for_hash(), _refresh_preview_module_histogram_for_hash(), dt_histogram_preview_refresh_state_t::colorout_hash, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), dt_iop_get_module_by_op_priority(), DT_PIXELPIPE_CACHE_HASH_INVALID, DT_REQUEST_ON, DT_REQUEST_ONLY_IN_GUI, dt_dev_pixelpipe_iop_t::enabled, FALSE, dt_histogram_preview_refresh_state_t::gamma_hash, dt_dev_pixelpipe_iop_t::global_hash, dt_develop_t::gui_attached, dt_dev_pixelpipe_t::gui_observable_source, dt_histogram_pending_module_refresh_t::hash, i, dt_histogram_preview_refresh_state_t::initialscale_hash, dt_develop_t::iop, IS_NULL_PTR, dt_histogram_preview_refresh_state_t::module_histograms, dt_dev_pixelpipe_t::nodes, dt_develop_t::preview_pipe, dt_dev_pixelpipe_iop_t::request_histogram, and TRUE.
Referenced by _preview_history_resync_callback(), and _set_stage().
|
static |
Definition at line 379 of file libs/histogram.c.
References _histogram_restart_cache_wait(), _refresh_module_histogram(), dt_iop_buffer_dsc_t::channels, dt_develop_t::color_picker, dt_iop_buffer_dsc_t::cst, d, dt_lib_module_t::data, dt_iop_buffer_dsc_t::datatype, dt_dev_pixelpipe_iop_t::dsc_in, dt_dev_pixelpipe_iop_t::dsc_out, dt_alloc_align(), dt_colorspaces_apply_profile(), dt_dev_get_global(), dt_dev_pixelpipe_cache_peek_gui_retained(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_wait_set_owner(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), dt_free_align, dt_iop_colorspace_is_rgb(), dt_ioppr_get_pipe_work_profile_info(), dt_pixel_cache_entry_get_size(), DT_PIXELPIPE_CACHE_HASH_INVALID, DT_REQUEST_ON, DT_REQUEST_ONLY_IN_GUI, FALSE, dt_dev_pixelpipe_iop_t::global_hash, dt_develop_t::gui_attached, dt_iop_roi_t::height, dt_develop_t::histogram_module, IS_NULL_PTR, dt_iop_module_t::multi_name, dt_iop_module_t::op, dt_develop_t::preview_pipe, dt_dev_pixelpipe_iop_t::request_histogram, dt_dev_pixelpipe_iop_t::roi_in, TRUE, TYPE_FLOAT, and dt_iop_roi_t::width.
Referenced by _preview_cacheline_ready_callback(), and _refresh_preview_histograms().
|
static |
Definition at line 786 of file libs/histogram.c.
References d, DT_PIXELPIPE_CACHE_HASH_INVALID, FALSE, i, IS_NULL_PTR, and TRUE.
Referenced by _lib_histogram_cacheline_ready_callback().
|
static |
Definition at line 2819 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, dt_colorpicker_sample_t::container, dt_dev_get_global(), dt_free, and dt_develop_t::samples.
Referenced by _remove_sample_cb(), gui_cleanup(), and gui_reset().
|
static |
Definition at line 2827 of file libs/histogram.c.
References _remove_sample(), _reset_cache(), _update_everything(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, d, dt_lib_module_t::data, dt_conf_get_bool(), dt_control_queue_redraw_center(), dt_dev_get_global(), dt_develop_t::histogram_module, and IS_NULL_PTR.
Referenced by _add_sample().
|
static |
Definition at line 755 of file libs/histogram.c.
References d, and DT_LIB_HISTOGRAM_SCOPE_N.
Referenced by _add_sample(), _histogram_restart_scope_cache_wait(), _picker_button_toggled(), _refresh_global_picker(), _remove_sample_cb(), _resize_callback(), _restrict_histogram_changed(), _set_sample_box_area(), _set_sample_point(), gui_reset(), view_enter(), and view_leave().
|
static |
Definition at line 2505 of file libs/histogram.c.
References _reset_cache(), _trigger_recompute(), and d.
|
static |
Resolve the live preview-stage geometry behind one global histogram backbuffer.
The global histogram stores only the published cache hash, width, and height. For color-picker sampling we also need the live ROI, colorspace, and backtransform cut in the current preview graph so the picker point drawn on the final image is mapped back to the selected histogram stage before sampling pixels.
We reopen the stage by operation name because the current preview graph is authoritative once the preview run completed. The published backbuffer hash must still match that live graph, otherwise we are looking at stale geometry and should not trust it.
| op | Histogram stage operation name. |
| backbuf | Published histogram backbuffer for op. |
| roi | Output ROI of the sampled stage buffer. |
| dsc | Buffer descriptor of the sampled stage buffer. |
| iop_order | IOP order at which to stop the backtransform. |
| direction | Inclusive/exclusive transform cut matching the sampled stage buffer. |
Definition at line 2209 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, dt_dev_pixelpipe_iop_t::dsc_out, dt_dev_backbuf_get_hash(), dt_dev_get_global(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), DT_DEV_TRANSFORM_DIR_FORW_EXCL, DT_DEV_TRANSFORM_DIR_FORW_INCL, FALSE, dt_dev_pixelpipe_iop_t::global_hash, dt_pixel_cache_entry_t::hash, IS_NULL_PTR, dt_develop_t::preview_pipe, and dt_dev_pixelpipe_iop_t::roi_out.
Referenced by _pixelpipe_pick_from_image().
|
static |
Definition at line 2948 of file libs/histogram.c.
References _reset_cache(), _update_everything(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, d, dt_lib_module_t::data, dt_conf_set_bool(), dt_dev_get_global(), IS_NULL_PTR, and dt_develop_t::restrict_histogram.
|
static |
Definition at line 2586 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, DT_PIXEL_APPLY_DPI, dtgtk_cairo_paint_lock(), FALSE, height, dt_colorpicker_sample_t::locked, set_color(), dt_colorpicker_sample_t::swatch, and width.
Referenced by _add_sample().
|
static |
Definition at line 2795 of file libs/histogram.c.
References dt_develop_t::color_picker, dt_control_queue_redraw_center(), dt_dev_get_global(), FALSE, dt_develop_t::picker, and dt_develop_t::selected_sample.
Referenced by _add_sample().
|
static |
Definition at line 2806 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, dt_control_queue_redraw_center(), dt_dev_get_global(), FALSE, and dt_develop_t::selected_sample.
Referenced by _add_sample().
|
inlinestatic |
Definition at line 901 of file libs/histogram.c.
References dt_colorpicker_sample_t::box, dt_dev_coordinates_raw_norm_to_image_norm(), and dt_dev_get_global().
Referenced by _bin_pickers_histogram(), _bin_pickers_vectorscope(), _bin_pickers_waveforms(), _live_sample_button(), and _pixelpipe_pick_from_image().
|
inlinestatic |
Definition at line 907 of file libs/histogram.c.
References dt_dev_coordinates_raw_norm_to_image_norm(), dt_dev_get_global(), and dt_colorpicker_sample_t::point.
Referenced by _bin_pickers_histogram(), _bin_pickers_vectorscope(), _bin_pickers_waveforms(), _live_sample_button(), and _pixelpipe_pick_from_image().
|
static |
Definition at line 2711 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, color, dt_colorpicker_sample_t::display, dt_free, DT_LIB_COLORPICKER_STATISTIC_MEAN, DT_LIB_COLORPICKER_STATISTIC_N, dt_lib_colorpicker_statistic_names, i, dt_colorpicker_sample_t::lab, dt_colorpicker_sample_t::label_rgb, Lch_to_color_name(), dt_colorpicker_sample_t::scope, tooltip, and TRUE.
Referenced by _add_sample().
|
static |
Definition at line 835 of file libs/histogram.c.
References _histogram_refresh_idle(), d, dt_lib_module_t::data, and IS_NULL_PTR.
Referenced by _histogram_restart_cache_wait(), _histogram_restart_scope_cache_wait(), and _lib_histogram_cacheline_ready_callback().
| void _scope_pixel_to_display_rgb | ( | const dt_aligned_pixel_t | rgb_in, |
| dt_aligned_pixel_t | rgb_out, | ||
| dt_lib_histogram_t * | d | ||
| ) |
Definition at line 735 of file libs/histogram.c.
References _backbuf_op_to_int(), d, dt_dev_get_global(), dt_ioppr_transform_image_colorspace_rgb(), for_each_channel, dt_dev_pixelpipe_t::input_profile_info, dt_dev_pixelpipe_t::output_profile_info, dt_develop_t::preview_pipe, and rgb_out.
Referenced by _pixelpipe_pick_from_image().
| void _scope_pixel_to_xyz | ( | const dt_aligned_pixel_t | rgb_in, |
| dt_aligned_pixel_t | xyz_out, | ||
| dt_lib_histogram_t * | d | ||
| ) |
Definition at line 711 of file libs/histogram.c.
References _backbuf_op_to_int(), d, dt_dev_get_global(), dt_dev_pixelpipe_t::input_profile_info, dt_iop_order_iccprofile_info_t::lut_in, dt_iop_order_iccprofile_info_t::lutsize, dt_iop_order_iccprofile_info_t::matrix_in_transposed, dt_iop_order_iccprofile_info_t::nonlinearlut, dt_dev_pixelpipe_t::output_profile_info, and dt_develop_t::preview_pipe.
Referenced by _bin_pixels_vectorscope_in_roi(), and _pixelpipe_pick_from_image().
|
static |
Definition at line 2534 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, and d.
|
static |
Apply one vertical size request from the generic Bauhaus resize handle.
The Bauhaus widget owns pointer tracking and sends requested heights here. The histogram owns the scope widget, the window-relative clamp, and persistence, so these side effects remain explicit in the module that owns the resized surface.
Definition at line 2547 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, d, dt_conf_set_int(), dt_gui_main_window(), DT_LIB_HISTOGRAM_SCOPE_HEIGHT_CONF, DT_LIB_HISTOGRAM_SCOPE_MAX_HEIGHT, DT_LIB_HISTOGRAM_SCOPE_MIN_HEIGHT, DT_PIXEL_APPLY_DPI, MAX, and MIN.
| void _set_params | ( | dt_lib_histogram_t * | d | ) |
Definition at line 2566 of file libs/histogram.c.
References _get_histogram_backbuf(), dt_pixel_cache_entry_t::age, d, dt_conf_get_float(), dt_conf_get_int(), dt_conf_get_string_const(), dt_conf_set_string(), dt_dev_get_global(), DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM, DT_LIB_HISTOGRAM_SCOPE_N, and DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE.
Referenced by gui_reset().
|
static |
Definition at line 2692 of file libs/histogram.c.
References _reset_cache(), _update_everything(), d, dt_lib_module_t::data, dt_conf_get_bool(), dt_lib_colorpicker_set_box_area(), and dt_lib_get_global().
Referenced by _live_sample_button().
|
static |
Definition at line 2701 of file libs/histogram.c.
References _reset_cache(), _update_everything(), d, dt_lib_module_t::data, dt_conf_get_bool(), dt_lib_colorpicker_set_point(), and dt_lib_get_global().
Referenced by _live_sample_button().
|
static |
Definition at line 2496 of file libs/histogram.c.
References _redraw_scopes(), _trigger_recompute(), d, dt_lib_module_t::data, and dt_conf_set_int().
Referenced by _pref_display_toggled().
|
static |
Definition at line 2479 of file libs/histogram.c.
References _backbuf_int_to_op(), _refresh_preview_histograms(), _sync_pending_histogram_hashes(), dt_pixel_cache_entry_t::age, d, dt_lib_module_t::data, dt_conf_set_int(), dt_conf_set_string(), dt_dev_get_global(), DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM, DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE, and value.
Referenced by _pref_stage_toggled().
|
static |
Definition at line 2758 of file libs/histogram.c.
References _update_everything(), dt_develop_t::color_picker, d, dt_lib_module_t::data, dt_bauhaus_combobox_get(), dt_conf_set_string(), dt_dev_get_global(), dt_lib_colorpicker_statistic_names, and dt_develop_t::statistic.
|
static |
Definition at line 842 of file libs/histogram.c.
References _add_pending_hash(), _clear_pending_hashes(), _get_histogram_backbuf(), _get_live_histogram_hash(), _update_everything(), dt_colorpicker_sample_t::backbuf_op, d, dt_lib_module_t::data, dt_dev_get_global(), IS_NULL_PTR, dt_colorpicker_sample_t::locked, dt_develop_t::picker, and dt_develop_t::samples.
Referenced by _lib_histogram_history_resync_callback(), and _set_stage().
| gboolean _trigger_recompute | ( | dt_lib_histogram_t * | d | ) |
Definition at line 2148 of file libs/histogram.c.
References _destroy_surface(), _get_allocation_size(), _is_backbuf_ready(), _needs_recompute(), _redraw_surface(), dt_pixel_cache_entry_t::age, d, dt_cairo_image_surface_create(), height, and width.
Referenced by _picker_button_toggled(), _resize_callback(), _set_scope(), _update_everything(), and gui_reset().
|
static |
Definition at line 2378 of file libs/histogram.c.
References _pixelpipe_pick_samples(), _redraw_scopes(), _trigger_recompute(), _update_sample_label(), dt_pixel_cache_entry_t::age, d, dt_lib_module_t::data, dt_dev_get_global(), IS_NULL_PTR, dt_develop_t::picker, dt_develop_t::primary_sample, and dt_develop_t::samples.
Referenced by _add_sample(), _color_mode_changed(), _display_samples_changed(), _histogram_refresh_idle(), _refresh_global_picker(), _remove_sample_cb(), _restrict_histogram_changed(), _set_sample_box_area(), _set_sample_point(), _statistic_changed(), _sync_pending_histogram_hashes(), and _update_picker_output().
|
static |
Definition at line 2668 of file libs/histogram.c.
References _update_everything().
Referenced by gui_reset().
|
static |
Definition at line 2614 of file libs/histogram.c.
References dt_pixel_cache_entry_t::age, ch, dt_colorpicker_sample_t::color_patch, d, dt_lib_module_t::data, dt_colorpicker_sample_t::display, DT_LIB_COLORPICKER_MODEL_HSL, DT_LIB_COLORPICKER_MODEL_HSV, DT_LIB_COLORPICKER_MODEL_LAB, DT_LIB_COLORPICKER_MODEL_LCH, DT_LIB_COLORPICKER_MODEL_NONE, DT_LIB_COLORPICKER_MODEL_RGB, DT_LIB_COLORPICKER_STATISTIC_MEAN, for_each_channel, dt_colorpicker_sample_t::lab, dt_colorpicker_sample_t::label_rgb, dt_colorpicker_sample_t::output_label, dt_colorpicker_sample_t::scope, and dt_colorpicker_sample_t::swatch.
Referenced by _update_everything().
|
static |
Definition at line 1676 of file libs/histogram.c.
References HISTOGRAM_BINS, and value.
Referenced by _create_vectorscope_image().
| uint32_t container | ( | dt_lib_module_t * | self | ) |
Definition at line 655 of file libs/histogram.c.
References DT_UI_CONTAINER_PANEL_LEFT_CENTER.
Referenced by _add_sample().
| int expandable | ( | dt_lib_module_t * | self | ) |
Definition at line 660 of file libs/histogram.c.
| void gui_cleanup | ( | dt_lib_module_t * | self | ) |
Definition at line 3245 of file libs/histogram.c.
References _clear_pending_hashes(), _clear_pending_preview_histograms(), _destroy_surface(), _remove_sample(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, d, dt_lib_module_t::data, dt_dev_get_global(), dt_dev_pixelpipe_cache_wait_cleanup(), dt_iop_color_picker_reset(), dt_pixelpipe_cache_free_align, FALSE, dt_develop_t::histogram_module, IS_NULL_PTR, dt_develop_t::refresh_global_picker, dt_develop_t::samples, and TRUE.
| void gui_reset | ( | dt_lib_module_t * | self | ) |
Definition at line 2967 of file libs/histogram.c.
References _destroy_surface(), _remove_sample(), _reset_cache(), _set_params(), _trigger_recompute(), _update_picker_output(), dt_pixel_cache_entry_t::age, dt_develop_t::color_picker, d, dt_lib_module_t::data, dt_colorpicker_sample_t::display, dt_bauhaus_combobox_set(), dt_dev_get_global(), dt_dev_pixelpipe_update_history_preview, dt_iop_color_picker_reset(), DT_LIB_COLORPICKER_STATISTIC_N, FALSE, i, dt_colorpicker_sample_t::lab, dt_colorpicker_sample_t::label_rgb, dt_develop_t::primary_sample, dt_develop_t::samples, dt_colorpicker_sample_t::scope, and dt_colorpicker_sample_t::swatch.
| const char * name | ( | struct dt_lib_module_t * | self | ) |
Definition at line 644 of file libs/histogram.c.
| int position | ( | ) |
Definition at line 665 of file libs/histogram.c.
| void set_preferences | ( | void * | menu, |
| dt_lib_module_t * | self | ||
| ) |
Definition at line 3022 of file libs/histogram.c.
References _backbuf_op_to_int(), _pref_display_toggled(), _pref_stage_toggled(), dt_pixel_cache_entry_t::age, d, dt_lib_module_t::data, DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE, i, and TRUE.
| void view_enter | ( | struct dt_lib_module_t * | self, |
| struct dt_view_t * | old_view, | ||
| struct dt_view_t * | new_view | ||
| ) |
Definition at line 2441 of file libs/histogram.c.
References _lib_histogram_cacheline_ready_callback(), _lib_histogram_history_resync_callback(), _preview_cacheline_ready_callback(), _preview_history_resync_callback(), _reset_cache(), dt_pixel_cache_entry_t::age, d, dt_lib_module_t::data, dt_control_signal_get_global(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_SIGNAL_CACHELINE_READY, and DT_SIGNAL_HISTORY_RESYNC.
| void view_leave | ( | struct dt_lib_module_t * | self, |
| struct dt_view_t * | old_view, | ||
| struct dt_view_t * | new_view | ||
| ) |
Definition at line 2456 of file libs/histogram.c.
References _clear_pending_hashes(), _clear_pending_preview_histograms(), _lib_histogram_cacheline_ready_callback(), _lib_histogram_history_resync_callback(), _preview_cacheline_ready_callback(), _preview_history_resync_callback(), _reset_cache(), dt_pixel_cache_entry_t::age, d, dt_lib_module_t::data, dt_control_signal_get_global(), DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, and dt_dev_pixelpipe_cache_wait_cleanup().
| const char ** views | ( | dt_lib_module_t * | self | ) |
Definition at line 649 of file libs/histogram.c.
References v.
|
static |
Definition at line 200 of file libs/histogram.c.
Referenced by _clear_pending_preview_histograms(), _preview_cacheline_ready_callback(), and _refresh_preview_histograms().
| const gchar* dt_lib_colorpicker_model_names[] = { N_("RGB"), N_("Lab"), N_("LCh"), N_("HSL"), N_("HSV"), N_("none"), NULL } |
Definition at line 147 of file libs/histogram.c.
Referenced by _color_mode_changed().
| const gchar* dt_lib_colorpicker_statistic_names[] = { N_("mean"), N_("min"), N_("max"), NULL } |
Definition at line 149 of file libs/histogram.c.
Referenced by _sample_tooltip_callback(), and _statistic_changed().