36 #ifndef _REFLECTION_INCLUDED 37 #define _REFLECTION_INCLUDED 39 #include "../Public/ShaderLang.h" 40 #include "../Include/Types.h" 52 class TIntermAggregate;
53 class TReflectionTraverser;
65 if (
type ==
nullptr || !
type->getQualifier().hasBinding())
67 return type->getQualifier().layoutBinding;
71 printf(
"%s: offset %d, type %x, size %d, index %d, binding %d",
99 for (
int dim=0; dim<3; ++dim)
177 #endif // _REFLECTION_INCLUDED TObjectReflection badReflection
Definition: reflection.h:166
GLsizeiptr size
Definition: glext.h:6559
EShLanguage
Definition: ShaderLang.h:90
std::map< TString, int > TNameToIndex
Definition: reflection.h:163
GLuint const GLchar * name
Definition: glext.h:6671
void dump()
Definition: reflection.cpp:810
int getBinding() const
Definition: reflection.h:63
TMapIndexToReflection indexToUniform
Definition: reflection.h:168
const TObjectReflection & getUniform(int i) const
Definition: reflection.h:110
void buildCounterIndices(const TIntermediate &)
Definition: reflection.cpp:769
const TObjectReflection & getAttribute(int i) const
Definition: reflection.h:130
Definition: lobject.h:303
int offset
Definition: reflection.h:82
Definition: reflection.h:56
int counterIndex
Definition: reflection.h:86
int getIndex(const TString &name) const
Definition: reflection.h:149
const TType *const getType() const
Definition: reflection.h:62
unsigned getLocalSize(int dim) const
Definition: reflection.h:152
std::vector< TObjectReflection > TMapIndexToReflection
Definition: reflection.h:164
static TObjectReflection badReflection()
Definition: reflection.h:79
TMapIndexToReflection indexToUniformBlock
Definition: reflection.h:169
int glDefineType
Definition: reflection.h:83
const TType * type
Definition: reflection.h:91
TReflection()
Definition: reflection.h:97
void buildAttributeReflection(EShLanguage, const TIntermediate &)
Definition: reflection.cpp:759
const TObjectReflection & getUniformBlock(int i) const
Definition: reflection.h:120
TNameToIndex nameToIndex
Definition: reflection.h:167
TMapIndexToReflection indexToAttribute
Definition: reflection.h:170
Definition: localintermediate.h:210
GLenum type
Definition: glext.h:6233
int getNumAttributes()
Definition: reflection.h:129
GLintptr offset
Definition: glext.h:6560
virtual ~TReflection()
Definition: reflection.h:103
int getNumUniforms()
Definition: reflection.h:109
unsigned int localSize[3]
Definition: reflection.h:172
Definition: reflection.cpp:78
int index
Definition: reflection.h:85
TString name
Definition: reflection.h:81
TObjectReflection(const TString &pName, const TType &pType, int pOffset, int pGLDefineType, int pSize, int pIndex)
Definition: reflection.h:58
TObjectReflection()
Definition: reflection.h:89
int getNumUniformBlocks() const
Definition: reflection.h:119
Definition: reflection.h:95
int size
Definition: reflection.h:84
void dump() const
Definition: reflection.h:69
bool addStage(EShLanguage, const TIntermediate &)
Definition: reflection.cpp:784
int getIndex(const char *name) const
Definition: reflection.h:139
GLuint index
Definition: glext.h:6671