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

#include <CeresEngine/Material/ShaderCompiler/AST/Visitor/FuncNameConverter.hpp>

Inheritance diagram for CeresEngine::ShaderCompiler::FuncNameConverter:
CeresEngine::ShaderCompiler::VisitorTracker CeresEngine::ShaderCompiler::Visitor

Public Types

enum  : UInt32 { RenameMemberFunctions = (1 << 0) , RenameFunctionSignatures = (1 << 1) , All = (RenameMemberFunctions | RenameFunctionSignatures) }
 
using OnFuncSigantureCompare = Function< bool(const FunctionDeclaration &lhs, const FunctionDeclaration &rhs) const >
 

Public Member Functions

void convert (Program &program, const NameMangling &nameMangling, const OnFuncSigantureCompare &onFuncSignatureCompare, const RawFlags &conversionFlags)
 
- Public Member Functions inherited from CeresEngine::ShaderCompiler::Visitor
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 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)
 

Private Types

using FuncList = Vector< FunctionDeclaration * >
 

Private Member Functions

void convertEqualFunctionSignatures (FuncList &funcList)
 
void convertMemberFunctionName (FunctionDeclaration &funcDeclaration, UInt32 &nameIndex)
 
void visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args) override
 
void visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args) override
 
void visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args) override
 
void visitFunctionDeclaration (FunctionDeclaration *ast, void *args) override
 

Private Attributes

NameMangling mNameMangling
 
OnFuncSigantureCompare mOnFuncSignatureCompare
 
RawFlags mConversionFlags
 
Map< String, FuncListmFuncDeclarationMap
 

Additional Inherited Members

- 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)
 

Member Typedef Documentation

◆ FuncList

◆ OnFuncSigantureCompare

Member Enumeration Documentation

◆ anonymous enum

Enumerator
RenameMemberFunctions 
RenameFunctionSignatures 
All 

Member Function Documentation

◆ convert()

void CeresEngine::ShaderCompiler::FuncNameConverter::convert ( Program program,
const NameMangling nameMangling,
const OnFuncSigantureCompare onFuncSignatureCompare,
const RawFlags conversionFlags 
)

◆ convertEqualFunctionSignatures()

void CeresEngine::ShaderCompiler::FuncNameConverter::convertEqualFunctionSignatures ( FuncList funcList)
private

◆ convertMemberFunctionName()

void CeresEngine::ShaderCompiler::FuncNameConverter::convertMemberFunctionName ( FunctionDeclaration funcDeclaration,
UInt32 nameIndex 
)
private

◆ visitBufferDeclarationStatement()

void CeresEngine::ShaderCompiler::FuncNameConverter::visitBufferDeclarationStatement ( BufferDeclarationStatement ast,
void args 
)
overrideprivatevirtual

◆ visitFunctionDeclaration()

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

◆ visitSamplerDeclarationStatement()

void CeresEngine::ShaderCompiler::FuncNameConverter::visitSamplerDeclarationStatement ( SamplerDeclarationStatement ast,
void args 
)
overrideprivatevirtual

◆ visitUniformBufferDeclaration()

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

Member Data Documentation

◆ mConversionFlags

RawFlags CeresEngine::ShaderCompiler::FuncNameConverter::mConversionFlags
private

◆ mFuncDeclarationMap

Map<String, FuncList> CeresEngine::ShaderCompiler::FuncNameConverter::mFuncDeclarationMap
private

◆ mNameMangling

NameMangling CeresEngine::ShaderCompiler::FuncNameConverter::mNameMangling
private

◆ mOnFuncSignatureCompare

OnFuncSigantureCompare CeresEngine::ShaderCompiler::FuncNameConverter::mOnFuncSignatureCompare
private

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