HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CompoundNode.h
Go to the documentation of this file.
1 //
2 // Copyright Contributors to the MaterialX Project
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 
6 #ifndef MATERIALX_COMPOUNDNODE_H
7 #define MATERIALX_COMPOUNDNODE_H
8 
13 
15 
16 /// Compound node implementation
18 {
19  public:
20  static ShaderNodeImplPtr create();
21 
22  void initialize(const InterfaceElement& element, GenContext& context) override;
23 
24  void addClassification(ShaderNode& node) const override;
25 
26  void createVariables(const ShaderNode& node, GenContext& context, Shader& shader) const override;
27 
28  void emitFunctionDefinition(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
29 
30  void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
31 
32  ShaderGraph* getGraph() const override { return _rootGraph.get(); }
33 
34  protected:
36  string _functionName;
37 };
38 
40 
41 #endif
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition: Library.h:39
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
string _functionName
Definition: CompoundNode.h:36
Compound node implementation.
Definition: CompoundNode.h:17
virtual void addClassification(ShaderNode &node) const
Add additional classifications on a node.
#define MX_GENSHADER_API
Definition: Export.h:18
virtual void emitFunctionDefinition(const ShaderNode &node, GenContext &context, ShaderStage &stage) const
Emit function definition for the given node instance.
ShaderGraph * getGraph() const override
Definition: CompoundNode.h:32
ShaderGraphPtr _rootGraph
Definition: CompoundNode.h:35
shared_ptr< class ShaderGraph > ShaderGraphPtr
A shared pointer to a shader graph.
Definition: ShaderGraph.h:40
GLuint shader
Definition: glcorearb.h:785
Definition: Shader.h:32
virtual void initialize(const InterfaceElement &element, GenContext &context)
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26
virtual void createVariables(const ShaderNode &node, GenContext &context, Shader &shader) const
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...