6 #ifndef MATERIALX_HWSHADERGENERATOR_H 
    7 #define MATERIALX_HWSHADERGENERATOR_H 
  254         return std::make_shared<HwLightShaders>();
 
  266         _shaders.erase(type);
 
  279         auto it = _shaders.find(
type);
 
  280         return it != _shaders.end() ? it->second.get() : 
nullptr;
 
  284     const std::unordered_map<unsigned int, ShaderNodePtr>& 
get() 
const 
  290     std::unordered_map<unsigned int, ShaderNodePtr> 
_shaders;
 
  308     static void bindLightShader(
const NodeDef& nodeDef, 
unsigned int lightTypeId, 
GenContext& context);
 
  311     static void unbindLightShader(
unsigned int lightTypeId, 
GenContext& context);
 
  314     static void unbindLightShaders(
GenContext& context);
 
  317     virtual string getVertexDataPrefix(
const VariableBlock& vertexData) 
const = 0;
 
  384                                                 ShaderStage& stage, 
const std::string& structInstanceName,
 
MX_GENSHADER_API const string DIR_V
 
virtual ~HwResourceBindingContext()
 
MX_GENSHADER_API const string CLOSURE_DATA_TYPE
Variable names for lighting parameters. 
 
MX_GENSHADER_API const string USER_DATA_LIGHT_SHADERS
User data names. 
 
MX_GENSHADER_API const string T_NORMAL_WORLD
 
MX_GENSHADER_API const TypeDesc ClosureDataType
Type Descriptor for closure context data. 
 
ClosureContextType
Types of closure contexts for HW. 
 
MX_GENSHADER_API const string VIEW_INVERSE_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string T_TIME
 
void clear()
Clear all light shaders previously bound. 
 
MX_GENSHADER_API const string LIGHT_DATA_INSTANCE
 
MX_GENSHADER_API const string T_REFRACTION_TWO_SIDED
 
virtual bool nodeNeedsClosureData(const ShaderNode &) const 
Return true if the node needs the additional ClosureData added. 
 
MX_GENSHADER_API const string T_WORLD_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string ALBEDO_TABLE
 
#define MATERIALX_NAMESPACE_BEGIN
 
MX_GENSHADER_API const string T_VIEW_MATRIX
 
MX_GENSHADER_API const string GEOMPROP
 
MX_GENSHADER_API const string VIEW_INVERSE_MATRIX
 
MX_GENSHADER_API const string PROJ_INVERSE_MATRIX
 
static const string SPACE
Internal string constants. 
 
MX_GENSHADER_API const string PROJ_INVERSE_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string T_WORLD_MATRIX
 
MX_GENSHADER_API const string T_ENV_RADIANCE
 
MX_GENSHADER_API const string PUBLIC_UNIFORMS
 
MX_GENSHADER_API const string ENV_RADIANCE_SAMPLES
 
MX_GENSHADER_API const string VERTEX_INPUTS
Variable blocks names. 
 
static const string INDEX
 
MX_GENSHADER_API const string T_ALBEDO_TABLE_SIZE
 
Uses the stage's time code range. 
 
MATERIALX_NAMESPACE_BEGIN MX_CORE_API const string EMPTY_STRING
 
shared_ptr< Syntax > SyntaxPtr
Shared pointer to a Syntax. 
 
MX_GENSHADER_API const string IN_BITANGENT
 
MX_GENSHADER_API const string T_ENV_IRRADIANCE
 
MX_GENSHADER_API const string ATTR_TRANSPARENT
Attribute names. 
 
MX_GENSHADER_API const string T_ENV_PREFILTER_MIP
 
MX_GENSHADER_API const string TEXCOORD
 
MX_GENSHADER_API const string FRAME
 
virtual bool isEditable(const ShaderInput &) const 
 
MX_GENSHADER_API const string BITANGENT_WORLD
 
shared_ptr< class HwShaderGenerator > HwShaderGeneratorPtr
Shared pointer to a HwShaderGenerator. 
 
MX_GENSHADER_API const string ENV_RADIANCE_MIPS
 
MX_GENSHADER_API const string T_ENV_RADIANCE_MIPS
 
shared_ptr< class TypeSystem > TypeSystemPtr
 
MX_GENSHADER_API const string LIGHT_DATA_MAX_LIGHT_SOURCES
 
MX_GENSHADER_API const string WORLD_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string T_NUM_ACTIVE_LIGHT_SOURCES
 
MX_GENSHADER_API const string DIR_L
 
MX_GENSHADER_API const string NORMAL_WORLD
 
MX_GENSHADER_API const string ENV_LIGHT_INTENSITY
 
MX_GENSHADER_API const string T_WORLD_INVERSE_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string T_AMB_OCC_MAP
 
MX_GENSHADER_API const string WORLD_POSITION
 
MX_GENSHADER_API const string IN_TEXCOORD
 
MX_GENSHADER_API const string T_SHADOW_MAP
 
MX_GENSHADER_API const string T_BITANGENT_WORLD
 
MX_GENSHADER_API const string PROJ_TRANSPOSE_MATRIX
 
shared_ptr< class HwResourceBindingContext > HwResourceBindingContextPtr
Shared pointer to a HwResourceBindingContext. 
 
static const string GEOMPROP
 
MX_GENSHADER_API const string T_VIEW_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string VIEW_POSITION
 
MX_GENSHADER_API const string T_AMB_OCC_GAIN
 
GLint GLint GLsizei GLint GLenum GLenum type
 
void unbind(unsigned int type)
Unbind a light shader previously bound to a light type id. 
 
MX_GENSHADER_API const string T_VIEW_INVERSE_MATRIX
 
MX_GENSHADER_API const string DIR_N
 
shared_ptr< class ShaderNode > ShaderNodePtr
Shared pointer to a ShaderNode. 
 
MX_GENSHADER_API const string WORLD_MATRIX
 
MX_GENSHADER_API const string SHADOW_MAP
 
MX_GENSHADER_API const string T_IN_COLOR
 
MX_GENSHADER_API const string VIEW_PROJECTION_MATRIX
 
MX_GENSHADER_API const string IN_POSITION
 
MX_GENSHADER_API const string TIME
 
MX_GENSHADER_API const string VERTEX
Identifier for vertex stage. 
 
MX_GENSHADER_API const string VIEW_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string AMB_OCC_GAIN
 
MX_GENSHADER_API const string T_POSITION_OBJECT
 
MX_GENSHADER_API const string T_SHADOW_MATRIX
 
MX_GENSHADER_API const string T_WORLD_INVERSE_MATRIX
 
MX_GENSHADER_API const string VIEW_DIRECTION
 
MX_GENSHADER_API const string IN_GEOMPROP
 
MX_GENSHADER_API const string T_VIEW_PROJECTION_MATRIX
 
MX_GENSHADER_API const string POSITION_WORLD
 
MX_GENSHADER_API const string ENV_PREFILTER_MIP
 
std::unordered_map< unsigned int, ShaderNodePtr > _shaders
 
GLuint const GLchar * name
 
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled). 
 
MX_GENSHADER_API const string IN_TANGENT
 
MX_GENSHADER_API const string T_TANGENT_OBJECT
 
MX_GENSHADER_API const string WORLD_INVERSE_MATRIX
 
MX_GENSHADER_API const string PRIVATE_UNIFORMS
 
MX_GENSHADER_API const string T_PROJ_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string ENV_MATRIX
 
MX_GENSHADER_API const string T_POSITION_WORLD
 
MX_GENSHADER_API const string T_VIEW_POSITION
 
MX_GENSHADER_API const string T_TEXCOORD
 
MX_GENSHADER_API const string T_TANGENT_WORLD
 
MX_GENSHADER_API const string VERTEX_DATA
 
MX_GENSHADER_API const string TANGENT_OBJECT
 
MX_GENSHADER_API const string WORLD_VIEW_MATRIX
 
MX_GENSHADER_API const string ALBEDO_TABLE_SIZE
 
MX_GENSHADER_API const string T_ALPHA_THRESHOLD
 
MX_GENSHADER_API const string IN_NORMAL
 
MX_GENSHADER_API const string T_IN_TANGENT
 
MX_GENSHADER_API const string T_WORLD_VIEW_PROJECTION_MATRIX
 
void bind(unsigned int type, ShaderNodePtr shader)
Bind a light shader to a light type id. 
 
MX_GENSHADER_API const string T_ENV_MATRIX
 
MX_GENSHADER_API const string TANGENT_WORLD
 
MX_GENSHADER_API const string T_WORLD_VIEW_MATRIX
 
MX_GENSHADER_API const string AMB_OCC_MAP
 
MX_GENSHADER_API const string T_IN_TEXCOORD
 
MX_GENSHADER_API const string T_ENV_RADIANCE_SAMPLES
 
MX_GENSHADER_API const string SHADOW_MATRIX
 
MX_GENSHADER_API const string T_PROJ_INVERSE_MATRIX
 
MX_GENSHADER_API const string IN_COLOR
 
MX_GENSHADER_API const string CLOSURE_DATA_ARG
 
MX_GENSHADER_API const string T_IN_POSITION
Token identifiers. 
 
MX_GENSHADER_API const string T_PROJ_INVERSE_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string T_COLOR
 
MX_GENSHADER_API const string T_GEOMPROP
 
MX_GENSHADER_API const string USER_DATA_BINDING_CONTEXT
 
MX_GENSHADER_API const string ENV_IRRADIANCE
 
MX_GENSHADER_API const string REFRACTION_TWO_SIDED
 
MX_GENSHADER_API const string T_BITANGENT_OBJECT
 
MX_GENSHADER_API const string ENV_RADIANCE
 
MX_GENSHADER_API const string T_IN_GEOMPROP
 
MX_GENSHADER_API const string NUM_ACTIVE_LIGHT_SOURCES
 
MX_GENSHADER_API const string T_IN_BITANGENT
 
MX_RENDER_API ShaderPtr createShader(const string &shaderName, GenContext &context, ElementPtr elem)
Create a shader for a given element. 
 
shared_ptr< Shader > ShaderPtr
Shared pointer to a Shader. 
 
MX_GENSHADER_API const string PIXEL_OUTPUTS
 
MX_GENSHADER_API const string OCCLUSION
 
shared_ptr< Element > ElementPtr
A shared pointer to an Element. 
 
MX_GENSHADER_API const string T_ALBEDO_TABLE
 
MX_GENSHADER_API const string VERTEX_DATA_INSTANCE
 
#define MATERIALX_NAMESPACE_END
 
MX_GENSHADER_API const string PROJ_MATRIX
 
MX_GENSHADER_API const string T_VIEW_DIRECTION
 
MX_GENSHADER_API const string T_VERTEX_DATA_INSTANCE
 
MX_GENSHADER_API const string T_ENV_LIGHT_INTENSITY
 
MX_GENSHADER_API const string T_PROJ_MATRIX
 
shared_ptr< class HwLightShaders > HwLightShadersPtr
Shared pointer to a HwLightShaders. 
 
MX_GENSHADER_API const string LIGHT_DATA
 
MX_GENSHADER_API const string NORMAL_OBJECT
 
MX_GENSHADER_API const string VIEW_MATRIX
 
MX_GENSHADER_API const string ALPHA_THRESHOLD
 
MX_GENSHADER_API const string WORLD_VIEW_PROJECTION_MATRIX
 
MX_GENSHADER_API const string WORLD_INVERSE_TRANSPOSE_MATRIX
 
static HwLightShadersPtr create()
Create and return a new instance. 
 
MX_GENSHADER_API const string T_VIEW_INVERSE_TRANSPOSE_MATRIX
 
MX_GENSHADER_API const string COLOR
 
MX_GENSHADER_API const string T_FRAME
 
MX_GENSHADER_API const string T_LIGHT_DATA_INSTANCE
 
MX_GENSHADER_API const string POSITION_OBJECT
 
MX_GENSHADER_API const string T_NORMAL_OBJECT
 
MX_GENSHADER_API const string BITANGENT_OBJECT
 
MX_GENSHADER_API const string T_IN_NORMAL