48 return a->box_width == b->box_width
49 && a->box_height == b->box_height
50 && a->processed_width == b->processed_width
51 && a->processed_height == b->processed_height
52 && a->preview_width == b->preview_width
53 && a->preview_height == b->preview_height
54 && a->natural_scale == b->natural_scale
55 && a->scaling == b->scaling
56 && a->center_x == b->center_x
57 && a->center_y == b->center_y
58 && a->valid == b->valid;
64 memset(&request, 0,
sizeof(request));
83 memset(&request, 0,
sizeof(request));
91 if(before & 1)
continue;
93 request =
store->value;
96 if(before == after)
break;
259 if(before & 1)
continue;
264 if(before == after)
break;
void dt_atomic_set_int(dt_atomic_int *var, int value)
uint64_t dt_atomic_get_uint64(const dt_atomic_uint64 *var)
void dt_atomic_set_uint64(dt_atomic_uint64 *var, uint64_t value)
gchar * dt_conf_get_string(const char *name)
Read the stored string for name as a private copy.
dt_dev_image_geometry_t dt_dev_geometry_snapshot(const dt_develop_t *dev)
dt_dev_roi_request_t dt_dev_roi_request_neutral(void)
The value a pipe carries before the worker has latched anything.
int32_t dt_dev_roi_request_preview_height(const dt_develop_t *dev)
void dt_dev_roi_request_latch(dt_dev_pixelpipe_t *pipe, const dt_dev_roi_request_t *request)
Publish onto a pipe the request its next run is planned from. Darkroom worker only.
float dt_dev_roi_request_natural_scale(const dt_develop_t *dev)
int32_t dt_dev_roi_request_preview_width(const dt_develop_t *dev)
dt_dev_roi_request_t dt_dev_roi_request_of_pipe(const dt_dev_pixelpipe_t *pipe)
static gboolean _payload_equal(const dt_dev_roi_request_t *a, const dt_dev_roi_request_t *b)
Do these two records carry the same numbers, ignoring the generation stamp?
uint64_t dt_dev_roi_request_publish(dt_develop_t *dev)
Recompute the derived members from the viewport and the geometry record, and publish if anything chan...
void dt_dev_roi_request_init(dt_develop_t *dev)
gboolean dt_dev_roi_request_valid(const dt_develop_t *dev)
dt_dev_roi_request_t dt_dev_roi_request_get(const dt_develop_t *dev)
static float dt_dev_roi_natural_scale(const int32_t box_width, const int32_t box_height, const int32_t processed_width, const int32_t processed_height)
natural scaling = MIN(box / processed, 1): the image fits the widget minus its borders.
dt_dev_viewport_state_t dt_dev_viewport_get(const dt_develop_t *dev)
GtkWidget * geometry
its size, under the preview
GtkTreeStore * store
its model, owned by the view
static const dt_dev_pixelpipe_t * pipe
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
void dt_dev_pixelpipe_set_mask_rasterization_step(dt_dev_pixelpipe_t *pipe, const int step)
Set the drawn-mask rasterisation step for the frame this pipe is about to run.
static void dt_dev_pixelpipe_or_changed(dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_change_t flags)
unsigned __int64 uint64_t
Objective facts about the image a dev is working on.
dt_dev_roi_request_store_t roi_request
The viewport snapshot this run was planned from.
dt_atomic_uint64 generation
dt_dev_roi_request_t value
The coherent set of numbers a darkroom pipe plans its ROI from.
What the darkroom view asks the pipeline to show: the window onto the image.
struct dt_dev_pixelpipe_t * preview_pipe
dt_dev_roi_request_store_t roi_request
What the darkroom pipes plan their ROI from: the viewport and the geometry, combined and derived once...
struct dt_dev_pixelpipe_t * pipe