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

Consistent snapshot of the display and soft-proofing settings. More...

#include <colorspaces.h>

+ Collaboration diagram for dt_colorprofiles_settings_t:

Data Fields

dt_colorspaces_color_mode_t mode
 NORMAL / SOFTPROOF / GAMUTCHECK.
 
dt_colorspaces_color_profile_type_t display_type
 monitor profile identity
 
char display_filename [DT_IOP_COLOR_ICC_LEN]
 only meaningful for DT_COLORSPACE_FILE
 
dt_iop_color_intent_t display_intent
 rendering intent to the monitor
 
dt_colorspaces_color_profile_type_t softproof_type
 proofing target identity
 
char softproof_filename [DT_IOP_COLOR_ICC_LEN]
 only meaningful for DT_COLORSPACE_FILE
 
dt_iop_color_intent_t softproof_intent
 rendering intent to the proofing target
 
uint64_t generation
 

Detailed Description

Consistent snapshot of the display and soft-proofing settings.

The seven fields cross the module boundary only together. Reading them one at a time – which is what direct member access forced – lets a reader observe a new profile type paired with the previous filename, and a 512-byte filename read while it is being g_strlcpy'd is a TORN string, not merely a stale one. Both groups were read that way by iop/colorout.c (the display triple and the soft-proof pair, as separate unsynchronised loads spread over ~170 lines of commit_params) and by iop/filmicrgb.c on pipeline threads, while the GUI thread wrote them.

Warning
A module that snapshots this for its hash must then RENDER from the same snapshot. iop/filmicrgb.c snapshotted the soft-proof state for runtime_data_hash in commit_params, then read the live global again from process() / process_cl(), once per tile – rendering from state its cache key did not describe.

Definition at line 630 of file colorspaces.h.

Field Documentation

◆ display_filename

char dt_colorprofiles_settings_t::display_filename[DT_IOP_COLOR_ICC_LEN]

only meaningful for DT_COLORSPACE_FILE

Definition at line 634 of file colorspaces.h.

◆ display_intent

dt_iop_color_intent_t dt_colorprofiles_settings_t::display_intent

rendering intent to the monitor

Definition at line 635 of file colorspaces.h.

◆ display_type

dt_colorspaces_color_profile_type_t dt_colorprofiles_settings_t::display_type

monitor profile identity

Definition at line 633 of file colorspaces.h.

◆ generation

uint64_t dt_colorprofiles_settings_t::generation

Advances on every accepted change (any setter that actually changed something), and never wraps in practice. A pipeline module can fold this one number into its hash instead of the individual fields – cheaper, and it cannot go stale field by field.

Note
It is global to the group: a soft-proof change bumps it for a module that only cares about the display triple. That costs a recompute, never a wrong render.

Definition at line 645 of file colorspaces.h.

◆ mode

dt_colorspaces_color_mode_t dt_colorprofiles_settings_t::mode

NORMAL / SOFTPROOF / GAMUTCHECK.

Definition at line 632 of file colorspaces.h.

◆ softproof_filename

char dt_colorprofiles_settings_t::softproof_filename[DT_IOP_COLOR_ICC_LEN]

only meaningful for DT_COLORSPACE_FILE

Definition at line 637 of file colorspaces.h.

◆ softproof_intent

dt_iop_color_intent_t dt_colorprofiles_settings_t::softproof_intent

rendering intent to the proofing target

Definition at line 638 of file colorspaces.h.

◆ softproof_type

dt_colorspaces_color_profile_type_t dt_colorprofiles_settings_t::softproof_type

proofing target identity

Definition at line 636 of file colorspaces.h.


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