Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-09-09 13:48:26 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-09-09 13:48:26 +0400
commitcf8cddf07a34fe34ccb1223215c38de9effe6688 (patch)
treec5dea10e70e3043aa093ab7f97dffbe514b7cc09 /intern/opencolorio/ocio_impl.cc
parent0392acc607d26f3fb2681c7d8b0e5ad3a2d50d9a (diff)
Film response curves implemented as a looks
This commit implement's OCIO's Looks idea which is about applying some color correction on the buffer before it get's affected by a display transform. This is mainly used to modify images in an artistics way. Currently we've got looks generated from film response curves for all sorts of cameras. Patch by both of me and Brecht.
Diffstat (limited to 'intern/opencolorio/ocio_impl.cc')
-rw-r--r--intern/opencolorio/ocio_impl.cc63
1 files changed, 63 insertions, 0 deletions
diff --git a/intern/opencolorio/ocio_impl.cc b/intern/opencolorio/ocio_impl.cc
index 068a02dcb9b..dff25f238a7 100644
--- a/intern/opencolorio/ocio_impl.cc
+++ b/intern/opencolorio/ocio_impl.cc
@@ -282,6 +282,59 @@ const char *OCIOImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *conf
return NULL;
}
+int OCIOImpl::configGetNumLooks(OCIO_ConstConfigRcPtr *config)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getNumLooks();
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return 0;
+}
+
+const char *OCIOImpl::configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getLookNameByIndex(index);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+OCIO_ConstLookRcPtr *OCIOImpl::configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ ConstLookRcPtr *look = MEM_NEW(ConstLookRcPtr);
+
+ try {
+ *look = (*(ConstConfigRcPtr *) config)->getLook(name);
+
+ if (*look)
+ return (OCIO_ConstLookRcPtr *) look;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(look, ConstLookRcPtr);
+
+ return NULL;
+}
+
+const char *OCIOImpl::lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
+{
+ return (*(ConstLookRcPtr *) look)->getProcessSpace();
+}
+
+void OCIOImpl::lookRelease(OCIO_ConstLookRcPtr *look)
+{
+ MEM_DELETE((ConstLookRcPtr *) look, ConstLookRcPtr);
+}
+
int OCIOImpl::colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs_)
{
ConstColorSpaceRcPtr *cs = (ConstColorSpaceRcPtr *) cs_;
@@ -481,6 +534,16 @@ void OCIOImpl::displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_
(*(DisplayTransformRcPtr *) dt)->setLinearCC(*(ConstTransformRcPtr *) t);
}
+void OCIOImpl::displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks)
+{
+ (*(DisplayTransformRcPtr *) dt)->setLooksOverride(looks);
+}
+
+void OCIOImpl::displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr *dt, bool enabled)
+{
+ (*(DisplayTransformRcPtr *) dt)->setLooksOverrideEnabled(enabled);
+}
+
void OCIOImpl::displayTransformRelease(OCIO_DisplayTransformRcPtr *dt)
{
MEM_DELETE((DisplayTransformRcPtr *) dt, DisplayTransformRcPtr);