6 #ifndef MATERIALX_OSLSHADERGENERATOR_H
7 #define MATERIALX_OSLSHADERGENERATOR_H
36 return std::make_shared<OslShaderGenerator>(typeSystem ? typeSystem :
TypeSystem::create());
40 const string&
getTarget()
const override {
return TARGET; }
#define MATERIALX_NAMESPACE_BEGIN
MX_GENOSL_API const string INPUTS
shared_ptr< class OslShaderGenerator > OslShaderGeneratorPtr
virtual void registerShaderMetadata(const DocumentPtr &doc, GenContext &context) const
static ShaderGeneratorPtr create(TypeSystemPtr typeSystem=nullptr)
static TypeSystemPtr create()
Create a new type system.
MX_GENOSL_API const string UNIFORMS
Identifiers for OSL variable blocks.
shared_ptr< class TypeSystem > TypeSystemPtr
shared_ptr< Document > DocumentPtr
A shared pointer to a Document.
GLuint const GLchar * name
MX_GENOSL_API const string OUTPUTS
static const string TARGET
Unique identifier for this generator target.
MX_RENDER_API ShaderPtr createShader(const string &shaderName, GenContext &context, ElementPtr elem)
Create a shader for a given element.
shared_ptr< Shader > ShaderPtr
Shared pointer to a Shader.
shared_ptr< Element > ElementPtr
A shared pointer to an Element.
#define MATERIALX_NAMESPACE_END
const string & getTarget() const override
Return a unique identifier for the target this generator is for.
shared_ptr< ShaderGenerator > ShaderGeneratorPtr
Shared pointer to a ShaderGenerator.
shared_ptr< const Document > ConstDocumentPtr
A shared pointer to a const Document.
virtual ShaderPtr generate(const string &, ElementPtr, GenContext &) const