[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48960] branches/soc-2011-tomato: Color management: display descriptions for color spaces

Sergey Sharybin sergey.vfx at gmail.com
Mon Jul 16 12:51:02 CEST 2012


Revision: 48960
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48960
Author:   nazgul
Date:     2012-07-16 10:51:02 +0000 (Mon, 16 Jul 2012)
Log Message:
-----------
Color management: display descriptions for color spaces

This descriptions are being read from ocio configuration and
exposed into UI via standard enum's tooltips.

Modified Paths:
--------------
    branches/soc-2011-tomato/intern/opencolorio/ocio_capi.cpp
    branches/soc-2011-tomato/intern/opencolorio/ocio_capi.h
    branches/soc-2011-tomato/release/datafiles/colormanagement/config.ocio
    branches/soc-2011-tomato/source/blender/imbuf/intern/IMB_colormanagement_intern.h
    branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_color.c

Modified: branches/soc-2011-tomato/intern/opencolorio/ocio_capi.cpp
===================================================================
--- branches/soc-2011-tomato/intern/opencolorio/ocio_capi.cpp	2012-07-16 10:50:53 UTC (rev 48959)
+++ branches/soc-2011-tomato/intern/opencolorio/ocio_capi.cpp	2012-07-16 10:51:02 UTC (rev 48960)
@@ -305,6 +305,11 @@
 	return (*cs)->getName();
 }
 
+const char *OCIO_colorSpaceGetDescription(ConstColorSpaceRcPtr *cs)
+{
+	return (*cs)->getDescription();
+}
+
 const char *OCIO_colorSpaceGetFamily(ConstColorSpaceRcPtr *cs)
 {
 	return (*cs)->getFamily();

Modified: branches/soc-2011-tomato/intern/opencolorio/ocio_capi.h
===================================================================
--- branches/soc-2011-tomato/intern/opencolorio/ocio_capi.h	2012-07-16 10:50:53 UTC (rev 48959)
+++ branches/soc-2011-tomato/intern/opencolorio/ocio_capi.h	2012-07-16 10:51:02 UTC (rev 48960)
@@ -87,8 +87,8 @@
 
 void OCIO_processorRelease(ConstProcessorRcPtr *p);
 
-
 const char *OCIO_colorSpaceGetName(ConstColorSpaceRcPtr *cs);
+const char *OCIO_colorSpaceGetDescription(ConstColorSpaceRcPtr *cs);
 const char *OCIO_colorSpaceGetFamily(ConstColorSpaceRcPtr *cs);
 
 DisplayTransformRcPtr *OCIO_createDisplayTransform(void);

Modified: branches/soc-2011-tomato/release/datafiles/colormanagement/config.ocio
===================================================================
--- branches/soc-2011-tomato/release/datafiles/colormanagement/config.ocio	2012-07-16 10:50:53 UTC (rev 48959)
+++ branches/soc-2011-tomato/release/datafiles/colormanagement/config.ocio	2012-07-16 10:51:02 UTC (rev 48960)
@@ -181,7 +181,7 @@
     equalitygroup: ""
     bitdepth: 32f
     description: |
-      Rec. 709 (Full Range) Display Space
+      Rec. 709 (Full Range), Blender native internal space
     isdata: false
     allocation: uniform
     allocationvars: [-0.125, 1.125]

Modified: branches/soc-2011-tomato/source/blender/imbuf/intern/IMB_colormanagement_intern.h
===================================================================
--- branches/soc-2011-tomato/source/blender/imbuf/intern/IMB_colormanagement_intern.h	2012-07-16 10:50:53 UTC (rev 48959)
+++ branches/soc-2011-tomato/source/blender/imbuf/intern/IMB_colormanagement_intern.h	2012-07-16 10:51:02 UTC (rev 48960)
@@ -39,6 +39,7 @@
 	struct ColorSpace *next, *prev;
 	int index;
 	char name[64];
+	char description[64];
 } ColorSpace;
 
 typedef struct ColorManagedDisplay {
@@ -64,7 +65,7 @@
 struct ColorManagedView *colormanage_view_get_indexed(int index);
 struct ColorManagedView *colormanage_view_get_named(const char *name);
 
-struct ColorSpace *colormanage_colorspace_add(const char *name);
+struct ColorSpace *colormanage_colorspace_add(const char *name, const char *description);
 struct ColorSpace *colormanage_colorspace_get_named(const char *name);
 struct ColorSpace *colormanage_colorspace_get_indexed(int index);
 

Modified: branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c
===================================================================
--- branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c	2012-07-16 10:50:53 UTC (rev 48959)
+++ branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c	2012-07-16 10:51:02 UTC (rev 48960)
@@ -478,9 +478,17 @@
 	/* load colorspaces */
 	tot_colorspace = OCIO_configGetNumColorSpaces(config);
 	for (index = 0 ; index < tot_colorspace; index++) {
+		ConstColorSpaceRcPtr *ocio_colorspace;
+		const char *description;
+
 		name = OCIO_configGetColorSpaceNameByIndex(config, index);
 
-		colormanage_colorspace_add(name);
+		ocio_colorspace = OCIO_configGetColorSpace(config, name);
+		description = OCIO_colorSpaceGetDescription(ocio_colorspace);
+
+		colormanage_colorspace_add(name, description);
+
+		OCIO_colorSpaceRelease(ocio_colorspace);
 	}
 
 	/* load displays */
@@ -1620,8 +1628,28 @@
 
 /*********************** Color space functions *************************/
 
-ColorSpace *colormanage_colorspace_add(const char *name)
+static void colormanage_description_strip(char *description)
 {
+	int i, n;
+
+	for (i = strlen(description) - 1; i >= 0; i--) {
+		if (ELEM(description[i], '\r', '\n')) {
+			description[i] = '\0';
+		}
+		else {
+			break;
+		}
+	}
+
+	for (i = 0, n = strlen(description); i < n; i++) {
+		if (ELEM(description[i], '\r', '\n')) {
+			description[i] = ' ';
+		}
+	}
+}
+
+ColorSpace *colormanage_colorspace_add(const char *name, const char *description)
+{
 	ColorSpace *colorspace;
 
 	colorspace = MEM_callocN(sizeof(ColorSpace), "ColorSpace");
@@ -1629,6 +1657,12 @@
 
 	BLI_strncpy(colorspace->name, name, sizeof(colorspace->name));
 
+	if (description) {
+		BLI_strncpy(colorspace->description, description, sizeof(colorspace->description));
+
+		colormanage_description_strip(colorspace->description);
+	}
+
 	BLI_addtail(&global_colorspaces, colorspace);
 
 	global_tot_colorspace++;
@@ -1745,8 +1779,12 @@
 		item.name = colorspace->name;
 		item.identifier = colorspace->name;
 		item.icon = 0;
-		item.description = "";
 
+		if (colorspace->description)
+			item.description = colorspace->description;
+		else
+			item.description = "";
+
 		RNA_enum_item_add(items, totitem, &item);
 	}
 }

Modified: branches/soc-2011-tomato/source/blender/makesrna/intern/rna_color.c
===================================================================
--- branches/soc-2011-tomato/source/blender/makesrna/intern/rna_color.c	2012-07-16 10:50:53 UTC (rev 48959)
+++ branches/soc-2011-tomato/source/blender/makesrna/intern/rna_color.c	2012-07-16 10:51:02 UTC (rev 48960)
@@ -38,12 +38,12 @@
 #include "WM_types.h"
 
 static EnumPropertyItem view_transform_items[] = {
-	{0, "NONE", 0, "None", ""},
+	{0, "NONE", 0, "None", "Do not perform any color transform on display, use old non-color managed technique for display"},
 	{0, NULL, 0, NULL, NULL}
 };
 
 static EnumPropertyItem color_space_items[] = {
-	{0, "NONE", 0, "None", ""},
+	{0, "NONE", 0, "None", "Do not perform any color transform on load, treat colors as in scene linear space already"},
 	{0, NULL, 0, NULL, NULL}
 };
 




More information about the Bf-blender-cvs mailing list