HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClosureCompoundNode.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_CLOSURECOMPOUNDNODE_H
7 #define MATERIALX_CLOSURECOMPOUNDNODE_H
8 
11 
13 
14 /// Extending the CompoundNode with requirements for closures.
16 {
17  public:
18  static ShaderNodeImplPtr create();
19 
20  void addClassification(ShaderNode& node) const override;
21 
22  void emitFunctionDefinition(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
23 
24  void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
25 
26  protected:
27  void emitFunctionDefinition(ClosureContext* cct, GenContext& context, ShaderStage& stage) const;
28 };
29 
31 
32 #endif
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition: Library.h:40
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...
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
static ShaderNodeImplPtr create()
Compound node implementation.
Definition: CompoundNode.h:16
virtual void addClassification(ShaderNode &node) const
Add additional classifications on a node.
#define MX_GENSHADER_API
Definition: Export.h:18
void emitFunctionDefinition(const ShaderNode &node, GenContext &context, ShaderStage &stage) const override
Emit function definition for the given node instance.
Extending the CompoundNode with requirements for closures.
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26