Blender V4.3
ocio_capi.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2012 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#include "MEM_guardedalloc.h"
6
7#include "ocio_impl.h"
8
9static IOCIOImpl *impl = NULL;
10
12{
13#ifdef WITH_OCIO
14 impl = new OCIOImpl();
15#else
16 impl = new FallbackImpl();
17#endif
18}
19
21{
22 delete impl;
23 impl = NULL;
24}
25
26OCIO_ConstConfigRcPtr *OCIO_getCurrentConfig()
27{
28 return impl->getCurrentConfig();
29}
30
31OCIO_ConstConfigRcPtr *OCIO_configCreateFallback()
32{
33 delete impl;
34 impl = new FallbackImpl();
35
36 return impl->getCurrentConfig();
37}
38
39void OCIO_setCurrentConfig(const OCIO_ConstConfigRcPtr *config)
40{
41 impl->setCurrentConfig(config);
42}
43
44OCIO_ConstConfigRcPtr *OCIO_configCreateFromEnv()
45{
46 return impl->configCreateFromEnv();
47}
48
49OCIO_ConstConfigRcPtr *OCIO_configCreateFromFile(const char *filename)
50{
51 return impl->configCreateFromFile(filename);
52}
53
54void OCIO_configRelease(OCIO_ConstConfigRcPtr *config)
55{
56 impl->configRelease(config);
57}
58
59int OCIO_configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config)
60{
61 return impl->configGetNumColorSpaces(config);
62}
63
64const char *OCIO_configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
65{
66 return impl->configGetColorSpaceNameByIndex(config, index);
67}
68
69OCIO_ConstColorSpaceRcPtr *OCIO_configGetColorSpace(OCIO_ConstConfigRcPtr *config,
70 const char *name)
71{
72 return impl->configGetColorSpace(config, name);
73}
74
75int OCIO_configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
76{
77 return impl->configGetIndexForColorSpace(config, name);
78}
79
80const char *OCIO_configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
81{
82 return impl->configGetDefaultDisplay(config);
83}
84
85int OCIO_configGetNumDisplays(OCIO_ConstConfigRcPtr *config)
86{
87 return impl->configGetNumDisplays(config);
88}
89
90const char *OCIO_configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)
91{
92 return impl->configGetDisplay(config, index);
93}
94
95const char *OCIO_configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)
96{
97 return impl->configGetDefaultView(config, display);
98}
99
100int OCIO_configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display)
101{
102 return impl->configGetNumViews(config, display);
103}
104
105const char *OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index)
106{
107 return impl->configGetView(config, display, index);
108}
109
110const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config,
111 const char *display,
112 const char *view)
113{
114 return impl->configGetDisplayColorSpaceName(config, display, view);
115}
116
117void OCIO_configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb)
118{
119 impl->configGetDefaultLumaCoefs(config, rgb);
120}
121
122void OCIO_configGetXYZtoSceneLinear(OCIO_ConstConfigRcPtr *config, float xyz_to_scene_linear[3][3])
123{
124 impl->configGetXYZtoSceneLinear(config, xyz_to_scene_linear);
125}
126
127int OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config)
128{
129 return impl->configGetNumLooks(config);
130}
131
132const char *OCIO_configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
133{
134 return impl->configGetLookNameByIndex(config, index);
135}
136
137OCIO_ConstLookRcPtr *OCIO_configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)
138{
139 return impl->configGetLook(config, name);
140}
141
142const char *OCIO_lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
143{
144 return impl->lookGetProcessSpace(look);
145}
146
147void OCIO_lookRelease(OCIO_ConstLookRcPtr *look)
148{
149 impl->lookRelease(look);
150}
151
152int OCIO_colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)
153{
154 return impl->colorSpaceIsInvertible(cs);
155}
156
157int OCIO_colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)
158{
159 return impl->colorSpaceIsData(cs);
160}
161
162void OCIO_colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr *config,
163 OCIO_ConstColorSpaceRcPtr *cs,
164 bool *is_scene_linear,
165 bool *is_srgb)
166{
167 impl->colorSpaceIsBuiltin(config, cs, *is_scene_linear, *is_srgb);
168}
169
170void OCIO_colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)
171{
173}
174
175OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config,
176 const char *srcName,
177 const char *dstName)
178{
179 return impl->configGetProcessorWithNames(config, srcName, dstName);
180}
181
182void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *processor)
183{
184 impl->processorRelease(processor);
185}
186
188{
189 return impl->processorGetCPUProcessor(processor);
190}
191
193{
194 return impl->cpuProcessorIsNoOp(cpu_processor);
195}
196
197void OCIO_cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img)
198{
199 impl->cpuProcessorApply(cpu_processor, img);
200}
201
203 OCIO_PackedImageDesc *img)
204{
205 impl->cpuProcessorApply_predivide(cpu_processor, img);
206}
207
209{
210 impl->cpuProcessorApplyRGB(cpu_processor, pixel);
211}
212
214{
215 impl->cpuProcessorApplyRGBA(cpu_processor, pixel);
216}
217
219{
220 impl->cpuProcessorApplyRGBA_predivide(processor, pixel);
221}
222
224{
225 impl->cpuProcessorRelease(cpu_processor);
226}
227
228const char *OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
229{
230 return impl->colorSpaceGetName(cs);
231}
232
233const char *OCIO_colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs)
234{
235 return impl->colorSpaceGetDescription(cs);
236}
237
238const char *OCIO_colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs)
239{
240 return impl->colorSpaceGetFamily(cs);
241}
242
243int OCIO_colorSpaceGetNumAliases(OCIO_ConstColorSpaceRcPtr *cs)
244{
245 return impl->colorSpaceGetNumAliases(cs);
246}
247
248const char *OCIO_colorSpaceGetAlias(OCIO_ConstColorSpaceRcPtr *cs, const int index)
249{
250 return impl->colorSpaceGetAlias(cs, index);
251}
252
253OCIO_ConstProcessorRcPtr *OCIO_createDisplayProcessor(OCIO_ConstConfigRcPtr *config,
254 const char *input,
255 const char *view,
256 const char *display,
257 const char *look,
258 const float scale,
259 const float exponent,
260 const float temperature,
261 const float tint,
262 const bool use_white_balance,
263 const bool inverse)
264{
265 return impl->createDisplayProcessor(config,
266 input,
267 view,
268 display,
269 look,
270 scale,
271 exponent,
272 temperature,
273 tint,
274 use_white_balance,
275 inverse);
276}
277
278OCIO_PackedImageDesc *OCIO_createOCIO_PackedImageDesc(float *data,
279 long width,
280 long height,
281 long numChannels,
282 long chanStrideBytes,
283 long xStrideBytes,
284 long yStrideBytes)
285{
287 data, width, height, numChannels, chanStrideBytes, xStrideBytes, yStrideBytes);
288}
289
290void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *id)
291{
293}
294
296{
297 return impl->supportGPUShader();
298}
299
300bool OCIO_gpuDisplayShaderBind(OCIO_ConstConfigRcPtr *config,
301 const char *input,
302 const char *view,
303 const char *display,
304 const char *look,
305 OCIO_CurveMappingSettings *curve_mapping_settings,
306 const float scale,
307 const float exponent,
308 const float dither,
309 const float temperature,
310 const float tint,
311 const bool use_predivide,
312 const bool use_overlay,
313 const bool use_hdr,
314 const bool use_white_balance)
315{
316 return impl->gpuDisplayShaderBind(config,
317 input,
318 view,
319 display,
320 look,
321 curve_mapping_settings,
322 scale,
323 exponent,
324 dither,
325 temperature,
326 tint,
327 use_predivide,
328 use_overlay,
329 use_hdr,
330 use_white_balance);
331}
332
337
339{
341}
342
344{
345 return impl->getVersionString();
346}
347
349{
350 return impl->getVersionHex();
351}
struct OCIO_ConstCPUProcessorRc * OCIO_ConstCPUProcessorRcPtr
Read Guarded memory(de)allocation.
btMatrix3x3 inverse() const
Return the inverse of the matrix.
virtual OCIO_ConstCPUProcessorRcPtr * processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *p)=0
virtual void colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr *config, OCIO_ConstColorSpaceRcPtr *cs, bool &is_scene_linear, bool &is_srgb)=0
virtual int configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display)=0
virtual void configRelease(OCIO_ConstConfigRcPtr *config)=0
virtual bool supportGPUShader()
Definition ocio_impl.h:106
virtual OCIO_ConstConfigRcPtr * configCreateFromEnv(void)=0
virtual const char * colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual void colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual const char * configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)=0
virtual void cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img)=0
virtual void cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img)=0
virtual int configGetNumDisplays(OCIO_ConstConfigRcPtr *config)=0
virtual int colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual int configGetNumLooks(OCIO_ConstConfigRcPtr *config)=0
virtual int getVersionHex(void)=0
virtual const char * configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index)=0
virtual OCIO_ConstColorSpaceRcPtr * configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)=0
virtual const char * colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual const char * getVersionString(void)=0
virtual int configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config)=0
virtual void setCurrentConfig(const OCIO_ConstConfigRcPtr *config)=0
virtual const char * configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)=0
virtual void cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)=0
virtual OCIO_ConstConfigRcPtr * getCurrentConfig(void)=0
virtual const char * configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)=0
virtual void configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb)=0
virtual void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *p)=0
virtual OCIO_PackedImageDesc * createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels, long chanStrideBytes, long xStrideBytes, long yStrideBytes)=0
virtual OCIO_ConstConfigRcPtr * configCreateFromFile(const char *filename)=0
virtual void gpuCacheFree(void)
Definition ocio_impl.h:129
virtual void lookRelease(OCIO_ConstLookRcPtr *look)=0
virtual int colorSpaceGetNumAliases(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual const char * configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view)=0
virtual int colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual OCIO_ConstProcessorRcPtr * createDisplayProcessor(OCIO_ConstConfigRcPtr *config, const char *input, const char *view, const char *display, const char *look, const float scale, const float exponent, const float temperature, const float tint, const bool use_white_balance, const bool inverse)=0
virtual const char * configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index)=0
virtual bool gpuDisplayShaderBind(OCIO_ConstConfigRcPtr *, const char *, const char *, const char *, const char *, OCIO_CurveMappingSettings *, const float, const float, const float, const float, const float, const bool, const bool, const bool, const bool)
Definition ocio_impl.h:110
virtual int configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)=0
virtual const char * colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs)=0
virtual OCIO_ConstProcessorRcPtr * configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName)=0
virtual void cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)=0
virtual const char * lookGetProcessSpace(OCIO_ConstLookRcPtr *look)=0
virtual OCIO_ConstLookRcPtr * configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)=0
virtual void processorRelease(OCIO_ConstProcessorRcPtr *processor)=0
virtual void cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor)=0
virtual void gpuDisplayShaderUnbind(void)
Definition ocio_impl.h:128
virtual const char * configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)=0
virtual void cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)=0
virtual bool cpuProcessorIsNoOp(OCIO_ConstCPUProcessorRcPtr *cpu_processor)=0
virtual void configGetXYZtoSceneLinear(OCIO_ConstConfigRcPtr *config, float xyz_to_scene_linear[3][3])=0
virtual const char * colorSpaceGetAlias(OCIO_ConstColorSpaceRcPtr *cs, const int index)=0
#define NULL
const char * OCIO_configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)
Definition ocio_capi.cc:95
void OCIO_cpuProcessorApplyRGB(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
Definition ocio_capi.cc:208
void OCIO_cpuProcessorApplyRGBA(OCIO_ConstCPUProcessorRcPtr *cpu_processor, float *pixel)
Definition ocio_capi.cc:213
OCIO_ConstConfigRcPtr * OCIO_getCurrentConfig()
Definition ocio_capi.cc:26
const char * OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:228
void OCIO_configGetXYZtoSceneLinear(OCIO_ConstConfigRcPtr *config, float xyz_to_scene_linear[3][3])
Definition ocio_capi.cc:122
const char * OCIO_configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
Definition ocio_capi.cc:64
OCIO_PackedImageDesc * OCIO_createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels, long chanStrideBytes, long xStrideBytes, long yStrideBytes)
Definition ocio_capi.cc:278
OCIO_ConstConfigRcPtr * OCIO_configCreateFromEnv()
Definition ocio_capi.cc:44
bool OCIO_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 float temperature, const float tint, const bool use_predivide, const bool use_overlay, const bool use_hdr, const bool use_white_balance)
Definition ocio_capi.cc:300
void OCIO_lookRelease(OCIO_ConstLookRcPtr *look)
Definition ocio_capi.cc:147
const char * OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view)
Definition ocio_capi.cc:110
void OCIO_cpuProcessorApply(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img)
Definition ocio_capi.cc:197
void OCIO_gpuDisplayShaderUnbind()
Definition ocio_capi.cc:333
void OCIO_colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr *config, OCIO_ConstColorSpaceRcPtr *cs, bool *is_scene_linear, bool *is_srgb)
Definition ocio_capi.cc:162
OCIO_ConstConfigRcPtr * OCIO_configCreateFromFile(const char *filename)
Definition ocio_capi.cc:49
void OCIO_colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:170
OCIO_ConstColorSpaceRcPtr * OCIO_configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
Definition ocio_capi.cc:69
const char * OCIO_configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
Definition ocio_capi.cc:80
OCIO_ConstLookRcPtr * OCIO_configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)
Definition ocio_capi.cc:137
const char * OCIO_colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:238
int OCIO_colorSpaceGetNumAliases(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:243
const char * OCIO_lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
Definition ocio_capi.cc:142
OCIO_ConstConfigRcPtr * OCIO_configCreateFallback()
Definition ocio_capi.cc:31
OCIO_ConstProcessorRcPtr * OCIO_createDisplayProcessor(OCIO_ConstConfigRcPtr *config, const char *input, const char *view, const char *display, const char *look, const float scale, const float exponent, const float temperature, const float tint, const bool use_white_balance, const bool inverse)
Definition ocio_capi.cc:253
OCIO_ConstCPUProcessorRcPtr * OCIO_processorGetCPUProcessor(OCIO_ConstProcessorRcPtr *processor)
Definition ocio_capi.cc:187
void OCIO_init()
Definition ocio_capi.cc:11
void OCIO_cpuProcessorApply_predivide(OCIO_ConstCPUProcessorRcPtr *cpu_processor, OCIO_PackedImageDesc *img)
Definition ocio_capi.cc:202
OCIO_ConstProcessorRcPtr * OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName)
Definition ocio_capi.cc:175
const char * OCIO_configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)
Definition ocio_capi.cc:90
void OCIO_setCurrentConfig(const OCIO_ConstConfigRcPtr *config)
Definition ocio_capi.cc:39
int OCIO_configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config)
Definition ocio_capi.cc:59
void OCIO_configRelease(OCIO_ConstConfigRcPtr *config)
Definition ocio_capi.cc:54
void OCIO_gpuCacheFree()
Definition ocio_capi.cc:338
int OCIO_configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display)
Definition ocio_capi.cc:100
static IOCIOImpl * impl
Definition ocio_capi.cc:9
void OCIO_cpuProcessorRelease(OCIO_ConstCPUProcessorRcPtr *cpu_processor)
Definition ocio_capi.cc:223
int OCIO_getVersionHex()
Definition ocio_capi.cc:348
int OCIO_configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
Definition ocio_capi.cc:75
const char * OCIO_colorSpaceGetAlias(OCIO_ConstColorSpaceRcPtr *cs, const int index)
Definition ocio_capi.cc:248
void OCIO_exit()
Definition ocio_capi.cc:20
void OCIO_cpuProcessorApplyRGBA_predivide(OCIO_ConstCPUProcessorRcPtr *processor, float *pixel)
Definition ocio_capi.cc:218
int OCIO_colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:152
const char * OCIO_configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
Definition ocio_capi.cc:132
const char * OCIO_getVersionString()
Definition ocio_capi.cc:343
bool OCIO_supportGPUShader()
Definition ocio_capi.cc:295
void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *id)
Definition ocio_capi.cc:290
const char * OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index)
Definition ocio_capi.cc:105
bool OCIO_cpuProcessorIsNoOp(OCIO_ConstCPUProcessorRcPtr *cpu_processor)
Definition ocio_capi.cc:192
int OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config)
Definition ocio_capi.cc:127
void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *processor)
Definition ocio_capi.cc:182
int OCIO_configGetNumDisplays(OCIO_ConstConfigRcPtr *config)
Definition ocio_capi.cc:85
int OCIO_colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:157
const char * OCIO_colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs)
Definition ocio_capi.cc:233
void OCIO_configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr *config, float *rgb)
Definition ocio_capi.cc:117