![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "develop/develop.h"
Include dependency graph for pixelpipe_gui.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Functions | |
| void | dt_dev_pixelpipe_gui_init (void) |
| Initialize GUI-side histogram sampling callbacks. | |
| void | dt_dev_pixelpipe_gui_cleanup (void) |
| Disconnect GUI-side histogram sampling callbacks. | |
| dt_backbuf_t * | dt_dev_get_histogram_backbuf (dt_develop_t *dev, const char *op) |
| Return one of the develop-owned global histogram backbuffers. | |
| void | dt_dev_refresh_preview_histograms (dt_develop_t *dev) |
| Refresh all GUI-visible histogram sources from the preview cache. | |
| gboolean | dt_dev_refresh_module_histogram (dt_develop_t *dev, dt_iop_module_t *module) |
| Refresh the histogram owned by one module from the preview cache. | |
| gboolean | dt_dev_module_requires_global_histogram_output_cache (const dt_dev_pixelpipe_t *pipe, const dt_iop_module_t *module) |
| Tell whether the module output itself feeds one global histogram stage. | |
| gboolean | dt_dev_module_requires_global_histogram_input_cache (const dt_dev_pixelpipe_t *pipe, const dt_iop_module_t *module) |
| Tell whether the previous module output feeds one global histogram stage through this module. | |
| dt_backbuf_t * dt_dev_get_histogram_backbuf | ( | dt_develop_t * | dev, |
| const char * | op | ||
| ) |
Return one of the develop-owned global histogram backbuffers.
Global histogram widgets keep stable dt_backbuf_t containers in dt_develop_t, while the actual cacheline hash they point to is refreshed from the preview pipe on every completed recompute.
References dt_develop_t::display_histogram, dt_develop_t::output_histogram, and dt_develop_t::raw_histogram.
Referenced by _lib_histogram_preview_updated_callback(), _pixelpipe_pick_samples(), _refresh_global_histogram_backbuf(), _set_params(), and _stage_callback().
| gboolean dt_dev_module_requires_global_histogram_input_cache | ( | const dt_dev_pixelpipe_t * | pipe, |
| const dt_iop_module_t * | module | ||
| ) |
Tell whether the previous module output feeds one global histogram stage through this module.
gamma is sampled through its input cacheline because its output is uint8_t while the histogram code expects float host buffers.
References dt_dev_pixelpipe_get_realtime(), DT_DEV_PIXELPIPE_PREVIEW, FALSE, dt_dev_pixelpipe_t::gui_observable_source, dt_iop_module_t::op, and dt_dev_pixelpipe_t::type.
Referenced by _seal_opencl_cache_policy().
| gboolean dt_dev_module_requires_global_histogram_output_cache | ( | const dt_dev_pixelpipe_t * | pipe, |
| const dt_iop_module_t * | module | ||
| ) |
Tell whether the module output itself feeds one global histogram stage.
References dt_dev_pixelpipe_get_realtime(), DT_DEV_PIXELPIPE_PREVIEW, FALSE, dt_dev_pixelpipe_t::gui_observable_source, dt_iop_module_t::op, and dt_dev_pixelpipe_t::type.
Referenced by _seal_opencl_cache_policy().
Disconnect GUI-side histogram sampling callbacks.
References _preview_pipe_finished_callback(), darktable, DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, and darktable_t::signals.
Referenced by dt_dev_cleanup().
Initialize GUI-side histogram sampling callbacks.
Histogram sampling is performed on the GUI thread after the preview pipe finished and published its cachelines. This initializer connects the preview finished signal to that direct cache sampling path.
References _preview_pipe_finished_callback(), darktable, DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, and darktable_t::signals.
Referenced by dt_dev_init().
| gboolean dt_dev_refresh_module_histogram | ( | dt_develop_t * | dev, |
| dt_iop_module_t * | module | ||
| ) |
Refresh the histogram owned by one module from the preview cache.
References _refresh_module_histogram(), dt_iop_buffer_dsc_t::channels, dt_iop_buffer_dsc_t::cst, darktable, dt_iop_buffer_dsc_t::datatype, dt_dev_pixelpipe_iop_t::dsc_in, dt_dev_pixelpipe_iop_t::dsc_out, dt_alloc_align(), dt_dev_pixelpipe_cache_peek(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), DT_DEV_PIXELPIPE_VALID, dt_free_align, dt_ioppr_get_pipe_work_profile_info(), dt_ioppr_transform_image_colorspace(), 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, darktable_t::pixelpipe_cache, dt_develop_t::preview_pipe, dt_dev_pixelpipe_iop_t::request_histogram, dt_dev_pixelpipe_iop_t::roi_in, dt_dev_pixelpipe_t::status, TRUE, TYPE_FLOAT, and dt_iop_roi_t::width.
Referenced by dt_dev_refresh_preview_histograms().
| void dt_dev_refresh_preview_histograms | ( | dt_develop_t * | dev | ) |
Refresh all GUI-visible histogram sources from the preview cache.
This updates:
demosaic, colorout, gamma),All reads happen directly from preview cachelines identified through the immutable piece contracts currently present in dev->preview_pipe->nodes.
References _refresh_global_histogram_backbuf(), dt_dev_pixelpipe_iop_t::data, DT_DEV_PIXELPIPE_VALID, dt_dev_refresh_module_histogram(), dt_dev_pixelpipe_iop_t::enabled, dt_develop_t::gui_attached, dt_dev_pixelpipe_t::gui_observable_source, dt_dev_pixelpipe_t::nodes, dt_develop_t::preview_pipe, and dt_dev_pixelpipe_t::status.
Referenced by _preview_pipe_finished_callback(), and _stage_callback().