![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
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 |
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.
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.
| 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.
| dt_iop_color_intent_t dt_colorprofiles_settings_t::display_intent |
rendering intent to the monitor
Definition at line 635 of file colorspaces.h.
| dt_colorspaces_color_profile_type_t dt_colorprofiles_settings_t::display_type |
monitor profile identity
Definition at line 633 of file colorspaces.h.
| 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.
Definition at line 645 of file colorspaces.h.
| dt_colorspaces_color_mode_t dt_colorprofiles_settings_t::mode |
NORMAL / SOFTPROOF / GAMUTCHECK.
Definition at line 632 of file colorspaces.h.
| 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.
| 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.
| dt_colorspaces_color_profile_type_t dt_colorprofiles_settings_t::softproof_type |
proofing target identity
Definition at line 636 of file colorspaces.h.