Blender
V3.3
|
Public Attributes | |
int | flag |
int | look |
int | view |
float | exposure |
float | gamma |
float | dither |
CurveMapping * | curve_mapping |
All color management cache stuff is stored in two properties of image buffers:
display_buffer_flags
This is a bit field which used to mark calculated transformations for particular image buffer. Index inside of this array means index of a color managed display. Element with given index matches view transformations applied for a given display. So if bit B of array element B is set to 1, this means display buffer with display index of A and view transform of B was ever calculated for this imbuf.
In contrast with indices in global lists of displays and views this indices are 0-based, not 1-based. This is needed to save some bytes of memory.
colormanage_cache
This is a pointer to a structure which holds all data which is needed for color management cache to work.
It contains two parts:
Data field is used to store additional information about cached buffers which affects on whether cached buffer could be used. This data can't go to cache key because changes in this data shouldn't lead extra buffers adding to cache, it shall invalidate cached images.
Currently such a data contains only exposure and gamma, but would likely extended further.
data field is not null only for elements of cache, not used for original image buffers.
Color management cache is using generic MovieCache implementation to make it easier to deal with memory limitation.
Currently color management is using the same memory limitation pool as sequencer and clip editor are using which means color managed buffers would be removed from the cache as soon as new frames are loading for the movie clip and there's no space in cache.
Every image buffer has got own movie cache instance, which means keys for color managed buffers could be really simple and look up in this cache would be fast and independent from overall amount of color managed images.
Definition at line 185 of file colormanagement.c.
CurveMapping* ColormanageCacheViewSettings::curve_mapping |
Definition at line 192 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), and colormanage_view_settings_to_cache().
float ColormanageCacheViewSettings::dither |
Definition at line 191 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), and colormanage_view_settings_to_cache().
float ColormanageCacheViewSettings::exposure |
Definition at line 189 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), and colormanage_view_settings_to_cache().
int ColormanageCacheViewSettings::flag |
Definition at line 186 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), and colormanage_view_settings_to_cache().
float ColormanageCacheViewSettings::gamma |
Definition at line 190 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), and colormanage_view_settings_to_cache().
int ColormanageCacheViewSettings::look |
Definition at line 187 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), and colormanage_view_settings_to_cache().
int ColormanageCacheViewSettings::view |
Definition at line 188 of file colormanagement.c.
Referenced by colormanage_cache_get(), colormanage_cache_put(), colormanage_settings_to_key(), colormanage_view_settings_to_cache(), and imb_partial_display_buffer_update_ex().