[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50908] trunk/blender/source/blender: Color Management: resolve warnings when OCIO configuration file misses None display

Sergey Sharybin sergey.vfx at gmail.com
Wed Sep 26 15:17:47 CEST 2012


Revision: 50908
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50908
Author:   nazgul
Date:     2012-09-26 13:17:47 +0000 (Wed, 26 Sep 2012)
Log Message:
-----------
Color Management: resolve warnings when OCIO configuration file misses None display

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/imbuf/IMB_colormanagement.h
    trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h
    trunk/blender/source/blender/imbuf/intern/colormanagement.c

Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c	2012-09-26 12:30:46 UTC (rev 50907)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c	2012-09-26 13:17:47 UTC (rev 50908)
@@ -1266,10 +1266,12 @@
 	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);
 
 	if (view) {

Modified: trunk/blender/source/blender/imbuf/IMB_colormanagement.h
===================================================================
--- trunk/blender/source/blender/imbuf/IMB_colormanagement.h	2012-09-26 12:30:46 UTC (rev 50907)
+++ trunk/blender/source/blender/imbuf/IMB_colormanagement.h	2012-09-26 13:17:47 UTC (rev 50908)
@@ -108,6 +108,7 @@
 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);

Modified: trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h
===================================================================
--- trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h	2012-09-26 12:30:46 UTC (rev 50907)
+++ trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h	2012-09-26 13:17:47 UTC (rev 50908)
@@ -74,6 +74,7 @@
 
 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);

Modified: trunk/blender/source/blender/imbuf/intern/colormanagement.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/colormanagement.c	2012-09-26 12:30:46 UTC (rev 50907)
+++ trunk/blender/source/blender/imbuf/intern/colormanagement.c	2012-09-26 13:17:47 UTC (rev 50908)
@@ -1893,10 +1893,10 @@
 
 /*********************** 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 @@
 		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 @@
 	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)




More information about the Bf-blender-cvs mailing list