diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.h b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.h index 837a44acd3..a7d91e035b 100644 --- a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.h +++ b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.h @@ -11,6 +11,10 @@ #define LIBGLESV2_RENDERER_INDEXRANGECACHE_H_ #include "common/angleutils.h" +#include "common/mathutil.h" + +#include "angle_gl.h" + #include <map> namespace rx @@ -19,14 +23,16 @@ namespace rx class IndexRangeCache { public: - void addRange(GLenum type, unsigned int offset, GLsizei count, unsigned int minIdx, unsigned int maxIdx, + void addRange(GLenum type, unsigned int offset, GLsizei count, const RangeUI &range, unsigned int streamOffset); - bool findRange(GLenum type, unsigned int offset, GLsizei count, unsigned int *outMinIndex, - unsigned int *outMaxIndex, unsigned int *outStreamOffset) const; + bool findRange(GLenum type, unsigned int offset, GLsizei count, RangeUI *rangeOut, + unsigned int *outStreamOffset) const; void invalidateRange(unsigned int offset, unsigned int size); void clear(); + static RangeUI ComputeRange(GLenum type, const GLvoid *indices, GLsizei count); + private: struct IndexRange { @@ -42,12 +48,11 @@ class IndexRangeCache struct IndexBounds { - unsigned int minIndex; - unsigned int maxIndex; + RangeUI range; unsigned int streamOffset; IndexBounds(); - IndexBounds(unsigned int minIdx, unsigned int maxIdx, unsigned int offset); + IndexBounds(const RangeUI &range, unsigned int offset); }; typedef std::map<IndexRange, IndexBounds> IndexRangeMap; |