6 #ifndef MATERIALX_HWSHADERGENERATOR_H
7 #define MATERIALX_HWSHADERGENERATOR_H
52 virtual bool requiresLighting(
const ShaderGraph& graph)
const;
58 static void bindLightShader(
const NodeDef& nodeDef,
unsigned int lightTypeId,
GenContext& context);
61 static void unbindLightShader(
unsigned int lightTypeId,
GenContext& context);
64 static void unbindLightShaders(
GenContext& context);
67 virtual string getVertexDataPrefix(
const VariableBlock& vertexData)
const = 0;
virtual ShaderNodeImplPtr createShaderNodeImplForNodeGraph(const NodeGraph &nodegraph) const
Create the shader node implementation for a NodeGraph implementation.
ClosureContextType
Types of closure contexts for HW.
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
virtual bool nodeNeedsClosureData(const ShaderNode &) const
Return true if the node needs the additional ClosureData added.
#define MATERIALX_NAMESPACE_BEGIN
shared_ptr< class HwShaderGenerator > HwShaderGeneratorPtr
Shared pointer to a HwShaderGenerator.
shared_ptr< Syntax > SyntaxPtr
Shared pointer to a Syntax.
shared_ptr< class TypeSystem > TypeSystemPtr
virtual void applyDefaultOptions(GenOptions &options) const
Apply the default GenOptions for this generator's target.
GLint GLint GLsizei GLint GLenum GLenum type
virtual void emitClosureDataArg(const ShaderNode &, GenContext &, ShaderStage &) const
GLuint const GLchar * name
virtual void emitClosureDataParameter(const ShaderNode &, GenContext &, ShaderStage &) const
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