HDK
|
#include <GenContext.h>
Protected Member Functions | |
GenContext ()=delete | |
Protected Attributes | |
ShaderGeneratorPtr | _sg |
GenOptions | _options |
FileSearchPath | _sourceCodeSearchPath |
StringSet | _reservedWords |
std::unordered_map< string, ShaderNodeImplPtr > | _nodeImpls |
std::unordered_map< string, vector< GenUserDataPtr > > | _userData |
std::unordered_map< const ShaderInput *, string > | _inputSuffix |
std::unordered_map< const ShaderOutput *, string > | _outputSuffix |
vector< ClosureContext * > | _closureContexts |
ApplicationVariableHandler | _applicationVariableHandler |
A context class for shader generation. Used for thread local storage of data needed during shader generation.
Definition at line 30 of file GenContext.h.
GenContext::GenContext | ( | ShaderGeneratorPtr | sg | ) |
Constructor.
|
protecteddelete |
void GenContext::addInputSuffix | ( | const ShaderInput * | input, |
const string & | suffix | ||
) |
Add an input suffix to be used for the input in this context.
input | Node input |
suffix | Suffix string |
void GenContext::addNodeImplementation | ( | const string & | name, |
ShaderNodeImplPtr | impl | ||
) |
Cache a shader node implementation.
void GenContext::addOutputSuffix | ( | const ShaderOutput * | output, |
const string & | suffix | ||
) |
Add an output suffix to be used for the output in this context.
output | Node output |
suffix | Suffix string |
Add reserved words that should not be used as identifiers during code generation.
Definition at line 82 of file GenContext.h.
void GenContext::clearNodeImplementations | ( | ) |
Clear all cached shader node implementation.
void GenContext::clearUserData | ( | ) |
Clear all user data from the context.
ShaderNodeImplPtr GenContext::findNodeImplementation | ( | const string & | name | ) | const |
Find and return a cached shader node implementation, or return nullptr if no implementation is found.
|
inline |
Get handler for application variables.
Definition at line 200 of file GenContext.h.
|
inline |
Return the current closure context.
Definition at line 123 of file GenContext.h.
void GenContext::getInputSuffix | ( | const ShaderInput * | input, |
string & | suffix | ||
) | const |
Get an input suffix to be used for the input in this context.
input | Node input |
suffix | Suffix string returned. Is empty if not found. |
Get the names of all cached node implementations.
|
inline |
Return shader generation options.
Definition at line 43 of file GenContext.h.
|
inline |
Return shader generation options.
Definition at line 49 of file GenContext.h.
void GenContext::getOutputSuffix | ( | const ShaderOutput * | output, |
string & | suffix | ||
) | const |
Get an output suffix to be used for the output in this context.
output | Node output |
suffix | Suffix string returned. Is empty if not found. |
Return the set of reserved words that should not be used as identifiers during code generation.
Definition at line 89 of file GenContext.h.
|
inline |
Return shader generatior.
Definition at line 37 of file GenContext.h.
Return user data with given name, or nullptr if no data is found.
Definition at line 159 of file GenContext.h.
|
inline |
Pop the current closure context.
Definition at line 114 of file GenContext.h.
Remove user data from the context.
Definition at line 144 of file GenContext.h.
|
inline |
Push a new closure context to use for closure evaluation.
Definition at line 108 of file GenContext.h.
|
inline |
Add user data to the context to make it available during shader generator.
Definition at line 130 of file GenContext.h.
Register a user search path for finding source code during code generation.
Definition at line 56 of file GenContext.h.
|
inline |
Register a user search path for finding source code during code generation.
Definition at line 63 of file GenContext.h.
void GenContext::removeInputSuffix | ( | const ShaderInput * | input | ) |
Remove an input suffix to be used for the input in this context.
input | Node input |
void GenContext::removeOutputSuffix | ( | const ShaderOutput * | output | ) |
Remove an output suffix to be used for the output in this context.
output | Node output |
|
inline |
Resolve a source code filename, first checking the given local path then checking any file paths registered by the user.
Definition at line 70 of file GenContext.h.
|
inline |
Set handler for application variables.
Definition at line 194 of file GenContext.h.
|
protected |
Definition at line 220 of file GenContext.h.
|
protected |
Definition at line 218 of file GenContext.h.
|
protected |
Definition at line 215 of file GenContext.h.
|
protected |
Definition at line 213 of file GenContext.h.
|
protected |
Definition at line 209 of file GenContext.h.
|
protected |
Definition at line 216 of file GenContext.h.
|
protected |
Definition at line 211 of file GenContext.h.
|
protected |
Definition at line 208 of file GenContext.h.
|
protected |
Definition at line 210 of file GenContext.h.
|
protected |
Definition at line 214 of file GenContext.h.