HDK
|
#include <EsslShaderGenerator.h>
Public Member Functions | |
EsslShaderGenerator () | |
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 ESSL version this generator is for. More... | |
const string | getVertexDataPrefix (const VariableBlock &vertexData) const override |
Determine the prefix of vertex data variables. More... | |
![]() | |
GlslShaderGenerator () | |
ShaderPtr | generate (const string &name, ElementPtr element, GenContext &context) const override |
const string & | getTarget () const override |
Return a unique identifier for the target this generator is for. More... | |
void | emitVariableDeclaration (const ShaderPort *variable, const string &qualifier, GenContext &context, ShaderStage &stage, bool assignValue=true) const override |
Emit a shader variable. More... | |
ShaderNodeImplPtr | getImplementation (const NodeDef &nodedef, GenContext &context) const override |
![]() | |
void | emitFunctionCall (const ShaderNode &node, GenContext &context, ShaderStage &stage, bool checkScope=true) const override |
Add the function call for a single node. More... | |
virtual void | addStageLightingUniforms (GenContext &context, ShaderStage &stage) const |
Emit code for active light count definitions and uniforms. More... | |
void | getClosureContexts (const ShaderNode &node, vector< ClosureContext * > &cct) const override |
Return the closure contexts defined for the given node. More... | |
![]() | |
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, GenContext &context, ShaderStage &stage) const |
Add a block of code. More... | |
virtual void | emitInclude (const string &file, 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 | 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 | emitInput (const ShaderInput *input, GenContext &context, ShaderStage &stage) const |
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... | |
bool | implementationRegistered (const string &name) const |
Determine if a shader node implementation has been registered for a given implementation element name. 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... | |
const StringMap & | getTokenSubstitutions () const |
Return the map of token substitutions used by the generator. More... | |
virtual void | registerShaderMetadata (const DocumentPtr &doc, GenContext &context) const |
Static Public Member Functions | |
static ShaderGeneratorPtr | create () |
![]() | |
static ShaderGeneratorPtr | create () |
![]() | |
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 Public Attributes | |
static const string | TARGET |
Unique identifier for this generator target. More... | |
static const string | VERSION |
![]() | |
static const string | TARGET |
Unique identifier for this generator target. More... | |
static const string | VERSION |
Version string for the generator target. More... | |
![]() | |
static const string | CLOSURE_CONTEXT_SUFFIX_REFLECTION |
String constants for closure context suffixes. More... | |
static const string | CLOSURE_CONTEXT_SUFFIX_TRANSMISSION |
static const string | CLOSURE_CONTEXT_SUFFIX_INDIRECT |
Protected Member Functions | |
void | emitDirectives (GenContext &context, ShaderStage &stage) const override |
void | emitUniforms (GenContext &context, ShaderStage &stage) const override |
void | emitInputs (GenContext &context, ShaderStage &stage) const override |
void | emitOutputs (GenContext &context, ShaderStage &stage) const override |
HwResourceBindingContextPtr | getResourceBindingContext (GenContext &context) const override |
![]() | |
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 | emitLightData (GenContext &context, ShaderStage &stage) const |
virtual bool | requiresLighting (const ShaderGraph &graph) const |
virtual void | emitSpecularEnvironment (GenContext &context, ShaderStage &stage) const |
Emit specular environment lookup code. More... | |
virtual void | emitLightFunctionDefinitions (const ShaderGraph &graph, GenContext &context, ShaderStage &stage) const |
Emit function definitions for lighting code. More... | |
![]() | |
HwShaderGenerator (SyntaxPtr syntax) | |
virtual ShaderPtr | createShader (const string &name, ElementPtr element, GenContext &context) const |
Create and initialize a new HW shader for shader generation. More... | |
![]() | |
ShaderGenerator (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... | |
An ESSL (OpenGL ES Shading Language) shader generator
Definition at line 20 of file EsslShaderGenerator.h.
EsslShaderGenerator::EsslShaderGenerator | ( | ) |
|
inlinestatic |
Definition at line 25 of file EsslShaderGenerator.h.
|
overrideprotectedvirtual |
Reimplemented from GlslShaderGenerator.
|
overrideprotectedvirtual |
Reimplemented from GlslShaderGenerator.
|
overrideprotectedvirtual |
Reimplemented from GlslShaderGenerator.
|
overrideprotectedvirtual |
Reimplemented from GlslShaderGenerator.
|
overrideprotectedvirtual |
Reimplemented from GlslShaderGenerator.
Return a unique identifier for the target this generator is for.
Implements ShaderGenerator.
Definition at line 28 of file EsslShaderGenerator.h.
Return the version string for the ESSL version this generator is for.
Reimplemented from GlslShaderGenerator.
Definition at line 31 of file EsslShaderGenerator.h.
|
overridevirtual |
Determine the prefix of vertex data variables.
Reimplemented from GlslShaderGenerator.
Unique identifier for this generator target.
Definition at line 36 of file EsslShaderGenerator.h.
Definition at line 37 of file EsslShaderGenerator.h.