|
HDK
|
#include <WgslShaderGenerator.h>
Inheritance diagram for WgslShaderGenerator:Public Member Functions | |
| WgslShaderGenerator (TypeSystemPtr typeSystem) | |
| Constructor. More... | |
| void | emitDirectives (GenContext &context, ShaderStage &stage) const override |
| const string & | getLightDataTypevarString () const override |
| void | emitFunctionDefinitionParameter (const ShaderPort *shaderPort, bool isOutput, GenContext &context, ShaderStage &stage) const override |
| void | emitInput (const ShaderInput *input, GenContext &context, ShaderStage &stage) const override |
Public Member Functions inherited from VkShaderGenerator | |
| VkShaderGenerator (TypeSystemPtr typeSystem) | |
| Constructor. More... | |
| const string & | getTarget () const override |
| Return a unique identifier for the target this generator is for. More... | |
| const string & | getVersion () const override |
| Return the version string for the GLSL version this generator is for. More... | |
| string | getVertexDataPrefix (const VariableBlock &vertexData) const override |
| Determine the prefix of vertex data variables. More... | |
| void | emitInputs (GenContext &context, ShaderStage &stage) const override |
| void | emitOutputs (GenContext &context, ShaderStage &stage) const override |
Public Member Functions inherited from GlslShaderGenerator | |
| GlslShaderGenerator (TypeSystemPtr typeSystem) | |
| Constructor. More... | |
| ShaderPtr | generate (const string &name, ElementPtr element, GenContext &context) const override |
| void | emitVariableDeclaration (const ShaderPort *variable, const string &qualifier, GenContext &context, ShaderStage &stage, bool assignValue=true) const override |
| Emit a shader variable. More... | |
Public Member Functions inherited from HwShaderGenerator | |
| virtual void | addStageLightingUniforms (GenContext &context, ShaderStage &stage) const |
| Emit code for active light count definitions and uniforms. More... | |
| bool | nodeNeedsClosureData (const ShaderNode &node) const override |
| Return true if the node needs the ClosureData struct added. More... | |
| void | emitClosureDataArg (const ShaderNode &node, GenContext &context, ShaderStage &stage) const override |
| void | emitClosureDataParameter (const ShaderNode &node, GenContext &context, ShaderStage &stage) const override |
| void | applyDefaultOptions (GenOptions &options) const override |
| Apply the default GenOptions for hardware shader generation. More... | |
| virtual bool | requiresLighting (const ShaderGraph &graph) const |
| ShaderNodeImplPtr | createShaderNodeImplForNodeGraph (const NodeGraph &nodegraph) const override |
| Create the shader node implementation for a NodeGraph implementation. More... | |
Public Member Functions inherited from ShaderGenerator | |
| virtual | ~ShaderGenerator () |
| Destructor. More... | |
| virtual void | emitScopeBegin (ShaderStage &stage, Syntax::Punctuation punc=Syntax::CURLY_BRACKETS) const |
| Start a new scope using the given bracket type. More... | |
| virtual void | emitScopeEnd (ShaderStage &stage, bool semicolon=false, bool newline=true) const |
| End the current scope. More... | |
| virtual void | emitLineBegin (ShaderStage &stage) const |
| Start a new line. More... | |
| virtual void | emitLineEnd (ShaderStage &stage, bool semicolon=true) const |
| End the current line. More... | |
| virtual void | emitLineBreak (ShaderStage &stage) const |
| Add a line break. More... | |
| virtual void | emitString (const string &str, ShaderStage &stage) const |
| Add a string. More... | |
| virtual void | emitLine (const string &str, ShaderStage &stage, bool semicolon=true) const |
| Add a single line of code, optionally appending a semicolon. More... | |
| virtual void | emitComment (const string &str, ShaderStage &stage) const |
| Add a single line code comment. More... | |
| virtual void | emitBlock (const string &str, const FilePath &sourceFilename, GenContext &context, ShaderStage &stage) const |
| Add a block of code. More... | |
| virtual void | emitLibraryInclude (const FilePath &filename, GenContext &context, ShaderStage &stage) const |
| template<typename T > | |
| void | emitValue (const T &value, ShaderStage &stage) const |
| Add a value. More... | |
| virtual void | emitFunctionDefinition (const ShaderNode &node, GenContext &context, ShaderStage &stage) const |
| Add the function definition for a single node. More... | |
| virtual void | emitFunctionDefinitions (const ShaderGraph &graph, GenContext &context, ShaderStage &stage) const |
| Add all function definitions for a graph. More... | |
| virtual void | emitFunctionCall (const ShaderNode &node, GenContext &context, ShaderStage &stage) const |
| Add the function call for a single node. More... | |
| virtual void | emitFunctionCall (const ShaderNode &node, GenContext &context, ShaderStage &stage, bool checkScope) const |
| virtual void | emitFunctionCalls (const ShaderGraph &graph, GenContext &context, ShaderStage &stage, uint32_t classification=0u) const |
| virtual void | emitDependentFunctionCalls (const ShaderNode &node, GenContext &context, ShaderStage &stage, uint32_t classification=0u) const |
| virtual void | emitFunctionBodyBegin (const ShaderNode &node, GenContext &context, ShaderStage &stage, Syntax::Punctuation punc=Syntax::CURLY_BRACKETS) const |
| Emit code for starting a new function body. More... | |
| virtual void | emitFunctionBodyEnd (const ShaderNode &node, GenContext &context, ShaderStage &stage) const |
| Emit code for ending a function body. More... | |
| virtual void | emitTypeDefinitions (GenContext &context, ShaderStage &stage) const |
| Emit type definitions for all data types that needs it. More... | |
| virtual void | emitOutput (const ShaderOutput *output, bool includeType, bool assignValue, GenContext &context, ShaderStage &stage) const |
| virtual void | emitVariableDeclarations (const VariableBlock &block, const string &qualifier, const string &separator, GenContext &context, ShaderStage &stage, bool assignValue=true) const |
| virtual string | getUpstreamResult (const ShaderInput *input, GenContext &context) const |
| Return the result of an upstream connection or value for an input. More... | |
| const Syntax & | getSyntax () const |
| Return the syntax object for the language used by the code generator. More... | |
| void | registerImplementation (const string &name, CreatorFunction< ShaderNodeImpl > creator) |
| Register a shader node implementation for a given implementation element name. More... | |
| void | registerImplementation (const StringVec &nameVec, CreatorFunction< ShaderNodeImpl > creator) |
| Register a shader node implementation for a given set of implementation element names. More... | |
| bool | implementationRegistered (const string &name) const |
| Determine if a shader node implementation has been registered for a given implementation element name. More... | |
| virtual ShaderNodeImplPtr | createShaderNodeImplForImplementation (const Implementation &implementation) const |
| Create the shader node implementation for an Implementation implementation. More... | |
| virtual ShaderNodeImplPtr | getImplementation (const NodeDef &nodedef, GenContext &context) const |
| Return a registered shader node implementation for the given nodedef. More... | |
| void | setColorManagementSystem (ColorManagementSystemPtr colorManagementSystem) |
| Sets the color management system. More... | |
| ColorManagementSystemPtr | getColorManagementSystem () const |
| Returns the color management system. More... | |
| void | setUnitSystem (UnitSystemPtr unitSystem) |
| Sets the unit system. More... | |
| UnitSystemPtr | getUnitSystem () const |
| Returns the unit system. More... | |
| TypeSystemPtr | getTypeSystem () const |
| Returns the type system. More... | |
| const StringMap & | getTokenSubstitutions () const |
| Return the map of token substitutions used by the generator. More... | |
| void | registerRefactor (ShaderGraphRefactorPtr refactor) |
| Register a shader graph refactoring pass. More... | |
| const vector < ShaderGraphRefactorPtr > & | getRefactors () const |
| Return the registered graph refactoring passes. More... | |
| virtual void | registerTypeDefs (const DocumentPtr &doc) |
| Register type definitions from the document. More... | |
| virtual void | registerShaderMetadata (const DocumentPtr &doc, GenContext &context) const |
Static Public Member Functions | |
| static ShaderGeneratorPtr | create (TypeSystemPtr typeSystem=nullptr) |
Static Public Member Functions inherited from VkShaderGenerator | |
| static ShaderGeneratorPtr | create (TypeSystemPtr typeSystem=nullptr) |
Static Public Member Functions inherited from GlslShaderGenerator | |
| static ShaderGeneratorPtr | create (TypeSystemPtr typeSystem=nullptr) |
Static Public Member Functions inherited from HwShaderGenerator | |
| static void | bindLightShader (const NodeDef &nodeDef, unsigned int lightTypeId, GenContext &context) |
| static void | unbindLightShader (unsigned int lightTypeId, GenContext &context) |
| Unbind a light shader previously bound to the given light type id. More... | |
| static void | unbindLightShaders (GenContext &context) |
| Unbind all light shaders previously bound. More... | |
Static Protected Attributes | |
| static const string | LIGHTDATA_TYPEVAR_STRING |
Static Protected Attributes inherited from ShaderGenerator | |
| static const string | T_FILE_TRANSFORM_UV |
| static const string | LIGHTDATA_TYPEVAR_STRING |
Additional Inherited Members | |
Public Types inherited from HwShaderGenerator | |
| enum | ClosureContextType { DEFAULT, REFLECTION, TRANSMISSION, INDIRECT, EMISSION, LIGHTING, CLOSURE } |
| Types of closure contexts for HW. More... | |
Static Public Attributes inherited from VkShaderGenerator | |
| static const string | TARGET |
| Unique identifier for this generator target. More... | |
| static const string | VERSION |
Static Public Attributes inherited from GlslShaderGenerator | |
| static const string | TARGET |
| Unique identifier for this generator target. More... | |
| static const string | VERSION |
| Version string for the generator target. More... | |
Protected Member Functions inherited from VkShaderGenerator | |
| HwResourceBindingContextPtr | getResourceBindingContext (GenContext &) const override |
Protected Member Functions inherited from GlslShaderGenerator | |
| virtual void | emitVertexStage (const ShaderGraph &graph, GenContext &context, ShaderStage &stage) const |
| virtual void | emitPixelStage (const ShaderGraph &graph, GenContext &context, ShaderStage &stage) const |
| virtual void | emitConstants (GenContext &context, ShaderStage &stage) const |
| virtual void | emitUniforms (GenContext &context, ShaderStage &stage) const |
| virtual void | emitLightData (GenContext &context, ShaderStage &stage) const |
| virtual void | emitSpecularEnvironment (GenContext &context, ShaderStage &stage) const |
| Emit specular environment lookup code. More... | |
| virtual void | emitTransmissionRender (GenContext &context, ShaderStage &stage) const |
| Emit transmission rendering code. More... | |
| virtual void | emitLightFunctionDefinitions (const ShaderGraph &graph, GenContext &context, ShaderStage &stage) const |
| Emit function definitions for lighting code. More... | |
Protected Member Functions inherited from HwShaderGenerator | |
| HwShaderGenerator (TypeSystemPtr typeSystem, SyntaxPtr syntax) | |
| virtual ShaderPtr | createShader (const string &name, ElementPtr element, GenContext &context) const |
| Create and initialize a new HW shader for shader generation. More... | |
| void | toVec4 (TypeDesc type, string &variable) const |
Protected Member Functions inherited from ShaderGenerator | |
| ShaderGenerator (TypeSystemPtr typeSystem, SyntaxPtr syntax) | |
| Protected constructor. More... | |
| virtual ShaderStagePtr | createStage (const string &name, Shader &shader) const |
| Create a new stage in a shader. More... | |
| void | setFunctionName (const string &functionName, ShaderStage &stage) const |
| Set function name for a stage. More... | |
| void | replaceTokens (const StringMap &substitutions, ShaderStage &stage) const |
| Replace tokens with identifiers according to the given substitutions map. More... | |
| void | createVariables (ShaderGraphPtr graph, GenContext &context, Shader &shader) const |
Protected Attributes inherited from VkShaderGenerator | |
| HwResourceBindingContextPtr | _resourceBindingCtx |
| int | vertexDataLocation = 0 |
Protected Attributes inherited from GlslShaderGenerator | |
| vector< ShaderNodePtr > | _lightSamplingNodes |
| Nodes used internally for light sampling. More... | |
Protected Attributes inherited from ShaderGenerator | |
| TypeSystemPtr | _typeSystem |
| SyntaxPtr | _syntax |
| Factory< ShaderNodeImpl > | _implFactory |
| ColorManagementSystemPtr | _colorManagementSystem |
| UnitSystemPtr | _unitSystem |
| StringMap | _tokenSubstitutions |
| vector< ShaderGraphRefactorPtr > | _refactors |
| friend | ShaderGraph |
WGSL Flavor of Vulkan GLSL shader generator
Definition at line 22 of file WgslShaderGenerator.h.
| WgslShaderGenerator::WgslShaderGenerator | ( | TypeSystemPtr | typeSystem | ) |
Constructor.
|
inlinestatic |
Creator function. If a TypeSystem is not provided it will be created internally. Optionally pass in an externally created TypeSystem here, if you want to keep type descriptions alive after the lifetime of the shader generator.
Definition at line 33 of file WgslShaderGenerator.h.
|
overridevirtual |
Reimplemented from VkShaderGenerator.
|
overridevirtual |
Reimplemented from ShaderGenerator.
|
overridevirtual |
Emit the connected variable name for an input, or constant value if the port is not connected
Reimplemented from ShaderGenerator.
|
inlineoverridevirtual |
Reimplemented from ShaderGenerator.
Definition at line 40 of file WgslShaderGenerator.h.
|
staticprotected |
Definition at line 47 of file WgslShaderGenerator.h.