HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LightCompoundNodeMsl.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_LIGHTCOMPOUNDNODEMSL_H
7 #define MATERIALX_LIGHTCOMPOUNDNODEMSL_H
8 
10 
14 
16 
17 class MslShaderGenerator;
18 
19 /// LightCompound node implementation for MSL
21 {
22  public:
24 
25  static ShaderNodeImplPtr create();
26 
27  const string& getTarget() const override;
28 
29  void initialize(const InterfaceElement& element, GenContext& context) override;
30 
31  void createVariables(const ShaderNode& node, GenContext& context, Shader& shader) const override;
32 
33  void emitFunctionDefinition(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
34 
35  void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
36 
37  protected:
38  void emitFunctionDefinition(ClosureContext* cct, GenContext& context, ShaderStage& stage) const;
39 
41 };
42 
44 
45 #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
void initialize(const InterfaceElement &element, GenContext &context) override
static ShaderNodeImplPtr create()
void createVariables(const ShaderNode &node, GenContext &context, Shader &shader) const override
Compound node implementation.
Definition: CompoundNode.h:16
void emitFunctionDefinition(const ShaderNode &node, GenContext &context, ShaderStage &stage) const override
Emit function definition for the given node instance.
virtual const string & getTarget() const
LightCompound node implementation for MSL.
#define MX_GENMSL_API
Definition: Export.h:18
GLuint shader
Definition: glcorearb.h:785
Definition: Shader.h:32
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26