"L. Spiro Engine"
|
Provides a set of base callbacks that other platform-specific classes can use to process the syntax tree differently. More...
#include <LSGShaderTranslationProcessorBase.h>
Provides a set of base callbacks that other platform-specific classes can use to process the syntax tree differently.
Class CShaderTranslationProcessorBase Description: After a shader is syntactically parsed and a syntax tree generated, this class runs over the tree and allows custom actions to be taken at each node type. For translation to HLSL and GLSL, primarily major nodes are visited and refactored. For example, function declarations and member declarations.
typedef struct lsg::CShaderTranslationProcessorBase::LSG_ATTRIBUTE * lsg::CShaderTranslationProcessorBase::LPLSG_ATTRIBUTE |
An attribute.
typedef struct lsg::CShaderTranslationProcessorBase::LSG_NODE_CALLBACK * lsg::CShaderTranslationProcessorBase::LPLSG_NODE_CALLBACK [protected] |
Node data for callback routines.
typedef struct lsg::CShaderTranslationProcessorBase::LSG_NODE_TYPE * lsg::CShaderTranslationProcessorBase::LPLSG_NODE_TYPE |
Type information on a node. Includes one possible type for a node and whether that type is explicitly declared or just implied.
typedef struct lsg::CShaderTranslationProcessorBase::LSG_STACK_OBJ * lsg::CShaderTranslationProcessorBase::LPLSG_STACK_OBJ |
For use with the explicit stack during parsing.
typedef struct lsg::CShaderTranslationProcessorBase::LSG_UNIFORM * lsg::CShaderTranslationProcessorBase::LPLSG_UNIFORM |
A global uniform variable.
typedef struct lsg::CShaderTranslationProcessorBase::LSG_UNIFORM_SEMANTIC * lsg::CShaderTranslationProcessorBase::LPLSG_UNIFORM_SEMANTIC |
A sematic global uniform found while processing the file. We keep a list of these and update them automatically so that the user does not have to.
typedef CVector<LSG_ATTRIBUTE> lsg::CShaderTranslationProcessorBase::LSG_ATTRIBUTE_LIST |
An array of attributes.
typedef CVector<LSG_STACK_OBJ, LSUINT32> lsg::CShaderTranslationProcessorBase::LSG_NODE_STACK [protected] |
The explicit stack.
typedef CVectorPoD<LSG_NODE_TYPE> lsg::CShaderTranslationProcessorBase::LSG_NODE_TYPE_LIST |
An array of node types.
typedef CVector<LSG_UNIFORM> lsg::CShaderTranslationProcessorBase::LSG_UNIFORM_LIST |
An array of uniforms.
typedef CVector<LSG_UNIFORM_SEMANTIC> lsg::CShaderTranslationProcessorBase::LSG_UNIFORM_SEMANTIC_LIST |
An array of global semantics.
LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::CopyAttributes | ( | LSG_ATTRIBUTE_LIST & | _aOut | ) | const |
Copy the attributes to the given output.
_aOut | The destination to which to copy the attributes. |
LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::CopyGlobalSemantics | ( | LSG_UNIFORM_SEMANTIC_LIST & | _uslOut | ) | const |
Copies the referenced global semantics to the given output.
_uslOut | The destination to which to copy the global semantics. |
LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::CopyGlobalUniforms | ( | LSG_UNIFORM_LIST & | _ulOut | ) | const |
Copies the global uniforms to the given output.
_ulOut | The destination to which to copy the global semantics. |
virtual LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::DecodeType | ( | LSUINT64 | _ui64Type, |
CString & | _sString | ||
) | [protected, virtual] |
Decode a type.
_ui64Type | The type information. |
_sString | The string to which to print the data. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::DecodeTypeQualifier | ( | LSUINT64 | _ui64Qualifier, |
CString & | _sString | ||
) | [protected, virtual] |
Decode a type qualifier to a given string.
_ui64Qualifier | The type qualifier. |
_sString | The string to which to print the data. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::DefaultNodeHandler | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Default node handler. Simply tells the processor to go into each node.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::DefaultNodePostHandler | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Default post-processing node handler. Called after processing a node and its children.
_ncData | All data needed for the parsing. |
LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::GetNodeType | ( | LSUINT32 | _ui32NodeIndex, |
LSG_NODE_TYPE_LIST & | _ntlRet | ||
) | const |
Get all possible types of any node. Returns more than one type when the given node can be implicitly cast to multiple types, or when an identifier is declared within the current scope in multiple forms.
_ui32NodeIndex | Node index whose type information is to be obtained. |
_ntlRet | Termination node, if the node type |
const LSG_STACK_OBJ* LSE_CALL lsg::CShaderTranslationProcessorBase::GetParentOfType | ( | const LSG_NODE_CALLBACK & | _ncData, |
LSG_NODE | _nType | ||
) | const [protected] |
Gets a parent node of a given type. Returns the first node found matching the given type.
_ncData | The node whose parent of the given type is to be found. |
_nType | The type to check against all parents of the given node for a match. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleArgList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_ARGLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleArrayAccess | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_ARRAYACCESS.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleAssignment | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_ASSIGNMENT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleBlankStatement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_BLANKSTATEMENT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleBoolean | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_BOOLEAN.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleBreak | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_BREAK.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleCast | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_CAST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleComma | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_COMMA.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleConstructor | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_CONSTRUCTOR.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleContinue | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_CONTINUE.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleDeclarationStatement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_DECLARATIONSTATEMENT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleDiscard | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_DISCARD.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleDoWhile | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_DOWHILE.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleExpressionStatement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_EXPRESSIONSTATEMENT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleExternalDeclarationList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_EXTERNALDECLARATIONLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleFieldSelect | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FIELDSELECT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleFor | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FOR.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleForInit | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FORINIT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleFullySpecifiedType | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FULLYSPECIFIEDTYPE.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleFunctionCall | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FUNCTIONCALL.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleFunctionDeclaration | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FUNCDECL.
_ncData | All data needed for the parsing. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleFunctionDefinition | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_FUNCDEFINITION.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleIdentifier | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_IDENTIFIER.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleIfElse | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_SELECTION.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleInitList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_INITLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleInitListWrap | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_INITLISTWRAP.
_ncData | All data needed for the parsing. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleIntrinsic | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_INTRINSIC.
_ncData | All data needed for the parsing. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleMath | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_MATH.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleNewScopeStatement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_NEWSCOPESTATEMENT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleNumeric | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_NUMERICCONSTANT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleParamaterDeclaration | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_PARMDECLARATION.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleParamaterDeclarationList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_PARMDECLARATIONLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleParamaterDeclarator | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_PARMDECLARATOR.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandlePostfixDecrement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_POSTFIXDEC.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandlePostfixIncrement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_POSTFIXINC.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandlePrefixDecrement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_PREFIXDEC.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandlePrefixIncrement | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_PREFIXINC.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleReturn | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_RETURN.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleSemantic | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_SEMANTIC.
_ncData | All data needed for the parsing. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleSingleDeclaration | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_SINGLEDECL.
_ncData | All data needed for the parsing. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleStatementList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STATEMENTLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleString | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STRINGCONSTANT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleStruct | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STRUCT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleStructDeclaration | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STRUCTDECLARATION.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleStructDeclarationList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STRUCTDECLARATIONLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleStructDeclarator | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STRUCTDECLARATOR.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleStructDeclaratorList | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_STRUCTDECLARATORLIST.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleTertiary | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_TERTIARY.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleTypeSpecifierNoPrecision | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_TYPESPECIFIERNOPREC.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleUnary | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_UNARY.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::HandleWhile | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Handle nodes of type LSG_N_WHILE.
_ncData | All data needed for the parsing. |
LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::HasParentOfType | ( | const LSG_NODE_CALLBACK & | _ncData, |
LSG_NODE | _nType | ||
) | const [protected] |
Determines if the given noce is a child node of a given type. That is, if any parent nodes to the given node have the given type.
_ncData | The node. |
_nType | The type to check against all parents of the given node for a match. |
virtual LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::PostShaderString | ( | CString & | _sShader, |
CString & | _sError | ||
) | [protected, virtual] |
Modify the final shader string after it has been completed. Override to modify it.
_sShader | The final string, modifiable in-place. |
_sError | The error string to be filled if there is an error modifying the shader text. |
Reimplemented in lsg::CDirectX11ShaderTranslator.
LSVOID LSE_CALL lsg::CShaderTranslationProcessorBase::PrintError | ( | CString & | _sError, |
const LSCHAR * | _pcError, | ||
const LSG_NODE_CALLBACK & | _ncData | ||
) | const [protected] |
Print an error which includes line information.
_sError | The error string to which to print the error. |
_pcError | The error to print. |
_ncData | Data required for adding line and file to the error report. |
LSG_ERROR_CODES LSE_CALL lsg::CShaderTranslationProcessorBase::ProcessSyntaxTree | ( | CShaderLanguageParser & | _slpContainer, |
CString & | _sResult, | ||
CString & | _sError | ||
) |
Process a syntax tree. Calls virtual functions at key nodes which are overridden differently depending on the target platform.
_slpContainer | Container of the syntax tree to process. |
_sResult | Holds the result of processing the syntax tree. This should be the shader translated into HLSH or GLSL etc. |
_sError | Returned error string. |
static LSBOOL LSE_CALL lsg::CShaderTranslationProcessorBase::PushNode | ( | LSG_NODE_STACK & | _nsStack, |
LSUINT32 | _ui32Index, | ||
LSUINT32 | _ui32ParentIndex, | ||
LSUINT32 | _ui32Data = 0UL , |
||
const LSCHAR * | _pcPostFix = NULL , |
||
const LSCHAR * | _pcPreFix = NULL |
||
) | [static, protected] |
Push a node onto the explicit stack.
_nsStack | Stack onto which to push the node. |
_ui32Index | Index of the node to push. |
_ui32ParentIndex | Index of the parent node. |
_ui32Data | Optional data to associated with the node. |
_pcPostFix | A postfix string to add to the result when this node text is added. |
_pcPreFix | A prefix string to add to the result when this node text is added. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::RegisterFunctionWithCurrentScope | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Register a function with the current scope. Node must be of type LSG_N_FUNCDECL.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::RegisterParmsWithNewScope | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Register the last parameters with a new scope. Pushes a new scope and registers the parameters in m_vLastParms.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::RegisterStructWithCurrentScope | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Register a structure with the current scope. Node must be of type LSG_N_STRUCT.
_ncData | All data needed for the parsing. |
virtual LSG_PROCESSING_DIRECTIVE LSE_CALL lsg::CShaderTranslationProcessorBase::RegisterVariableWithCurrentScope | ( | LSG_NODE_CALLBACK & | _ncData | ) | [protected, virtual] |
Register a variable with the current scope. Node must be of type LSG_N_SINGLEDECL.
_ncData | All data needed for the parsing. |
Main-function attributes.
LSBOOL lsg::CShaderTranslationProcessorBase::m_bDefiningMain [protected] |
Are we declaring Main() now?
LSBOOL lsg::CShaderTranslationProcessorBase::m_bHaveMain [protected] |
Do we have a Main()?
LSBOOL lsg::CShaderTranslationProcessorBase::m_bMultiPixelOutputs [protected] |
Do we output multiple colors? Related to multiple render targets.
The container we are using while parsing.
Stack of scopes. We maintain at least one scope always (the global scope) during parsing of the data. After the data has been parsed, the scope stack is cleared.
Global uniforms found while parsing the file.
Global semantic uniforms found while parsing the file.
CVectorPoD<LSUINT32, LSUINT32> lsg::CShaderTranslationProcessorBase::m_vLastParms [protected] |
The last function's parameters.
CVectorPoD<LSUINT32, LSUINT32> lsg::CShaderTranslationProcessorBase::m_vMainParms [protected] |
The Main() parameters.