HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SurfaceNodeGlsl.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_SURFACENODEGLSL_H
7 #define MATERIALX_SURFACENODEGLSL_H
8 
11 
13 
14 /// Surface node implementation for GLSL
16 {
17  public:
19 
20  static ShaderNodeImplPtr create();
21 
22  void createVariables(const ShaderNode& node, GenContext& context, Shader& shader) const override;
23 
24  void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) const override;
25 
26  virtual void emitLightLoop(const ShaderNode& node, GenContext& context, ShaderStage& stage, const string& outColor) const;
27 
28  protected:
29  /// Closure contexts for calling closure functions.
34 };
35 
37 
38 #endif
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition: Library.h:40
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
Base class for common GLSL node implementations.
ClosureContext _callIndirect
ClosureContext _callReflection
Closure contexts for calling closure functions.
GLuint shader
Definition: glcorearb.h:785
Definition: Shader.h:32
ClosureContext _callEmission
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26
virtual void createVariables(const ShaderNode &node, GenContext &context, Shader &shader) const
Surface node implementation for GLSL.
ClosureContext _callTransmission
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...
#define MX_GENGLSL_API
Definition: Export.h:18