6#ifndef MATERIALX_OCIO_COLOR_MANAGEMENT_SYSTEM_H
7#define MATERIALX_OCIO_COLOR_MANAGEMENT_SYSTEM_H
9#ifdef MATERIALX_BUILD_OCIO
20MATERIALX_NAMESPACE_BEGIN
23class OcioColorManagementSystemImpl;
26using OcioColorManagementSystemPtr = std::shared_ptr<class OcioColorManagementSystem>;
33 virtual ~OcioColorManagementSystem();
36 static OcioColorManagementSystemPtr createFromEnv(
string target);
39 static OcioColorManagementSystemPtr createFromFile(
const string& filename,
string target);
42 static OcioColorManagementSystemPtr createFromBuiltinConfig(
const string& configName,
string target);
45 const string&
getName()
const override;
54 string getGpuProcessorCode(
const string& implName,
const string& functionName)
const;
57 static const string IMPL_PREFIX;
60 static const string OCIO_SOURCE_URI;
68 const char* getSupportedColorSpaceName(
const char* colorSpace)
const;
71 OcioColorManagementSystem(OcioColorManagementSystemImpl*);
74 std::unique_ptr<OcioColorManagementSystemImpl> _impl;
77MATERIALX_NAMESPACE_END
Default color management system implementation.
Definition element subclasses.
shared_ptr< NodeDef > NodeDefPtr
A shared pointer to a NodeDef.
Definition Definition.h:32
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition Library.h:39
virtual bool hasImplementation(const string &) const
Returns true if the CMS can create a shader node implementation for a locally managed CMS transform.
Definition ColorManagementSystem.h:68
virtual ShaderNodeImplPtr createImplementation(const string &) const
Create an CMS node implementation for a locally managed transform.
Definition ColorManagementSystem.h:71
Class for a default color management system.
Definition DefaultColorManagementSystem.h:22
NodeDefPtr getNodeDef(const ColorSpaceTransform &transform) const override
Returns a nodedef for a given transform.
const string & getName() const override
Return the DefaultColorManagementSystem name.