Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
dt_dev_image_geometry_t Struct Reference

Objective facts about the image a dev is working on. More...

#include <dev_geometry.h>

+ Collaboration diagram for dt_dev_image_geometry_t:

Data Fields

int32_t raw_width
 
int32_t raw_height
 
int32_t processed_width
 
int32_t processed_height
 
gboolean raw_inited
 
gboolean processed_inited
 

Detailed Description

Objective facts about the image a dev is working on.

This is not GUI state, and the distinction is not academic. Every field here is needed with no GUI at all: export, thumbnail generation and dev_snapshot's frozen dev all resolve drawn-mask geometry against the raw dimensions, and the darkroom worker feeds them to dt_dev_pixelpipe_set_input() on every loop tick.

Leaving them at zero does not fail loudly. dt_dev_coordinates_raw_norm_to_raw_abs() early-returns on raw_width == 0 WITHOUT transforming, so a shape's normalized centre masquerades as absolute pixel coordinates and every mask on the image collapses to within a few hundred pixels of the origin. That shipped once, because these fields were mistaken for GUI state and written only if(dev->gui_attached). See CLAUDE.md, and do not gate dt_dev_geometry_set_raw_size() on anything.

Definition at line 44 of file dev_geometry.h.

Field Documentation

◆ processed_height

int32_t dt_dev_image_geometry_t::processed_height

◆ processed_inited

gboolean dt_dev_image_geometry_t::processed_inited

TRUE once the processed pair has been published from the size fold. There is no headless producer for it today, so a caller that gets FALSE must not read 0x0 as though it were an answer – that is the raw_width mistake, one field over.

Definition at line 59 of file dev_geometry.h.

Referenced by dt_dev_geometry_set_processed_size().

◆ processed_width

int32_t dt_dev_image_geometry_t::processed_width

Dimensions of the final processed image if it were processed full-resolution: the final aspect ratio, with all cropping and distortions taken into account.

Definition at line 51 of file dev_geometry.h.

Referenced by dt_dev_geometry_processed_width(), and dt_dev_geometry_set_processed_size().

◆ raw_height

int32_t dt_dev_image_geometry_t::raw_height

Definition at line 47 of file dev_geometry.h.

Referenced by dt_dev_geometry_raw_height(), and dt_dev_geometry_set_raw_size().

◆ raw_inited

gboolean dt_dev_image_geometry_t::raw_inited

TRUE once the raw pair has been published from a successful mipmap read.

Definition at line 54 of file dev_geometry.h.

Referenced by dt_dev_geometry_raw_inited(), and dt_dev_geometry_set_raw_size().

◆ raw_width

int32_t dt_dev_image_geometry_t::raw_width

Dimensions of the full-resolution RAW image being worked on.

Definition at line 47 of file dev_geometry.h.

Referenced by dt_dev_geometry_raw_width(), and dt_dev_geometry_set_raw_size().


The documentation for this struct was generated from the following file: