CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderCompiler::Register Struct Reference

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

Inheritance diagram for CeresEngine::ShaderCompiler::Register:
CeresEngine::ShaderCompiler::AST

Public Member Functions

 Register (const SourcePosition &astPos)
 
 Register (const SourceArea &astArea)
 
Types getType () const override
 
void visit (Visitor *visitor, void *args=nullptr) override
 
String toString () const
 
- Public Member Functions inherited from CeresEngine::ShaderCompiler::AST
virtual ~AST ()
 
template<typename T >
Tas ()
 
template<typename T >
const Tas () const
 

Static Public Member Functions

static RegistergetForTarget (const Vector< RegisterPtr > &registers, const ShaderTarget shaderTarget)
 
- Static Public Member Functions inherited from CeresEngine::ShaderCompiler::AST
template<typename T >
static TgetAs (AST *ast)
 
template<typename T >
static const TgetAs (const AST *ast)
 

Public Attributes

ShaderTarget shaderTarget = ShaderTarget::Undefined
 
RegisterType registerType = RegisterType::Undefined
 
Int32 set = 0
 
Int32 slot = 0
 
- Public Attributes inherited from CeresEngine::ShaderCompiler::AST
SourceArea area
 
RawFlags flags
 

Static Public Attributes

static const Types classType = Types:: Register
 

Additional Inherited Members

- Public Types inherited from CeresEngine::ShaderCompiler::AST
enum class  Types {
  Program , CodeBlock , Attribute , SwitchCase ,
  SamplerValue , Register , PackOffset , ArrayDimension ,
  TypeSpecifier , VarDeclaration , BufferDeclaration , SamplerDeclaration ,
  StructDeclaration , AliasDeclaration , FunctionDeclaration , UniformBufferDeclaration ,
  VarDeclarationStatement , BufferDeclarationStatement , SamplerDeclarationStatement , AliasDeclarationStatement ,
  BasicDeclarationStatement , NullStatement , CodeBlockStatement , ForLoopStatement ,
  WhileLoopStatement , DoWhileLoopStatement , IfStatement , ElseStatement ,
  SwitchStatement , ExpressionStatement , ReturnStatement , CtrlTransferStatement ,
  LayoutStatement , NullExpression , SequenceExpression , LiteralExpression ,
  TypeSpecifierExpression , TernaryExpression , BinaryExpression , UnaryExpression ,
  PostUnaryExpression , CallExpression , BracketExpression , ObjectExpression ,
  AssignExpression , ArrayExpression , CastExpression , InitializerExpression
}
 
enum  : UInt32 { isReachable = (1u << ( 30 )) , isDeadCode = (1u << ( 29 )) , isBuiltin = (1u << ( 28 )) }
 

Constructor & Destructor Documentation

◆ Register() [1/2]

CeresEngine::ShaderCompiler::Register::Register ( const SourcePosition astPos)
inlineexplicit

◆ Register() [2/2]

CeresEngine::ShaderCompiler::Register::Register ( const SourceArea astArea)
inlineexplicit

Member Function Documentation

◆ getForTarget()

static Register * CeresEngine::ShaderCompiler::Register::getForTarget ( const Vector< RegisterPtr > &  registers,
const ShaderTarget  shaderTarget 
)
static

◆ getType()

Types CeresEngine::ShaderCompiler::Register::getType ( ) const
inlineoverridevirtual

◆ toString()

String CeresEngine::ShaderCompiler::Register::toString ( ) const

◆ visit()

void CeresEngine::ShaderCompiler::Register::visit ( Visitor visitor,
void args = nullptr 
)
inlineoverridevirtual

Member Data Documentation

◆ classType

const Types CeresEngine::ShaderCompiler::Register::classType = Types:: Register
static

◆ registerType

RegisterType CeresEngine::ShaderCompiler::Register::registerType = RegisterType::Undefined

◆ set

Int32 CeresEngine::ShaderCompiler::Register::set = 0

◆ shaderTarget

ShaderTarget CeresEngine::ShaderCompiler::Register::shaderTarget = ShaderTarget::Undefined

◆ slot

Int32 CeresEngine::ShaderCompiler::Register::slot = 0

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