diff options
Diffstat (limited to 'intern/opencolorio/fallback_impl.cc')
-rw-r--r-- | intern/opencolorio/fallback_impl.cc | 718 |
1 files changed, 353 insertions, 365 deletions
diff --git a/intern/opencolorio/fallback_impl.cc b/intern/opencolorio/fallback_impl.cc index 33e7e4f46e3..91f009b3b57 100644 --- a/intern/opencolorio/fallback_impl.cc +++ b/intern/opencolorio/fallback_impl.cc @@ -28,171 +28,168 @@ using std::max; -#define CONFIG_DEFAULT ((OCIO_ConstConfigRcPtr*)1) +#define CONFIG_DEFAULT ((OCIO_ConstConfigRcPtr *)1) enum TransformType { - TRANSFORM_LINEAR_TO_SRGB, - TRANSFORM_SRGB_TO_LINEAR, - TRANSFORM_MATRIX, - TRANSFORM_EXPONENT, - TRANSFORM_UNKNOWN, + TRANSFORM_LINEAR_TO_SRGB, + TRANSFORM_SRGB_TO_LINEAR, + TRANSFORM_MATRIX, + TRANSFORM_EXPONENT, + TRANSFORM_UNKNOWN, }; -#define COLORSPACE_LINEAR ((OCIO_ConstColorSpaceRcPtr*)1) -#define COLORSPACE_SRGB ((OCIO_ConstColorSpaceRcPtr*)2) +#define COLORSPACE_LINEAR ((OCIO_ConstColorSpaceRcPtr *)1) +#define COLORSPACE_SRGB ((OCIO_ConstColorSpaceRcPtr *)2) typedef struct OCIO_PackedImageDescription { - float *data; - long width; - long height; - long numChannels; - long chanStrideBytes; - long xStrideBytes; - long yStrideBytes; + float *data; + long width; + long height; + long numChannels; + long chanStrideBytes; + long xStrideBytes; + long yStrideBytes; } OCIO_PackedImageDescription; struct FallbackTransform { - FallbackTransform() - : type(TRANSFORM_UNKNOWN), - linear_transform(NULL), - display_transform(NULL) - { - } - - ~FallbackTransform() - { - delete linear_transform; - delete display_transform; - } - - void applyRGB(float *pixel) - { - if (type == TRANSFORM_LINEAR_TO_SRGB) { - applyLinearRGB(pixel); - linearrgb_to_srgb_v3_v3(pixel, pixel); - applyDisplayRGB(pixel); - } - else if (type == TRANSFORM_SRGB_TO_LINEAR) { - srgb_to_linearrgb_v3_v3(pixel, pixel); - } - else if (type == TRANSFORM_EXPONENT) { - pixel[0] = powf(max(0.0f, pixel[0]), exponent[0]); - pixel[1] = powf(max(0.0f, pixel[1]), exponent[1]); - pixel[2] = powf(max(0.0f, pixel[2]), exponent[2]); - } - else if (type == TRANSFORM_MATRIX) { - float r = pixel[0]; - float g = pixel[1]; - float b = pixel[2]; - pixel[0] = r*matrix[0] + g*matrix[1] + b*matrix[2]; - pixel[1] = r*matrix[4] + g*matrix[5] + b*matrix[6]; - pixel[2] = r*matrix[8] + g*matrix[9] + b*matrix[10]; - pixel[0] += offset[0]; - pixel[1] += offset[1]; - pixel[2] += offset[2]; - } - } - - void applyRGBA(float *pixel) - { - if (type == TRANSFORM_LINEAR_TO_SRGB) { - applyLinearRGBA(pixel); - linearrgb_to_srgb_v4(pixel, pixel); - applyDisplayRGBA(pixel); - } - else if (type == TRANSFORM_SRGB_TO_LINEAR) { - srgb_to_linearrgb_v4(pixel, pixel); - } - else if (type == TRANSFORM_EXPONENT) { - pixel[0] = powf(max(0.0f, pixel[0]), exponent[0]); - pixel[1] = powf(max(0.0f, pixel[1]), exponent[1]); - pixel[2] = powf(max(0.0f, pixel[2]), exponent[2]); - pixel[3] = powf(max(0.0f, pixel[3]), exponent[3]); - } - else if (type == TRANSFORM_MATRIX) { - float r = pixel[0]; - float g = pixel[1]; - float b = pixel[2]; - float a = pixel[3]; - pixel[0] = r*matrix[0] + g*matrix[1] + b*matrix[2] + a*matrix[3]; - pixel[1] = r*matrix[4] + g*matrix[5] + b*matrix[6] + a*matrix[7]; - pixel[2] = r*matrix[8] + g*matrix[9] + b*matrix[10] + a*matrix[11]; - pixel[3] = r*matrix[12] + g*matrix[13] + b*matrix[14] + a*matrix[15]; - pixel[0] += offset[0]; - pixel[1] += offset[1]; - pixel[2] += offset[2]; - pixel[3] += offset[3]; - } - } - - void applyLinearRGB(float *pixel) - { - if (linear_transform != NULL) { - linear_transform->applyRGB(pixel); - } - } - - void applyLinearRGBA(float *pixel) - { - if (linear_transform != NULL) { - linear_transform->applyRGBA(pixel); - } - } - - void applyDisplayRGB(float *pixel) - { - if (display_transform != NULL) { - display_transform->applyRGB(pixel); - } - } - - void applyDisplayRGBA(float *pixel) - { - if (display_transform != NULL) { - display_transform->applyRGBA(pixel); - } - } - - TransformType type; - FallbackTransform *linear_transform; - FallbackTransform *display_transform; - /* Exponent transform. */ - float exponent[4]; - /* Matrix transform. */ - float matrix[16]; - float offset[4]; - - MEM_CXX_CLASS_ALLOC_FUNCS("FallbackProcessor"); + FallbackTransform() : type(TRANSFORM_UNKNOWN), linear_transform(NULL), display_transform(NULL) + { + } + + ~FallbackTransform() + { + delete linear_transform; + delete display_transform; + } + + void applyRGB(float *pixel) + { + if (type == TRANSFORM_LINEAR_TO_SRGB) { + applyLinearRGB(pixel); + linearrgb_to_srgb_v3_v3(pixel, pixel); + applyDisplayRGB(pixel); + } + else if (type == TRANSFORM_SRGB_TO_LINEAR) { + srgb_to_linearrgb_v3_v3(pixel, pixel); + } + else if (type == TRANSFORM_EXPONENT) { + pixel[0] = powf(max(0.0f, pixel[0]), exponent[0]); + pixel[1] = powf(max(0.0f, pixel[1]), exponent[1]); + pixel[2] = powf(max(0.0f, pixel[2]), exponent[2]); + } + else if (type == TRANSFORM_MATRIX) { + float r = pixel[0]; + float g = pixel[1]; + float b = pixel[2]; + pixel[0] = r * matrix[0] + g * matrix[1] + b * matrix[2]; + pixel[1] = r * matrix[4] + g * matrix[5] + b * matrix[6]; + pixel[2] = r * matrix[8] + g * matrix[9] + b * matrix[10]; + pixel[0] += offset[0]; + pixel[1] += offset[1]; + pixel[2] += offset[2]; + } + } + + void applyRGBA(float *pixel) + { + if (type == TRANSFORM_LINEAR_TO_SRGB) { + applyLinearRGBA(pixel); + linearrgb_to_srgb_v4(pixel, pixel); + applyDisplayRGBA(pixel); + } + else if (type == TRANSFORM_SRGB_TO_LINEAR) { + srgb_to_linearrgb_v4(pixel, pixel); + } + else if (type == TRANSFORM_EXPONENT) { + pixel[0] = powf(max(0.0f, pixel[0]), exponent[0]); + pixel[1] = powf(max(0.0f, pixel[1]), exponent[1]); + pixel[2] = powf(max(0.0f, pixel[2]), exponent[2]); + pixel[3] = powf(max(0.0f, pixel[3]), exponent[3]); + } + else if (type == TRANSFORM_MATRIX) { + float r = pixel[0]; + float g = pixel[1]; + float b = pixel[2]; + float a = pixel[3]; + pixel[0] = r * matrix[0] + g * matrix[1] + b * matrix[2] + a * matrix[3]; + pixel[1] = r * matrix[4] + g * matrix[5] + b * matrix[6] + a * matrix[7]; + pixel[2] = r * matrix[8] + g * matrix[9] + b * matrix[10] + a * matrix[11]; + pixel[3] = r * matrix[12] + g * matrix[13] + b * matrix[14] + a * matrix[15]; + pixel[0] += offset[0]; + pixel[1] += offset[1]; + pixel[2] += offset[2]; + pixel[3] += offset[3]; + } + } + + void applyLinearRGB(float *pixel) + { + if (linear_transform != NULL) { + linear_transform->applyRGB(pixel); + } + } + + void applyLinearRGBA(float *pixel) + { + if (linear_transform != NULL) { + linear_transform->applyRGBA(pixel); + } + } + + void applyDisplayRGB(float *pixel) + { + if (display_transform != NULL) { + display_transform->applyRGB(pixel); + } + } + + void applyDisplayRGBA(float *pixel) + { + if (display_transform != NULL) { + display_transform->applyRGBA(pixel); + } + } + + TransformType type; + FallbackTransform *linear_transform; + FallbackTransform *display_transform; + /* Exponent transform. */ + float exponent[4]; + /* Matrix transform. */ + float matrix[16]; + float offset[4]; + + MEM_CXX_CLASS_ALLOC_FUNCS("FallbackProcessor"); }; struct FallbackProcessor { - FallbackProcessor() - : transform(NULL) - { - } + FallbackProcessor() : transform(NULL) + { + } - ~FallbackProcessor() { - delete transform; - } + ~FallbackProcessor() + { + delete transform; + } - void applyRGB(float *pixel) - { - transform->applyRGB(pixel); - } + void applyRGB(float *pixel) + { + transform->applyRGB(pixel); + } - void applyRGBA(float *pixel) - { - transform->applyRGBA(pixel); - } + void applyRGBA(float *pixel) + { + transform->applyRGBA(pixel); + } - FallbackTransform *transform; + FallbackTransform *transform; - MEM_CXX_CLASS_ALLOC_FUNCS("FallbackProcessor"); + MEM_CXX_CLASS_ALLOC_FUNCS("FallbackProcessor"); }; OCIO_ConstConfigRcPtr *FallbackImpl::getCurrentConfig(void) { - return CONFIG_DEFAULT; + return CONFIG_DEFAULT; } void FallbackImpl::setCurrentConfig(const OCIO_ConstConfigRcPtr * /*config*/) @@ -201,12 +198,12 @@ void FallbackImpl::setCurrentConfig(const OCIO_ConstConfigRcPtr * /*config*/) OCIO_ConstConfigRcPtr *FallbackImpl::configCreateFromEnv(void) { - return NULL; + return NULL; } OCIO_ConstConfigRcPtr *FallbackImpl::configCreateFromFile(const char * /*filename*/) { - return CONFIG_DEFAULT; + return CONFIG_DEFAULT; } void FallbackImpl::configRelease(OCIO_ConstConfigRcPtr * /*config*/) @@ -215,145 +212,141 @@ void FallbackImpl::configRelease(OCIO_ConstConfigRcPtr * /*config*/) int FallbackImpl::configGetNumColorSpaces(OCIO_ConstConfigRcPtr * /*config*/) { - return 2; + return 2; } const char *FallbackImpl::configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr * /*config*/, int index) { - if (index == 0) - return "Linear"; - else if (index == 1) - return "sRGB"; - - return NULL; + if (index == 0) + return "Linear"; + else if (index == 1) + return "sRGB"; + + return NULL; } OCIO_ConstColorSpaceRcPtr *FallbackImpl::configGetColorSpace(OCIO_ConstConfigRcPtr * /*config*/, const char *name) { - if (strcmp(name, "scene_linear") == 0) - return COLORSPACE_LINEAR; - else if (strcmp(name, "color_picking") == 0) - return COLORSPACE_SRGB; - else if (strcmp(name, "texture_paint") == 0) - return COLORSPACE_LINEAR; - else if (strcmp(name, "default_byte") == 0) - return COLORSPACE_SRGB; - else if (strcmp(name, "default_float") == 0) - return COLORSPACE_LINEAR; - else if (strcmp(name, "default_sequencer") == 0) - return COLORSPACE_SRGB; - else if (strcmp(name, "Linear") == 0) - return COLORSPACE_LINEAR; - else if (strcmp(name, "sRGB") == 0) - return COLORSPACE_SRGB; + if (strcmp(name, "scene_linear") == 0) + return COLORSPACE_LINEAR; + else if (strcmp(name, "color_picking") == 0) + return COLORSPACE_SRGB; + else if (strcmp(name, "texture_paint") == 0) + return COLORSPACE_LINEAR; + else if (strcmp(name, "default_byte") == 0) + return COLORSPACE_SRGB; + else if (strcmp(name, "default_float") == 0) + return COLORSPACE_LINEAR; + else if (strcmp(name, "default_sequencer") == 0) + return COLORSPACE_SRGB; + else if (strcmp(name, "Linear") == 0) + return COLORSPACE_LINEAR; + else if (strcmp(name, "sRGB") == 0) + return COLORSPACE_SRGB; - return NULL; + return NULL; } -int FallbackImpl::configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, - const char *name) +int FallbackImpl::configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name) { - OCIO_ConstColorSpaceRcPtr *cs = configGetColorSpace(config, name); + OCIO_ConstColorSpaceRcPtr *cs = configGetColorSpace(config, name); - if (cs == COLORSPACE_LINEAR) { - return 0; - } - else if (cs == COLORSPACE_SRGB) { - return 1; - } - return -1; + if (cs == COLORSPACE_LINEAR) { + return 0; + } + else if (cs == COLORSPACE_SRGB) { + return 1; + } + return -1; } const char *FallbackImpl::configGetDefaultDisplay(OCIO_ConstConfigRcPtr * /*config*/) { - return "sRGB"; + return "sRGB"; } int FallbackImpl::configGetNumDisplays(OCIO_ConstConfigRcPtr * /*config*/) { - return 1; + return 1; } -const char *FallbackImpl::configGetDisplay(OCIO_ConstConfigRcPtr * /*config*/, - int index) +const char *FallbackImpl::configGetDisplay(OCIO_ConstConfigRcPtr * /*config*/, int index) { - if (index == 0) { - return "sRGB"; - } - return NULL; + if (index == 0) { + return "sRGB"; + } + return NULL; } const char *FallbackImpl::configGetDefaultView(OCIO_ConstConfigRcPtr * /*config*/, const char * /*display*/) { - return "Default"; + return "Default"; } -int FallbackImpl::configGetNumViews(OCIO_ConstConfigRcPtr * /*config*/, - const char * /*display*/) +int FallbackImpl::configGetNumViews(OCIO_ConstConfigRcPtr * /*config*/, const char * /*display*/) { - return 1; + return 1; } const char *FallbackImpl::configGetView(OCIO_ConstConfigRcPtr * /*config*/, - const char * /*display*/, int index) + const char * /*display*/, + int index) { - if (index == 0) { - return "Default"; - } - return NULL; + if (index == 0) { + return "Default"; + } + return NULL; } const char *FallbackImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr * /*config*/, const char * /*display*/, const char * /*view*/) { - return "sRGB"; + return "sRGB"; } -void FallbackImpl::configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr * /*config*/, - float *rgb) +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. - */ + /* 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.2126f; - rgb[1] = 0.7152f; - rgb[2] = 0.0722f; + rgb[0] = 0.2126f; + rgb[1] = 0.7152f; + rgb[2] = 0.0722f; } -void FallbackImpl::configGetXYZtoRGB(OCIO_ConstConfigRcPtr * /*config*/, - float xyz_to_rgb[3][3]) +void FallbackImpl::configGetXYZtoRGB(OCIO_ConstConfigRcPtr * /*config*/, float xyz_to_rgb[3][3]) { - /* Default to ITU-BT.709. */ - memcpy(xyz_to_rgb, OCIO_XYZ_TO_LINEAR_SRGB, sizeof(OCIO_XYZ_TO_LINEAR_SRGB)); + /* Default to ITU-BT.709. */ + memcpy(xyz_to_rgb, OCIO_XYZ_TO_LINEAR_SRGB, sizeof(OCIO_XYZ_TO_LINEAR_SRGB)); } int FallbackImpl::configGetNumLooks(OCIO_ConstConfigRcPtr * /*config*/) { - return 0; + return 0; } const char *FallbackImpl::configGetLookNameByIndex(OCIO_ConstConfigRcPtr * /*config*/, int /*index*/) { - return ""; + return ""; } OCIO_ConstLookRcPtr *FallbackImpl::configGetLook(OCIO_ConstConfigRcPtr * /*config*/, const char * /*name*/) { - return NULL; + return NULL; } const char *FallbackImpl::lookGetProcessSpace(OCIO_ConstLookRcPtr * /*look*/) { - return NULL; + return NULL; } void FallbackImpl::lookRelease(OCIO_ConstLookRcPtr * /*look*/) @@ -362,161 +355,156 @@ void FallbackImpl::lookRelease(OCIO_ConstLookRcPtr * /*look*/) int FallbackImpl::colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr * /*cs*/) { - return 1; + return 1; } int FallbackImpl::colorSpaceIsData(OCIO_ConstColorSpaceRcPtr * /*cs*/) { - return 0; + return 0; } void FallbackImpl::colorSpaceRelease(OCIO_ConstColorSpaceRcPtr * /*cs*/) { } -OCIO_ConstProcessorRcPtr *FallbackImpl::configGetProcessorWithNames( - OCIO_ConstConfigRcPtr *config, - const char *srcName, - const char *dstName) +OCIO_ConstProcessorRcPtr *FallbackImpl::configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, + const char *srcName, + const char *dstName) { - OCIO_ConstColorSpaceRcPtr *cs_src = configGetColorSpace(config, srcName); - OCIO_ConstColorSpaceRcPtr *cs_dst = configGetColorSpace(config, dstName); - FallbackTransform *transform = new FallbackTransform(); - if (cs_src == COLORSPACE_LINEAR && cs_dst == COLORSPACE_SRGB) { - transform->type = TRANSFORM_LINEAR_TO_SRGB; - } - else if (cs_src == COLORSPACE_SRGB && cs_dst == COLORSPACE_LINEAR) { - transform->type = TRANSFORM_SRGB_TO_LINEAR; - } - else { - transform->type = TRANSFORM_UNKNOWN; - } - FallbackProcessor *processor = new FallbackProcessor(); - processor->transform = transform; - return (OCIO_ConstProcessorRcPtr *)processor; + OCIO_ConstColorSpaceRcPtr *cs_src = configGetColorSpace(config, srcName); + OCIO_ConstColorSpaceRcPtr *cs_dst = configGetColorSpace(config, dstName); + FallbackTransform *transform = new FallbackTransform(); + if (cs_src == COLORSPACE_LINEAR && cs_dst == COLORSPACE_SRGB) { + transform->type = TRANSFORM_LINEAR_TO_SRGB; + } + else if (cs_src == COLORSPACE_SRGB && cs_dst == COLORSPACE_LINEAR) { + transform->type = TRANSFORM_SRGB_TO_LINEAR; + } + else { + transform->type = TRANSFORM_UNKNOWN; + } + FallbackProcessor *processor = new FallbackProcessor(); + processor->transform = transform; + return (OCIO_ConstProcessorRcPtr *)processor; } OCIO_ConstProcessorRcPtr *FallbackImpl::configGetProcessor(OCIO_ConstConfigRcPtr * /*config*/, OCIO_ConstTransformRcPtr *transform) { - FallbackProcessor *processor = new FallbackProcessor(); - processor->transform = (FallbackTransform *)transform; - return (OCIO_ConstProcessorRcPtr *)processor; + FallbackProcessor *processor = new FallbackProcessor(); + processor->transform = (FallbackTransform *)transform; + return (OCIO_ConstProcessorRcPtr *)processor; } -void FallbackImpl::processorApply(OCIO_ConstProcessorRcPtr *processor, - OCIO_PackedImageDesc *img) +void FallbackImpl::processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img) { - /* OCIO_TODO stride not respected, channels must be 3 or 4 */ - OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription*)img; - int channels = desc->numChannels; - float *pixels = desc->data; - int width = desc->width; - int height = desc->height; - int x, y; + /* OCIO_TODO stride not respected, channels must be 3 or 4 */ + OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription *)img; + int channels = desc->numChannels; + float *pixels = desc->data; + int width = desc->width; + int height = desc->height; + int x, y; - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - float *pixel = pixels + channels * (y * width + x); + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + float *pixel = pixels + channels * (y * width + x); - if (channels == 4) - processorApplyRGBA(processor, pixel); - else if (channels == 3) - processorApplyRGB(processor, pixel); - } - } + if (channels == 4) + processorApplyRGBA(processor, pixel); + else if (channels == 3) + processorApplyRGB(processor, pixel); + } + } } void FallbackImpl::processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img) { - /* OCIO_TODO stride not respected, channels must be 3 or 4 */ - OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription*)img; - int channels = desc->numChannels; - float *pixels = desc->data; - int width = desc->width; - int height = desc->height; - int x, y; + /* OCIO_TODO stride not respected, channels must be 3 or 4 */ + OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription *)img; + int channels = desc->numChannels; + float *pixels = desc->data; + int width = desc->width; + int height = desc->height; + int x, y; - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - float *pixel = pixels + channels * (y * width + x); + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + float *pixel = pixels + channels * (y * width + x); - if (channels == 4) - processorApplyRGBA_predivide(processor, pixel); - else if (channels == 3) - processorApplyRGB(processor, pixel); - } - } + if (channels == 4) + processorApplyRGBA_predivide(processor, pixel); + else if (channels == 3) + processorApplyRGB(processor, pixel); + } + } } -void FallbackImpl::processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, - float *pixel) +void FallbackImpl::processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel) { - ((FallbackProcessor *)processor)->applyRGB(pixel); + ((FallbackProcessor *)processor)->applyRGB(pixel); } -void FallbackImpl::processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, - float *pixel) +void FallbackImpl::processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel) { - ((FallbackProcessor *)processor)->applyRGBA(pixel); + ((FallbackProcessor *)processor)->applyRGBA(pixel); } -void FallbackImpl::processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, - float *pixel) +void FallbackImpl::processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel) { - if (pixel[3] == 1.0f || pixel[3] == 0.0f) { - processorApplyRGBA(processor, pixel); - } - else { - float alpha, inv_alpha; + if (pixel[3] == 1.0f || pixel[3] == 0.0f) { + processorApplyRGBA(processor, pixel); + } + else { + float alpha, inv_alpha; - alpha = pixel[3]; - inv_alpha = 1.0f / alpha; + alpha = pixel[3]; + inv_alpha = 1.0f / alpha; - pixel[0] *= inv_alpha; - pixel[1] *= inv_alpha; - pixel[2] *= inv_alpha; + pixel[0] *= inv_alpha; + pixel[1] *= inv_alpha; + pixel[2] *= inv_alpha; - processorApplyRGBA(processor, pixel); + processorApplyRGBA(processor, pixel); - pixel[0] *= alpha; - pixel[1] *= alpha; - pixel[2] *= alpha; - } + pixel[0] *= alpha; + pixel[1] *= alpha; + pixel[2] *= alpha; + } } void FallbackImpl::processorRelease(OCIO_ConstProcessorRcPtr *processor) { - delete (FallbackProcessor*)(processor); + delete (FallbackProcessor *)(processor); } const char *FallbackImpl::colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs) { - if (cs == COLORSPACE_LINEAR) { - return "Linear"; - } - else if (cs == COLORSPACE_SRGB) { - return "sRGB"; - } - return NULL; + if (cs == COLORSPACE_LINEAR) { + return "Linear"; + } + else if (cs == COLORSPACE_SRGB) { + return "sRGB"; + } + return NULL; } const char *FallbackImpl::colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr * /*cs*/) { - return ""; + return ""; } const char *FallbackImpl::colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr * /*cs*/) { - return ""; + return ""; } OCIO_DisplayTransformRcPtr *FallbackImpl::createDisplayTransform(void) { - FallbackTransform *transform = new FallbackTransform(); - transform->type = TRANSFORM_LINEAR_TO_SRGB; - return (OCIO_DisplayTransformRcPtr*)transform; + FallbackTransform *transform = new FallbackTransform(); + transform->type = TRANSFORM_LINEAR_TO_SRGB; + return (OCIO_DisplayTransformRcPtr *)transform; } void FallbackImpl::displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr * /*dt*/, @@ -537,15 +525,15 @@ void FallbackImpl::displayTransformSetView(OCIO_DisplayTransformRcPtr * /*dt*/, void FallbackImpl::displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et) { - FallbackTransform *transform = (FallbackTransform *)dt; - transform->display_transform = (FallbackTransform *)et; + FallbackTransform *transform = (FallbackTransform *)dt; + transform->display_transform = (FallbackTransform *)et; } void FallbackImpl::displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et) { - FallbackTransform *transform = (FallbackTransform *)dt; - transform->linear_transform = (FallbackTransform *)et; + FallbackTransform *transform = (FallbackTransform *)dt; + transform->linear_transform = (FallbackTransform *)et; } void FallbackImpl::displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr * /*dt*/, @@ -562,41 +550,43 @@ void FallbackImpl::displayTransformRelease(OCIO_DisplayTransformRcPtr * /*dt*/) { } -OCIO_PackedImageDesc *FallbackImpl::createOCIO_PackedImageDesc( - float *data, - long width, long height, long numChannels, - long chanStrideBytes, long xStrideBytes, long yStrideBytes) +OCIO_PackedImageDesc *FallbackImpl::createOCIO_PackedImageDesc(float *data, + long width, + long height, + long numChannels, + long chanStrideBytes, + long xStrideBytes, + long yStrideBytes) { - OCIO_PackedImageDescription *desc = - (OCIO_PackedImageDescription*)MEM_callocN(sizeof(OCIO_PackedImageDescription), - "OCIO_PackedImageDescription"); - desc->data = data; - desc->width = width; - desc->height = height; - desc->numChannels = numChannels; - desc->chanStrideBytes = chanStrideBytes; - desc->xStrideBytes = xStrideBytes; - desc->yStrideBytes = yStrideBytes; - return (OCIO_PackedImageDesc*)desc; + OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription *)MEM_callocN( + sizeof(OCIO_PackedImageDescription), "OCIO_PackedImageDescription"); + desc->data = data; + desc->width = width; + desc->height = height; + desc->numChannels = numChannels; + desc->chanStrideBytes = chanStrideBytes; + desc->xStrideBytes = xStrideBytes; + desc->yStrideBytes = yStrideBytes; + return (OCIO_PackedImageDesc *)desc; } -void FallbackImpl::OCIO_PackedImageDescRelease(OCIO_PackedImageDesc* id) +void FallbackImpl::OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *id) { - MEM_freeN(id); + MEM_freeN(id); } OCIO_ExponentTransformRcPtr *FallbackImpl::createExponentTransform(void) { - FallbackTransform *transform = new FallbackTransform(); - transform->type = TRANSFORM_EXPONENT; - return (OCIO_ExponentTransformRcPtr *)transform; + FallbackTransform *transform = new FallbackTransform(); + transform->type = TRANSFORM_EXPONENT; + return (OCIO_ExponentTransformRcPtr *)transform; } void FallbackImpl::exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent) { - FallbackTransform *transform = (FallbackTransform *)et; - copy_v4_v4(transform->exponent, exponent); + FallbackTransform *transform = (FallbackTransform *)et; + copy_v4_v4(transform->exponent, exponent); } void FallbackImpl::exponentTransformRelease(OCIO_ExponentTransformRcPtr * /*et*/) @@ -605,49 +595,47 @@ void FallbackImpl::exponentTransformRelease(OCIO_ExponentTransformRcPtr * /*et*/ OCIO_MatrixTransformRcPtr *FallbackImpl::createMatrixTransform(void) { - FallbackTransform *transform = new FallbackTransform(); - transform->type = TRANSFORM_MATRIX; - return (OCIO_MatrixTransformRcPtr *)transform; + FallbackTransform *transform = new FallbackTransform(); + transform->type = TRANSFORM_MATRIX; + return (OCIO_MatrixTransformRcPtr *)transform; } void FallbackImpl::matrixTransformSetValue(OCIO_MatrixTransformRcPtr *mt, const float *m44, const float *offset4) { - FallbackTransform *transform = (FallbackTransform *)mt; - copy_m4_m4((float (*)[4])transform->matrix, (float (*)[4])m44); - copy_v4_v4(transform->offset, offset4); + FallbackTransform *transform = (FallbackTransform *)mt; + copy_m4_m4((float(*)[4])transform->matrix, (float(*)[4])m44); + copy_v4_v4(transform->offset, offset4); } void FallbackImpl::matrixTransformRelease(OCIO_MatrixTransformRcPtr * /*mt*/) { } -void FallbackImpl::matrixTransformScale(float *m44, - float *offset4, - const float *scale4) +void FallbackImpl::matrixTransformScale(float *m44, float *offset4, const float *scale4) { - if (scale4 == NULL) { - return; - } - if (m44 != NULL) { - memset(m44, 0, 16*sizeof(float)); - m44[0] = scale4[0]; - m44[5] = scale4[1]; - m44[10] = scale4[2]; - m44[15] = scale4[3]; - } - if (offset4 != NULL) { - offset4[0] = 0.0f; - offset4[1] = 0.0f; - offset4[2] = 0.0f; - offset4[3] = 0.0f; - } + if (scale4 == NULL) { + return; + } + if (m44 != NULL) { + memset(m44, 0, 16 * sizeof(float)); + m44[0] = scale4[0]; + m44[5] = scale4[1]; + m44[10] = scale4[2]; + m44[15] = scale4[3]; + } + if (offset4 != NULL) { + offset4[0] = 0.0f; + offset4[1] = 0.0f; + offset4[2] = 0.0f; + offset4[3] = 0.0f; + } } bool FallbackImpl::supportGLSLDraw(void) { - return false; + return false; } bool FallbackImpl::setupGLSLDraw(struct OCIO_GLSLDrawState ** /*state_r*/, @@ -656,7 +644,7 @@ bool FallbackImpl::setupGLSLDraw(struct OCIO_GLSLDrawState ** /*state_r*/, float /*dither*/, bool /*predivide*/) { - return false; + return false; } void FallbackImpl::finishGLSLDraw(OCIO_GLSLDrawState * /*state*/) @@ -669,10 +657,10 @@ void FallbackImpl::freeGLState(struct OCIO_GLSLDrawState * /*state_r*/) const char *FallbackImpl::getVersionString(void) { - return "fallback"; + return "fallback"; } int FallbackImpl::getVersionHex(void) { - return 0; + return 0; } |