Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
dev_pixelpipe.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2026 - Ansel developers
4
5 darktable is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 darktable is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with darktable. If not, see <http://www.gnu.org/licenses/>.
17*/
18#pragma once
19
20#include <inttypes.h>
21#include <stdint.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27
28// Force a full rebuild of the pipe, needed when module order is changed.
29// Resync the full history, which may be expensive.
30// Pixelpipe cache will need to be flushed too when this is called,
31// for raster masks to work properly.
33
35// Invalidate the main image preview in darkroom, resync only the last history item(s)
36// with pipeline nodes.
37// This is the most common usecase when interacting with modules and masks.
38#define dt_dev_pixelpipe_update_main(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_main_real, (dev))
39
41// Invalidate the thumbnail preview in darkroom, resync only the last history item.
42#define dt_dev_pixelpipe_update_preview(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_preview_real, (dev))
43
45// Invalidate the main image and the thumbnail in darkroom, resync only the last history item.
46#define dt_dev_pixelpipe_update_all(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_update_all_real, (dev))
47
49// Invalidate the main image preview in darkroom.
50// This doesn't resync history at all, only update the coordinates of the region of interest (ROI).
51#define dt_dev_pixelpipe_change_zoom_main(dev) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_DEV, dt_dev_pixelpipe_change_zoom_main_real, (dev))
52
53// Invalidate the preview in darkroom.
54// This doesn't resync history at all, only update the coordinates of the region of interest (ROI).
56
57// Invalidate the main image and the thumbnail in darkroom.
58// Resync the whole history with the pipeline nodes, which may be expensive.
60
61// Invalidate the main image in darkroom.
62// Resync the whole history with the pipeline nodes, which may be expensive.
64
65// Invalidate the thumbnail in darkroom.
66// Resync the whole history with the pipeline nodes, which may be expensive.
68
69// Flush caches of dev pipes and force a full recompute
71
72// Queue a pipeline update and reprocess the main image pipeline at once.
73// If full, resync the whole history (might get expensive), else only the last history item(s)
74void dt_dev_pixelpipe_refresh_main(struct dt_develop_t *dev, gboolean full);
75
76// Queue a pipeline update and reprocess the preview image pipeline at once.
77// If full, resync the whole history (might get expensive), else only the last history item(s)
78void dt_dev_pixel_pipe_refresh_preview(struct dt_develop_t *dev, gboolean full);
79
80#ifdef __cplusplus
81}
82#endif
void dt_dev_pixelpipe_reset_all(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:74
void dt_dev_pixelpipe_change_zoom_preview(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:62
void dt_dev_pixelpipe_rebuild_all(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:17
void dt_dev_pixelpipe_update_main_real(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:43
void dt_dev_pixelpipe_resync_main(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:24
void dt_dev_pixelpipe_update_all_real(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:55
void dt_dev_pixelpipe_refresh_main(struct dt_develop_t *dev, gboolean full)
Definition dev_pixelpipe.c:84
void dt_dev_pixelpipe_resync_preview(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:30
void dt_dev_pixelpipe_change_zoom_main_real(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:68
void dt_dev_pixel_pipe_refresh_preview(struct dt_develop_t *dev, gboolean full)
Definition dev_pixelpipe.c:96
void dt_dev_pixelpipe_update_preview_real(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:49
void dt_dev_pixelpipe_resync_all(struct dt_develop_t *dev)
Definition dev_pixelpipe.c:36
Definition develop.h:150