7 #ifndef _TYPES_INCLUDED
8 #define _TYPES_INCLUDED
33 DISALLOW_COPY_AND_ASSIGN(
TField);
60 if (mMangledName.empty())
61 mMangledName = buildMangledName();
66 mObjectSize = calculateObjectSize();
70 if (mDeepestNesting == 0)
71 mDeepestNesting = calculateDeepestNesting();
72 return mDeepestNesting;
78 TString buildMangledName()
const;
79 size_t calculateObjectSize()
const;
80 int calculateDeepestNesting()
const;
86 mutable size_t mObjectSize;
87 mutable int mDeepestNesting;
128 int registerCount = 0;
130 for (
size_t i = 0;
i < fields.size();
i++)
132 registerCount += fields[
i]->type()->totalRegisterCount();
135 return registerCount;
174 if (mangled.empty()) {
175 mangled = buildMangledName();
182 return type == right.type &&
183 size == right.size &&
185 structure == right.structure;
188 return type == right.type &&
189 size == right.size &&
191 array == right.array && (!
array || arraySize == right.arraySize) &&
192 structure == right.structure;
199 if (
type != right.type)
return type < right.type;
200 if (
size != right.size)
return size < right.size;
201 if (
matrix != right.matrix)
return matrix < right.matrix;
202 if (
array != right.array)
return array < right.array;
203 if (arraySize != right.arraySize)
return arraySize < right.arraySize;
204 if (structure != right.structure)
return structure < right.structure;
235 TString buildMangledName()
const;
242 unsigned int array : 1;
307 #endif // _TYPES_INCLUDED_
TType(TBasicType t, TPrecision p, TQualifier q=EvqTemporary, int s=1, bool m=false, bool a=false)
void * allocate(size_t numBytes)
void setBasic(TBasicType bt, TQualifier q, const TSourceLoc &ln)
void setPrecision(TPrecision p)
int getDeepestStructNesting() const
void setNominalSize(int s)
void setArray(bool a, int s=0)
bool operator==(const TType &right) const
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
TPoolAllocator * GetGlobalPoolAllocator()
void setAggregate(int s, bool m=false)
const char * getPrecisionString(TPrecision p)
POOL_ALLOCATOR_NEW_DELETE()
const TString & name() const
const char * getQualifierString() const
TBasicType getBasicType() const
bool isStructureContainingArrays() const
POOL_ALLOCATOR_NEW_DELETE()
int getNominalSize() const
GLboolean GLboolean GLboolean GLboolean a
bool sameElementType(const TType &right) const
EGLImageKHR EGLint * name
const TString & name() const
void setBasicType(TBasicType t)
int elementRegisterCount() const
void setQualifier(TQualifier q)
const char * getPrecisionString() const
TPrecision getPrecision() const
bool operator!=(const TType &right) const
TQualifier getQualifier() const
const char * getBasicString(TBasicType t)
int totalRegisterCount() const
void setStruct(TStructure *s)
std::basic_string< char, std::char_traits< char >, TStringAllocator > TString
TField(TType *type, TString *name)
TType(TStructure *userDef, TPrecision p=EbpUndefined)
TVector< TField * > TFieldList
GLdouble GLdouble GLdouble GLdouble q
TStructure(TString *name, TFieldList *fields)
const char * getQualifierString(TQualifier q)
bool containsArrays() const
TString getCompleteString() const
POOL_ALLOCATOR_NEW_DELETE()
size_t getObjectSize() const
const char * getBasicString() const
const TFieldList & fields() const
TStructure * getStruct() const
size_t objectSize() const
bool isStructureContainingArrays() const
const TString & getMangledName() const
GLenum GLint GLint * precision
bool operator<(const TType &right) const
const TString & mangledName() const
int deepestNesting() const
const TType * type() const
TFieldList * NewPoolTFieldList()