summaryrefslogtreecommitdiffstats
path: root/Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h')
-rw-r--r--Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h34
1 files changed, 23 insertions, 11 deletions
diff --git a/Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h b/Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h
index 346e51f..5185fc9 100644
--- a/Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h
+++ b/Source/ThirdParty/ANGLE/src/libGLESv2/ResourceManager.h
@@ -13,9 +13,10 @@
#define GL_APICALL
#include <GLES2/gl2.h>
-#include <map>
+#include <hash_map>
#include "common/angleutils.h"
+#include "libGLESv2/HandleAllocator.h"
namespace gl
{
@@ -25,12 +26,19 @@ class Program;
class Texture;
class Renderbuffer;
-enum SamplerType
+enum TextureType
{
- SAMPLER_2D,
- SAMPLER_CUBE,
+ TEXTURE_2D,
+ TEXTURE_CUBE,
+
+ TEXTURE_TYPE_COUNT,
+ TEXTURE_UNKNOWN
+};
- SAMPLER_TYPE_COUNT
+enum SamplerType
+{
+ SAMPLER_PIXEL,
+ SAMPLER_VERTEX
};
class ResourceManager
@@ -63,7 +71,7 @@ class ResourceManager
void setRenderbuffer(GLuint handle, Renderbuffer *renderbuffer);
void checkBufferAllocation(unsigned int buffer);
- void checkTextureAllocation(GLuint texture, SamplerType type);
+ void checkTextureAllocation(GLuint texture, TextureType type);
void checkRenderbufferAllocation(GLuint renderbuffer);
private:
@@ -71,20 +79,24 @@ class ResourceManager
std::size_t mRefCount;
- typedef std::map<GLuint, Buffer*> BufferMap;
+ typedef stdext::hash_map<GLuint, Buffer*> BufferMap;
BufferMap mBufferMap;
+ HandleAllocator mBufferHandleAllocator;
- typedef std::map<GLuint, Shader*> ShaderMap;
+ typedef stdext::hash_map<GLuint, Shader*> ShaderMap;
ShaderMap mShaderMap;
- typedef std::map<GLuint, Program*> ProgramMap;
+ typedef stdext::hash_map<GLuint, Program*> ProgramMap;
ProgramMap mProgramMap;
+ HandleAllocator mProgramShaderHandleAllocator;
- typedef std::map<GLuint, Texture*> TextureMap;
+ typedef stdext::hash_map<GLuint, Texture*> TextureMap;
TextureMap mTextureMap;
+ HandleAllocator mTextureHandleAllocator;
- typedef std::map<GLuint, Renderbuffer*> RenderbufferMap;
+ typedef stdext::hash_map<GLuint, Renderbuffer*> RenderbufferMap;
RenderbufferMap mRenderbufferMap;
+ HandleAllocator mRenderbufferHandleAllocator;
};
}