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, Int32mAutoBindingSlotPerSet
 
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 ()
 
VarDeclarationgetActiveSelfParameter () 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 ()
 
ProgramgetProgram () const
 
const NameManglinggetNameMangling () 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
 
FunctionDeclarationgetActiveFunctionDeclaration () const
 
StructDeclarationgetActiveFunctionStructDeclaration () const
 
void pushCallExpression (CallExpression *callExpression)
 
void popCallExpression ()
 
CallExpressiongetActiveCallExpression () const
 
void pushLValueExpression (Expression *expression)
 
void popLValueExpression ()
 
ExpressiongetActiveLValueExpression () const
 
void pushStructDeclaration (StructDeclaration *structDeclaration)
 
void popStructDeclaration ()
 
bool isInsideStructDeclaration () const
 
StructDeclarationgetActiveStructDeclaration () 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
 
VarDeclarationStatementgetActiveVarDeclarationStatement () 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: