![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
Raster-mask retrieval and transport through already-processed pipeline nodes. More...
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Functions | |
| static gboolean | _dt_dev_raster_mask_check (dt_dev_pixelpipe_iop_t *source_piece, dt_dev_pixelpipe_iop_t *current_piece, const dt_iop_module_t *target_module) |
| Check that the raster-mask provider/consumer relation is still valid in the current pipe. | |
| float * | dt_dev_get_raster_mask (dt_dev_pixelpipe_t *pipe, const dt_iop_module_t *raster_mask_source, const int raster_mask_id, const dt_iop_module_t *target_module, int *error) |
Raster-mask retrieval and transport through already-processed pipeline nodes.
These routines are private to the pixelpipe implementation. They operate on pipeline node state that is already planned and partially processed, so they stay in the develop subsystem and are included from pixelpipe_hb.c.
The goal is to keep raster-mask specific lifecycle code out of the main pixel-processing recursion file: raster masks are not part of normal pixel transport. Providers publish them in the global pixelpipe cache under dedicated keys; consumers copy those side-band buffers and optionally distort them through downstream modules until they reach the requested stage.
Definition in file pixelpipe_raster_masks.c.
|
static |
Check that the raster-mask provider/consumer relation is still valid in the current pipe.
We loop over the already-synchronized pipeline nodes looking for 2 things:
If either end of the relation cannot be found, or if the source exists but is disabled, the mask cannot be trusted and the caller needs to stop the blending path with an explanatory error.
Definition at line 26 of file pixelpipe_raster_masks.c.
References delete_underscore(), dt_control_log(), DT_DEBUG_MASKS, dt_free, dt_print(), dt_dev_pixelpipe_iop_t::enabled, FALSE, IS_NULL_PTR, dt_iop_module_t::multi_name, and TRUE.
Referenced by dt_dev_get_raster_mask().
| float * dt_dev_get_raster_mask | ( | dt_dev_pixelpipe_t * | pipe, |
| const dt_iop_module_t * | raster_mask_source, | ||
| const int | raster_mask_id, | ||
| const dt_iop_module_t * | target_module, | ||
| int * | error | ||
| ) |
Definition at line 92 of file pixelpipe_raster_masks.c.
References _dt_dev_raster_mask_check(), darktable, dt_dev_pixelpipe_iop_t::data, delete_underscore(), DT_DEBUG_DEV, DT_DEBUG_MASKS, dt_dev_pixelpipe_activemodule_disables_currentmodule(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_by_hash(), dt_dev_pixelpipe_raster_mask_hash(), dt_dev_pixelpipe_set_reentry(), dt_dev_pixelpipe_unset_reentry(), dt_free, dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, dt_pixelpipe_get_pipe_name(), dt_print(), dt_dev_pixelpipe_iop_t::enabled, error(), FALSE, dt_dev_pixelpipe_t::flush_cache, dt_dev_pixelpipe_iop_t::global_hash, dt_iop_roi_t::height, IS_NULL_PTR, dt_iop_module_t::multi_name, dt_iop_module_t::multi_priority, dt_dev_pixelpipe_t::nodes, dt_iop_module_t::op, darktable_t::pixelpipe_cache, dt_dev_pixelpipe_iop_t::roi_out, TRUE, type, dt_dev_pixelpipe_t::type, and dt_iop_roi_t::width.