diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-05-07 17:41:38 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-05-07 17:41:38 +0300 |
commit | 3cd27374ee53bc2ae3fd08b0b73c0a3118f81020 (patch) | |
tree | 6ee668691bbdaa907fb8c781c49bd748e9f74c22 /source/blender/imbuf/intern/colormanagement.c | |
parent | 43b374e8c5430488a302298b1026faa1c3a231e9 (diff) |
Color management: add Filmic view transform to Blender configuration.
* "Filmic" and "False Color" view transforms added (sRGB display device only).
* "Very Low/Low/Base/High/Very High Contrast" looks added.
* Added filtering so that Filmic only shows look names prefixed with "Filmic - ".
Filmic Dynamic Range LUT configuration created by Troy James Sobotka with
special thanks and feedback from Guillermo, Claudio Rocha, Bassam Kurdali,
Eugenio Pignataro, Henri Hebeisen, Jason Clarke, Haarm-Peter Duiker, Thomas
Mansencal, and Timothy Lottes.
Differential Revision: https://developer.blender.org/D2659
Diffstat (limited to 'source/blender/imbuf/intern/colormanagement.c')
-rw-r--r-- | source/blender/imbuf/intern/colormanagement.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c index 0881a24422d..fc382f02b2c 100644 --- a/source/blender/imbuf/intern/colormanagement.c +++ b/source/blender/imbuf/intern/colormanagement.c @@ -2568,9 +2568,17 @@ ColorManagedLook *colormanage_look_add(const char *name, const char *process_spa look = MEM_callocN(sizeof(ColorManagedLook), "ColorManagedLook"); look->index = index + 1; BLI_strncpy(look->name, name, sizeof(look->name)); + BLI_strncpy(look->ui_name, name, sizeof(look->ui_name)); BLI_strncpy(look->process_space, process_space, sizeof(look->process_space)); look->is_noop = is_noop; + /* Detect view specific looks. */ + const char *separator_offset = strstr(look->name, " - "); + if (separator_offset) { + BLI_strncpy(look->view, look->name, separator_offset - look->name + 1); + BLI_strncpy(look->ui_name, separator_offset + strlen(" - "), sizeof(look->ui_name)); + } + BLI_addtail(&global_looks, look); global_tot_looks++; @@ -2671,15 +2679,27 @@ void IMB_colormanagement_view_items_add(EnumPropertyItem **items, int *totitem, } } -void IMB_colormanagement_look_items_add(struct EnumPropertyItem **items, int *totitem) +void IMB_colormanagement_look_items_add(struct EnumPropertyItem **items, int *totitem, const char *view_name) { ColorManagedLook *look; + const char *view_filter = NULL; + /* Test if this view transform is limited to specific looks. */ for (look = global_looks.first; look; look = look->next) { + if (STREQ(look->view, view_name)) { + view_filter = view_name; + } + } + + for (look = global_looks.first; look; look = look->next) { + if (!look->is_noop && view_filter && !STREQ(look->view, view_filter)) { + continue; + } + EnumPropertyItem item; item.value = look->index; - item.name = look->name; + item.name = look->ui_name; item.identifier = look->name; item.icon = 0; item.description = ""; |