CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderCompiler::GLSLConverter Class Reference

GLSL AST converter. More...

#include <CeresEngine/Material/ShaderCompiler/Backend/GLSL/GLSLConverter.hpp>

Inheritance diagram for CeresEngine::ShaderCompiler::GLSLConverter:
CeresEngine::ShaderCompiler::Converter CeresEngine::ShaderCompiler::VisitorTracker CeresEngine::ShaderCompiler::Visitor

Static Public Member Functions

static bool convertVarDeclarationType (VarDeclaration &varDeclaration)
 
static bool convertVarDeclarationBaseTypeDenoter (VarDeclaration &varDeclaration, const DataType dataType)
 

Private Member Functions

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)
 

Private Attributes

ShaderTarget mShaderTarget = ShaderTarget::VertexShader
 
OutputShaderVersion mOutputVersion = OutputShaderVersion::GLSL
 
Options mOptions
 
bool mAutoBinding = false
 
Int32 mAutoBindingStartSlot = 0
 
Map< UInt32, Int32 > mAutoBindingSlotPerSet
 
bool mSeparateSamplers = true
 
Vector< const Declaration * > mGlobalReservedDeclarations
 List of all variables with reserved identifiers that come from a structure that must be normalize.
 

Additional Inherited Members

- Public Member Functions inherited from CeresEngine::ShaderCompiler::Converter
bool convertAST (Program &program, const ShaderInput &inputDesc, const ShaderOutput &outputDesc)
 
- Public Member Functions inherited from CeresEngine::ShaderCompiler::Visitor
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)
 
- Protected Member Functions inherited from CeresEngine::ShaderCompiler::Converter
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
 
- Protected Member Functions inherited from CeresEngine::ShaderCompiler::VisitorTracker
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
 
- Protected Member Functions inherited from CeresEngine::ShaderCompiler::Visitor
template<typename T >
void visit (const T &ast, void *args=nullptr)
 
template<typename T >
void visit (const Vector< T > &astList, void *args=nullptr)
 

Detailed Description

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.

Member Function Documentation

◆ addMissingInterpModifiers()

void CeresEngine::ShaderCompiler::GLSLConverter::addMissingInterpModifiers ( const Vector< VarDeclaration * > &  varDeclarations)
private

◆ convertASTPrimary()

void CeresEngine::ShaderCompiler::GLSLConverter::convertASTPrimary ( Program &  program,
const ShaderInput &  inputDesc,
const ShaderOutput &  outputDesc 
)
overrideprivatevirtual

◆ convertEntryPointReturnStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointReturnStatement ( ReturnStatement &  ast,
StructDeclaration *  structDeclaration,
const TypeDenoterPtr &  typeDen,
const ExpressionPtr &  typeConstructor 
)
private

◆ convertEntryPointReturnStatementCommonExpression()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointReturnStatementCommonExpression ( ReturnStatement &  ast,
StructDeclaration *  structDeclaration,
const TypeDenoterPtr &  typeDen,
const ExpressionPtr &  typeConstructor 
)
private

◆ convertEntryPointReturnStatementSequenceExpression()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointReturnStatementSequenceExpression ( ReturnStatement &  ast,
StructDeclaration *  structDeclaration,
const TypeDenoterPtr &  typeDen,
const SequenceExpression &  typeConstructor 
)
private

◆ convertEntryPointReturnStatementToCodeBlock()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointReturnStatementToCodeBlock ( StatementPtr &  statement)
private

◆ convertEntryPointStructPrefix()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointStructPrefix ( ExpressionPtr &  expression,
ObjectExpression *  objectExpression 
)
private

◆ convertEntryPointStructPrefixArray()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointStructPrefixArray ( ExpressionPtr &  expression,
const ArrayExpression *  prefixExpression,
ObjectExpression *  objectExpression 
)
private

◆ convertEntryPointStructPrefixObject()

void CeresEngine::ShaderCompiler::GLSLConverter::convertEntryPointStructPrefixObject ( ExpressionPtr &  expression,
const ObjectExpression *  prefixExpression,
ObjectExpression *  objectExpression 
)
private

◆ convertFunctionCall()

void CeresEngine::ShaderCompiler::GLSLConverter::convertFunctionCall ( CallExpression *  ast)
private

◆ convertFunctionDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::convertFunctionDeclaration ( FunctionDeclaration *  ast)
private

◆ convertFunctionDeclarationDefault()

void CeresEngine::ShaderCompiler::GLSLConverter::convertFunctionDeclarationDefault ( FunctionDeclaration *  ast)
private

◆ convertFunctionDeclarationEntryPoint()

void CeresEngine::ShaderCompiler::GLSLConverter::convertFunctionDeclarationEntryPoint ( FunctionDeclaration *  ast)
private

◆ convertIntrinsicCall()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCall ( CallExpression *  ast)
private

◆ convertIntrinsicCallGather()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallGather ( CallExpression *  ast)
private

◆ convertIntrinsicCallImageAtomic()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallImageAtomic ( CallExpression *  ast)
private

◆ convertIntrinsicCallSampleCmp()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallSampleCmp ( CallExpression *  ast)
private

◆ convertIntrinsicCallSaturate()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallSaturate ( CallExpression *  ast)
private

◆ convertIntrinsicCallTextureLoad()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallTextureLoad ( CallExpression *  ast)
private

◆ convertIntrinsicCallTextureLod()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallTextureLod ( CallExpression *  ast)
private

◆ convertIntrinsicCallTextureSample()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallTextureSample ( CallExpression *  ast)
private

◆ convertIntrinsicCallTextureSampleLevel()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrinsicCallTextureSampleLevel ( CallExpression *  ast)
private

◆ convertIntrisicCallF32toF16()

void CeresEngine::ShaderCompiler::GLSLConverter::convertIntrisicCallF32toF16 ( CallExpression *  ast)
private

◆ convertObjectExpression()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectExpression ( ObjectExpression *  objectExpression)
private

◆ convertObjectExpressionDefault()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectExpressionDefault ( ObjectExpression *  objectExpression)
private

◆ convertObjectExpressionStaticVar()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectExpressionStaticVar ( ObjectExpression *  objectExpression)
private

◆ convertObjectPrefixBaseStruct()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectPrefixBaseStruct ( ExpressionPtr &  prefixExpression,
const ObjectExpression *  objectExpression 
)
private

◆ convertObjectPrefixNamespace()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectPrefixNamespace ( const ExpressionPtr &  prefixExpression,
ObjectExpression *  objectExpression 
)
private

◆ convertObjectPrefixNamespaceStruct()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectPrefixNamespaceStruct ( ObjectExpression *  prefixObjectExpression,
ObjectExpression *  objectExpression,
const StructDeclaration *  baseStructDeclaration,
const StructDeclaration *  activeStructDeclaration 
)
private

◆ convertObjectPrefixSelfParam()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectPrefixSelfParam ( ExpressionPtr &  prefixExpression,
const ObjectExpression *  objectExpression 
)
private

◆ convertObjectPrefixStructMember()

void CeresEngine::ShaderCompiler::GLSLConverter::convertObjectPrefixStructMember ( ExpressionPtr &  prefixExpression,
const StructDeclaration *  ownerStructDeclaration,
const StructDeclaration *  callerStructDeclaration,
bool  useSelfParam 
)
private

◆ convertSlotRegisters()

void CeresEngine::ShaderCompiler::GLSLConverter::convertSlotRegisters ( const Statement *  ast,
Vector< RegisterPtr > &  slotRegisters 
)
private

◆ convertVarDeclarationBaseTypeDenoter()

static bool CeresEngine::ShaderCompiler::GLSLConverter::convertVarDeclarationBaseTypeDenoter ( VarDeclaration &  varDeclaration,
const DataType  dataType 
)
static

◆ convertVarDeclarationType()

static bool CeresEngine::ShaderCompiler::GLSLConverter::convertVarDeclarationType ( VarDeclaration &  varDeclaration)
static

◆ insertBaseMemberPrefixes()

void CeresEngine::ShaderCompiler::GLSLConverter::insertBaseMemberPrefixes ( ExpressionPtr &  prefixExpression,
const StructDeclaration *  ownerStructDeclaration,
const StructDeclaration *  callerStructDeclaration 
)
private

◆ isVKSL()

bool CeresEngine::ShaderCompiler::GLSLConverter::isVKSL ( ) const
private

◆ mustRenameDeclarationIdent()

bool CeresEngine::ShaderCompiler::GLSLConverter::mustRenameDeclarationIdent ( const Declaration *  obj) const
private

◆ registerDeclarationIdent()

void CeresEngine::ShaderCompiler::GLSLConverter::registerDeclarationIdent ( Declaration *  obj,
bool  global = false 
)
private

◆ registerGlobalDeclarationIdents()

void CeresEngine::ShaderCompiler::GLSLConverter::registerGlobalDeclarationIdents ( const Vector< VarDeclaration * > &  varDeclarations)
private

◆ removeSamplerStateVarDeclarationStatements()

void CeresEngine::ShaderCompiler::GLSLConverter::removeSamplerStateVarDeclarationStatements ( Vector< VarDeclarationStatementPtr > &  statements)
private

◆ renameReservedKeyword()

bool CeresEngine::ShaderCompiler::GLSLConverter::renameReservedKeyword ( Identifier &  ident)
private

◆ unrollStatements()

void CeresEngine::ShaderCompiler::GLSLConverter::unrollStatements ( Vector< StatementPtr > &  statements)
private

◆ unrollStatementsVarDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::unrollStatementsVarDeclaration ( Vector< StatementPtr > &  unrolledStatements,
const VarDeclarationStatement *  ast 
)
private

◆ unrollStatementsVarDeclarationInitializer()

void CeresEngine::ShaderCompiler::GLSLConverter::unrollStatementsVarDeclarationInitializer ( Vector< StatementPtr > &  unrolledStatements,
VarDeclaration *  varDeclaration 
)
private

◆ useSeparateSamplers()

bool CeresEngine::ShaderCompiler::GLSLConverter::useSeparateSamplers ( ) const
private

◆ visitAliasDeclarationStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitAliasDeclarationStatement ( AliasDeclarationStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitBufferDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::visitBufferDeclaration ( BufferDeclaration *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitCallExpression()

void CeresEngine::ShaderCompiler::GLSLConverter::visitCallExpression ( CallExpression *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitCastExpression()

void CeresEngine::ShaderCompiler::GLSLConverter::visitCastExpression ( CastExpression *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitCodeBlock()

void CeresEngine::ShaderCompiler::GLSLConverter::visitCodeBlock ( CodeBlock *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitCodeBlockStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitCodeBlockStatement ( CodeBlockStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitDoWhileLoopStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitDoWhileLoopStatement ( DoWhileLoopStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitElseStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitElseStatement ( ElseStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitForLoopStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitForLoopStatement ( ForLoopStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitFunctionDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::visitFunctionDeclaration ( FunctionDeclaration *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitIfStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitIfStatement ( IfStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitObjectExpression()

void CeresEngine::ShaderCompiler::GLSLConverter::visitObjectExpression ( ObjectExpression *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitProgram()

void CeresEngine::ShaderCompiler::GLSLConverter::visitProgram ( Program *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitReturnStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitReturnStatement ( ReturnStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitSamplerDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::visitSamplerDeclaration ( SamplerDeclaration *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitStructDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::visitStructDeclaration ( StructDeclaration *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitSwitchCase()

void CeresEngine::ShaderCompiler::GLSLConverter::visitSwitchCase ( SwitchCase *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitSwitchStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitSwitchStatement ( SwitchStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitTypeSpecifier()

void CeresEngine::ShaderCompiler::GLSLConverter::visitTypeSpecifier ( TypeSpecifier *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitUniformBufferDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::visitUniformBufferDeclaration ( UniformBufferDeclaration *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitVarDeclaration()

void CeresEngine::ShaderCompiler::GLSLConverter::visitVarDeclaration ( VarDeclaration *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitVarDeclarationStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitVarDeclarationStatement ( VarDeclarationStatement *  ast,
void *  args 
)
overrideprivatevirtual

◆ visitWhileLoopStatement()

void CeresEngine::ShaderCompiler::GLSLConverter::visitWhileLoopStatement ( WhileLoopStatement *  ast,
void *  args 
)
overrideprivatevirtual

Member Data Documentation

◆ mAutoBinding

bool CeresEngine::ShaderCompiler::GLSLConverter::mAutoBinding = false
private

◆ mAutoBindingSlotPerSet

Map<UInt32, Int32> CeresEngine::ShaderCompiler::GLSLConverter::mAutoBindingSlotPerSet
private

◆ mAutoBindingStartSlot

Int32 CeresEngine::ShaderCompiler::GLSLConverter::mAutoBindingStartSlot = 0
private

◆ mGlobalReservedDeclarations

Vector<const Declaration*> CeresEngine::ShaderCompiler::GLSLConverter::mGlobalReservedDeclarations
private

List of all variables with reserved identifiers that come from a structure that must be normalize.

If a local variable uses a name from this list, it name must be modified with name mangling.

◆ mOptions

Options CeresEngine::ShaderCompiler::GLSLConverter::mOptions
private

◆ mOutputVersion

OutputShaderVersion CeresEngine::ShaderCompiler::GLSLConverter::mOutputVersion = OutputShaderVersion::GLSL
private

◆ mSeparateSamplers

bool CeresEngine::ShaderCompiler::GLSLConverter::mSeparateSamplers = true
private

◆ mShaderTarget

ShaderTarget CeresEngine::ShaderCompiler::GLSLConverter::mShaderTarget = ShaderTarget::VertexShader
private

The documentation for this class was generated from the following file: