CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderCompiler::IntrinsicAdept Class Referenceabstract

#include <CeresEngine/Material/ShaderCompiler/Frontend/IntrinsicAdept.hpp>

Inheritance diagram for CeresEngine::ShaderCompiler::IntrinsicAdept:
CeresEngine::ShaderCompiler::HLSLIntrinsicAdept

Public Member Functions

 IntrinsicAdept (const IntrinsicAdept &)=delete
 
IntrinsicAdeptoperator= (const IntrinsicAdept &)=delete
 
virtual ~IntrinsicAdept ()
 
const StringgetIntrinsicIdent (const Intrinsic intrinsic) const
 
virtual TypeDenoterPtr getIntrinsicReturnType (const Intrinsic intrinsic, const Vector< ExpressionPtr > &args, const TypeDenoterPtr &prefixTypeDenoter=nullptr) const =0
 
virtual Vector< TypeDenoterPtrgetIntrinsicParameterTypes (const Intrinsic intrinsic, const Vector< ExpressionPtr > &args) const =0
 
virtual Vector< std::size_t > getIntrinsicOutputParameterIndices (const Intrinsic intrinsic) const =0
 

Static Public Member Functions

static const IntrinsicAdeptget ()
 

Protected Member Functions

 IntrinsicAdept ()
 
void setIntrinsicIdent (const Intrinsic intrinsic, const String &ident)
 
void fillOverloadedIntrinsicIdents ()
 
void throwAmbiguousIntrinsicCall (const Intrinsic intrinsic, const Vector< ExpressionPtr > &args)
 

Private Attributes

Array< String, numIntrinsicsmIntrinsicIdents
 

Static Private Attributes

static const std::size_t numIntrinsics = ((static_cast<std::size_t>( Intrinsic::StreamOutputRestartStrip ) - static_cast<std::size_t>(Intrinsic::Abort)) + 1u)
 

Constructor & Destructor Documentation

◆ IntrinsicAdept() [1/2]

CeresEngine::ShaderCompiler::IntrinsicAdept::IntrinsicAdept ( const IntrinsicAdept )
delete

◆ ~IntrinsicAdept()

virtual CeresEngine::ShaderCompiler::IntrinsicAdept::~IntrinsicAdept ( )
virtual

◆ IntrinsicAdept() [2/2]

CeresEngine::ShaderCompiler::IntrinsicAdept::IntrinsicAdept ( )
protected

Member Function Documentation

◆ fillOverloadedIntrinsicIdents()

void CeresEngine::ShaderCompiler::IntrinsicAdept::fillOverloadedIntrinsicIdents ( )
protected

◆ get()

static const IntrinsicAdept & CeresEngine::ShaderCompiler::IntrinsicAdept::get ( )
static

◆ getIntrinsicIdent()

const String & CeresEngine::ShaderCompiler::IntrinsicAdept::getIntrinsicIdent ( const Intrinsic  intrinsic) const

◆ getIntrinsicOutputParameterIndices()

virtual Vector< std::size_t > CeresEngine::ShaderCompiler::IntrinsicAdept::getIntrinsicOutputParameterIndices ( const Intrinsic  intrinsic) const
pure virtual

◆ getIntrinsicParameterTypes()

virtual Vector< TypeDenoterPtr > CeresEngine::ShaderCompiler::IntrinsicAdept::getIntrinsicParameterTypes ( const Intrinsic  intrinsic,
const Vector< ExpressionPtr > &  args 
) const
pure virtual

◆ getIntrinsicReturnType()

virtual TypeDenoterPtr CeresEngine::ShaderCompiler::IntrinsicAdept::getIntrinsicReturnType ( const Intrinsic  intrinsic,
const Vector< ExpressionPtr > &  args,
const TypeDenoterPtr prefixTypeDenoter = nullptr 
) const
pure virtual

◆ operator=()

IntrinsicAdept & CeresEngine::ShaderCompiler::IntrinsicAdept::operator= ( const IntrinsicAdept )
delete

◆ setIntrinsicIdent()

void CeresEngine::ShaderCompiler::IntrinsicAdept::setIntrinsicIdent ( const Intrinsic  intrinsic,
const String ident 
)
protected

◆ throwAmbiguousIntrinsicCall()

void CeresEngine::ShaderCompiler::IntrinsicAdept::throwAmbiguousIntrinsicCall ( const Intrinsic  intrinsic,
const Vector< ExpressionPtr > &  args 
)
protected

Member Data Documentation

◆ mIntrinsicIdents

Array<String, numIntrinsics> CeresEngine::ShaderCompiler::IntrinsicAdept::mIntrinsicIdents
private

◆ numIntrinsics

const std::size_t CeresEngine::ShaderCompiler::IntrinsicAdept::numIntrinsics = ((static_cast<std::size_t>( Intrinsic::StreamOutputRestartStrip ) - static_cast<std::size_t>(Intrinsic::Abort)) + 1u)
staticprivate

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