MaterialX 1.38.2
HwCompoundNode.h
1//
2// TM & (c) 2017 Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd.
3// All rights reserved. See LICENSE.txt for license.
4//
5
6#ifndef MATERIALX_HWCOMPOUNDNODE_H
7#define MATERIALX_HWCOMPOUNDNODE_H
8
9#include <MaterialXGenShader/Nodes/CompoundNode.h>
11
12namespace MaterialX
13{
14
16class MX_GENSHADER_API HwCompoundNode : public CompoundNode
17{
18public:
19 static ShaderNodeImplPtr create();
20
21 void emitFunctionDefinition(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
22
23 void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
24
25protected:
26 void emitFunctionDefinition(HwClosureContextPtr ccx, GenContext& context, ShaderStage& stage) const;
27};
28
29} // namespace MaterialX
30
31#endif
Hardware shader generator base class.
shared_ptr< class HwClosureContext > HwClosureContextPtr
Shared pointer to a HwClosureContext.
Definition: HwShaderGenerator.h:229
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition: Library.h:40
Compound node implementation.
Definition: CompoundNode.h:18
A context class for shader generation.
Definition: GenContext.h:27
Extending the CompoundNode with requirements for HW.
Definition: HwCompoundNode.h:17
Class representing a node in the shader generation DAG.
Definition: ShaderNode.h:326
A shader stage, containing the state and resulting source code for the stage.
Definition: ShaderStage.h:124