Color Management: resolve warnings when OCIO configuration file misses None display
This commit is contained in:
@@ -1266,9 +1266,11 @@ void BKE_scene_disable_color_management(Scene *scene)
|
||||
ColorManagedDisplaySettings *display_settings = &scene->display_settings;
|
||||
ColorManagedViewSettings *view_settings = &scene->view_settings;
|
||||
const char *view;
|
||||
const char *none_display_name;
|
||||
|
||||
/* NOTE: None display with Default view should always exist in OCIO configuration, otherwise it wouldn't work as expected */
|
||||
BLI_strncpy(display_settings->display_device, "None", sizeof(display_settings->display_device));
|
||||
none_display_name = IMB_colormanagement_display_get_none_name();
|
||||
|
||||
BLI_strncpy(display_settings->display_device, none_display_name, sizeof(display_settings->display_device));
|
||||
|
||||
view = IMB_colormanagement_view_get_default_name(display_settings->display_device);
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ int IMB_colormanagement_display_get_named_index(const char *name);
|
||||
const char *IMB_colormanagement_display_get_indexed_name(int index);
|
||||
const char *IMB_colormanagement_display_get_default_name(void);
|
||||
struct ColorManagedDisplay *IMB_colormanagement_display_get_named(const char *name);
|
||||
const char *IMB_colormanagement_display_get_none_name(void);
|
||||
|
||||
/* ** View funcrions ** */
|
||||
int IMB_colormanagement_view_get_named_index(const char *name);
|
||||
|
||||
@@ -74,6 +74,7 @@ void colormanagement_exit(void);
|
||||
|
||||
void colormanage_cache_free(struct ImBuf *ibuf);
|
||||
|
||||
const char *colormanage_display_get_default_name(void);
|
||||
struct ColorManagedDisplay *colormanage_display_get_default(void);
|
||||
struct ColorManagedDisplay *colormanage_display_add(const char *name);
|
||||
struct ColorManagedDisplay *colormanage_display_get_named(const char *name);
|
||||
|
||||
@@ -1893,10 +1893,10 @@ void IMB_display_buffer_release(void *cache_handle)
|
||||
|
||||
/*********************** Display functions *************************/
|
||||
|
||||
ColorManagedDisplay *colormanage_display_get_default(void)
|
||||
const char *colormanage_display_get_default_name(void)
|
||||
{
|
||||
ConstConfigRcPtr *config = OCIO_getCurrentConfig();
|
||||
const char *display;
|
||||
const char *display_name;
|
||||
|
||||
if (!config) {
|
||||
/* no valid OCIO configuration, can't get default display */
|
||||
@@ -1904,14 +1904,21 @@ ColorManagedDisplay *colormanage_display_get_default(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
display = OCIO_configGetDefaultDisplay(config);
|
||||
display_name = OCIO_configGetDefaultDisplay(config);
|
||||
|
||||
OCIO_configRelease(config);
|
||||
|
||||
if (display[0] == '\0')
|
||||
return display_name;
|
||||
}
|
||||
|
||||
ColorManagedDisplay *colormanage_display_get_default(void)
|
||||
{
|
||||
const char *display_name = colormanage_display_get_default_name();
|
||||
|
||||
if (display_name[0] == '\0')
|
||||
return NULL;
|
||||
|
||||
return colormanage_display_get_named(display);
|
||||
return colormanage_display_get_named(display_name);
|
||||
}
|
||||
|
||||
ColorManagedDisplay *colormanage_display_add(const char *name)
|
||||
@@ -1993,6 +2000,14 @@ ColorManagedDisplay *IMB_colormanagement_display_get_named(const char *name)
|
||||
return colormanage_display_get_named(name);
|
||||
}
|
||||
|
||||
const char *IMB_colormanagement_display_get_none_name(void)
|
||||
{
|
||||
if (colormanage_display_get_named("None") != NULL)
|
||||
return "NULL";
|
||||
|
||||
return colormanage_display_get_default_name();
|
||||
}
|
||||
|
||||
/*********************** View functions *************************/
|
||||
|
||||
const char *colormanage_view_get_default_name(const ColorManagedDisplay *display)
|
||||
|
||||
Reference in New Issue
Block a user