FnUsdAbstractionLib 0.6.0
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
usg::ShaderSchema Class Reference

ShaderSchema class creates ShaderDesc definitions stored in the registry. More...

#include <ShaderSchema.h>

Inheritance diagram for usg::ShaderSchema:
usg::Schema usg::CoShaderSchema usg::LightShaderSchema usg::SurfaceShaderSchema

Public Member Functions

 ShaderSchema (const SchemaDescription &pluginDescription, const ShaderPropertyList &properties, const fdk::KeyValueMap &metadata=fdk::KeyValueMap())
 
const TokenbaseTypeName () const override
 Return a string indicating this is a ShaderSchema.
 
ShaderSchemaasShaderSchema () override
 Used to cast a Schema to a ShaderSchema.
 
virtual CoShaderSchemaasCoShader ()
 Used to cast a ShaderSchema to a CoShaderSchema.
 
virtual SurfaceShaderSchemaasSurfaceShader ()
 Used to cast a ShaderSchema to a SurfaceShaderSchema.
 
virtual LightShaderSchemaasLightShader ()
 Used to cast a ShaderSchema to a LightShaderSchema.
 
virtual VolumeShaderSchema * asVolumeShader ()
 Used to cast a ShaderSchema to a VolumeShaderSchema.
 
virtual const std::string & sourceCode (const Token &sourceType) const
 
virtual void sourceCode (ShaderSource &shaderSource) const
 
virtual const ShaderPropertyList & shaderProperties () const
 Return the input/output shader properties.
 
- Public Member Functions inherited from usg::Schema
 Schema (const SchemaDescription &pluginDescription, const SchemaPropertyList &properties, const fdk::KeyValueMap &metadata=fdk::KeyValueMap())
 
const char * schemaName () const
 Name of the shader class without any leading pluginPrefix() or trailing pluginSuffix().
 
virtual const TokenbaseTypeName () const
 
virtual void getSourceTypes (TokenSet &types) const
 
virtual ShaderSchemaasShaderSchema ()
 

Additional Inherited Members

- Static Public Member Functions inherited from usg::Schema
static const SchemaDescriptionfind (const char *schema_name)
 Find a SchemaDescription by schema name and optional source-type - NOT the plugin .so filename!
 
- Static Protected Member Functions inherited from usg::Schema
static Schemacreate (const char *schema_name)
 
- Protected Attributes inherited from usg::Schema
std::unique_ptr< ShaderSchemaHandle, void(*)(ShaderSchemaHandle *)> _pImpl
 

Detailed Description

ShaderSchema class creates ShaderDesc definitions stored in the registry.

Constructor & Destructor Documentation

◆ ShaderSchema()

usg::ShaderSchema::ShaderSchema ( const SchemaDescription pluginDescription,
const ShaderPropertyList &  properties,
const fdk::KeyValueMap &  metadata = fdk::KeyValueMap() 
)

The shader class name is taken from the ShaderSchemaDescription::schemaName(), so the subclass must pass its ShaderSchemaDescription.

Member Function Documentation

◆ baseTypeName()

const Token & usg::ShaderSchema::baseTypeName ( ) const
inlineoverridevirtual

Return a string indicating this is a ShaderSchema.

Reimplemented from usg::Schema.

◆ asShaderSchema()

ShaderSchema * usg::ShaderSchema::asShaderSchema ( )
inlineoverridevirtual

Used to cast a Schema to a ShaderSchema.

Reimplemented from usg::Schema.

◆ asCoShader()

virtual CoShaderSchema * usg::ShaderSchema::asCoShader ( )
inlinevirtual

Used to cast a ShaderSchema to a CoShaderSchema.

Reimplemented in usg::CoShaderSchema.

◆ asSurfaceShader()

virtual SurfaceShaderSchema * usg::ShaderSchema::asSurfaceShader ( )
inlinevirtual

Used to cast a ShaderSchema to a SurfaceShaderSchema.

Reimplemented in usg::SurfaceShaderSchema.

◆ asLightShader()

virtual LightShaderSchema * usg::ShaderSchema::asLightShader ( )
inlinevirtual

Used to cast a ShaderSchema to a LightShaderSchema.

Reimplemented in usg::LightShaderSchema.

◆ sourceCode() [1/2]

virtual const std::string & usg::ShaderSchema::sourceCode ( const Token sourceType) const
virtual

Return the implementation code string for a specific sourceType when the shader is the single shader in a material network. Subclass should have already declared the type in its list of supported types, so if there are multiple sources the type string should be checked.

◆ sourceCode() [2/2]

virtual void usg::ShaderSchema::sourceCode ( ShaderSource shaderSource) const
virtual

Creates the source code for the shader for a specific target (e.g. glslfx) using the ShaderSource generator previously created via shaderSourceGenerator(). If a ShaderSource generator was not created by the shader for the requested source type then this method is never called. Default implementation does nothing.



©2025 The Foundry Visionmongers, Ltd. All Rights Reserved.
www.thefoundry.co.uk