MaterialX 1.39.1
Loading...
Searching...
No Matches
ShaderStage.h File Reference

Class related to holding information for shader stages. More...

Go to the source code of this file.

Classes

class  VariableBlock
 A block of variables in a shader stage. More...
 
class  ShaderStage
 A shader stage, containing the state and resulting source code for the stage. More...
 
struct  ShaderStage::Scope
 

Macros

#define DEFINE_SHADER_STAGE(stage, name)   if (stage.getName() == name)
 
#define BEGIN_SHADER_STAGE(stage, name)
 
#define END_SHADER_STAGE(stage, name)   }
 

Typedefs

using VariableBlockPtr = std::shared_ptr< VariableBlock >
 Shared pointer to a VariableBlock.
 
using VariableBlockMap = std::unordered_map< string, VariableBlockPtr >
 Shared pointer to a map between string identifiers and VariableBlocks.
 
using ShaderPortPredicate = std::function< bool(ShaderPort *)>
 A standard function predicate taking an ShaderPort pointer and returning a boolean.
 
using ShaderStagePtr = std::shared_ptr< ShaderStage >
 Shared pointer to a ShaderStage.
 

Functions

ShaderPortaddStageUniform (const string &block, TypeDesc type, const string &name, ShaderStage &stage)
 Utility function for adding a new shader port to a uniform block.
 
ShaderPortaddStageUniform (const string &block, const TypeDesc *type, const string &name, ShaderStage &stage)
 
ShaderPortaddStageInput (const string &block, TypeDesc type, const string &name, ShaderStage &stage, bool shouldWiden=false)
 Utility function for adding a new shader port to an input block.
 
ShaderPortaddStageInput (const string &block, const TypeDesc *type, const string &name, ShaderStage &stage, bool shouldWiden=false)
 
ShaderPortaddStageOutput (const string &block, TypeDesc type, const string &name, ShaderStage &stage, bool shouldWiden=false)
 Utility function for adding a new shader port to an output block.
 
ShaderPortaddStageOutput (const string &block, const TypeDesc *type, const string &name, ShaderStage &stage, bool shouldWiden=false)
 
void addStageConnectorBlock (const string &block, const string &instance, ShaderStage &from, ShaderStage &to)
 Utility function for adding a connector block between stages.
 
void addStageConnector (const string &block, TypeDesc type, const string &name, ShaderStage &from, ShaderStage &to, bool shouldWiden=false)
 Utility function for adding a variable to a stage connector block.
 
void addStageConnector (const string &block, const TypeDesc *type, const string &name, ShaderStage &from, ShaderStage &to, bool shouldWiden=false)
 

Variables

MX_GENSHADER_API const string PIXEL
 Identifier for pixel stage. More...
 

Detailed Description

Class related to holding information for shader stages.

Macro Definition Documentation

◆ BEGIN_SHADER_STAGE

#define BEGIN_SHADER_STAGE (   stage,
  name 
)
Value:
if (stage.getName() == name) \
{

Variable Documentation

◆ PIXEL

MX_GENSHADER_API const string PIXEL
extern

Identifier for pixel stage.

This is the main stage used by all shader targets. For single stage shader targets this is the one and only stage. Shader targets with multiple stages can add additional stage identifiers to the Stage namespace.