|
| bool | convertAST (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc) |
| |
| virtual | ~Visitor ()=default |
| |
| virtual void | visitProgram (Program *ast, void *args) |
| |
| virtual void | visitCodeBlock (CodeBlock *ast, void *args) |
| |
| virtual void | visitAttribute (Attribute *ast, void *args) |
| |
| virtual void | visitSwitchCase (SwitchCase *ast, void *args) |
| |
| virtual void | visitSamplerValue (SamplerValue *ast, void *args) |
| |
| virtual void | visitRegister (Register *ast, void *args) |
| |
| virtual void | visitPackOffset (PackOffset *ast, void *args) |
| |
| virtual void | visitArrayDimension (ArrayDimension *ast, void *args) |
| |
| virtual void | visitTypeSpecifier (TypeSpecifier *ast, void *args) |
| |
| virtual void | visitVarDeclaration (VarDeclaration *ast, void *args) |
| |
| virtual void | visitBufferDeclaration (BufferDeclaration *ast, void *args) |
| |
| virtual void | visitSamplerDeclaration (SamplerDeclaration *ast, void *args) |
| |
| virtual void | visitStructDeclaration (StructDeclaration *ast, void *args) |
| |
| virtual void | visitAliasDeclaration (AliasDeclaration *ast, void *args) |
| |
| virtual void | visitFunctionDeclaration (FunctionDeclaration *ast, void *args) |
| |
| virtual void | visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args) |
| |
| virtual void | visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args) |
| |
| virtual void | visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args) |
| |
| virtual void | visitVarDeclarationStatement (VarDeclarationStatement *ast, void *args) |
| |
| virtual void | visitAliasDeclarationStatement (AliasDeclarationStatement *ast, void *args) |
| |
| virtual void | visitBasicDeclarationStatement (BasicDeclarationStatement *ast, void *args) |
| |
| virtual void | visitNullStatement (NullStatement *ast, void *args) |
| |
| virtual void | visitCodeBlockStatement (CodeBlockStatement *ast, void *args) |
| |
| virtual void | visitForLoopStatement (ForLoopStatement *ast, void *args) |
| |
| virtual void | visitWhileLoopStatement (WhileLoopStatement *ast, void *args) |
| |
| virtual void | visitDoWhileLoopStatement (DoWhileLoopStatement *ast, void *args) |
| |
| virtual void | visitIfStatement (IfStatement *ast, void *args) |
| |
| virtual void | visitElseStatement (ElseStatement *ast, void *args) |
| |
| virtual void | visitSwitchStatement (SwitchStatement *ast, void *args) |
| |
| virtual void | visitExpressionStatement (ExpressionStatement *ast, void *args) |
| |
| virtual void | visitReturnStatement (ReturnStatement *ast, void *args) |
| |
| virtual void | visitCtrlTransferStatement (CtrlTransferStatement *ast, void *args) |
| |
| virtual void | visitLayoutStatement (LayoutStatement *ast, void *args) |
| |
| virtual void | visitNullExpression (NullExpression *ast, void *args) |
| |
| virtual void | visitSequenceExpression (SequenceExpression *ast, void *args) |
| |
| virtual void | visitLiteralExpression (LiteralExpression *ast, void *args) |
| |
| virtual void | visitTypeSpecifierExpression (TypeSpecifierExpression *ast, void *args) |
| |
| virtual void | visitTernaryExpression (TernaryExpression *ast, void *args) |
| |
| virtual void | visitBinaryExpression (BinaryExpression *ast, void *args) |
| |
| virtual void | visitUnaryExpression (UnaryExpression *ast, void *args) |
| |
| virtual void | visitPostUnaryExpression (PostUnaryExpression *ast, void *args) |
| |
| virtual void | visitCallExpression (CallExpression *ast, void *args) |
| |
| virtual void | visitBracketExpression (BracketExpression *ast, void *args) |
| |
| virtual void | visitAssignExpression (AssignExpression *ast, void *args) |
| |
| virtual void | visitObjectExpression (ObjectExpression *ast, void *args) |
| |
| virtual void | visitArrayExpression (ArrayExpression *ast, void *args) |
| |
| virtual void | visitCastExpression (CastExpression *ast, void *args) |
| |
| virtual void | visitInitializerExpression (InitializerExpression *ast, void *args) |
| |
|
| virtual void | convertASTPrimary (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc)=0 |
| |
| void | openScope () |
| |
| void | closeScope () |
| |
| void | register_ (const String &ident) |
| |
| bool | fetch (const String &ident) const |
| |
| bool | fetchFromCurrentScope (const String &ident) const |
| |
| void | pushSelfParameter (VarDeclaration *parameter) |
| |
| void | popSelfParameter () |
| |
| VarDeclaration * | getActiveSelfParameter () const |
| |
| void | renameIdent (Identifier &ident) |
| |
| void | renameIdentObfuscated (Identifier &ident) |
| |
| void | renameIdentOf (Declaration *obj) |
| |
| void | renameIdentOfInOutVarDeclarations (const Vector< VarDeclaration * > &varDeclarations, bool input, bool useSemanticOnly=false) |
| |
| void | labelAnonymousDeclaration (Declaration *declarationObj) |
| |
| void | visitScopedStatement (StatementPtr &statement, void *args=nullptr) |
| |
| void | visitScopedStatementList (Vector< StatementPtr > &statementList, void *args=nullptr) |
| |
| void | insertStatementBefore (const StatementPtr &statement, bool globalScope=false) |
| |
| void | insertStatementAfter (const StatementPtr &statement, bool globalScope=false) |
| |
| void | moveNestedStructDeclarations (Vector< StatementPtr > &localStatements, bool globalScope=false) |
| |
| bool | isGlobalInOutVarDeclaration (const VarDeclaration *varDeclaration) const |
| |
| bool | isSamplerStateTypeDenoter (const TypeDenoterPtr &typeDenoter) const |
| |
| void | removeDeadCode (Vector< StatementPtr > &statements) |
| |
| String | makeTempVarIdent () |
| |
| Program * | getProgram () const |
| |
| const NameMangling & | getNameMangling () const |
| |
| bool | isInsideGlobalScope () const |
| |
| void | pushFunctionDeclaration (FunctionDeclaration *funcDeclaration) |
| |
| void | popFunctionDeclaration () |
| |
| bool | isInsideFunctionDeclaration () const |
| |
| bool | isInsideEntryPoint () const |
| |
| bool | isInsideSecondaryEntryPoint () const |
| |
| FunctionDeclaration * | getActiveFunctionDeclaration () const |
| |
| StructDeclaration * | getActiveFunctionStructDeclaration () const |
| |
| void | pushCallExpression (CallExpression *callExpression) |
| |
| void | popCallExpression () |
| |
| CallExpression * | getActiveCallExpression () const |
| |
| void | pushLValueExpression (Expression *expression) |
| |
| void | popLValueExpression () |
| |
| Expression * | getActiveLValueExpression () const |
| |
| void | pushStructDeclaration (StructDeclaration *structDeclaration) |
| |
| void | popStructDeclaration () |
| |
| bool | isInsideStructDeclaration () const |
| |
| StructDeclaration * | getActiveStructDeclaration () const |
| |
| const Vector< StructDeclaration * > & | getStructDeclarationStack () const |
| |
| void | pushUniformBufferDeclaration (UniformBufferDeclaration *uniformBufferDeclaration) |
| |
| void | popUniformBufferDeclaration () |
| |
| bool | isInsideUniformBufferDeclaration () const |
| |
| const Vector< UniformBufferDeclaration * > & | getUniformBufferDeclarationStack () const |
| |
| void | pushVarDeclarationStatement (VarDeclarationStatement *varDeclarationStatement) |
| |
| void | popVarDeclarationStatement () |
| |
| bool | isInsideVarDeclarationStatement () const |
| |
| VarDeclarationStatement * | getActiveVarDeclarationStatement () const |
| |
| template<typename T > |
| void | visit (const T &ast, void *args=nullptr) |
| |
| template<typename T > |
| void | visit (const Vector< T > &astList, void *args=nullptr) |
| |
GLSL AST converter.
This class modifies the AST after context analysis to be conform with GLSL, e.g. remove arguments from intrinsic calls, that are not allowed in GLSL, such as sampler state objects.