HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HwSurfaceNode.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_HWSURFACENODE_H
7 #define MATERIALX_HWSURFACENODE_H
8 
10 
12 
13 /// Surface node implementation for hardware languages.
15 {
16  public:
17  HwSurfaceNode();
18 
19  static ShaderNodeImplPtr create();
20 
21  void createVariables(const ShaderNode& node, GenContext& context, Shader& shader) const override;
22 
23  void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
24 
25  virtual void emitLightLoop(const ShaderNode& node, GenContext& context, ShaderStage& stage, const string& outColor) const;
26 
27  protected:
28  /// Return the name of the BSDF input on the node.
29  virtual const string& getBsdfInputName() const;
30 
31  /// Return the name of the EDF input on the node.
32  virtual const string& getEdfInputName() const;
33 
34  /// Return the name of the opacity input on the node.
35  virtual const string& getOpacityInputName() const;
36 };
37 
39 
40 #endif
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition: Library.h:39
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
Surface node implementation for hardware languages.
Definition: HwSurfaceNode.h:14
GLuint shader
Definition: glcorearb.h:785
Definition: Shader.h:32
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26
#define MX_GENHW_API
Definition: Export.h:18
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...