![]() |
MaterialX 1.38.10
|
Compound node implementation. More...
#include <CompoundNode.h>
Public Member Functions | |
void | initialize (const InterfaceElement &element, GenContext &context) override |
Initialize with the given implementation element. More... | |
void | createVariables (const ShaderNode &node, GenContext &context, Shader &shader) const override |
Create shader variables needed for the implementation of this node (e.g. More... | |
void | emitFunctionDefinition (const ShaderNode &node, GenContext &context, ShaderStage &stage) const override |
Emit function definition for the given node instance. More... | |
void | emitFunctionCall (const ShaderNode &node, GenContext &context, ShaderStage &stage) const override |
Emit the function call or inline source code for given node instance in the given context. More... | |
ShaderGraph * | getGraph () const override |
Return a pointer to the graph if this implementation is using a graph, or returns nullptr otherwise. More... | |
![]() | |
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 ShaderGraph * | getGraph () 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... | |
Static Public Member Functions | |
static ShaderNodeImplPtr | create () |
Protected Attributes | |
ShaderGraphPtr | _rootGraph |
string | _functionName |
![]() | |
string | _name |
size_t | _hash |
Additional Inherited Members | |
![]() | |
ShaderNodeImpl () | |
Protected constructor. | |
Compound node implementation.
|
overridevirtual |
Create shader variables needed for the implementation of this node (e.g.
uniforms, inputs and outputs). Used if the node requires input data from the application.
Reimplemented from ShaderNodeImpl.
Reimplemented in LightCompoundNodeGlsl.
|
overridevirtual |
Emit the function call or inline source code for given node instance in the given context.
Reimplemented from ShaderNodeImpl.
Reimplemented in LightCompoundNodeGlsl.
|
overridevirtual |
Emit function definition for the given node instance.
Reimplemented from ShaderNodeImpl.
Reimplemented in LightCompoundNodeGlsl.
|
inlineoverridevirtual |
Return a pointer to the graph if this implementation is using a graph, or returns nullptr otherwise.
Reimplemented from ShaderNodeImpl.
|
overridevirtual |
Initialize with the given implementation element.
Initialization must set the name and hash for the implementation, as well as any other data needed to emit code for the node.
Reimplemented from ShaderNodeImpl.
Reimplemented in LightCompoundNodeGlsl.