|
| void | convertASTPrimary (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc) override |
| |
| bool | isVKSL () const |
| |
| bool | useSeparateSamplers () const |
| |
| void | visitProgram (Program *ast, void *args) override |
| |
| void | visitCodeBlock (CodeBlock *ast, void *args) override |
| |
| void | visitSwitchCase (SwitchCase *ast, void *args) override |
| |
| void | visitTypeSpecifier (TypeSpecifier *ast, void *args) override |
| |
| void | visitVarDeclaration (VarDeclaration *ast, void *args) override |
| |
| void | visitBufferDeclaration (BufferDeclaration *ast, void *args) override |
| |
| void | visitSamplerDeclaration (SamplerDeclaration *ast, void *args) override |
| |
| void | visitStructDeclaration (StructDeclaration *ast, void *args) override |
| |
| void | visitFunctionDeclaration (FunctionDeclaration *ast, void *args) override |
| |
| void | visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args) override |
| |
| void | visitVarDeclarationStatement (VarDeclarationStatement *ast, void *args) override |
| |
| void | visitAliasDeclarationStatement (AliasDeclarationStatement *ast, void *args) override |
| |
| void | visitCodeBlockStatement (CodeBlockStatement *ast, void *args) override |
| |
| void | visitForLoopStatement (ForLoopStatement *ast, void *args) override |
| |
| void | visitWhileLoopStatement (WhileLoopStatement *ast, void *args) override |
| |
| void | visitDoWhileLoopStatement (DoWhileLoopStatement *ast, void *args) override |
| |
| void | visitIfStatement (IfStatement *ast, void *args) override |
| |
| void | visitElseStatement (ElseStatement *ast, void *args) override |
| |
| void | visitSwitchStatement (SwitchStatement *ast, void *args) override |
| |
| void | visitReturnStatement (ReturnStatement *ast, void *args) override |
| |
| void | visitCastExpression (CastExpression *ast, void *args) override |
| |
| void | visitCallExpression (CallExpression *ast, void *args) override |
| |
| void | visitObjectExpression (ObjectExpression *ast, void *args) override |
| |
| void | registerDeclarationIdent (Declaration *obj, bool global=false) |
| |
| void | registerGlobalDeclarationIdents (const Vector< VarDeclaration * > &varDeclarations) |
| |
| bool | mustRenameDeclarationIdent (const Declaration *obj) const |
| |
| void | removeSamplerStateVarDeclarationStatements (Vector< VarDeclarationStatementPtr > &statements) |
| |
| bool | renameReservedKeyword (Identifier &ident) |
| |
| void | convertFunctionDeclaration (FunctionDeclaration *ast) |
| |
| void | convertFunctionDeclarationDefault (FunctionDeclaration *ast) |
| |
| void | convertFunctionDeclarationEntryPoint (FunctionDeclaration *ast) |
| |
| void | convertIntrinsicCall (CallExpression *ast) |
| |
| void | convertIntrinsicCallSaturate (CallExpression *ast) |
| |
| void | convertIntrinsicCallTextureLod (CallExpression *ast) |
| |
| void | convertIntrinsicCallTextureSample (CallExpression *ast) |
| |
| void | convertIntrinsicCallTextureSampleLevel (CallExpression *ast) |
| |
| void | convertIntrinsicCallTextureLoad (CallExpression *ast) |
| |
| void | convertIntrinsicCallImageAtomic (CallExpression *ast) |
| |
| void | convertIntrinsicCallGather (CallExpression *ast) |
| |
| void | convertIntrinsicCallSampleCmp (CallExpression *ast) |
| |
| void | convertIntrisicCallF32toF16 (CallExpression *ast) |
| |
| void | convertFunctionCall (CallExpression *ast) |
| |
| void | convertEntryPointStructPrefix (ExpressionPtr &expression, ObjectExpression *objectExpression) |
| |
| void | convertEntryPointStructPrefixObject (ExpressionPtr &expression, const ObjectExpression *prefixExpression, ObjectExpression *objectExpression) |
| |
| void | convertEntryPointStructPrefixArray (ExpressionPtr &expression, const ArrayExpression *prefixExpression, ObjectExpression *objectExpression) |
| |
| void | convertEntryPointReturnStatement (ReturnStatement &ast, StructDeclaration *structDeclaration, const TypeDenoterPtr &typeDen, const ExpressionPtr &typeConstructor) |
| |
| void | convertEntryPointReturnStatementSequenceExpression (ReturnStatement &ast, StructDeclaration *structDeclaration, const TypeDenoterPtr &typeDen, const SequenceExpression &typeConstructor) |
| |
| void | convertEntryPointReturnStatementCommonExpression (ReturnStatement &ast, StructDeclaration *structDeclaration, const TypeDenoterPtr &typeDen, const ExpressionPtr &typeConstructor) |
| |
| void | convertEntryPointReturnStatementToCodeBlock (StatementPtr &statement) |
| |
| void | addMissingInterpModifiers (const Vector< VarDeclaration * > &varDeclarations) |
| |
| void | convertObjectExpression (ObjectExpression *objectExpression) |
| |
| void | convertObjectExpressionStaticVar (ObjectExpression *objectExpression) |
| |
| void | convertObjectExpressionDefault (ObjectExpression *objectExpression) |
| |
| void | convertObjectPrefixStructMember (ExpressionPtr &prefixExpression, const StructDeclaration *ownerStructDeclaration, const StructDeclaration *callerStructDeclaration, bool useSelfParam) |
| |
| void | convertObjectPrefixSelfParam (ExpressionPtr &prefixExpression, const ObjectExpression *objectExpression) |
| |
| void | convertObjectPrefixBaseStruct (ExpressionPtr &prefixExpression, const ObjectExpression *objectExpression) |
| |
| void | convertObjectPrefixNamespace (const ExpressionPtr &prefixExpression, ObjectExpression *objectExpression) |
| |
| void | convertObjectPrefixNamespaceStruct (ObjectExpression *prefixObjectExpression, ObjectExpression *objectExpression, const StructDeclaration *baseStructDeclaration, const StructDeclaration *activeStructDeclaration) |
| |
| void | insertBaseMemberPrefixes (ExpressionPtr &prefixExpression, const StructDeclaration *ownerStructDeclaration, const StructDeclaration *callerStructDeclaration) |
| |
| void | unrollStatements (Vector< StatementPtr > &statements) |
| |
| void | unrollStatementsVarDeclaration (Vector< StatementPtr > &unrolledStatements, const VarDeclarationStatement *ast) |
| |
| void | unrollStatementsVarDeclarationInitializer (Vector< StatementPtr > &unrolledStatements, VarDeclaration *varDeclaration) |
| |
| void | convertSlotRegisters (const Statement *ast, Vector< RegisterPtr > &slotRegisters) |
| |
|
| bool | convertAST (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc) |
| |
| virtual | ~Visitor ()=default |
| |
| virtual void | visitAttribute (Attribute *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 | visitAliasDeclaration (AliasDeclaration *ast, void *args) |
| |
| virtual void | visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args) |
| |
| virtual void | visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args) |
| |
| virtual void | visitBasicDeclarationStatement (BasicDeclarationStatement *ast, void *args) |
| |
| virtual void | visitNullStatement (NullStatement *ast, void *args) |
| |
| virtual void | visitExpressionStatement (ExpressionStatement *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 | visitBracketExpression (BracketExpression *ast, void *args) |
| |
| virtual void | visitAssignExpression (AssignExpression *ast, void *args) |
| |
| virtual void | visitArrayExpression (ArrayExpression *ast, void *args) |
| |
| virtual void | visitInitializerExpression (InitializerExpression *ast, void *args) |
| |
| 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.