diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.h')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.h b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.h index bae131cfdb3..c80d3ea90e7 100644 --- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.h +++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.h @@ -89,7 +89,12 @@ protected: // The full reflection database class TReflection { public: - TReflection() : badReflection(TObjectReflection::badReflection()) { } + TReflection() : badReflection(TObjectReflection::badReflection()) + { + for (int dim=0; dim<3; ++dim) + localSize[dim] = 0; + } + virtual ~TReflection() {} // grow the reflection stage by stage @@ -135,11 +140,16 @@ public: return it->second; } + // Thread local size + unsigned getLocalSize(int dim) const { return dim <= 2 ? localSize[dim] : 0; } + void dump(); protected: friend class glslang::TReflectionTraverser; + void buildAttributeReflection(EShLanguage, const TIntermediate&); + // Need a TString hash: typedef std::unordered_map<TString, int> TNameToIndex; typedef std::map<TString, int> TNameToIndex; typedef std::vector<TObjectReflection> TMapIndexToReflection; @@ -149,6 +159,8 @@ protected: TMapIndexToReflection indexToUniform; TMapIndexToReflection indexToUniformBlock; TMapIndexToReflection indexToAttribute; + + unsigned int localSize[3]; }; } // end namespace glslang |