HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OpenColorTypes.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: BSD-3-Clause
2 // Copyright Contributors to the OpenColorIO Project.
3 
4 
5 #ifndef INCLUDED_OCIO_OPENCOLORTYPES_H
6 #define INCLUDED_OCIO_OPENCOLORTYPES_H
7 
8 #include "OpenColorABI.h"
9 
10 #ifndef OCIO_NAMESPACE
11 #error This header cannot be used directly. Use <OpenColorIO/OpenColorIO.h> instead.
12 #endif
13 
14 #include <array>
15 #include <limits>
16 #include <string>
17 #include <functional>
18 
19 
20 /*!rst::
21 C++ Types
22 =========
23 */
24 
25 namespace OCIO_NAMESPACE
26 {
27 // Predeclare all class ptr definitions
28 
29 // Core
30 
32 typedef OCIO_SHARED_PTR<const Config> ConstConfigRcPtr;
33 typedef OCIO_SHARED_PTR<Config> ConfigRcPtr;
34 
36 typedef OCIO_SHARED_PTR<const FileRules> ConstFileRulesRcPtr;
37 typedef OCIO_SHARED_PTR<FileRules> FileRulesRcPtr;
38 
40 typedef OCIO_SHARED_PTR<const ViewingRules> ConstViewingRulesRcPtr;
41 typedef OCIO_SHARED_PTR<ViewingRules> ViewingRulesRcPtr;
42 
44 typedef OCIO_SHARED_PTR<const ColorSpace> ConstColorSpaceRcPtr;
45 typedef OCIO_SHARED_PTR<ColorSpace> ColorSpaceRcPtr;
46 
48 typedef OCIO_SHARED_PTR<const ColorSpaceSet> ConstColorSpaceSetRcPtr;
49 typedef OCIO_SHARED_PTR<ColorSpaceSet> ColorSpaceSetRcPtr;
50 
52 typedef OCIO_SHARED_PTR<const Look> ConstLookRcPtr;
53 typedef OCIO_SHARED_PTR<Look> LookRcPtr;
54 
56 typedef OCIO_SHARED_PTR<const NamedTransform> ConstNamedTransformRcPtr;
57 typedef OCIO_SHARED_PTR<NamedTransform> NamedTransformRcPtr;
58 
60 typedef OCIO_SHARED_PTR<const ViewTransform> ConstViewTransformRcPtr;
61 typedef OCIO_SHARED_PTR<ViewTransform> ViewTransformRcPtr;
62 
64 typedef OCIO_SHARED_PTR<const Context> ConstContextRcPtr;
65 typedef OCIO_SHARED_PTR<Context> ContextRcPtr;
66 
68 typedef OCIO_SHARED_PTR<const Processor> ConstProcessorRcPtr;
69 typedef OCIO_SHARED_PTR<Processor> ProcessorRcPtr;
70 
72 typedef OCIO_SHARED_PTR<const CPUProcessor> ConstCPUProcessorRcPtr;
73 typedef OCIO_SHARED_PTR<CPUProcessor> CPUProcessorRcPtr;
74 
76 typedef OCIO_SHARED_PTR<const GPUProcessor> ConstGPUProcessorRcPtr;
77 typedef OCIO_SHARED_PTR<GPUProcessor> GPUProcessorRcPtr;
78 
80 typedef OCIO_SHARED_PTR<const ProcessorMetadata> ConstProcessorMetadataRcPtr;
81 typedef OCIO_SHARED_PTR<ProcessorMetadata> ProcessorMetadataRcPtr;
82 
84 typedef OCIO_SHARED_PTR<const Baker> ConstBakerRcPtr;
85 typedef OCIO_SHARED_PTR<Baker> BakerRcPtr;
86 
88 typedef OCIO_SHARED_PTR<ImageDesc> ImageDescRcPtr;
89 typedef OCIO_SHARED_PTR<const ImageDesc> ConstImageDescRcPtr;
90 
92 
94 typedef OCIO_SHARED_PTR<GpuShaderCreator> GpuShaderCreatorRcPtr;
95 typedef OCIO_SHARED_PTR<const GpuShaderCreator> ConstGpuShaderCreatorRcPtr;
96 
98 typedef OCIO_SHARED_PTR<GpuShaderDesc> GpuShaderDescRcPtr;
99 typedef OCIO_SHARED_PTR<const GpuShaderDesc> ConstGpuShaderDescRcPtr;
100 
102 typedef OCIO_SHARED_PTR<BuiltinTransformRegistry> BuiltinTransformRegistryRcPtr;
103 typedef OCIO_SHARED_PTR<const BuiltinTransformRegistry> ConstBuiltinTransformRegistryRcPtr;
104 
106 typedef OCIO_SHARED_PTR<SystemMonitors> SystemMonitorsRcPtr;
107 typedef OCIO_SHARED_PTR<const SystemMonitors> ConstSystemMonitorsRcPtr;
108 
110 typedef OCIO_SHARED_PTR<const GradingBSplineCurve> ConstGradingBSplineCurveRcPtr;
111 typedef OCIO_SHARED_PTR<GradingBSplineCurve> GradingBSplineCurveRcPtr;
112 
114 typedef OCIO_SHARED_PTR<const GradingRGBCurve> ConstGradingRGBCurveRcPtr;
115 typedef OCIO_SHARED_PTR<GradingRGBCurve> GradingRGBCurveRcPtr;
116 
118 typedef OCIO_SHARED_PTR<const ConfigIOProxy> ConstConfigIOProxyRcPtr;
119 typedef OCIO_SHARED_PTR<ConfigIOProxy> ConfigIOProxyRcPtr;
120 
121 typedef std::array<float, 3> Float3;
122 
123 
124 // Transforms
125 
127 typedef OCIO_SHARED_PTR<const Transform> ConstTransformRcPtr;
128 typedef OCIO_SHARED_PTR<Transform> TransformRcPtr;
129 
131 typedef OCIO_SHARED_PTR<const AllocationTransform> ConstAllocationTransformRcPtr;
132 typedef OCIO_SHARED_PTR<AllocationTransform> AllocationTransformRcPtr;
133 
135 typedef OCIO_SHARED_PTR<const BuiltinTransform> ConstBuiltinTransformRcPtr;
136 typedef OCIO_SHARED_PTR<BuiltinTransform> BuiltinTransformRcPtr;
137 
139 typedef OCIO_SHARED_PTR<const CDLTransform> ConstCDLTransformRcPtr;
140 typedef OCIO_SHARED_PTR<CDLTransform> CDLTransformRcPtr;
141 
143 typedef OCIO_SHARED_PTR<const ColorSpaceTransform> ConstColorSpaceTransformRcPtr;
144 typedef OCIO_SHARED_PTR<ColorSpaceTransform> ColorSpaceTransformRcPtr;
145 
147 typedef OCIO_SHARED_PTR<const DisplayViewTransform> ConstDisplayViewTransformRcPtr;
148 typedef OCIO_SHARED_PTR<DisplayViewTransform> DisplayViewTransformRcPtr;
149 
151 typedef OCIO_SHARED_PTR<const DynamicProperty> ConstDynamicPropertyRcPtr;
152 typedef OCIO_SHARED_PTR<DynamicProperty> DynamicPropertyRcPtr;
153 
155 typedef OCIO_SHARED_PTR<const DynamicPropertyDouble> ConstDynamicPropertyDoubleRcPtr;
156 typedef OCIO_SHARED_PTR<DynamicPropertyDouble> DynamicPropertyDoubleRcPtr;
157 
159 typedef OCIO_SHARED_PTR<const DynamicPropertyGradingPrimary> ConstDynamicPropertyGradingPrimaryRcPtr;
160 typedef OCIO_SHARED_PTR<DynamicPropertyGradingPrimary> DynamicPropertyGradingPrimaryRcPtr;
161 
163 typedef OCIO_SHARED_PTR<const DynamicPropertyGradingRGBCurve> ConstDynamicPropertyGradingRGBCurveRcPtr;
164 typedef OCIO_SHARED_PTR<DynamicPropertyGradingRGBCurve> DynamicPropertyGradingRGBCurveRcPtr;
165 
167 typedef OCIO_SHARED_PTR<const DynamicPropertyGradingTone> ConstDynamicPropertyGradingToneRcPtr;
168 typedef OCIO_SHARED_PTR<DynamicPropertyGradingTone> DynamicPropertyGradingToneRcPtr;
169 
171 typedef OCIO_SHARED_PTR<const ExponentTransform> ConstExponentTransformRcPtr;
172 typedef OCIO_SHARED_PTR<ExponentTransform> ExponentTransformRcPtr;
173 
175 typedef OCIO_SHARED_PTR<const ExponentWithLinearTransform> ConstExponentWithLinearTransformRcPtr;
176 typedef OCIO_SHARED_PTR<ExponentWithLinearTransform> ExponentWithLinearTransformRcPtr;
177 
179 typedef OCIO_SHARED_PTR<const ExposureContrastTransform> ConstExposureContrastTransformRcPtr;
180 typedef OCIO_SHARED_PTR<ExposureContrastTransform> ExposureContrastTransformRcPtr;
181 
183 typedef OCIO_SHARED_PTR<const FileTransform> ConstFileTransformRcPtr;
184 typedef OCIO_SHARED_PTR<FileTransform> FileTransformRcPtr;
185 
187 typedef OCIO_SHARED_PTR<const FixedFunctionTransform> ConstFixedFunctionTransformRcPtr;
188 typedef OCIO_SHARED_PTR<FixedFunctionTransform> FixedFunctionTransformRcPtr;
189 
191 typedef OCIO_SHARED_PTR<const GradingPrimaryTransform> ConstGradingPrimaryTransformRcPtr;
192 typedef OCIO_SHARED_PTR<GradingPrimaryTransform> GradingPrimaryTransformRcPtr;
193 
195 typedef OCIO_SHARED_PTR<const GradingRGBCurveTransform> ConstGradingRGBCurveTransformRcPtr;
196 typedef OCIO_SHARED_PTR<GradingRGBCurveTransform> GradingRGBCurveTransformRcPtr;
197 
199 typedef OCIO_SHARED_PTR<const GradingToneTransform> ConstGradingToneTransformRcPtr;
200 typedef OCIO_SHARED_PTR<GradingToneTransform> GradingToneTransformRcPtr;
201 
203 typedef OCIO_SHARED_PTR<const GroupTransform> ConstGroupTransformRcPtr;
204 typedef OCIO_SHARED_PTR<GroupTransform> GroupTransformRcPtr;
205 
207 typedef OCIO_SHARED_PTR<const LogAffineTransform> ConstLogAffineTransformRcPtr;
208 typedef OCIO_SHARED_PTR<LogAffineTransform> LogAffineTransformRcPtr;
209 
211 typedef OCIO_SHARED_PTR<const LogCameraTransform> ConstLogCameraTransformRcPtr;
212 typedef OCIO_SHARED_PTR<LogCameraTransform> LogCameraTransformRcPtr;
213 
215 typedef OCIO_SHARED_PTR<const LookTransform> ConstLookTransformRcPtr;
216 typedef OCIO_SHARED_PTR<LookTransform> LookTransformRcPtr;
217 
219 typedef OCIO_SHARED_PTR<const LogTransform> ConstLogTransformRcPtr;
220 typedef OCIO_SHARED_PTR<LogTransform> LogTransformRcPtr;
221 
223 typedef OCIO_SHARED_PTR<const Lut1DTransform> ConstLut1DTransformRcPtr;
224 typedef OCIO_SHARED_PTR<Lut1DTransform> Lut1DTransformRcPtr;
225 
227 typedef OCIO_SHARED_PTR<const Lut3DTransform> ConstLut3DTransformRcPtr;
228 typedef OCIO_SHARED_PTR<Lut3DTransform> Lut3DTransformRcPtr;
229 
231 typedef OCIO_SHARED_PTR<const MatrixTransform> ConstMatrixTransformRcPtr;
232 typedef OCIO_SHARED_PTR<MatrixTransform> MatrixTransformRcPtr;
233 
235 typedef OCIO_SHARED_PTR<const RangeTransform> ConstRangeTransformRcPtr;
236 typedef OCIO_SHARED_PTR<RangeTransform> RangeTransformRcPtr;
237 
238 
239 // Application Helpers
240 
242 typedef OCIO_SHARED_PTR<ColorSpaceMenuHelper> ColorSpaceMenuHelperRcPtr;
243 typedef OCIO_SHARED_PTR<const ColorSpaceMenuHelper> ConstColorSpaceMenuHelperRcPtr;
244 
246 typedef OCIO_SHARED_PTR<ColorSpaceMenuParameters> ColorSpaceMenuParametersRcPtr;
247 typedef OCIO_SHARED_PTR<const ColorSpaceMenuParameters> ConstColorSpaceMenuParametersRcPtr;
248 
250 typedef OCIO_SHARED_PTR<MixingColorSpaceManager> MixingColorSpaceManagerRcPtr;
251 typedef OCIO_SHARED_PTR<const MixingColorSpaceManager> ConstMixingColorSpaceManagerRcPtr;
252 
254 typedef OCIO_SHARED_PTR<LegacyViewingPipeline> LegacyViewingPipelineRcPtr;
255 typedef OCIO_SHARED_PTR<const LegacyViewingPipeline> ConstLegacyViewingPipelineRcPtr;
256 
257 
258 template <class T, class U>
259 inline OCIO_SHARED_PTR<T> DynamicPtrCast(OCIO_SHARED_PTR<U> const & ptr)
260 {
261  return OCIO_DYNAMIC_POINTER_CAST<T,U>(ptr);
262 }
263 
264 /// Define the logging function signature.
265 using LoggingFunction = std::function<void(const char*)>;
266 
267 // Enums
268 
270 {
276 
278 };
279 
280 /// Define Compute Hash function signature.
281 using ComputeHashFunction = std::function<std::string(const std::string &)>;
282 
283 /**
284  * OCIO does not mandate the image state of the main reference space and it is not
285  * required to be scene-referred. This enum is used in connection with the display color space
286  * and view transform features which do assume that the main reference space is scene-referred
287  * and the display reference space is display-referred. If a config used a non-scene-referred
288  * reference space, presumably it would not use either display color spaces or view transforms,
289  * so this enum becomes irrelevant.
290  */
292 {
293  REFERENCE_SPACE_SCENE = 0, ///< the main scene reference space
294  REFERENCE_SPACE_DISPLAY ///< the reference space for display color spaces
295 };
296 
298 {
302 };
303 
305 {
309 };
310 
312 {
316 };
317 
319 {
322 };
323 
325 {
328 };
329 
331 {
334 };
335 
337 {
340 };
341 
343 {
366 };
367 
368 /**
369  * Specify the interpolation type to use
370  * If the specified interpolation type is not supported in the requested
371  * context (for example, using tetrahedral interpolationon 1D LUTs)
372  * an exception will be thrown.
373  *
374  * INTERP_DEFAULT will choose the default interpolation type for the requested
375  * context:
376  *
377  * 1D LUT INTERP_DEFAULT: LINEAR
378  * 3D LUT INTERP_DEFAULT: LINEAR
379  *
380  * INTERP_BEST will choose the best interpolation type for the requested
381  * context:
382  *
383  * 1D LUT INTERP_BEST: LINEAR
384  * 3D LUT INTERP_BEST: TETRAHEDRAL
385  *
386  * Note: INTERP_BEST and INTERP_DEFAULT are subject to change in minor
387  * releases, so if you care about locking off on a specific interpolation
388  * type, we'd recommend directly specifying it.
389  */
391 {
393  INTERP_NEAREST = 1, ///< nearest neighbor
394  INTERP_LINEAR = 2, ///< linear interpolation (trilinear for Lut3D)
395  INTERP_TETRAHEDRAL = 3, ///< tetrahedral interpolation (Lut3D only)
396  INTERP_CUBIC = 4, ///< cubic interpolation (not supported)
397 
398  INTERP_DEFAULT = 254, ///< the default interpolation type
399  INTERP_BEST = 255 ///< the 'best' suitable interpolation type
400 };
401 
402 /**
403  * Used in a configuration file to indicate the bit-depth of a color space,
404  * and by the \ref Processor to specify the input and output bit-depths of
405  * images to process.
406  * Note that \ref Processor only supports: UINT8, UINT10, UINT12, UINT16, F16 and F32.
407  */
409 {
416  BIT_DEPTH_UINT32, ///< Here for historical reason but that's not supported.
419 };
420 
421 /// Used by :cpp:class`Lut1DTransform` to control optional hue restoration algorithm.
423 {
424  HUE_NONE = 0, ///< No adjustment.
425  HUE_DW3, ///< Algorithm used in ACES Output Transforms through v0.7.
426  HUE_WYPN ///< Weighted Yellow Power Norm -- NOT IMPLEMENTED YET
427 };
428 
429 /// Used by \ref PackedImageDesc to indicate the channel ordering of the image to process.
431 {
437 };
438 
443 };
444 
445 /// Used when there is a choice of hardware shader language.
447 {
448  GPU_LANGUAGE_CG = 0, ///< Nvidia Cg shader
449  GPU_LANGUAGE_GLSL_1_2, ///< OpenGL Shading Language
450  GPU_LANGUAGE_GLSL_1_3, ///< OpenGL Shading Language
451  GPU_LANGUAGE_GLSL_4_0, ///< OpenGL Shading Language
452  GPU_LANGUAGE_HLSL_DX11, ///< DirectX Shading Language
453  LANGUAGE_OSL_1, ///< Open Shading Language
454  GPU_LANGUAGE_GLSL_ES_1_0, ///< OpenGL ES Shading Language
455  GPU_LANGUAGE_GLSL_ES_3_0, ///< OpenGL ES Shading Language
456  GPU_LANGUAGE_MSL_2_0 ///< Metal Shading Language
457 };
458 
459 /// Controls which environment variables are loaded into a Context object.
461 {
463  ENV_ENVIRONMENT_LOAD_PREDEFINED, ///< Only load vars in the config's environment section
464  ENV_ENVIRONMENT_LOAD_ALL ///< Load all env. vars (note: may reduce performance)
465 };
466 
467 /// A RangeTransform may be set to clamp the values, or not.
469 {
472 };
473 
474 /// Enumeration of the :cpp:class:`FixedFunctionTransform` transform algorithms.
476 {
477  FIXED_FUNCTION_ACES_RED_MOD_03 = 0, ///< Red modifier (ACES 0.3/0.7)
478  FIXED_FUNCTION_ACES_RED_MOD_10, ///< Red modifier (ACES 1.0)
479  FIXED_FUNCTION_ACES_GLOW_03, ///< Glow function (ACES 0.3/0.7)
480  FIXED_FUNCTION_ACES_GLOW_10, ///< Glow function (ACES 1.0)
481  FIXED_FUNCTION_ACES_DARK_TO_DIM_10, ///< Dark to dim surround correction (ACES 1.0)
482  FIXED_FUNCTION_REC2100_SURROUND, ///< Rec.2100 surround correction (takes one double for the gamma param)
483  FIXED_FUNCTION_RGB_TO_HSV, ///< Classic RGB to HSV function
484  FIXED_FUNCTION_XYZ_TO_xyY, ///< CIE XYZ to 1931 xy chromaticity coordinates
485  FIXED_FUNCTION_XYZ_TO_uvY, ///< CIE XYZ to 1976 u'v' chromaticity coordinates
486  FIXED_FUNCTION_XYZ_TO_LUV, ///< CIE XYZ to 1976 CIELUV colour space (D65 white)
487  FIXED_FUNCTION_ACES_GAMUTMAP_02, ///< ACES 0.2 Gamut clamping algorithm -- NOT IMPLEMENTED YET
488  FIXED_FUNCTION_ACES_GAMUTMAP_07, ///< ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET
489  FIXED_FUNCTION_ACES_GAMUT_COMP_13 ///< ACES 1.3 Parametric Gamut Compression (expects ACEScg values)
490 };
491 
492 /// Enumeration of the :cpp:class:`ExposureContrastTransform` transform algorithms.
494 {
495  EXPOSURE_CONTRAST_LINEAR = 0, ///< E/C to be applied to a linear space image
496  EXPOSURE_CONTRAST_VIDEO, ///< E/C to be applied to a video space image
497  EXPOSURE_CONTRAST_LOGARITHMIC ///< E/C to be applied to a log space image
498 };
499 
500 /**
501  * Enumeration of the :cpp:class:`CDLTransform` transform algorithms.
502  *
503  * \note
504  * The default for reading .cc/.ccc/.cdl files, config file YAML, and CDLTransform is no-clamp,
505  * since that is what is primarily desired in VFX. However, the CLF format default is ASC.
506  */
508 {
509  CDL_ASC = 0, ///< ASC CDL specification v1.2
510  CDL_NO_CLAMP, ///< CDL that does not clamp
512 };
513 
514 /**
515  * Negative values handling style for \ref ExponentTransform and
516  * \ref ExponentWithLinearTransform transform algorithms.
517  */
519 {
520  NEGATIVE_CLAMP = 0, ///< Clamp negative values
521  NEGATIVE_MIRROR, ///< Positive curve is rotated 180 degrees around the origin to handle negatives.
522  NEGATIVE_PASS_THRU, ///< Negative values are passed through unchanged.
523  NEGATIVE_LINEAR ///< Linearly extrapolate the curve for negative values.
524 };
525 
526 /// Styles for grading transforms.
528 {
529  GRADING_LOG = 0, ///< Algorithms for Logarithmic color spaces.
530  GRADING_LIN, ///< Algorithms for Scene Linear color spaces.
531  GRADING_VIDEO ///< Algorithms for Video color spaces.
532 };
533 
534 /// Types for dynamic properties.
536 {
537  DYNAMIC_PROPERTY_EXPOSURE = 0, ///< Image exposure value (double floating point value)
538  DYNAMIC_PROPERTY_CONTRAST, ///< Image contrast value (double floating point value)
539  DYNAMIC_PROPERTY_GAMMA, ///< Image gamma value (double floating point value)
540  DYNAMIC_PROPERTY_GRADING_PRIMARY, ///< Used by GradingPrimaryTransform
541  DYNAMIC_PROPERTY_GRADING_RGBCURVE, ///< Used by GradingRGBCurveTransform
542  DYNAMIC_PROPERTY_GRADING_TONE ///< Used by GradingToneTransform
543 };
544 
545 /// Types for GradingRGBCurve.
547 {
548  RGB_RED = 0,
553 };
554 
555 /// Types for uniform data.
557 {
560  UNIFORM_FLOAT3, ///< Array of 3 floats.
561  UNIFORM_VECTOR_FLOAT, ///< Vector of floats (size is set by uniform).
562  UNIFORM_VECTOR_INT, ///< Vector of int pairs (size is set by uniform).
564 };
565 
566 /// Provides control over how the ops in a Processor are combined in order to improve performance.
567 enum OptimizationFlags : unsigned long
568 {
569  // Below are listed all the optimization types.
570 
571  /// Do not optimize.
572  OPTIMIZATION_NONE = 0x00000000,
573 
574  /// Replace identity ops (other than gamma).
575  OPTIMIZATION_IDENTITY = 0x00000001,
576  /// Replace identity gamma ops.
578 
579  /// Replace a pair of ops where one is the inverse of the other.
588 
589  /// Compose a pair of ops into a single op.
596 
597  /**
598  * For integer and half bit-depths only, replace separable ops (i.e. no channel crosstalk
599  * ops) by a single 1D LUT of input bit-depth domain.
600  */
602 
603  /**
604  * Implement inverse Lut1D and Lut3D evaluations using a a forward LUT (faster but less
605  * accurate). Note that GPU evals always do FAST.
606  */
608 
609  // For CPU processor, in SSE mode, use a faster approximation for log, exp, and pow.
611 
612  // Break down certain ops into simpler components where possible. For example, convert a CDL
613  // to a matrix when possible.
615 
616  /**
617  * Turn off dynamic control of any ops that offer adjustment of parameter values after
618  * finalization (e.g. ExposureContrast).
619  */
621 
622  /// Apply all possible optimizations.
623  OPTIMIZATION_ALL = 0xFFFFFFFF,
624 
625  // The following groupings of flags are provided as a convenient way to select an overall
626  // optimization level.
627 
643 
649 
651 
652  /// For quite lossy optimizations.
654 
656 };
657 
658 //!cpp:type:: Enum to control the behavior of the internal caches e.g. the processor cache in
659 // :cpp:class:`Config` and :cpp:class:`Processor` instances. When debugging problems, it be useful
660 // to disable all the internal caches for example.
661 //
662 // The PROCESSOR_CACHE_SHARE_DYN_PROPERTIES flag allows the reuse of existing processor instances
663 // even if it contains some dynamic properties i.e. it speeds up the processor retrieval. That's the
664 // default behavior to avoid the processor creation hit. However, the caller app must then always
665 // set the dynamic property values prior to any color processing call (in CPU and GPU modes) as the
666 // same processor instance can now be used between several viewports for example.
667 enum ProcessorCacheFlags : unsigned int
668 {
670  PROCESSOR_CACHE_ENABLED = 0x01, // Enable the cache.
671  PROCESSOR_CACHE_SHARE_DYN_PROPERTIES = 0x02, // i.e. When the cache is enabled processor instances
672  // are shared even if they contain some dynamic
673  // properties.
674 
676 };
677 
678 // Conversion
679 
680 extern OCIOEXPORT const char * BoolToString(bool val);
681 extern OCIOEXPORT bool BoolFromString(const char * s);
682 
684 extern OCIOEXPORT LoggingLevel LoggingLevelFromString(const char * s);
685 
687 /// Will throw if string is not recognized.
689 
692  TransformDirection d2);
693 
694 extern OCIOEXPORT const char * BitDepthToString(BitDepth bitDepth);
695 extern OCIOEXPORT BitDepth BitDepthFromString(const char * s);
696 extern OCIOEXPORT bool BitDepthIsFloat(BitDepth bitDepth);
697 extern OCIOEXPORT int BitDepthToInt(BitDepth bitDepth);
698 
699 extern OCIOEXPORT const char * AllocationToString(Allocation allocation);
700 extern OCIOEXPORT Allocation AllocationFromString(const char * s);
701 
702 extern OCIOEXPORT const char * InterpolationToString(Interpolation interp);
704 
705 extern OCIOEXPORT const char * GpuLanguageToString(GpuLanguage language);
706 extern OCIOEXPORT GpuLanguage GpuLanguageFromString(const char * s);
707 
710 
711 extern OCIOEXPORT const char * CDLStyleToString(CDLStyle style);
712 extern OCIOEXPORT CDLStyle CDLStyleFromString(const char * style);
713 
714 extern OCIOEXPORT const char * RangeStyleToString(RangeStyle style);
715 extern OCIOEXPORT RangeStyle RangeStyleFromString(const char * style);
716 
717 extern OCIOEXPORT const char * FixedFunctionStyleToString(FixedFunctionStyle style);
719 
720 extern OCIOEXPORT const char * GradingStyleToString(GradingStyle style);
721 extern OCIOEXPORT GradingStyle GradingStyleFromString(const char * s);
722 
725 
726 extern OCIOEXPORT const char * NegativeStyleToString(NegativeStyle style);
727 extern OCIOEXPORT NegativeStyle NegativeStyleFromString(const char * style);
728 
729 /** \defgroup Env. variables.
730  * @{
731  *
732  * These environmental variables are used by the OpenColorIO library.
733  * For variables that allow specifying more than one token, they should be separated by commas.
734  */
735 
736 // These variables are defined in src/OpenColorIO/Config.cpp.
737 
738 
739 /// The envvar 'OCIO' provides a path to the config file used by \ref Config::CreateFromEnv
740 extern OCIOEXPORT const char * OCIO_CONFIG_ENVVAR;
741 
742 /**
743  * The envvar 'OCIO_ACTIVE_DISPLAYS' provides a list of displays overriding the 'active_displays'
744  * list from the config file.
745  */
746 extern OCIOEXPORT const char * OCIO_ACTIVE_DISPLAYS_ENVVAR;
747 
748 /**
749  * The envvar 'OCIO_ACTIVE_VIEWS' provides a list of views overriding the 'active_views'
750  * list from the config file.
751  */
752 extern OCIOEXPORT const char * OCIO_ACTIVE_VIEWS_ENVVAR;
753 
754 /**
755  * The envvar 'OCIO_INACTIVE_COLORSPACES' provides a list of inactive color spaces
756  * overriding the 'inactive_color_spaces' list from the config file.
757  */
758 extern OCIOEXPORT const char * OCIO_INACTIVE_COLORSPACES_ENVVAR;
759 
760 /**
761  * The envvar 'OCIO_OPTIMIZATION_FLAGS' provides a way to force a given optimization level.
762  * Remove the variable or set the value to empty to not use it. Set the value of the variable
763  * to the desired optimization level as either an integer or hexadecimal value.
764  * Ex: OCIO_OPTIMIZATION_FLAGS="20479" or "0x4FFF" for OPTIMIZATION_LOSSLESS.
765  */
766 extern OCIOEXPORT const char * OCIO_OPTIMIZATION_FLAGS_ENVVAR;
767 
768 /**
769  * The envvar 'OCIO_USER_CATEGORIES' allows the end-user to filter color spaces shown by
770  * applications. Only color spaces that include at least one of the supplied categories will be
771  * shown in application menus. Note that applications may also impose their own category filtering
772  * in addition to the user-supplied categories. For example, an application may filter by
773  * 'working-space' for a menu to select a working space while the user may also filter by
774  * '3d-basic' to only show spaces intended for 3d artists who should see the basic set of color
775  * spaces. The categories will be ignored if they would result in no color spaces being found.
776  */
777 extern OCIOEXPORT const char * OCIO_USER_CATEGORIES_ENVVAR;
778 
779 /** @}*/
780 
781 /** \defgroup VarsRoles
782  * @{
783  */
784 
785 // TODO: Move to .rst
786 /*!rst::
787 Roles
788 *****
789 
790 ColorSpace Roles are used so that plugins, in addition to this API can have
791 abstract ways of asking for common colorspaces, without referring to them
792 by hardcoded names.
793 
794 Internal::
795  Extracting color space from file path - (ROLE_DEFAULT)
796  Interchange color spaces between configs - (ROLE_EXCHANGE_SCENE, ROLE_EXCHANGE_DISPLAY)
797 
798 App Helpers::
799  LegacyViewingPipeline - (ROLE_SCENE_LINEAR (LinearCC for exposure))
800  (ROLE_COLOR_TIMING (ColorTimingCC))
801  MixingColorSpaceManager - (ROLE_COLOR_PICKING)
802 
803 External Plugins (currently known)::
804 
805  Colorpicker UIs - (ROLE_COLOR_PICKING)
806  Compositor LogConvert - (ROLE_SCENE_LINEAR, ROLE_COMPOSITING_LOG)
807 
808 */
809 
810 /// "default"
811 extern OCIOEXPORT const char * ROLE_DEFAULT;
812 /// "reference"
813 extern OCIOEXPORT const char * ROLE_REFERENCE;
814 /// "data"
815 extern OCIOEXPORT const char * ROLE_DATA;
816 /// "color_picking"
817 extern OCIOEXPORT const char * ROLE_COLOR_PICKING;
818 /// "scene_linear"
819 extern OCIOEXPORT const char * ROLE_SCENE_LINEAR;
820 /// "compositing_log"
821 extern OCIOEXPORT const char * ROLE_COMPOSITING_LOG;
822 /// "color_timing"
823 extern OCIOEXPORT const char * ROLE_COLOR_TIMING;
824 /**
825  * This role defines the transform for painting textures. In some
826  * workflows this is just a inverse display gamma with some limits
827  */
828 extern OCIOEXPORT const char * ROLE_TEXTURE_PAINT;
829 /**
830  * This role defines the transform for matte painting. In some workflows
831  * this is a 1D HDR to LDR allocation. It is normally combined with
832  * another display transform in the host app for preview.
833  */
834 extern OCIOEXPORT const char * ROLE_MATTE_PAINT;
835 
836 /**
837  * The rendering role may be used to identify a specific color space to be used by CGI renderers.
838  * This is typically a scene-linear space but the primaries also matter since they influence the
839  * resulting color, especially in areas of indirect illumination.
840  */
841 extern OCIOEXPORT const char * ROLE_RENDERING;
842 /**
843  * The aces_interchange role is used to specify which color space in the config implements the
844  * standard ACES2065-1 color space (SMPTE ST2065-1). This may be used when converting
845  * scene-referred colors from one config to another.
846  */
847 extern OCIOEXPORT const char * ROLE_INTERCHANGE_SCENE;
848 /**
849  * The cie_xyz_d65_interchange role is used to specify which color space in the config implements
850  * CIE XYZ colorimetry with the neutral axis at D65. This may be used when converting
851  * display-referred colors from one config to another.
852  */
853 extern OCIOEXPORT const char * ROLE_INTERCHANGE_DISPLAY;
854 
855 /** @}*/
856 
857 /** \defgroup VarsSharedView
858  * @{
859  */
860 
861 /*!rst::
862 Shared View
863 ***********
864 
865 */
866 
867 /**
868  * A shared view using this for the color space name will use a display color space that
869  * has the same name as the display the shared view is used by.
870  */
871 extern OCIOEXPORT const char * OCIO_VIEW_USE_DISPLAY_NAME;
872 
873 /** @}*/
874 
875 /** \defgroup VarsFormatMetadata
876  * @{
877  */
878 
879 // TODO: Move to .rst
880 /*!rst::
881 FormatMetadata
882 **************
883 
884 These constants describe various types of rich metadata. They are used with FormatMetadata
885 objects as the "name" part of a (name, value) pair. All of these types of metadata are
886 supported in the CLF/CTF file formats whereas other formats support some or none of them.
887 
888 Although the string constants used here match those used in the CLF/CTF formats, the concepts
889 are generic, so the goal is for other file formats to reuse the same constants within a
890 FormatMetadata object (even if the syntax used in a given format is somewhat different).
891 
892 */
893 
894 /**
895  * A description string -- used as the "Description" element in CLF/CTF and CDL, and to
896  * hold comments for other LUT formats when baking.
897  */
898 extern OCIOEXPORT const char * METADATA_DESCRIPTION;
899 
900 /**
901  * A block of informative metadata such as the "Info" element in CLF/CTF.
902  * Usually contains child elements.
903  */
904 extern OCIOEXPORT const char * METADATA_INFO;
905 
906 /**
907  * A string describing the expected input color space -- used as the "InputDescriptor"
908  * element in CLF/CTF and the "InputDescription" in CDL.
909  */
910 extern OCIOEXPORT const char * METADATA_INPUT_DESCRIPTOR;
911 
912 /**
913  * A string describing the output color space -- used as the "OutputDescriptor" element
914  * in CLF/CTF and the "OutputDescription" in CDL.
915  */
916 extern OCIOEXPORT const char * METADATA_OUTPUT_DESCRIPTOR;
917 
918 /**
919  * A name string -- used as a "name" attribute in CLF/CTF elements. Use on a GroupTransform
920  * to get/set the name for the CLF/CTF ProcessList. Use on an individual Transform
921  * (i.e. MatrixTransform, etc.) to get/set the name of the corresponding process node.
922  */
923 extern OCIOEXPORT const char * METADATA_NAME;
924 
925 /**
926  * An ID string -- used as an "id" attribute in CLF/CTF elements. Use on a GroupTransform
927  * to get/set the id for the CLF/CTF ProcessList. Use on an individual Transform
928  * (i.e. MatrixTransform, etc.) to get/set the id of the corresponding process node.
929  */
930 extern OCIOEXPORT const char * METADATA_ID;
931 
932 /** @}*/
933 
934 /** \defgroup VarsCaches
935  * @{
936  */
937 
938 /*!rst::
939 Caches
940 ******
941 
942 */
943 
944 //!rst::
945 // .. c:var:: const char * OCIO_DISABLE_ALL_CACHES
946 //
947 // Disable all caches, including for FileTransforms and Optimized/CPU/GPU Processors. (Provided only
948 // to facilitate developer investigations.)
949 extern OCIOEXPORT const char * OCIO_DISABLE_ALL_CACHES;
950 
951 //!rst::
952 // .. c:var:: const char * OCIO_DISABLE_PROCESSOR_CACHES
953 //
954 // Disable only the Optimized, CPU, and GPU Processor caches. (Provided only to facilitate developer
955 // investigations.)
956 extern OCIOEXPORT const char * OCIO_DISABLE_PROCESSOR_CACHES;
957 
958 //!rst::
959 // .. c:var:: const char * OCIO_DISABLE_CACHE_FALLBACK
960 //
961 // By default the processor caches check for identical color transformations when cache keys do
962 // not match. That fallback introduces a major performance hit in some cases so there is an env.
963 // variable to disable the fallback.
964 extern OCIOEXPORT const char * OCIO_DISABLE_CACHE_FALLBACK;
965 
966 /** @}*/
967 
968 
969 // Archive config feature
970 // Default filename (with extension) of an config.
971 extern OCIOEXPORT const char * OCIO_CONFIG_DEFAULT_NAME;
972 extern OCIOEXPORT const char * OCIO_CONFIG_DEFAULT_FILE_EXT;
973 extern OCIOEXPORT const char * OCIO_CONFIG_ARCHIVE_FILE_EXT;
974 
975 } // namespace OCIO_NAMESPACE
976 
977 #endif
OCIO_SHARED_PTR< const ExponentWithLinearTransform > ConstExponentWithLinearTransformRcPtr
OCIO_SHARED_PTR< const LegacyViewingPipeline > ConstLegacyViewingPipelineRcPtr
Algorithm used in ACES Output Transforms through v0.7.
ASC CDL specification v1.2.
OCIO_SHARED_PTR< DisplayViewTransform > DisplayViewTransformRcPtr
EnvironmentMode
Controls which environment variables are loaded into a Context object.
Represents exponent transform: pow( clamp(color), value ).
OCIO_SHARED_PTR< const GpuShaderCreator > ConstGpuShaderCreatorRcPtr
OCIO_SHARED_PTR< const ViewTransform > ConstViewTransformRcPtr
Linearly extrapolate the curve for negative values.
OCIO_SHARED_PTR< const LogAffineTransform > ConstLogAffineTransformRcPtr
OCIOEXPORT const char * InterpolationToString(Interpolation interp)
Image gamma value (double floating point value)
OCIOEXPORT EnvironmentMode EnvironmentModeFromString(const char *s)
This class holds the GPU-related information needed to build a shader program from a specific process...
Definition: OpenColorIO.h:3328
cubic interpolation (not supported)
OCIO_SHARED_PTR< LookTransform > LookTransformRcPtr
OCIOEXPORT const char * RangeStyleToString(RangeStyle style)
OCIO_SHARED_PTR< ViewingRules > ViewingRulesRcPtr
OCIO_SHARED_PTR< GpuShaderCreator > GpuShaderCreatorRcPtr
Classic RGB to HSV function.
std::array< float, 3 > Float3
Image contrast value (double floating point value)
RangeStyle
A RangeTransform may be set to clamp the values, or not.
OCIOEXPORT const char * GradingStyleToString(GradingStyle style)
ChannelOrdering
Used by PackedImageDesc to indicate the channel ordering of the image to process. ...
This is a light-weight wrapper around an image, that provides a context for pixel access...
Definition: OpenColorIO.h:2753
OCIO_SHARED_PTR< const LogCameraTransform > ConstLogCameraTransformRcPtr
Algorithms for Scene Linear color spaces.
OCIO_SHARED_PTR< Processor > ProcessorRcPtr
OCIO_SHARED_PTR< const ColorSpaceMenuHelper > ConstColorSpaceMenuHelperRcPtr
Represents a 1D-LUT transform.
OCIOEXPORT const char * ROLE_TEXTURE_PAINT
OCIO_SHARED_PTR< ExponentTransform > ExponentTransformRcPtr
OpenGL ES Shading Language.
ACES 1.3 Parametric Gamut Compression (expects ACEScg values)
OCIO_SHARED_PTR< DynamicPropertyGradingTone > DynamicPropertyGradingToneRcPtr
OCIOEXPORT const char * ROLE_COLOR_PICKING
"color_picking"
OCIOEXPORT const char * ROLE_INTERCHANGE_SCENE
OCIOEXPORT Allocation AllocationFromString(const char *s)
OCIO_SHARED_PTR< ColorSpaceMenuParameters > ColorSpaceMenuParametersRcPtr
OptimizationFlags
Provides control over how the ops in a Processor are combined in order to improve performance...
Interface used to access dynamic property double value.
OCIO_SHARED_PTR< const GpuShaderDesc > ConstGpuShaderDescRcPtr
OCIO_SHARED_PTR< AllocationTransform > AllocationTransformRcPtr
OCIO_SHARED_PTR< const Transform > ConstTransformRcPtr
GLint level
Definition: glcorearb.h:108
OCIO_SHARED_PTR< const ExponentTransform > ConstExponentTransformRcPtr
OCIO_SHARED_PTR< GPUProcessor > GPUProcessorRcPtr
OCIO_SHARED_PTR< FileRules > FileRulesRcPtr
Replace identity ops (other than gamma).
GLdouble s
Definition: glad.h:3009
OCIOEXPORT const char * OCIO_ACTIVE_DISPLAYS_ENVVAR
An exception class to throw for errors detected at runtime.
Definition: OpenColorIO.h:77
OCIO_SHARED_PTR< const BuiltinTransformRegistry > ConstBuiltinTransformRegistryRcPtr
OCIOEXPORT const char * OCIO_CONFIG_ARCHIVE_FILE_EXT
OCIO_SHARED_PTR< ConfigIOProxy > ConfigIOProxyRcPtr
OCIO_SHARED_PTR< const DynamicPropertyGradingPrimary > ConstDynamicPropertyGradingPrimaryRcPtr
OCIOEXPORT const char * ROLE_SCENE_LINEAR
"scene_linear"
OCIOEXPORT const char * OCIO_DISABLE_PROCESSOR_CACHES
rst::
OCIO_SHARED_PTR< Lut1DTransform > Lut1DTransformRcPtr
OCIOEXPORT const char * NegativeStyleToString(NegativeStyle style)
#define OCIO_NAMESPACE
Definition: OpenColorABI.h:8
OCIO_SHARED_PTR< const ExposureContrastTransform > ConstExposureContrastTransformRcPtr
OCIO_SHARED_PTR< LogCameraTransform > LogCameraTransformRcPtr
Positive curve is rotated 180 degrees around the origin to handle negatives.
DynamicPropertyType
Types for dynamic properties.
Open Shading Language.
Interface used to access dynamic property GradingTone value.
CIE XYZ to 1976 CIELUV colour space (D65 white)
OCIO_SHARED_PTR< const Lut3DTransform > ConstLut3DTransformRcPtr
OCIO_SHARED_PTR< const CDLTransform > ConstCDLTransformRcPtr
CIE XYZ to 1931 xy chromaticity coordinates.
Clamp negative values.
OCIO_SHARED_PTR< FixedFunctionTransform > FixedFunctionTransformRcPtr
OCIO_SHARED_PTR< LegacyViewingPipeline > LegacyViewingPipelineRcPtr
the 'best' suitable interpolation type
OCIO_SHARED_PTR< const NamedTransform > ConstNamedTransformRcPtr
OCIOEXPORT BitDepth BitDepthFromString(const char *s)
OCIO_SHARED_PTR< const MixingColorSpaceManager > ConstMixingColorSpaceManagerRcPtr
OCIO_SHARED_PTR< DynamicPropertyGradingRGBCurve > DynamicPropertyGradingRGBCurveRcPtr
OCIO_SHARED_PTR< ExponentWithLinearTransform > ExponentWithLinearTransformRcPtr
OCIOEXPORT const char * LoggingLevelToString(LoggingLevel level)
the reference space for display color spaces
OCIOEXPORT const char * CDLStyleToString(CDLStyle style)
GpuLanguage
Used when there is a choice of hardware shader language.
ProcessorCacheFlags
cpp:type:: Enum to control the behavior of the internal caches e.g. the processor cache in ...
OCIO_SHARED_PTR< const ColorSpaceMenuParameters > ConstColorSpaceMenuParametersRcPtr
OCIOEXPORT const char * METADATA_INFO
OCIO_SHARED_PTR< const LogTransform > ConstLogTransformRcPtr
OCIO_SHARED_PTR< Look > LookRcPtr
OCIO_SHARED_PTR< const RangeTransform > ConstRangeTransformRcPtr
OCIOEXPORT bool BoolFromString(const char *s)
OCIO_SHARED_PTR< const ProcessorMetadata > ConstProcessorMetadataRcPtr
OCIO_SHARED_PTR< const GroupTransform > ConstGroupTransformRcPtr
OCIOEXPORT LoggingLevel LoggingLevelFromString(const char *s)
Replace a pair of ops where one is the inverse of the other.
OCIO_SHARED_PTR< ColorSpaceTransform > ColorSpaceTransformRcPtr
OCIO_SHARED_PTR< const FileTransform > ConstFileTransformRcPtr
OCIOEXPORT const char * AllocationToString(Allocation allocation)
OCIO_SHARED_PTR< const Context > ConstContextRcPtr
Vector of floats (size is set by uniform).
OCIO_SHARED_PTR< ProcessorMetadata > ProcessorMetadataRcPtr
OCIO_SHARED_PTR< const CPUProcessor > ConstCPUProcessorRcPtr
Interface used to access dynamic property ConstGradingRGBCurveRcPtr value.
Algorithms for Logarithmic color spaces.
OCIO_SHARED_PTR< DynamicPropertyDouble > DynamicPropertyDoubleRcPtr
OCIO_SHARED_PTR< Lut3DTransform > Lut3DTransformRcPtr
ACES 0.7 Gamut clamping algorithm – NOT IMPLEMENTED YET.
OCIOEXPORT const char * EnvironmentModeToString(EnvironmentMode mode)
OCIO_SHARED_PTR< const DynamicPropertyGradingRGBCurve > ConstDynamicPropertyGradingRGBCurveRcPtr
OCIO_SHARED_PTR< ExposureContrastTransform > ExposureContrastTransformRcPtr
OCIOEXPORT const char * OCIO_CONFIG_DEFAULT_FILE_EXT
OCIO_SHARED_PTR< const Baker > ConstBakerRcPtr
OCIOEXPORT const char * METADATA_NAME
OCIOEXPORT const char * GpuLanguageToString(GpuLanguage language)
E/C to be applied to a linear space image.
OCIOEXPORT TransformDirection TransformDirectionFromString(const char *s)
Will throw if string is not recognized.
OCIO_SHARED_PTR< Baker > BakerRcPtr
OCIO_SHARED_PTR< LogTransform > LogTransformRcPtr
Image exposure value (double floating point value)
OCIO_SHARED_PTR< MixingColorSpaceManager > MixingColorSpaceManagerRcPtr
OCIOEXPORT GradingStyle GradingStyleFromString(const char *s)
OCIOEXPORT const char * ROLE_MATTE_PAINT
A config defines all the color spaces to be available at runtime.
Definition: OpenColorIO.h:259
OCIOEXPORT TransformDirection CombineTransformDirections(TransformDirection d1, TransformDirection d2)
OCIOEXPORT const char * METADATA_DESCRIPTION
Used by GradingRGBCurveTransform.
For quite lossy optimizations.
linear interpolation (trilinear for Lut3D)
Vector of int pairs (size is set by uniform).
OCIOEXPORT const char * ExposureContrastStyleToString(ExposureContrastStyle style)
std::function< void(const char *)> LoggingFunction
Define the logging function signature.
OCIOEXPORT GpuLanguage GpuLanguageFromString(const char *s)
OCIO_SHARED_PTR< CPUProcessor > CPUProcessorRcPtr
the default interpolation type
#define OCIOEXPORT
Definition: OpenColorABI.h:67
OCIO_SHARED_PTR< const LookTransform > ConstLookTransformRcPtr
OCIOEXPORT const char * ROLE_DEFAULT
"default"
OCIO_SHARED_PTR< const ColorSpaceTransform > ConstColorSpaceTransformRcPtr
OCIO_SHARED_PTR< GradingPrimaryTransform > GradingPrimaryTransformRcPtr
Here for historical reason but that's not supported.
OCIO_SHARED_PTR< GradingBSplineCurve > GradingBSplineCurveRcPtr
OCIO_SHARED_PTR< const Processor > ConstProcessorRcPtr
OCIOEXPORT const char * METADATA_INPUT_DESCRIPTOR
OCIO_SHARED_PTR< const ColorSpaceSet > ConstColorSpaceSetRcPtr
OCIO_SHARED_PTR< const FileRules > ConstFileRulesRcPtr
OCIOEXPORT const char * OCIO_DISABLE_ALL_CACHES
rst::
OCIO_SHARED_PTR< const ImageDesc > ConstImageDescRcPtr
OCIO_SHARED_PTR< GradingRGBCurve > GradingRGBCurveRcPtr
An implementation of the ASC Color Decision List (CDL), based on the ASC v1.2 specification.
Base class for all the transform classes.
OCIO_SHARED_PTR< MatrixTransform > MatrixTransformRcPtr
UniformDataType
Types for uniform data.
OCIOEXPORT const char * FixedFunctionStyleToString(FixedFunctionStyle style)
OCIO_SHARED_PTR< Transform > TransformRcPtr
Weighted Yellow Power Norm – NOT IMPLEMENTED YET.
OCIOEXPORT const char * ROLE_REFERENCE
"reference"
GLenum mode
Definition: glcorearb.h:99
GradingStyle
Styles for grading transforms.
OCIO_SHARED_PTR< const DisplayViewTransform > ConstDisplayViewTransformRcPtr
OCIOEXPORT NegativeStyle NegativeStyleFromString(const char *style)
std::function< std::string(const std::string &)> ComputeHashFunction
Define Compute Hash function signature.
OCIOEXPORT const char * OCIO_CONFIG_ENVVAR
The envvar 'OCIO' provides a path to the config file used by Config::CreateFromEnv.
OCIO_SHARED_PTR< const Lut1DTransform > ConstLut1DTransformRcPtr
OCIO_SHARED_PTR< const SystemMonitors > ConstSystemMonitorsRcPtr
OCIOEXPORT const char * OCIO_DISABLE_CACHE_FALLBACK
rst::
OCIOEXPORT const char * OCIO_CONFIG_DEFAULT_NAME
OCIOEXPORT const char * OCIO_VIEW_USE_DISPLAY_NAME
OCIO_SHARED_PTR< ColorSpaceSet > ColorSpaceSetRcPtr
OCIO_SHARED_PTR< SystemMonitors > SystemMonitorsRcPtr
OCIOEXPORT const char * ROLE_COLOR_TIMING
"color_timing"
CDL that does not clamp.
OCIOEXPORT const char * OCIO_INACTIVE_COLORSPACES_ENVVAR
OCIO_SHARED_PTR< ColorSpaceMenuHelper > ColorSpaceMenuHelperRcPtr
OCIO_SHARED_PTR< const Config > ConstConfigRcPtr
Compose a pair of ops into a single op.
OCIO_SHARED_PTR< const ConfigIOProxy > ConstConfigIOProxyRcPtr
OCIO_SHARED_PTR< RangeTransform > RangeTransformRcPtr
OCIO_SHARED_PTR< GradingToneTransform > GradingToneTransformRcPtr
OCIO_SHARED_PTR< NamedTransform > NamedTransformRcPtr
Load all env. vars (note: may reduce performance)
OCIO_SHARED_PTR< const MatrixTransform > ConstMatrixTransformRcPtr
OCIOEXPORT FixedFunctionStyle FixedFunctionStyleFromString(const char *style)
OCIO_SHARED_PTR< const Look > ConstLookRcPtr
OCIO_SHARED_PTR< const BuiltinTransform > ConstBuiltinTransformRcPtr
the main scene reference space
E/C to be applied to a video space image.
OCIO_SHARED_PTR< DynamicPropertyGradingPrimary > DynamicPropertyGradingPrimaryRcPtr
OCIOEXPORT const char * METADATA_OUTPUT_DESCRIPTOR
OCIO_SHARED_PTR< const GradingRGBCurveTransform > ConstGradingRGBCurveTransformRcPtr
OCIO_SHARED_PTR< const AllocationTransform > ConstAllocationTransformRcPtr
Interface used to access dynamic property GradingPrimary value.
OCIOEXPORT const char * BoolToString(bool val)
OCIO_SHARED_PTR< Config > ConfigRcPtr
OCIO_SHARED_PTR< const FixedFunctionTransform > ConstFixedFunctionTransformRcPtr
E/C to be applied to a log space image.
Rec.2100 surround correction (takes one double for the gamma param)
OCIO_SHARED_PTR< BuiltinTransform > BuiltinTransformRcPtr
OCIO_SHARED_PTR< Context > ContextRcPtr
OCIO_SHARED_PTR< FileTransform > FileTransformRcPtr
OCIO_SHARED_PTR< BuiltinTransformRegistry > BuiltinTransformRegistryRcPtr
OCIO_SHARED_PTR< const GradingPrimaryTransform > ConstGradingPrimaryTransformRcPtr
OCIOEXPORT Interpolation InterpolationFromString(const char *s)
auto ptr(T p) -> const void *
Definition: format.h:2448
GLuint GLfloat * val
Definition: glcorearb.h:1608
OCIO_SHARED_PTR< ImageDesc > ImageDescRcPtr
OCIOEXPORT RangeStyle RangeStyleFromString(const char *style)
OCIO_SHARED_PTR< const DynamicProperty > ConstDynamicPropertyRcPtr
Apply all possible optimizations.
Lut1DHueAdjust
Used by :cpp:classLut1DTransform to control optional hue restoration algorithm.
OCIOEXPORT const char * ROLE_DATA
"data"
OCIOEXPORT ExposureContrastStyle ExposureContrastStyleFromString(const char *style)
OCIO_SHARED_PTR< const GradingBSplineCurve > ConstGradingBSplineCurveRcPtr
OCIOEXPORT CDLStyle CDLStyleFromString(const char *style)
OCIOEXPORT const char * OCIO_USER_CATEGORIES_ENVVAR
OCIO_SHARED_PTR< LogAffineTransform > LogAffineTransformRcPtr
OCIOEXPORT int BitDepthToInt(BitDepth bitDepth)
OCIO_SHARED_PTR< GpuShaderDesc > GpuShaderDescRcPtr
OCIOEXPORT const char * OCIO_OPTIMIZATION_FLAGS_ENVVAR
FixedFunctionStyle
Enumeration of the :cpp:class:FixedFunctionTransform transform algorithms.
OCIO_SHARED_PTR< GroupTransform > GroupTransformRcPtr
Represents a 3D-LUT transform.
ACES 0.2 Gamut clamping algorithm – NOT IMPLEMENTED YET.
OCIO_SHARED_PTR< const DynamicPropertyGradingTone > ConstDynamicPropertyGradingToneRcPtr
OCIOEXPORT const char * TransformDirectionToString(TransformDirection dir)
OCIOEXPORT TransformDirection GetInverseTransformDirection(TransformDirection dir)
Only load vars in the config's environment section.
OCIO_SHARED_PTR< CDLTransform > CDLTransformRcPtr
OCIO_SHARED_PTR< const GradingToneTransform > ConstGradingToneTransformRcPtr
OCIOEXPORT bool BitDepthIsFloat(BitDepth bitDepth)
OCIO_SHARED_PTR< const ViewingRules > ConstViewingRulesRcPtr
OCIO_SHARED_PTR< GradingRGBCurveTransform > GradingRGBCurveTransformRcPtr
A BSpline curve defined with GradingControlPoint.
OCIO_SHARED_PTR< ColorSpace > ColorSpaceRcPtr
OCIO_SHARED_PTR< const GradingRGBCurve > ConstGradingRGBCurveRcPtr
OpenGL ES Shading Language.
This class contains meta information about the process that generated this processor. The results of these functions do not impact the pixel processing.
Definition: OpenColorIO.h:2577
OCIO_SHARED_PTR< const DynamicPropertyDouble > ConstDynamicPropertyDoubleRcPtr
tetrahedral interpolation (Lut3D only)
OCIO_SHARED_PTR< const ColorSpace > ConstColorSpaceRcPtr
CIE XYZ to 1976 u'v' chromaticity coordinates.
Negative values are passed through unchanged.
RGBCurveType
Types for GradingRGBCurve.
OCIOEXPORT const char * OCIO_ACTIVE_VIEWS_ENVVAR
OCIOEXPORT const char * ROLE_INTERCHANGE_DISPLAY
Dark to dim surround correction (ACES 1.0)
OCIO_SHARED_PTR< T > DynamicPtrCast(OCIO_SHARED_PTR< U > const &ptr)
OCIO_SHARED_PTR< const GPUProcessor > ConstGPUProcessorRcPtr
OCIOEXPORT const char * BitDepthToString(BitDepth bitDepth)
OCIOEXPORT const char * METADATA_ID
OCIOEXPORT const char * ROLE_RENDERING
The File Rules are a set of filepath to color space mappings that are evaluated from first to last...
Definition: OpenColorIO.h:1454
OCIO_SHARED_PTR< ViewTransform > ViewTransformRcPtr
Algorithms for Video color spaces.
ExposureContrastStyle
Enumeration of the :cpp:class:ExposureContrastTransform transform algorithms.
OCIOEXPORT const char * ROLE_COMPOSITING_LOG
"compositing_log"
OCIO_SHARED_PTR< DynamicProperty > DynamicPropertyRcPtr