diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-09-09 13:48:26 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-09-09 13:48:26 +0400 |
commit | cf8cddf07a34fe34ccb1223215c38de9effe6688 (patch) | |
tree | c5dea10e70e3043aa093ab7f97dffbe514b7cc09 /intern/opencolorio/ocio_impl.cc | |
parent | 0392acc607d26f3fb2681c7d8b0e5ad3a2d50d9a (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.cc | 63 |
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); |