MaterialX 1.38.9
Loading...
Searching...
No Matches
GlslImplementation Class Reference

Base class for common GLSL node implementations. More...

#include <GlslShaderGenerator.h>

Inheritance diagram for GlslImplementation:
HwImplementation ShaderNodeImpl GeomColorNodeGlsl GeomPropValueNodeGlsl GeomPropValueNodeGlslAsUniform LightNodeGlsl LightSamplerNodeGlsl NumLightsNodeGlsl SurfaceNodeGlsl UnlitSurfaceNodeGlsl

Public Member Functions

const string & getTarget () const override
 Return an identifier for the target used by this implementation. More...
 
- Public Member Functions inherited from HwImplementation
bool isEditable (const ShaderInput &input) const override
 Returns true if an input is editable by users. More...
 
- Public Member Functions inherited from ShaderNodeImpl
virtual const string & getTarget () const
 Return an identifier for the target used by this implementation. More...
 
virtual void initialize (const InterfaceElement &element, GenContext &context)
 Initialize with the given implementation element. More...
 
const string & getName () const
 Return the name of this implementation.
 
size_t getHash () const
 Return a hash for this implementation. More...
 
virtual void addInputs (ShaderNode &node, GenContext &context) const
 Add additional inputs on a node. More...
 
virtual void setValues (const Node &node, ShaderNode &shaderNode, GenContext &context) const
 Set values for additional inputs on a node. More...
 
virtual void addClassification (ShaderNode &node) const
 Add additional classifications on a node. More...
 
virtual void createVariables (const ShaderNode &node, GenContext &context, Shader &shader) const
 Create shader variables needed for the implementation of this node (e.g. More...
 
virtual void emitFunctionDefinition (const ShaderNode &node, GenContext &context, ShaderStage &stage) const
 Emit function definition for the given node instance. More...
 
virtual void emitFunctionCall (const ShaderNode &node, GenContext &context, ShaderStage &stage) const
 Emit the function call or inline source code for given node instance in the given context. More...
 
virtual void emitOutputVariables (const ShaderNode &node, GenContext &context, ShaderStage &stage) const
 Emit declaration and initialization of output variables to use in a function call.
 
virtual ShaderGraphgetGraph () const
 Return a pointer to the graph if this implementation is using a graph, or returns nullptr otherwise. More...
 
virtual bool isEditable (const ShaderInput &) const
 Returns true if an input is editable by users. More...
 
virtual bool isEditable (const ShaderGraphInputSocket &) const
 Returns true if a graph input is accessible by users. More...
 

Additional Inherited Members

- Protected Types inherited from HwImplementation
enum  Space { MODEL_SPACE = 0 , OBJECT_SPACE = 1 , WORLD_SPACE = 2 }
 
- Protected Member Functions inherited from ShaderNodeImpl
 ShaderNodeImpl ()
 Protected constructor.
 
- Protected Attributes inherited from ShaderNodeImpl
string _name
 
size_t _hash
 
- Static Protected Attributes inherited from HwImplementation
static const string SPACE = "space"
 Internal string constants.
 
static const string INDEX = "index"
 
static const string GEOMPROP = "geomprop"
 

Detailed Description

Base class for common GLSL node implementations.

Member Function Documentation

◆ getTarget()

const string & getTarget ( ) const
overridevirtual

Return an identifier for the target used by this implementation.

By default an empty string is returned, representing all targets. Only override this method if your derived node implementation class is for a specific target.

Reimplemented from ShaderNodeImpl.


The documentation for this class was generated from the following files: