Part 1 of D1082 by Troy Sobotka, add API in OCIO for luminance
authorAntony Riakiotakis <kalast@gmail.com>
Tue, 17 Mar 2015 13:15:05 +0000 (14:15 +0100)
committerAntony Riakiotakis <kalast@gmail.com>
Tue, 17 Mar 2015 13:15:05 +0000 (14:15 +0100)
calculation.

intern/opencolorio/fallback_impl.cc
intern/opencolorio/ocio_capi.cc
intern/opencolorio/ocio_capi.h
intern/opencolorio/ocio_impl.cc
intern/opencolorio/ocio_impl.h
release/datafiles/colormanagement/config.ocio

index d1493cb3ad52a6a101204d857540d995928f40c5..136f427ee0e1266a2df9df4afedc976ad5404f5a 100644 (file)
@@ -162,6 +162,19 @@ const char *FallbackImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *
        return "sRGB";
 }
 
+void FallbackImpl::configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr * /*config*/, float *rgb)
+{
+ /* Here we simply use the older Blender assumed primaries of
+ * ITU-BT.709 / sRGB, or 0.2126729 0.7151522 0.0721750. Brute
+ * force stupid, but only plausible option given no color management
+ * system in place.
+ */
+
+ rgb[0] = 0.2126729f;
+ rgb[1] = 0.7151522f;
+ rgb[2] = 0.0721750f;
+}
+
 int FallbackImpl::configGetNumLooks(OCIO_ConstConfigRcPtr * /*config*/)
 {
        return 0;
index a4f2db456e8f9acb1d9d48a2e74bb502d0a40408..7a0b9faa5fc9b4bd40bbd01fc27e1e4743c297cd 100644 (file)
@@ -132,6 +132,11 @@ const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, c
        return impl->configGetDisplayColorSpaceName(config, display, view);
 }
 
+void OCIO_configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb)
+{
+       impl->configGetDefaultLumaCoefs(config, rgb);
+}
+
 int OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config)
 {
        return impl->configGetNumLooks(config);
index d667dece62af77fee612767036ba657d837532ce..52a86727902699ccbd83bee92746f7addbae670a 100644 (file)
@@ -140,6 +140,8 @@ int         OCIO_configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *di
 const char *OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
 const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
 
+void        OCIO_configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb);
+
 int                  OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config);
 const char          *OCIO_configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
 OCIO_ConstLookRcPtr *OCIO_configGetLook(OCIO_ConstConfigRcPtr *config, const char *name);
index 5015f3a5c7dcea9540da224a44a0bdc42fb794e5..bf5590077efcebdcb84fe3b8f14e06f51c8f6ee4 100644 (file)
@@ -272,6 +272,16 @@ const char *OCIOImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *conf
        return NULL;
 }
 
+void OCIOImpl::configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb)
+{
+       try {
+               (*(ConstConfigRcPtr *) config)->getDefaultLumaCoefs(rgb);
+       }
+       catch (Exception &exception) {
+               OCIO_reportException(exception);
+       }
+}
+
 int OCIOImpl::configGetNumLooks(OCIO_ConstConfigRcPtr *config)
 {
        try {
index 47e6d82990236cef89d68f4f8351fdbf199e19c2..f086bbb1a268b94e0282d76133946ea8a1e4b858 100644 (file)
@@ -58,6 +58,8 @@ public:
        virtual const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index) = 0;
        virtual const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view) = 0;
 
+       virtual void configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb) = 0;
+
        virtual int                  configGetNumLooks(OCIO_ConstConfigRcPtr *config) = 0;
        virtual const char          *configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index) = 0;
        virtual OCIO_ConstLookRcPtr *configGetLook(OCIO_ConstConfigRcPtr *config, const char *name) = 0;
@@ -145,6 +147,8 @@ public:
        const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
        const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
 
+       void configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb);
+
        int                  configGetNumLooks(OCIO_ConstConfigRcPtr *config);
        const char          *configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
        OCIO_ConstLookRcPtr *configGetLook(OCIO_ConstConfigRcPtr *config, const char *name);
@@ -233,6 +237,8 @@ public:
        const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
        const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
 
+       void configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb);
+
        int                  configGetNumLooks(OCIO_ConstConfigRcPtr *config);
        const char          *configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
        OCIO_ConstLookRcPtr *configGetLook(OCIO_ConstConfigRcPtr *config, const char *name);
index 1cf9a3bb36e28640fbfc36bd08b4782861a62649..7ecc9768d5744ba2b5deaacd87b5da7adfebad3f 100644 (file)
@@ -6,7 +6,7 @@ ocio_profile_version: 1
 
 search_path: luts
 strictparsing: true
-luma: [0.2126, 0.7152, 0.0722]
+luma: [0.2126729, 0.7151522, 0.0721750]
 
 description: RRT version ut33