18#ifndef DT_DEVELOP_DEV_PIXELPIPE_H
19#define DT_DEVELOP_DEV_PIXELPIPE_H
38#define dt_dev_pixelpipe_rebuild_all(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_rebuild_all_real, (dev))
44#define dt_dev_pixelpipe_update_history_main(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_history_main_real, (dev))
48#define dt_dev_pixelpipe_update_history_preview(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_history_preview_real, (dev))
52#define dt_dev_pixelpipe_update_history_all(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_history_all_real, (dev))
57#define dt_dev_pixelpipe_update_zoom_main(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_zoom_main_real, (dev))
62#define dt_dev_pixelpipe_update_zoom_preview(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_zoom_preview_real, (dev))
67#define dt_dev_pixelpipe_resync_history_all(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_resync_history_all_real, (dev))
72#define dt_dev_pixelpipe_resync_history_main(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_resync_history_main_real, (dev))
77#define dt_dev_pixelpipe_resync_history_preview(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_resync_history_preview_real, (dev))
208 const char *owner_tag,
209 gpointer owner_object);
244 gpointer restart_data);
272 gpointer restart_data);
void dt_dev_pixelpipe_reset_all(struct dt_develop_t *dev)
void dt_dev_pixelpipe_update_history_main_real(struct dt_develop_t *dev)
void dt_dev_pixelpipe_get_roi_out(struct dt_dev_pixelpipe_t *pipe, const int width_in, const int height_in, int *width, int *height)
uint64_t dt_dev_pixelpipe_node_hash(struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const struct dt_iop_roi_t, const int pos)
void dt_dev_pixelpipe_update_zoom_main_real(struct dt_develop_t *dev)
void dt_dev_pixelpipe_cache_wait_cleanup(dt_dev_pixelpipe_cache_wait_t *wait, const char *reason)
Cancel one pending GUI cache wait request and clear its runtime state.
void dt_dev_pixelpipe_rebuild_all_real(struct dt_develop_t *dev)
void dt_pixelpipe_get_global_hash(struct dt_dev_pixelpipe_t *pipe)
gboolean dt_dev_pixelpipe_cache_peek_gui_retained(dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, void **data, struct dt_pixel_cache_entry_t **cache_entry, dt_dev_pixelpipe_cache_wait_t *wait, dt_dev_pixelpipe_cache_ready_callback_t restart, gpointer restart_data)
dt_dev_pixelpipe_cache_peek_gui(), but the cacheline comes back RETAINED.
void dt_dev_pixelpipe_update_history_preview_real(struct dt_develop_t *dev)
void dt_dev_pixelpipe_resync_history_main_real(struct dt_develop_t *dev)
gboolean dt_dev_pixelpipe_cache_peek_gui(dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, void **data, struct dt_pixel_cache_entry_t **cache_entry, dt_dev_pixelpipe_cache_wait_t *wait, dt_dev_pixelpipe_cache_ready_callback_t restart, gpointer restart_data)
Reopen one GUI-visible host cacheline, or queue the minimal pipe recompute needed to publish it.
dt_pixelpipe_cache_ready_callback_t dt_dev_pixelpipe_cache_ready_callback_t
void dt_dev_pixelpipe_resync_history_preview_real(struct dt_develop_t *dev)
gboolean dt_dev_pixelpipe_is_pipeline_valid(struct dt_dev_pixelpipe_t *pipe)
void dt_dev_pixelpipe_change_zoom_main(struct dt_develop_t *dev)
void dt_dev_pixelpipe_cache_wait_dump_pending(const char *reason)
Dump pending GUI cache wait requests for lifecycle debugging.
dt_pixelpipe_cache_wait_t dt_dev_pixelpipe_cache_wait_t
const struct dt_dev_pixelpipe_iop_t * dt_dev_pixelpipe_get_module_piece(const struct dt_dev_pixelpipe_t *pipe, const struct dt_iop_module_t *module)
Return the enabled piece owned by module in pipe.
void dt_dev_pixelpipe_update_zoom_preview_real(struct dt_develop_t *dev)
void dt_dev_pixelpipe_change(struct dt_dev_pixelpipe_t *pipe)
void dt_dev_pixelpipe_get_roi_in(struct dt_dev_pixelpipe_t *pipe, const struct dt_iop_roi_t roi_out)
void dt_dev_pixelpipe_propagate_formats(struct dt_dev_pixelpipe_t *pipe)
const struct dt_dev_pixelpipe_iop_t * dt_dev_pixelpipe_get_prev_enabled_piece(const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece)
Return the closest enabled piece located immediately before piece in pipe.
void dt_dev_pixelpipe_cache_wait_set_owner(dt_dev_pixelpipe_cache_wait_t *wait, const char *owner_tag, gpointer owner_object)
Attach debug ownership metadata to one cache wait request.
gboolean dt_dev_pixelpipe_is_backbufer_valid(struct dt_dev_pixelpipe_t *pipe)
void dt_dev_pixelpipe_update_history_all_real(struct dt_develop_t *dev)
gboolean dt_dev_pixelpipe_activemodule_disables_currentmodule(struct dt_develop_t *dev, struct dt_iop_module_t *current_module)
void dt_dev_pixelpipe_resync_history_all_real(struct dt_develop_t *dev)
The queue of consumers waiting for a pixel cacheline that does not exist yet.
void(* dt_pixelpipe_cache_ready_callback_t)(gpointer user_data)
Called when the awaited cacheline finally exists. Runs on the caller's thread.
unsigned __int64 uint64_t
dt_pixel_cache_entry_t cache_entry
struct dt_iop_module_t *void * data
Region of interest passed through the pixelpipe.
One consumer's outstanding request, owned by that consumer, not by the queue.