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:
authorBrecht Van Lommel <brecht@blender.org>2021-02-03 17:12:28 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-02-03 17:12:28 +0300
commit28f799df9260f3717300b802f8bd8784060e15cd (patch)
treeee02d08fb3379bcae0749bfaef80c970b8583058
parent6adb1fd37c5dfbcec3a4fc1516790c48d0855e71 (diff)
OpenColorIO: address review commentstmp-ocio-v2
-rw-r--r--intern/opencolorio/fallback_impl.cc104
-rw-r--r--intern/opencolorio/ocio_capi.cc34
-rw-r--r--intern/opencolorio/ocio_capi.h17
-rw-r--r--intern/opencolorio/ocio_impl.cc108
-rw-r--r--intern/opencolorio/ocio_impl.h83
-rw-r--r--source/blender/imbuf/intern/colormanagement.c117
6 files changed, 225 insertions, 238 deletions
diff --git a/intern/opencolorio/fallback_impl.cc b/intern/opencolorio/fallback_impl.cc
index 7c11d0baef4..9bbc9843e9d 100644
--- a/intern/opencolorio/fallback_impl.cc
+++ b/intern/opencolorio/fallback_impl.cc
@@ -104,31 +104,21 @@ struct FallbackTransform {
};
struct FallbackProcessor {
- FallbackProcessor(FallbackTransform *transform) : transform(transform)
+ FallbackProcessor(const FallbackTransform &transform) : transform(transform)
{
}
- FallbackProcessor(const FallbackProcessor &other)
- {
- transform = new FallbackTransform(*other.transform);
- }
-
- ~FallbackProcessor()
- {
- delete transform;
- }
-
void applyRGB(float *pixel)
{
- transform->applyRGB(pixel);
+ transform.applyRGB(pixel);
}
void applyRGBA(float *pixel)
{
- transform->applyRGBA(pixel);
+ transform.applyRGBA(pixel);
}
- FallbackTransform *transform;
+ FallbackTransform transform;
MEM_CXX_CLASS_ALLOC_FUNCS("FallbackProcessor");
};
@@ -338,27 +328,35 @@ OCIO_ConstProcessorRcPtr *FallbackImpl::configGetProcessorWithNames(OCIO_ConstCo
{
OCIO_ConstColorSpaceRcPtr *cs_src = configGetColorSpace(config, srcName);
OCIO_ConstColorSpaceRcPtr *cs_dst = configGetColorSpace(config, dstName);
- FallbackTransform *transform = new FallbackTransform();
+ FallbackTransform transform;
if (cs_src == COLORSPACE_LINEAR && cs_dst == COLORSPACE_SRGB) {
- transform->type = TRANSFORM_LINEAR_TO_SRGB;
+ transform.type = TRANSFORM_LINEAR_TO_SRGB;
}
else if (cs_src == COLORSPACE_SRGB && cs_dst == COLORSPACE_LINEAR) {
- transform->type = TRANSFORM_SRGB_TO_LINEAR;
+ transform.type = TRANSFORM_SRGB_TO_LINEAR;
}
else {
- transform->type = TRANSFORM_UNKNOWN;
+ transform.type = TRANSFORM_UNKNOWN;
}
return (OCIO_ConstProcessorRcPtr *)new FallbackProcessor(transform);
}
-OCIO_ConstCPUProcessorRcPtr *FallbackImpl::processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p)
+OCIO_ConstCPUProcessorRcPtr *FallbackImpl::processorGetCPUProcessor(
+ OCIO_ConstProcessorRcPtr *processor)
{
- FallbackProcessor *processor = (FallbackProcessor *)p;
- return (OCIO_ConstCPUProcessorRcPtr *)new FallbackProcessor(*processor);
+ /* Just make a copy of the processor so that we are compatible with OCIO
+ * which does need it as a separate object. */
+ FallbackProcessor *fallback_processor = (FallbackProcessor *)processor;
+ return (OCIO_ConstCPUProcessorRcPtr *)new FallbackProcessor(*fallback_processor);
}
-void FallbackImpl::processorApply(OCIO_ConstCPUProcessorRcPtr *processor,
- OCIO_PackedImageDesc *img)
+void FallbackImpl::processorRelease(OCIO_ConstProcessorRcPtr *processor)
+{
+ delete (FallbackProcessor *)(processor);
+}
+
+void FallbackImpl::cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img)
{
/* OCIO_TODO stride not respected, channels must be 3 or 4 */
OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription *)img;
@@ -373,15 +371,15 @@ void FallbackImpl::processorApply(OCIO_ConstCPUProcessorRcPtr *processor,
float *pixel = pixels + channels * (y * width + x);
if (channels == 4)
- processorApplyRGBA(processor, pixel);
+ cpuProcessorApplyRGBA(cpu_processor, pixel);
else if (channels == 3)
- processorApplyRGB(processor, pixel);
+ cpuProcessorApplyRGB(cpu_processor, pixel);
}
}
}
-void FallbackImpl::processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
- OCIO_PackedImageDesc *img)
+void FallbackImpl::cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img)
{
/* OCIO_TODO stride not respected, channels must be 3 or 4 */
OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription *)img;
@@ -396,28 +394,28 @@ void FallbackImpl::processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *process
float *pixel = pixels + channels * (y * width + x);
if (channels == 4)
- processorApplyRGBA_predivide(processor, pixel);
+ cpuProcessorApplyRGBA_predivide(cpu_processor, pixel);
else if (channels == 3)
- processorApplyRGB(processor, pixel);
+ cpuProcessorApplyRGB(cpu_processor, pixel);
}
}
}
-void FallbackImpl::processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void FallbackImpl::cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
{
- ((FallbackProcessor *)processor)->applyRGB(pixel);
+ ((FallbackProcessor *)cpu_processor)->applyRGB(pixel);
}
-void FallbackImpl::processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void FallbackImpl::cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
{
- ((FallbackProcessor *)processor)->applyRGBA(pixel);
+ ((FallbackProcessor *)cpu_processor)->applyRGBA(pixel);
}
-void FallbackImpl::processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
- float *pixel)
+void FallbackImpl::cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ float *pixel)
{
if (pixel[3] == 1.0f || pixel[3] == 0.0f) {
- processorApplyRGBA(processor, pixel);
+ cpuProcessorApplyRGBA(cpu_processor, pixel);
}
else {
float alpha, inv_alpha;
@@ -429,7 +427,7 @@ void FallbackImpl::processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *pro
pixel[1] *= inv_alpha;
pixel[2] *= inv_alpha;
- processorApplyRGBA(processor, pixel);
+ cpuProcessorApplyRGBA(cpu_processor, pixel);
pixel[0] *= alpha;
pixel[1] *= alpha;
@@ -437,14 +435,9 @@ void FallbackImpl::processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *pro
}
}
-void FallbackImpl::processorRelease(OCIO_ConstProcessorRcPtr *processor)
-{
- delete (FallbackProcessor *)(processor);
-}
-
-void FallbackImpl::cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *processor)
+void FallbackImpl::cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor)
{
- delete (FallbackProcessor *)(processor);
+ delete (FallbackProcessor *)(cpu_processor);
}
const char *FallbackImpl::colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
@@ -468,19 +461,18 @@ const char *FallbackImpl::colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr * /*cs*/
return "";
}
-OCIO_ConstProcessorRcPtr *FallbackImpl::createDisplayProcessor(
- OCIO_ConstConfigRcPtr * /* config */,
- const char * /* input */,
- const char * /* view */,
- const char * /* display */,
- const char * /* look */,
- const float scale,
- const float exponent)
+OCIO_ConstProcessorRcPtr *FallbackImpl::createDisplayProcessor(OCIO_ConstConfigRcPtr * /*config*/,
+ const char * /*input*/,
+ const char * /*view*/,
+ const char * /*display*/,
+ const char * /*look*/,
+ const float scale,
+ const float exponent)
{
- FallbackTransform *transform = new FallbackTransform();
- transform->type = TRANSFORM_LINEAR_TO_SRGB;
- transform->scale = scale;
- transform->exponent = exponent;
+ FallbackTransform transform;
+ transform.type = TRANSFORM_LINEAR_TO_SRGB;
+ transform.scale = scale;
+ transform.exponent = exponent;
return (OCIO_ConstProcessorRcPtr *)new FallbackProcessor(transform);
}
diff --git a/intern/opencolorio/ocio_capi.cc b/intern/opencolorio/ocio_capi.cc
index 6904ce207dd..a7416f82b91 100644
--- a/intern/opencolorio/ocio_capi.cc
+++ b/intern/opencolorio/ocio_capi.cc
@@ -194,45 +194,45 @@ OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr
return impl->configGetProcessorWithNames(config, srcName, dstName);
}
-OCIO_ConstCPUProcessorRcPtr *OCIO_processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p)
+void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *processor)
{
- return impl->processorGetCPUProcessor(p);
+ impl->processorRelease(processor);
}
-void OCIO_processorApply(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+OCIO_ConstCPUProcessorRcPtr *OCIO_processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *processor)
{
- impl->processorApply(processor, img);
+ return impl->processorGetCPUProcessor(processor);
}
-void OCIO_processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
- OCIO_PackedImageDesc *img)
+void OCIO_cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img)
{
- impl->processorApply_predivide(processor, img);
+ impl->cpuProcessorApply(cpu_processor, img);
}
-void OCIO_processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void OCIO_cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img)
{
- impl->processorApplyRGB(processor, pixel);
+ impl->cpuProcessorApply_predivide(cpu_processor, img);
}
-void OCIO_processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void OCIO_cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
{
- impl->processorApplyRGBA(processor, pixel);
+ impl->cpuProcessorApplyRGB(cpu_processor, pixel);
}
-void OCIO_processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void OCIO_cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
{
- impl->processorApplyRGBA_predivide(processor, pixel);
+ impl->cpuProcessorApplyRGBA(cpu_processor, pixel);
}
-void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *p)
+void OCIO_cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
{
- impl->processorRelease(p);
+ impl->cpuProcessorApplyRGBA_predivide(processor, pixel);
}
-void OCIO_cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *p)
+void OCIO_cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor)
{
- impl->cpuProcessorRelease(p);
+ impl->cpuProcessorRelease(cpu_processor);
}
const char *OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
diff --git a/intern/opencolorio/ocio_capi.h b/intern/opencolorio/ocio_capi.h
index d93200c8181..8b319d4ed68 100644
--- a/intern/opencolorio/ocio_capi.h
+++ b/intern/opencolorio/ocio_capi.h
@@ -158,17 +158,16 @@ void OCIO_lookRelease(OCIO_ConstLookRcPtr *look);
OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config,
const char *srcName,
const char *dstName);
+void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *cpu_processor);
-OCIO_ConstCPUProcessorRcPtr *OCIO_processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p);
-void OCIO_processorApply(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
-void OCIO_processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
+OCIO_ConstCPUProcessorRcPtr *OCIO_processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *processor);
+void OCIO_cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img);
+void OCIO_cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
OCIO_PackedImageDesc *img);
-void OCIO_processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
-void OCIO_processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
-void OCIO_processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
-
-void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *p);
-void OCIO_cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *p);
+void OCIO_cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+void OCIO_cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+void OCIO_cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+void OCIO_cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *processor);
const char *OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs);
const char *OCIO_colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs);
diff --git a/intern/opencolorio/ocio_impl.cc b/intern/opencolorio/ocio_impl.cc
index e73f41cae6d..69a8d8b17af 100644
--- a/intern/opencolorio/ocio_impl.cc
+++ b/intern/opencolorio/ocio_impl.cc
@@ -284,9 +284,9 @@ void OCIOImpl::configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *r
try {
double rgb_double[3];
(*(ConstConfigRcPtr *)config)->getDefaultLumaCoefs(rgb_double);
- rgb[0] = (float)rgb_double[0];
- rgb[1] = (float)rgb_double[1];
- rgb[2] = (float)rgb_double[2];
+ rgb[0] = rgb_double[0];
+ rgb[1] = rgb_double[1];
+ rgb[2] = rgb_double[2];
}
catch (Exception &exception) {
OCIO_reportException(exception);
@@ -310,23 +310,15 @@ static bool to_scene_linear_matrix(ConstConfigRcPtr &config,
return false;
}
- ConstCPUProcessorRcPtr device_processor = processor->getDefaultCPUProcessor();
- if (!device_processor) {
+ ConstCPUProcessorRcPtr cpu_processor = processor->getDefaultCPUProcessor();
+ if (!cpu_processor) {
return false;
}
- to_scene_linear[0][0] = 1.0f;
- to_scene_linear[0][1] = 0.0f;
- to_scene_linear[0][2] = 0.0f;
- to_scene_linear[1][0] = 0.0f;
- to_scene_linear[1][1] = 1.0f;
- to_scene_linear[1][2] = 0.0f;
- to_scene_linear[2][0] = 0.0f;
- to_scene_linear[2][1] = 0.0f;
- to_scene_linear[2][2] = 1.0f;
- device_processor->applyRGB(to_scene_linear[0]);
- device_processor->applyRGB(to_scene_linear[1]);
- device_processor->applyRGB(to_scene_linear[2]);
+ unit_m3(to_scene_linear);
+ cpu_processor->applyRGB(to_scene_linear[0]);
+ cpu_processor->applyRGB(to_scene_linear[1]);
+ cpu_processor->applyRGB(to_scene_linear[2]);
return true;
}
@@ -354,7 +346,7 @@ void OCIOImpl::configGetXYZtoRGB(OCIO_ConstConfigRcPtr *config_, float xyz_to_rg
}
else if (config->hasRole("XYZ")) {
/* Custom role used before the standard existed. */
- to_scene_linear_matrix(config, "XXYZ", xyz_to_rgb);
+ to_scene_linear_matrix(config, "XYZ", xyz_to_rgb);
}
}
@@ -476,7 +468,7 @@ void OCIOImpl::colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr *config_,
return;
}
- ConstCPUProcessorRcPtr device_processor = processor->getDefaultCPUProcessor();
+ ConstCPUProcessorRcPtr cpu_processor = processor->getDefaultCPUProcessor();
is_scene_linear = true;
is_srgb = true;
@@ -487,10 +479,10 @@ void OCIOImpl::colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr *config_,
float cG[3] = {0, v, 0};
float cB[3] = {0, 0, v};
float cW[3] = {v, v, v};
- device_processor->applyRGB(cR);
- device_processor->applyRGB(cG);
- device_processor->applyRGB(cB);
- device_processor->applyRGB(cW);
+ cpu_processor->applyRGB(cR);
+ cpu_processor->applyRGB(cG);
+ cpu_processor->applyRGB(cB);
+ cpu_processor->applyRGB(cW);
/* Make sure that there is no channel crosstalk. */
if (fabsf(cR[1]) > 1e-5f || fabsf(cR[2]) > 1e-5f || fabsf(cG[0]) > 1e-5f ||
@@ -532,43 +524,49 @@ OCIO_ConstProcessorRcPtr *OCIOImpl::configGetProcessorWithNames(OCIO_ConstConfig
const char *srcName,
const char *dstName)
{
- ConstProcessorRcPtr *p = OBJECT_GUARDED_NEW(ConstProcessorRcPtr);
+ ConstProcessorRcPtr *processor = OBJECT_GUARDED_NEW(ConstProcessorRcPtr);
try {
- *p = (*(ConstConfigRcPtr *)config)->getProcessor(srcName, dstName);
+ *processor = (*(ConstConfigRcPtr *)config)->getProcessor(srcName, dstName);
- if (*p)
- return (OCIO_ConstProcessorRcPtr *)p;
+ if (*processor)
+ return (OCIO_ConstProcessorRcPtr *)processor;
}
catch (Exception &exception) {
OCIO_reportException(exception);
}
- OBJECT_GUARDED_DELETE(p, ConstProcessorRcPtr);
+ OBJECT_GUARDED_DELETE(processor, ConstProcessorRcPtr);
return 0;
}
+void OCIOImpl::processorRelease(OCIO_ConstProcessorRcPtr *processor)
+{
+ OBJECT_GUARDED_DELETE(processor, ConstProcessorRcPtr);
+}
+
OCIO_ConstCPUProcessorRcPtr *OCIOImpl::processorGetCPUProcessor(
OCIO_ConstProcessorRcPtr *processor)
{
- ConstCPUProcessorRcPtr *p = OBJECT_GUARDED_NEW(ConstCPUProcessorRcPtr);
- *p = (*(ConstProcessorRcPtr *)processor)->getDefaultCPUProcessor();
- return (OCIO_ConstCPUProcessorRcPtr *)p;
+ ConstCPUProcessorRcPtr *cpu_processor = OBJECT_GUARDED_NEW(ConstCPUProcessorRcPtr);
+ *cpu_processor = (*(ConstProcessorRcPtr *)processor)->getDefaultCPUProcessor();
+ return (OCIO_ConstCPUProcessorRcPtr *)cpu_processor;
}
-void OCIOImpl::processorApply(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+void OCIOImpl::cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img)
{
try {
- (*(ConstCPUProcessorRcPtr *)processor)->apply(*(PackedImageDesc *)img);
+ (*(ConstCPUProcessorRcPtr *)cpu_processor)->apply(*(PackedImageDesc *)img);
}
catch (Exception &exception) {
OCIO_reportException(exception);
}
}
-void OCIOImpl::processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
- OCIO_PackedImageDesc *img_)
+void OCIOImpl::cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img_)
{
try {
PackedImageDesc *img = (PackedImageDesc *)img_;
@@ -585,12 +583,12 @@ void OCIOImpl::processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
for (int x = 0; x < width; x++) {
float *pixel = pixels + 4 * (y * width + x);
- processorApplyRGBA_predivide(processor, pixel);
+ cpuProcessorApplyRGBA_predivide(cpu_processor, pixel);
}
}
}
else {
- (*(ConstCPUProcessorRcPtr *)processor)->apply(*img);
+ (*(ConstCPUProcessorRcPtr *)cpu_processor)->apply(*img);
}
}
catch (Exception &exception) {
@@ -598,20 +596,21 @@ void OCIOImpl::processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
}
}
-void OCIOImpl::processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void OCIOImpl::cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
{
- (*(ConstCPUProcessorRcPtr *)processor)->applyRGB(pixel);
+ (*(ConstCPUProcessorRcPtr *)cpu_processor)->applyRGB(pixel);
}
-void OCIOImpl::processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void OCIOImpl::cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
{
- (*(ConstCPUProcessorRcPtr *)processor)->applyRGBA(pixel);
+ (*(ConstCPUProcessorRcPtr *)cpu_processor)->applyRGBA(pixel);
}
-void OCIOImpl::processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
+void OCIOImpl::cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ float *pixel)
{
if (pixel[3] == 1.0f || pixel[3] == 0.0f) {
- (*(ConstCPUProcessorRcPtr *)processor)->applyRGBA(pixel);
+ (*(ConstCPUProcessorRcPtr *)cpu_processor)->applyRGBA(pixel);
}
else {
float alpha, inv_alpha;
@@ -623,7 +622,7 @@ void OCIOImpl::processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *process
pixel[1] *= inv_alpha;
pixel[2] *= inv_alpha;
- (*(ConstCPUProcessorRcPtr *)processor)->applyRGBA(pixel);
+ (*(ConstCPUProcessorRcPtr *)cpu_processor)->applyRGBA(pixel);
pixel[0] *= alpha;
pixel[1] *= alpha;
@@ -631,14 +630,9 @@ void OCIOImpl::processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *process
}
}
-void OCIOImpl::processorRelease(OCIO_ConstProcessorRcPtr *p)
-{
- OBJECT_GUARDED_DELETE(p, ConstProcessorRcPtr);
-}
-
-void OCIOImpl::cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *p)
+void OCIOImpl::cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor)
{
- OBJECT_GUARDED_DELETE(p, ConstCPUProcessorRcPtr);
+ OBJECT_GUARDED_DELETE(cpu_processor, ConstCPUProcessorRcPtr);
}
const char *OCIOImpl::colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
@@ -669,7 +663,7 @@ OCIO_ConstProcessorRcPtr *OCIOImpl::createDisplayProcessor(OCIO_ConstConfigRcPtr
GroupTransformRcPtr group = GroupTransform::Create();
/* Exposure. */
- if (scale != 1.0) {
+ if (scale != 1.0f) {
/* Always apply exposure in scene linear. */
ColorSpaceTransformRcPtr ct = ColorSpaceTransform::Create();
ct->setSrc(input);
@@ -688,7 +682,8 @@ OCIO_ConstProcessorRcPtr *OCIOImpl::createDisplayProcessor(OCIO_ConstConfigRcPtr
}
/* Add look transform. */
- if (strlen(look)) {
+ const bool use_look = (strlen(look) != 0);
+ if (use_look) {
const char *look_output = LookTransform::GetLooksResultColorSpace(
config, config->getCurrentContext(), look);
@@ -705,20 +700,21 @@ OCIO_ConstProcessorRcPtr *OCIOImpl::createDisplayProcessor(OCIO_ConstConfigRcPtr
/* Add view and display transform. */
DisplayViewTransformRcPtr dvt = DisplayViewTransform::Create();
dvt->setSrc(input);
- dvt->setLooksBypass(look != NULL);
+ dvt->setLooksBypass(use_look);
dvt->setView(view);
dvt->setDisplay(display);
group->appendTransform(dvt);
/* Gamma. */
- if (exponent != 1.0) {
+ if (exponent != 1.0f) {
ExponentTransformRcPtr et = ExponentTransform::Create();
const double value[4] = {exponent, exponent, exponent, 1.0};
et->setValue(value);
group->appendTransform(et);
}
- /* Create processor from transform. */
+ /* Create processor from transform. This is the moment were OCIO validates
+ * the entire transform, no need to check for the validity of inputs above. */
ConstProcessorRcPtr *p = OBJECT_GUARDED_NEW(ConstProcessorRcPtr);
try {
diff --git a/intern/opencolorio/ocio_impl.h b/intern/opencolorio/ocio_impl.h
index 870432cf367..0c759a35e15 100644
--- a/intern/opencolorio/ocio_impl.h
+++ b/intern/opencolorio/ocio_impl.h
@@ -76,19 +76,18 @@ class IOCIOImpl {
virtual OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config,
const char *srcName,
const char *dstName) = 0;
- virtual OCIO_ConstCPUProcessorRcPtr *processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p) = 0;
-
- virtual void processorApply(OCIO_ConstCPUProcessorRcPtr *processor,
- OCIO_PackedImageDesc *img) = 0;
- virtual void processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
- OCIO_PackedImageDesc *img) = 0;
- virtual void processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel) = 0;
- virtual void processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel) = 0;
- virtual void processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor,
- float *pixel) = 0;
+ virtual void processorRelease(OCIO_ConstProcessorRcPtr *processor) = 0;
- virtual void processorRelease(OCIO_ConstProcessorRcPtr *p) = 0;
- virtual void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *p) = 0;
+ virtual OCIO_ConstCPUProcessorRcPtr *processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p) = 0;
+ virtual void cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img) = 0;
+ virtual void cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img) = 0;
+ virtual void cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel) = 0;
+ virtual void cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel) = 0;
+ virtual void cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ float *pixel) = 0;
+ virtual void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor) = 0;
virtual const char *colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs) = 0;
virtual const char *colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs) = 0;
@@ -117,17 +116,17 @@ class IOCIOImpl {
{
return false;
}
- virtual bool gpuDisplayShaderBind(OCIO_ConstConfigRcPtr * /* config */,
- const char * /* input */,
- const char * /* view */,
- const char * /* display */,
- const char * /* look */,
- OCIO_CurveMappingSettings * /* curve_mapping_settings */,
- const float /* scale */,
- const float /* exponent */,
- const float /* dither */,
- const bool /* use_predivide */,
- const bool /* use_overlay */)
+ virtual bool gpuDisplayShaderBind(OCIO_ConstConfigRcPtr * /*config*/,
+ const char * /*input*/,
+ const char * /*view*/,
+ const char * /*display*/,
+ const char * /*look*/,
+ OCIO_CurveMappingSettings * /*curve_mapping_settings*/,
+ const float /*scale*/,
+ const float /*exponent*/,
+ const float /*dither*/,
+ const bool /*use_predivide*/,
+ const bool /*use_overlay*/)
{
return false;
}
@@ -193,16 +192,16 @@ class FallbackImpl : public IOCIOImpl {
OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config,
const char *srcName,
const char *dstName);
- OCIO_ConstCPUProcessorRcPtr *processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p);
+ void processorRelease(OCIO_ConstProcessorRcPtr *processor);
- void processorApply(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
- void processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
- void processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
- void processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
- void processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
-
- void processorRelease(OCIO_ConstProcessorRcPtr *p);
- void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *p);
+ OCIO_ConstCPUProcessorRcPtr *processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *processor);
+ void cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img);
+ void cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img);
+ void cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+ void cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+ void cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+ void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor);
const char *colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs);
const char *colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs);
@@ -280,16 +279,16 @@ class OCIOImpl : public IOCIOImpl {
OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config,
const char *srcName,
const char *dstName);
- OCIO_ConstCPUProcessorRcPtr *processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p);
-
- void processorApply(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
- void processorApply_predivide(OCIO_ConstCPUProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
- void processorApplyRGB(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
- void processorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
- void processorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel);
-
- void processorRelease(OCIO_ConstProcessorRcPtr *p);
- void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *p);
+ void processorRelease(OCIO_ConstProcessorRcPtr *processor);
+
+ OCIO_ConstCPUProcessorRcPtr *processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *processor);
+ void cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img);
+ void cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor,
+ OCIO_PackedImageDesc *img);
+ void cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+ void cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+ void cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel);
+ void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor);
const char *colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs);
const char *colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs);
diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c
index f0db3ff3f1f..630e2e8c3fb 100644
--- a/source/blender/imbuf/intern/colormanagement.c
+++ b/source/blender/imbuf/intern/colormanagement.c
@@ -101,7 +101,7 @@ static float imbuf_linear_srgb_to_xyz[3][3] = {{0.0f}};
static pthread_mutex_t processor_lock = BLI_MUTEX_INITIALIZER;
typedef struct ColormanageProcessor {
- OCIO_ConstCPUProcessorRcPtr *processor;
+ OCIO_ConstCPUProcessorRcPtr *cpu_processor;
CurveMapping *curve_mapping;
bool is_data_result;
} ColormanageProcessor;
@@ -119,8 +119,8 @@ static struct global_gpu_state {
static struct global_color_picking_state {
/* Cached processor for color picking conversion. */
- OCIO_ConstCPUProcessorRcPtr *processor_to;
- OCIO_ConstCPUProcessorRcPtr *processor_from;
+ OCIO_ConstCPUProcessorRcPtr *cpu_processor_to;
+ OCIO_ConstCPUProcessorRcPtr *cpu_processor_from;
bool failed;
} global_color_picking_state = {NULL};
@@ -721,12 +721,12 @@ void colormanagement_exit(void)
MEM_freeN(global_gpu_state.curve_mapping_settings.lut);
}
- if (global_color_picking_state.processor_to) {
- OCIO_cpuProcessorRelease(global_color_picking_state.processor_to);
+ if (global_color_picking_state.cpu_processor_to) {
+ OCIO_cpuProcessorRelease(global_color_picking_state.cpu_processor_to);
}
- if (global_color_picking_state.processor_from) {
- OCIO_cpuProcessorRelease(global_color_picking_state.processor_from);
+ if (global_color_picking_state.cpu_processor_from) {
+ OCIO_cpuProcessorRelease(global_color_picking_state.cpu_processor_from);
}
memset(&global_gpu_state, 0, sizeof(global_gpu_state));
@@ -882,7 +882,7 @@ static OCIO_ConstCPUProcessorRcPtr *colorspace_to_scene_linear_cpu_processor(
OCIO_ConstProcessorRcPtr *processor = create_colorspace_transform_processor(
colorspace->name, global_role_scene_linear);
- if (processor) {
+ if (processor != NULL) {
colorspace->to_scene_linear = (struct OCIO_ConstCPUProcessorRcPtr *)
OCIO_processorGetCPUProcessor(processor);
OCIO_processorRelease(processor);
@@ -905,7 +905,7 @@ static OCIO_ConstCPUProcessorRcPtr *colorspace_from_scene_linear_cpu_processor(
OCIO_ConstProcessorRcPtr *processor = create_colorspace_transform_processor(
global_role_scene_linear, colorspace->name);
- if (processor) {
+ if (processor != NULL) {
colorspace->from_scene_linear = (struct OCIO_ConstCPUProcessorRcPtr *)
OCIO_processorGetCPUProcessor(processor);
OCIO_processorRelease(processor);
@@ -938,7 +938,7 @@ static OCIO_ConstCPUProcessorRcPtr *display_from_scene_linear_processor(
OCIO_configRelease(config);
}
- if (processor) {
+ if (processor != NULL) {
display->from_scene_linear = (struct OCIO_ConstCPUProcessorRcPtr *)
OCIO_processorGetCPUProcessor(processor);
OCIO_processorRelease(processor);
@@ -970,7 +970,7 @@ static OCIO_ConstCPUProcessorRcPtr *display_to_scene_linear_processor(ColorManag
OCIO_configRelease(config);
}
- if (processor) {
+ if (processor != NULL) {
display->to_scene_linear = (struct OCIO_ConstCPUProcessorRcPtr *)
OCIO_processorGetCPUProcessor(processor);
OCIO_processorRelease(processor);
@@ -2113,8 +2113,8 @@ void IMB_colormanagement_colorspace_to_scene_linear_v3(float pixel[3], ColorSpac
processor = colorspace_to_scene_linear_cpu_processor(colorspace);
- if (processor) {
- OCIO_processorApplyRGB(processor, pixel);
+ if (processor != NULL) {
+ OCIO_cpuProcessorApplyRGB(processor, pixel);
}
}
@@ -2131,8 +2131,8 @@ void IMB_colormanagement_scene_linear_to_colorspace_v3(float pixel[3], ColorSpac
processor = colorspace_from_scene_linear_cpu_processor(colorspace);
- if (processor) {
- OCIO_processorApplyRGB(processor, pixel);
+ if (processor != NULL) {
+ OCIO_cpuProcessorApplyRGB(processor, pixel);
}
}
@@ -2150,12 +2150,12 @@ void IMB_colormanagement_colorspace_to_scene_linear_v4(float pixel[4],
processor = colorspace_to_scene_linear_cpu_processor(colorspace);
- if (processor) {
+ if (processor != NULL) {
if (predivide) {
- OCIO_processorApplyRGBA_predivide(processor, pixel);
+ OCIO_cpuProcessorApplyRGBA_predivide(processor, pixel);
}
else {
- OCIO_processorApplyRGBA(processor, pixel);
+ OCIO_cpuProcessorApplyRGBA(processor, pixel);
}
}
}
@@ -2177,7 +2177,7 @@ void IMB_colormanagement_colorspace_to_scene_linear(float *buffer,
processor = colorspace_to_scene_linear_cpu_processor(colorspace);
- if (processor) {
+ if (processor != NULL) {
OCIO_PackedImageDesc *img;
img = OCIO_createOCIO_PackedImageDesc(buffer,
@@ -2189,10 +2189,10 @@ void IMB_colormanagement_colorspace_to_scene_linear(float *buffer,
(size_t)channels * sizeof(float) * width);
if (predivide) {
- OCIO_processorApply_predivide(processor, img);
+ OCIO_cpuProcessorApply_predivide(processor, img);
}
else {
- OCIO_processorApply(processor, img);
+ OCIO_cpuProcessorApply(processor, img);
}
OCIO_PackedImageDescRelease(img);
@@ -2229,12 +2229,12 @@ void IMB_colormanagement_imbuf_to_byte_texture(unsigned char *out_buffer,
const unsigned char *in = in_buffer + in_offset * 4;
unsigned char *out = out_buffer + out_offset * 4;
- if (processor) {
+ if (processor != NULL) {
/* Convert to scene linear, to sRGB and premultiply. */
for (int x = 0; x < width; x++, in += 4, out += 4) {
float pixel[4];
rgba_uchar_to_float(pixel, in);
- OCIO_processorApplyRGB(processor, pixel);
+ OCIO_cpuProcessorApplyRGB(processor, pixel);
linearrgb_to_srgb_v3_v3(pixel, pixel);
if (use_premultiply) {
mul_v3_fl(pixel, pixel[3]);
@@ -2325,16 +2325,16 @@ void IMB_colormanagement_imbuf_to_float_texture(float *out_buffer,
*/
void IMB_colormanagement_scene_linear_to_color_picking_v3(float pixel[3])
{
- if (!global_color_picking_state.processor_to && !global_color_picking_state.failed) {
+ if (!global_color_picking_state.cpu_processor_to && !global_color_picking_state.failed) {
/* Create processor if none exists. */
BLI_mutex_lock(&processor_lock);
- if (!global_color_picking_state.processor_to && !global_color_picking_state.failed) {
+ if (!global_color_picking_state.cpu_processor_to && !global_color_picking_state.failed) {
OCIO_ConstProcessorRcPtr *processor = create_colorspace_transform_processor(
global_role_scene_linear, global_role_color_picking);
- if (processor) {
- global_color_picking_state.processor_to = OCIO_processorGetCPUProcessor(processor);
+ if (processor != NULL) {
+ global_color_picking_state.cpu_processor_to = OCIO_processorGetCPUProcessor(processor);
OCIO_processorRelease(processor);
}
else {
@@ -2345,23 +2345,23 @@ void IMB_colormanagement_scene_linear_to_color_picking_v3(float pixel[3])
BLI_mutex_unlock(&processor_lock);
}
- if (global_color_picking_state.processor_to) {
- OCIO_processorApplyRGB(global_color_picking_state.processor_to, pixel);
+ if (global_color_picking_state.cpu_processor_to) {
+ OCIO_cpuProcessorApplyRGB(global_color_picking_state.cpu_processor_to, pixel);
}
}
void IMB_colormanagement_color_picking_to_scene_linear_v3(float pixel[3])
{
- if (!global_color_picking_state.processor_from && !global_color_picking_state.failed) {
+ if (!global_color_picking_state.cpu_processor_from && !global_color_picking_state.failed) {
/* Create processor if none exists. */
BLI_mutex_lock(&processor_lock);
- if (!global_color_picking_state.processor_from && !global_color_picking_state.failed) {
+ if (!global_color_picking_state.cpu_processor_from && !global_color_picking_state.failed) {
OCIO_ConstProcessorRcPtr *processor = create_colorspace_transform_processor(
global_role_color_picking, global_role_scene_linear);
- if (processor) {
- global_color_picking_state.processor_from = OCIO_processorGetCPUProcessor(processor);
+ if (processor != NULL) {
+ global_color_picking_state.cpu_processor_from = OCIO_processorGetCPUProcessor(processor);
OCIO_processorRelease(processor);
}
else {
@@ -2372,8 +2372,8 @@ void IMB_colormanagement_color_picking_to_scene_linear_v3(float pixel[3])
BLI_mutex_unlock(&processor_lock);
}
- if (global_color_picking_state.processor_from) {
- OCIO_processorApplyRGB(global_color_picking_state.processor_from, pixel);
+ if (global_color_picking_state.cpu_processor_from) {
+ OCIO_cpuProcessorApplyRGB(global_color_picking_state.cpu_processor_from, pixel);
}
}
@@ -2401,8 +2401,8 @@ void IMB_colormanagement_scene_linear_to_display_v3(float pixel[3], ColorManaged
{
OCIO_ConstCPUProcessorRcPtr *processor = display_from_scene_linear_processor(display);
- if (processor) {
- OCIO_processorApplyRGB(processor, pixel);
+ if (processor != NULL) {
+ OCIO_cpuProcessorApplyRGB(processor, pixel);
}
}
@@ -2411,8 +2411,8 @@ void IMB_colormanagement_display_to_scene_linear_v3(float pixel[3], ColorManaged
{
OCIO_ConstCPUProcessorRcPtr *processor = display_to_scene_linear_processor(display);
- if (processor) {
- OCIO_processorApplyRGB(processor, pixel);
+ if (processor != NULL) {
+ OCIO_cpuProcessorApplyRGB(processor, pixel);
}
}
@@ -3772,12 +3772,13 @@ ColormanageProcessor *IMB_colormanagement_display_processor_new(
cm_processor->is_data_result = display_space->is_data;
}
- cm_processor->processor = create_display_buffer_processor(applied_view_settings->look,
- applied_view_settings->view_transform,
- display_settings->display_device,
- applied_view_settings->exposure,
- applied_view_settings->gamma,
- global_role_scene_linear);
+ cm_processor->cpu_processor = create_display_buffer_processor(
+ applied_view_settings->look,
+ applied_view_settings->view_transform,
+ display_settings->display_device,
+ applied_view_settings->exposure,
+ applied_view_settings->gamma,
+ global_role_scene_linear);
if (applied_view_settings->flag & COLORMANAGE_VIEW_USE_CURVES) {
cm_processor->curve_mapping = BKE_curvemapping_copy(applied_view_settings->curve_mapping);
@@ -3800,8 +3801,8 @@ ColormanageProcessor *IMB_colormanagement_colorspace_processor_new(const char *f
OCIO_ConstProcessorRcPtr *processor = create_colorspace_transform_processor(from_colorspace,
to_colorspace);
- if (processor) {
- cm_processor->processor = OCIO_processorGetCPUProcessor(processor);
+ if (processor != NULL) {
+ cm_processor->cpu_processor = OCIO_processorGetCPUProcessor(processor);
}
OCIO_processorRelease(processor);
@@ -3814,8 +3815,8 @@ void IMB_colormanagement_processor_apply_v4(ColormanageProcessor *cm_processor,
BKE_curvemapping_evaluate_premulRGBF(cm_processor->curve_mapping, pixel, pixel);
}
- if (cm_processor->processor) {
- OCIO_processorApplyRGBA(cm_processor->processor, pixel);
+ if (cm_processor->cpu_processor) {
+ OCIO_cpuProcessorApplyRGBA(cm_processor->cpu_processor, pixel);
}
}
@@ -3826,8 +3827,8 @@ void IMB_colormanagement_processor_apply_v4_predivide(ColormanageProcessor *cm_p
BKE_curvemapping_evaluate_premulRGBF(cm_processor->curve_mapping, pixel, pixel);
}
- if (cm_processor->processor) {
- OCIO_processorApplyRGBA_predivide(cm_processor->processor, pixel);
+ if (cm_processor->cpu_processor) {
+ OCIO_cpuProcessorApplyRGBA_predivide(cm_processor->cpu_processor, pixel);
}
}
@@ -3837,8 +3838,8 @@ void IMB_colormanagement_processor_apply_v3(ColormanageProcessor *cm_processor,
BKE_curvemapping_evaluate_premulRGBF(cm_processor->curve_mapping, pixel, pixel);
}
- if (cm_processor->processor) {
- OCIO_processorApplyRGB(cm_processor->processor, pixel);
+ if (cm_processor->cpu_processor) {
+ OCIO_cpuProcessorApplyRGB(cm_processor->cpu_processor, pixel);
}
}
@@ -3883,7 +3884,7 @@ void IMB_colormanagement_processor_apply(ColormanageProcessor *cm_processor,
}
}
- if (cm_processor->processor && channels >= 3) {
+ if (cm_processor->cpu_processor && channels >= 3) {
OCIO_PackedImageDesc *img;
/* apply OCIO processor */
@@ -3896,10 +3897,10 @@ void IMB_colormanagement_processor_apply(ColormanageProcessor *cm_processor,
(size_t)channels * sizeof(float) * width);
if (predivide) {
- OCIO_processorApply_predivide(cm_processor->processor, img);
+ OCIO_cpuProcessorApply_predivide(cm_processor->cpu_processor, img);
}
else {
- OCIO_processorApply(cm_processor->processor, img);
+ OCIO_cpuProcessorApply(cm_processor->cpu_processor, img);
}
OCIO_PackedImageDescRelease(img);
@@ -3929,8 +3930,8 @@ void IMB_colormanagement_processor_free(ColormanageProcessor *cm_processor)
if (cm_processor->curve_mapping) {
BKE_curvemapping_free(cm_processor->curve_mapping);
}
- if (cm_processor->processor) {
- OCIO_cpuProcessorRelease(cm_processor->processor);
+ if (cm_processor->cpu_processor) {
+ OCIO_cpuProcessorRelease(cm_processor->cpu_processor);
}
MEM_freeN(cm_processor);