123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- /*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2012 Blender Foundation.
- * All rights reserved.
- */
- #include "MEM_guardedalloc.h"
- #include "ocio_impl.h"
- static IOCIOImpl *impl = NULL;
- void OCIO_init(void)
- {
- #ifdef WITH_OCIO
- impl = new OCIOImpl();
- #else
- impl = new FallbackImpl();
- #endif
- }
- void OCIO_exit(void)
- {
- delete impl;
- impl = NULL;
- }
- OCIO_ConstConfigRcPtr *OCIO_getCurrentConfig(void)
- {
- return impl->getCurrentConfig();
- }
- OCIO_ConstConfigRcPtr *OCIO_configCreateFallback(void)
- {
- delete impl;
- impl = new FallbackImpl();
- return impl->getCurrentConfig();
- }
- void OCIO_setCurrentConfig(const OCIO_ConstConfigRcPtr *config)
- {
- impl->setCurrentConfig(config);
- }
- OCIO_ConstConfigRcPtr *OCIO_configCreateFromEnv(void)
- {
- return impl->configCreateFromEnv();
- }
- OCIO_ConstConfigRcPtr *OCIO_configCreateFromFile(const char *filename)
- {
- return impl->configCreateFromFile(filename);
- }
- void OCIO_configRelease(OCIO_ConstConfigRcPtr *config)
- {
- impl->configRelease(config);
- }
- int OCIO_configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config)
- {
- return impl->configGetNumColorSpaces(config);
- }
- const char *OCIO_configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
- {
- return impl->configGetColorSpaceNameByIndex(config, index);
- }
- OCIO_ConstColorSpaceRcPtr *OCIO_configGetColorSpace(OCIO_ConstConfigRcPtr *config,
- const char *name)
- {
- return impl->configGetColorSpace(config, name);
- }
- int OCIO_configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
- {
- return impl->configGetIndexForColorSpace(config, name);
- }
- const char *OCIO_configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
- {
- return impl->configGetDefaultDisplay(config);
- }
- int OCIO_configGetNumDisplays(OCIO_ConstConfigRcPtr *config)
- {
- return impl->configGetNumDisplays(config);
- }
- const char *OCIO_configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)
- {
- return impl->configGetDisplay(config, index);
- }
- const char *OCIO_configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)
- {
- return impl->configGetDefaultView(config, display);
- }
- int OCIO_configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display)
- {
- return impl->configGetNumViews(config, display);
- }
- const char *OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index)
- {
- return impl->configGetView(config, display, index);
- }
- const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config,
- const char *display,
- const char *view)
- {
- return impl->configGetDisplayColorSpaceName(config, display, view);
- }
- void OCIO_configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb)
- {
- impl->configGetDefaultLumaCoefs(config, rgb);
- }
- void OCIO_configGetXYZtoRGB(OCIO_ConstConfigRcPtr *config, float xyz_to_rgb[3][3])
- {
- impl->configGetXYZtoRGB(config, xyz_to_rgb);
- }
- int OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config)
- {
- return impl->configGetNumLooks(config);
- }
- const char *OCIO_configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
- {
- return impl->configGetLookNameByIndex(config, index);
- }
- OCIO_ConstLookRcPtr *OCIO_configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)
- {
- return impl->configGetLook(config, name);
- }
- const char *OCIO_lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
- {
- return impl->lookGetProcessSpace(look);
- }
- void OCIO_lookRelease(OCIO_ConstLookRcPtr *look)
- {
- impl->lookRelease(look);
- }
- int OCIO_colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)
- {
- return impl->colorSpaceIsInvertible(cs);
- }
- int OCIO_colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)
- {
- return impl->colorSpaceIsData(cs);
- }
- void OCIO_colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr *config,
- OCIO_ConstColorSpaceRcPtr *cs,
- bool *is_scene_linear,
- bool *is_srgb)
- {
- impl->colorSpaceIsBuiltin(config, cs, *is_scene_linear, *is_srgb);
- }
- void OCIO_colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)
- {
- impl->colorSpaceRelease(cs);
- }
- OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config,
- const char *srcName,
- const char *dstName)
- {
- return impl->configGetProcessorWithNames(config, srcName, dstName);
- }
- OCIO_ConstProcessorRcPtr *OCIO_configGetProcessor(OCIO_ConstConfigRcPtr *config,
- OCIO_ConstTransformRcPtr *transform)
- {
- return impl->configGetProcessor(config, transform);
- }
- void OCIO_processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
- {
- impl->processorApply(processor, img);
- }
- void OCIO_processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
- {
- impl->processorApply_predivide(processor, img);
- }
- void OCIO_processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel)
- {
- impl->processorApplyRGB(processor, pixel);
- }
- void OCIO_processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel)
- {
- impl->processorApplyRGBA(processor, pixel);
- }
- void OCIO_processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel)
- {
- impl->processorApplyRGBA_predivide(processor, pixel);
- }
- void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *p)
- {
- impl->processorRelease(p);
- }
- const char *OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
- {
- return impl->colorSpaceGetName(cs);
- }
- const char *OCIO_colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs)
- {
- return impl->colorSpaceGetDescription(cs);
- }
- const char *OCIO_colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs)
- {
- return impl->colorSpaceGetFamily(cs);
- }
- OCIO_DisplayTransformRcPtr *OCIO_createDisplayTransform(void)
- {
- return impl->createDisplayTransform();
- }
- void OCIO_displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name)
- {
- impl->displayTransformSetInputColorSpaceName(dt, name);
- }
- void OCIO_displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name)
- {
- impl->displayTransformSetDisplay(dt, name);
- }
- void OCIO_displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name)
- {
- impl->displayTransformSetView(dt, name);
- }
- void OCIO_displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *t)
- {
- impl->displayTransformSetDisplayCC(dt, t);
- }
- void OCIO_displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *t)
- {
- impl->displayTransformSetLinearCC(dt, t);
- }
- void OCIO_displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks)
- {
- impl->displayTransformSetLooksOverride(dt, looks);
- }
- void OCIO_displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr *dt, bool enabled)
- {
- impl->displayTransformSetLooksOverrideEnabled(dt, enabled);
- }
- void OCIO_displayTransformRelease(OCIO_DisplayTransformRcPtr *dt)
- {
- impl->displayTransformRelease(dt);
- }
- OCIO_PackedImageDesc *OCIO_createOCIO_PackedImageDesc(float *data,
- long width,
- long height,
- long numChannels,
- long chanStrideBytes,
- long xStrideBytes,
- long yStrideBytes)
- {
- return impl->createOCIO_PackedImageDesc(
- data, width, height, numChannels, chanStrideBytes, xStrideBytes, yStrideBytes);
- }
- void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *id)
- {
- impl->OCIO_PackedImageDescRelease(id);
- }
- OCIO_ExponentTransformRcPtr *OCIO_createExponentTransform(void)
- {
- return impl->createExponentTransform();
- }
- void OCIO_exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent)
- {
- impl->exponentTransformSetValue(et, exponent);
- }
- void OCIO_exponentTransformRelease(OCIO_ExponentTransformRcPtr *et)
- {
- impl->exponentTransformRelease(et);
- }
- OCIO_MatrixTransformRcPtr *OCIO_createMatrixTransform(void)
- {
- return impl->createMatrixTransform();
- }
- void OCIO_matrixTransformSetValue(OCIO_MatrixTransformRcPtr *mt,
- const float *m44,
- const float *offset4)
- {
- impl->matrixTransformSetValue(mt, m44, offset4);
- }
- void OCIO_matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt)
- {
- impl->matrixTransformRelease(mt);
- }
- void OCIO_matrixTransformScale(float *m44, float *offset4, const float *scale4f)
- {
- impl->matrixTransformScale(m44, offset4, scale4f);
- }
- int OCIO_supportGLSLDraw(void)
- {
- return (int)impl->supportGLSLDraw();
- }
- int OCIO_setupGLSLDraw(struct OCIO_GLSLDrawState **state_r,
- OCIO_ConstProcessorRcPtr *processor,
- OCIO_CurveMappingSettings *curve_mapping_settings,
- float dither,
- bool predivide)
- {
- return (int)impl->setupGLSLDraw(state_r, processor, curve_mapping_settings, dither, predivide);
- }
- void OCIO_finishGLSLDraw(struct OCIO_GLSLDrawState *state)
- {
- impl->finishGLSLDraw(state);
- }
- void OCIO_freeOGLState(struct OCIO_GLSLDrawState *state)
- {
- impl->freeGLState(state);
- }
- const char *OCIO_getVersionString(void)
- {
- return impl->getVersionString();
- }
- int OCIO_getVersionHex(void)
- {
- return impl->getVersionHex();
- }
|