HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LightShaderNodeMsl Class Reference

#include <LightShaderNodeMsl.h>

+ Inheritance diagram for LightShaderNodeMsl:

Public Member Functions

 LightShaderNodeMsl ()
 
const stringgetTarget () const override
 
void initialize (const InterfaceElement &element, GenContext &context) override
 
void createVariables (const ShaderNode &node, GenContext &context, Shader &shader) const override
 
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. More...
 
- Public Member Functions inherited from SourceCodeNode
void initialize (const InterfaceElement &element, GenContext &context) override
 
void emitFunctionDefinition (const ShaderNode &node, GenContext &context, ShaderStage &stage) const override
 Emit function definition for the given node instance. More...
 
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. More...
 
- Public Member Functions inherited from ShaderNodeImpl
virtual ~ShaderNodeImpl ()
 
const stringgetName () const
 Return the name of this implementation. More...
 
size_t getHash () const
 
virtual void addInputs (ShaderNode &node, GenContext &context) const
 Add additional inputs on a node. More...
 
virtual void setValues (const Node &node, ShaderNode &shaderNode, GenContext &context) const
 Set values for additional inputs on a node. More...
 
virtual void addClassification (ShaderNode &node) const
 Add additional classifications on a node. More...
 
virtual void emitOutputVariables (const ShaderNode &node, GenContext &context, ShaderStage &stage) const
 Emit declaration and initialization of output variables to use in a function call. More...
 
virtual ShaderGraphgetGraph () const
 
virtual bool isEditable (const ShaderInput &) const
 
virtual bool isEditable (const ShaderGraphInputSocket &) const
 

Static Public Member Functions

static ShaderNodeImplPtr create ()
 
- Static Public Member Functions inherited from SourceCodeNode
static ShaderNodeImplPtr create ()
 

Protected Attributes

VariableBlock _lightUniforms
 
- Protected Attributes inherited from SourceCodeNode
bool _inlined
 
string _functionName
 
string _functionSource
 
FilePath _sourceFilename
 
- Protected Attributes inherited from ShaderNodeImpl
string _name
 
size_t _hash
 

Additional Inherited Members

- Protected Member Functions inherited from ShaderNodeImpl
 ShaderNodeImpl ()
 Protected constructor. More...
 

Detailed Description

LightShader node implementation for MSL Used for all light shaders implemented in source code.

Definition at line 16 of file LightShaderNodeMsl.h.

Constructor & Destructor Documentation

LightShaderNodeMsl::LightShaderNodeMsl ( )

Member Function Documentation

static ShaderNodeImplPtr LightShaderNodeMsl::create ( )
static
void LightShaderNodeMsl::createVariables ( const ShaderNode node,
GenContext context,
Shader shader 
) const
overridevirtual

Create shader variables needed for the implementation of this node (e.g. uniforms, inputs and outputs). Used if the node requires input data from the application.

Reimplemented from ShaderNodeImpl.

void LightShaderNodeMsl::emitFunctionCall ( const ShaderNode node,
GenContext context,
ShaderStage stage 
) const
overridevirtual

Emit the function call or inline source code for given node instance in the given context.

Reimplemented from ShaderNodeImpl.

const string& LightShaderNodeMsl::getTarget ( ) const
overridevirtual

Return an identifier for the target used by this implementation. By default an empty string is returned, representing all targets. Only override this method if your derived node implementation class is for a specific target.

Reimplemented from ShaderNodeImpl.

void LightShaderNodeMsl::initialize ( const InterfaceElement element,
GenContext context 
)
overridevirtual

Initialize with the given implementation element. Initialization must set the name and hash for the implementation, as well as any other data needed to emit code for the node.

Reimplemented from ShaderNodeImpl.

Member Data Documentation

VariableBlock LightShaderNodeMsl::_lightUniforms
protected

Definition at line 32 of file LightShaderNodeMsl.h.


The documentation for this class was generated from the following file: