OSDN Git Service

Use the namespace for storing objects.
authorNicolas Capens <capn@google.com>
Wed, 23 Mar 2016 06:08:57 +0000 (02:08 -0400)
committerNicolas Capens <capn@google.com>
Tue, 29 Mar 2016 18:51:24 +0000 (18:51 +0000)
Bug 19219444

Change-Id: I277d80be47d2057f31559c5058e2f6ea422dacfd
Reviewed-on: https://swiftshader-review.googlesource.com/4987
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/OpenGL/common/NameSpace.hpp
src/OpenGL/libGLES_CM/Context.cpp
src/OpenGL/libGLES_CM/ResourceManager.cpp
src/OpenGL/libGLES_CM/ResourceManager.h
src/OpenGL/libGLESv2/Context.cpp
src/OpenGL/libGLESv2/ResourceManager.cpp
src/OpenGL/libGLESv2/ResourceManager.h

index 69b544f..2d72dc7 100644 (file)
 #define gl_NameSpace_hpp\r
 \r
 #include "Object.hpp"\r
+#include "debug.h"\r
 \r
-#include <unordered_set>\r
-#include <algorithm>\r
-\r
-typedef unsigned int GLuint;\r
+#include <unordered_map>\r
 \r
 namespace gl\r
 {\r
 \r
 template<class ObjectType, GLuint baseName = 1>\r
-class NameSpace : std::unordered_set<GLuint>\r
+class NameSpace\r
 {\r
 public:\r
     NameSpace() : freeName(baseName)\r
        {\r
        }\r
 \r
+       ~NameSpace()\r
+       {\r
+               ASSERT(empty());\r
+       }\r
+\r
+       bool empty()\r
+       {\r
+               return map.empty();\r
+       }\r
+\r
+       GLuint firstName()\r
+       {\r
+               return map.begin()->first;\r
+       }\r
+\r
     GLuint allocate()\r
        {\r
                GLuint name = freeName;\r
 \r
-               while(find(name) != end())\r
+               while(isReserved(name))\r
                {\r
                        name++;\r
                }\r
 \r
-               insert(name);\r
+               map.insert({name, nullptr});\r
                freeName = name + 1;\r
 \r
                return name;\r
        }\r
 \r
-       void insert(GLuint name)\r
+       bool isReserved(GLuint name)\r
        {\r
-               std::unordered_set<GLuint>::insert(name);\r
+               return map.find(name) != map.end();\r
+       }\r
+\r
+       void insert(GLuint name, ObjectType *object)\r
+       {\r
+               map[name] = object;\r
 \r
                if(name == freeName)\r
                {\r
@@ -58,13 +76,47 @@ public:
                }\r
        }\r
 \r
-    void release(GLuint name)\r
+    ObjectType *remove(GLuint name)\r
+       {\r
+               auto element = map.find(name);\r
+\r
+               if(element != map.end())\r
+               {\r
+                       ObjectType *object = element->second;\r
+                       map.erase(element);\r
+\r
+                       if(name < freeName)\r
+                       {\r
+                               freeName = name;\r
+                       }\r
+\r
+                       return object;\r
+               }\r
+\r
+               return nullptr;\r
+       }\r
+\r
+       ObjectType *find(GLuint name)\r
        {\r
-               erase(name);\r
-               freeName = std::min(name, freeName);\r
+               if(name < baseName)\r
+               {\r
+                       return nullptr;\r
+               }\r
+\r
+               auto element = map.find(name);\r
+\r
+               if(element == map.end())\r
+               {\r
+                       return nullptr;\r
+               }\r
+\r
+               return element->second;\r
        }\r
 \r
 private:\r
+       typedef std::unordered_map<GLuint, ObjectType*> Map;\r
+       Map map;\r
+\r
        GLuint freeName;   // Lowest known potentially free name\r
 };\r
 \r
index d59a00d..a6db78c 100644 (file)
@@ -978,8 +978,8 @@ void Context::deleteFramebuffer(GLuint framebuffer)
     {\r
         detachFramebuffer(framebuffer);\r
 \r
-        mFramebufferNameSpace.release(framebufferObject->first);\r
-        delete framebufferObject->second;\r
+               delete framebufferObject->second;\r
+        mFramebufferNameSpace.remove(framebufferObject->first);\r
         mFramebufferMap.erase(framebufferObject);\r
     }\r
 }\r
index f59d76e..62545c2 100644 (file)
@@ -27,19 +27,19 @@ ResourceManager::ResourceManager()
 
 ResourceManager::~ResourceManager()
 {
-    while(!mBufferMap.empty())
+    while(!mBufferNameSpace.empty())
     {
-        deleteBuffer(mBufferMap.begin()->first);
+        deleteBuffer(mBufferNameSpace.firstName());
     }
 
-    while(!mRenderbufferMap.empty())
+    while(!mRenderbufferNameSpace.empty())
     {
-        deleteRenderbuffer(mRenderbufferMap.begin()->first);
+        deleteRenderbuffer(mRenderbufferNameSpace.firstName());
     }
 
-    while(!mTextureMap.empty())
+    while(!mTextureNameSpace.empty())
     {
-        deleteTexture(mTextureMap.begin()->first);
+        deleteTexture(mTextureNameSpace.firstName());
     }
 }
 
@@ -59,116 +59,64 @@ void ResourceManager::release()
 // Returns an unused buffer name
 GLuint ResourceManager::createBuffer()
 {
-    GLuint handle = mBufferNameSpace.allocate();
-
-    mBufferMap[handle] = nullptr;
-
-    return handle;
+    return mBufferNameSpace.allocate();
 }
 
 // Returns an unused texture name
 GLuint ResourceManager::createTexture()
 {
-    GLuint handle = mTextureNameSpace.allocate();
-
-    mTextureMap[handle] = nullptr;
-
-    return handle;
+    return mTextureNameSpace.allocate();
 }
 
 // Returns an unused renderbuffer name
 GLuint ResourceManager::createRenderbuffer()
 {
-    GLuint handle = mRenderbufferNameSpace.allocate();
-
-    mRenderbufferMap[handle] = nullptr;
-
-    return handle;
+    return mRenderbufferNameSpace.allocate();
 }
 
 void ResourceManager::deleteBuffer(GLuint buffer)
 {
-    BufferMap::iterator bufferObject = mBufferMap.find(buffer);
+    Buffer *bufferObject = mBufferNameSpace.remove(buffer);
 
-    if(bufferObject != mBufferMap.end())
+    if(bufferObject)
     {
-        mBufferNameSpace.release(bufferObject->first);
-        if(bufferObject->second) bufferObject->second->release();
-        mBufferMap.erase(bufferObject);
+               bufferObject->release();
     }
 }
 
 void ResourceManager::deleteTexture(GLuint texture)
 {
-    TextureMap::iterator textureObject = mTextureMap.find(texture);
+    Texture *textureObject = mTextureNameSpace.find(texture);
 
-    if(textureObject != mTextureMap.end())
+    if(textureObject)
     {
-        mTextureNameSpace.release(textureObject->first);
-        if(textureObject->second) textureObject->second->release();
-        mTextureMap.erase(textureObject);
+               textureObject->release();
     }
 }
 
 void ResourceManager::deleteRenderbuffer(GLuint renderbuffer)
 {
-    RenderbufferMap::iterator renderbufferObject = mRenderbufferMap.find(renderbuffer);
+    Renderbuffer *renderbufferObject = mRenderbufferNameSpace.find(renderbuffer);
 
-    if(renderbufferObject != mRenderbufferMap.end())
+    if(renderbufferObject)
     {
-        mRenderbufferNameSpace.release(renderbufferObject->first);
-        if(renderbufferObject->second) renderbufferObject->second->release();
-        mRenderbufferMap.erase(renderbufferObject);
+               renderbufferObject->release();
     }
 }
 
 Buffer *ResourceManager::getBuffer(unsigned int handle)
 {
-    BufferMap::iterator buffer = mBufferMap.find(handle);
-
-    if(buffer == mBufferMap.end())
-    {
-        return nullptr;
-    }
-    else
-    {
-        return buffer->second;
-    }
+    return mBufferNameSpace.find(handle);
 }
 
 Texture *ResourceManager::getTexture(unsigned int handle)
 {
-    if(handle == 0) return nullptr;
-
-    TextureMap::iterator texture = mTextureMap.find(handle);
-
-    if(texture == mTextureMap.end())
-    {
-        return nullptr;
-    }
-    else
-    {
-        return texture->second;
-    }
+    return mTextureNameSpace.find(handle);
 }
 
 Renderbuffer *ResourceManager::getRenderbuffer(unsigned int handle)
 {
-    RenderbufferMap::iterator renderbuffer = mRenderbufferMap.find(handle);
-
-    if(renderbuffer == mRenderbufferMap.end())
-    {
-        return nullptr;
-    }
-    else
-    {
-        return renderbuffer->second;
-    }
-}
-
-void ResourceManager::setRenderbuffer(GLuint handle, Renderbuffer *buffer)
-{
-    mRenderbufferMap[handle] = buffer;
+    return mRenderbufferNameSpace.find(handle);
 }
 
 void ResourceManager::checkBufferAllocation(unsigned int buffer)
@@ -178,8 +126,7 @@ void ResourceManager::checkBufferAllocation(unsigned int buffer)
         Buffer *bufferObject = new Buffer(buffer);
                bufferObject->addRef();
 
-               mBufferNameSpace.insert(buffer);
-        mBufferMap[buffer] = bufferObject;
+               mBufferNameSpace.insert(buffer, bufferObject);
     }
 }
 
@@ -205,8 +152,7 @@ void ResourceManager::checkTextureAllocation(GLuint texture, TextureType type)
 
                textureObject->addRef();
 
-               mTextureNameSpace.insert(texture);
-        mTextureMap[texture] = textureObject;
+               mTextureNameSpace.insert(texture, textureObject);
     }
 }
 
@@ -217,8 +163,7 @@ void ResourceManager::checkRenderbufferAllocation(GLuint handle)
                Renderbuffer *renderbufferObject = new Renderbuffer(handle, new Colorbuffer(0, 0, GL_RGBA4_OES, 0));
                renderbufferObject->addRef();
 
-               mRenderbufferNameSpace.insert(handle);
-               mRenderbufferMap[handle] = renderbufferObject;
+               mRenderbufferNameSpace.insert(handle, renderbufferObject);
        }
 }
 
index 0fc79ed..22d719f 100644 (file)
@@ -58,8 +58,6 @@ public:
     Texture *getTexture(GLuint handle);\r
     Renderbuffer *getRenderbuffer(GLuint handle);\r
 \r
-    void setRenderbuffer(GLuint handle, Renderbuffer *renderbuffer);\r
-\r
     void checkBufferAllocation(unsigned int buffer);\r
     void checkTextureAllocation(GLuint texture, TextureType type);\r
        void checkRenderbufferAllocation(GLuint handle);\r
@@ -67,16 +65,8 @@ public:
 private:\r
     std::size_t mRefCount;\r
 \r
-    typedef std::map<GLint, Buffer*> BufferMap;\r
-    BufferMap mBufferMap;\r
     gl::NameSpace<Buffer> mBufferNameSpace;\r
-\r
-    typedef std::map<GLint, Texture*> TextureMap;\r
-    TextureMap mTextureMap;\r
-    gl::NameSpace<Texture> mTextureNameSpace;\r
-\r
-    typedef std::map<GLint, Renderbuffer*> RenderbufferMap;\r
-    RenderbufferMap mRenderbufferMap;\r
+       gl::NameSpace<Texture> mTextureNameSpace;\r
     gl::NameSpace<Renderbuffer> mRenderbufferNameSpace;\r
 };\r
 \r
index dfe5be6..8fd484d 100644 (file)
@@ -1028,8 +1028,8 @@ void Context::deleteFramebuffer(GLuint framebuffer)
     {\r
         detachFramebuffer(framebuffer);\r
 \r
-        mFramebufferNameSpace.release(framebufferObject->first);\r
-        delete framebufferObject->second;\r
+               delete framebufferObject->second;\r
+               mFramebufferNameSpace.remove(framebufferObject->first);\r
         mFramebufferMap.erase(framebufferObject);\r
     }\r
 }\r
@@ -1040,8 +1040,8 @@ void Context::deleteFence(GLuint fence)
 \r
     if(fenceObject != mFenceMap.end())\r
     {\r
-        mFenceNameSpace.release(fenceObject->first);\r
-        delete fenceObject->second;\r
+               delete fenceObject->second;\r
+               mFenceNameSpace.remove(fenceObject->first);\r
         mFenceMap.erase(fenceObject);\r
     }\r
 }\r
@@ -1052,13 +1052,12 @@ void Context::deleteQuery(GLuint query)
 \r
        if(queryObject != mQueryMap.end())\r
     {\r
-        mQueryNameSpace.release(queryObject->first);\r
-\r
                if(queryObject->second)\r
         {\r
             queryObject->second->release();\r
         }\r
 \r
+        mQueryNameSpace.remove(queryObject->first);\r
                mQueryMap.erase(queryObject);\r
     }\r
 }\r
@@ -1081,8 +1080,8 @@ void Context::deleteVertexArray(GLuint vertexArray)
                        bindVertexArray(0);\r
                }\r
 \r
-               mVertexArrayNameSpace.release(vertexArrayObject->first);\r
                delete vertexArrayObject->second;\r
+               mVertexArrayNameSpace.remove(vertexArrayObject->first);\r
                mVertexArrayMap.erase(vertexArrayObject);\r
        }\r
 }\r
@@ -1102,8 +1101,8 @@ void Context::deleteTransformFeedback(GLuint transformFeedback)
 \r
        if(transformFeedbackObject != mTransformFeedbackMap.end())\r
        {\r
-               mTransformFeedbackNameSpace.release(transformFeedbackObject->first);\r
                delete transformFeedbackObject->second;\r
+               mTransformFeedbackNameSpace.remove(transformFeedbackObject->first);\r
                mTransformFeedbackMap.erase(transformFeedbackObject);\r
        }\r
 }\r
index 1f4103d..85f0df3 100644 (file)
@@ -31,9 +31,9 @@ ResourceManager::ResourceManager()
 
 ResourceManager::~ResourceManager()
 {
-    while(!mBufferMap.empty())
+    while(!mBufferNameSpace.empty())
     {
-        deleteBuffer(mBufferMap.begin()->first);
+        deleteBuffer(mBufferNameSpace.firstName());
     }
 
     while(!mProgramMap.empty())
@@ -46,24 +46,24 @@ ResourceManager::~ResourceManager()
         deleteShader(mShaderMap.begin()->first);
     }
 
-    while(!mRenderbufferMap.empty())
+    while(!mRenderbufferNameSpace.empty())
     {
-        deleteRenderbuffer(mRenderbufferMap.begin()->first);
+        deleteRenderbuffer(mRenderbufferNameSpace.firstName());
     }
 
-    while(!mTextureMap.empty())
+    while(!mTextureNameSpace.empty())
     {
-        deleteTexture(mTextureMap.begin()->first);
+        deleteTexture(mTextureNameSpace.firstName());
     }
 
-       while(!mSamplerMap.empty())
+       while(!mSamplerNameSpace.empty())
        {
-               deleteSampler(mSamplerMap.begin()->first);
+               deleteSampler(mSamplerNameSpace.firstName());
        }
 
-       while(!mFenceSyncMap.empty())
+       while(!mFenceSyncNameSpace.empty())
        {
-               deleteFenceSync(mFenceSyncMap.begin()->first);
+               deleteFenceSync(mFenceSyncNameSpace.firstName());
        }
 }
 
@@ -83,11 +83,7 @@ void ResourceManager::release()
 // Returns an unused buffer name
 GLuint ResourceManager::createBuffer()
 {
-    GLuint handle = mBufferNameSpace.allocate();
-
-    mBufferMap[handle] = nullptr;
-
-    return handle;
+    return mBufferNameSpace.allocate();
 }
 
 // Returns an unused shader/program name
@@ -121,54 +117,41 @@ GLuint ResourceManager::createProgram()
 // Returns an unused texture name
 GLuint ResourceManager::createTexture()
 {
-    GLuint handle = mTextureNameSpace.allocate();
-
-    mTextureMap[handle] = nullptr;
-
-    return handle;
+       return mTextureNameSpace.allocate();
 }
 
 // Returns an unused renderbuffer name
 GLuint ResourceManager::createRenderbuffer()
 {
-    GLuint handle = mRenderbufferNameSpace.allocate();
-
-    mRenderbufferMap[handle] = nullptr;
-
-    return handle;
+       return mRenderbufferNameSpace.allocate();
 }
 
 // Returns an unused sampler name
 GLuint ResourceManager::createSampler()
 {
-       GLuint handle = mSamplerNameSpace.allocate();
-
-       mSamplerMap[handle] = nullptr;
-
-       return handle;
+       return mSamplerNameSpace.allocate();
 }
 
 // Returns the next unused fence name, and allocates the fence
 GLuint ResourceManager::createFenceSync(GLenum condition, GLbitfield flags)
 {
-       GLuint handle = mFenceSyncNameSpace.allocate();
+       GLuint name = mFenceSyncNameSpace.allocate();
 
-       FenceSync* fenceSync = new FenceSync(handle, condition, flags);
-       mFenceSyncMap[handle] = fenceSync;
+       FenceSync *fenceSync = new FenceSync(name, condition, flags);
        fenceSync->addRef();
 
-       return handle;
+       mFenceSyncNameSpace.insert(name, fenceSync);
+
+       return name;
 }
 
 void ResourceManager::deleteBuffer(GLuint buffer)
 {
-    BufferMap::iterator bufferObject = mBufferMap.find(buffer);
+       Buffer *bufferObject = mBufferNameSpace.remove(buffer);
 
-    if(bufferObject != mBufferMap.end())
+    if(bufferObject)
     {
-        mBufferNameSpace.release(bufferObject->first);
-        if(bufferObject->second) bufferObject->second->release();
-        mBufferMap.erase(bufferObject);
+               bufferObject->release();
     }
 }
 
@@ -180,8 +163,8 @@ void ResourceManager::deleteShader(GLuint shader)
     {
         if(shaderObject->second->getRefCount() == 0)
         {
-            mProgramShaderNameSpace.release(shaderObject->first);
-            delete shaderObject->second;
+                       delete shaderObject->second;
+                       mProgramShaderNameSpace.remove(shaderObject->first);
             mShaderMap.erase(shaderObject);
         }
         else
@@ -199,8 +182,8 @@ void ResourceManager::deleteProgram(GLuint program)
     {
         if(programObject->second->getRefCount() == 0)
         {
-            mProgramShaderNameSpace.release(programObject->first);
-            delete programObject->second;
+                       delete programObject->second;
+                       mProgramShaderNameSpace.remove(programObject->first);
             mProgramMap.erase(programObject);
         }
         else
@@ -212,64 +195,47 @@ void ResourceManager::deleteProgram(GLuint program)
 
 void ResourceManager::deleteTexture(GLuint texture)
 {
-    TextureMap::iterator textureObject = mTextureMap.find(texture);
+    Texture *textureObject = mTextureNameSpace.remove(texture);
 
-    if(textureObject != mTextureMap.end())
+    if(textureObject)
     {
-        mTextureNameSpace.release(textureObject->first);
-        if(textureObject->second) textureObject->second->release();
-        mTextureMap.erase(textureObject);
+               textureObject->release();
     }
 }
 
 void ResourceManager::deleteRenderbuffer(GLuint renderbuffer)
 {
-    RenderbufferMap::iterator renderbufferObject = mRenderbufferMap.find(renderbuffer);
+    Renderbuffer *renderbufferObject = mRenderbufferNameSpace.remove(renderbuffer);
 
-    if(renderbufferObject != mRenderbufferMap.end())
+    if(renderbufferObject)
     {
-        mRenderbufferNameSpace.release(renderbufferObject->first);
-        if(renderbufferObject->second) renderbufferObject->second->release();
-        mRenderbufferMap.erase(renderbufferObject);
+               renderbufferObject->release();
     }
 }
 
 void ResourceManager::deleteSampler(GLuint sampler)
 {
-       auto samplerObject = mSamplerMap.find(sampler);
+       Sampler *samplerObject = mSamplerNameSpace.remove(sampler);
 
-       if(samplerObject != mSamplerMap.end())
+       if(samplerObject)
        {
-               mSamplerNameSpace.release(samplerObject->first);
-               if(samplerObject->second) samplerObject->second->release();
-               mSamplerMap.erase(samplerObject);
+               samplerObject->release();
        }
 }
 
 void ResourceManager::deleteFenceSync(GLuint fenceSync)
 {
-       auto fenceObjectIt = mFenceSyncMap.find(fenceSync);
+       FenceSync *fenceObject = mFenceSyncNameSpace.remove(fenceSync);
 
-       if(fenceObjectIt != mFenceSyncMap.end())
+       if(fenceObject)
        {
-               mFenceSyncNameSpace.release(fenceObjectIt->first);
-               if(fenceObjectIt->second) fenceObjectIt->second->release();
-               mFenceSyncMap.erase(fenceObjectIt);
+               fenceObject->release();
        }
 }
 
 Buffer *ResourceManager::getBuffer(unsigned int handle)
 {
-    BufferMap::iterator buffer = mBufferMap.find(handle);
-
-    if(buffer == mBufferMap.end())
-    {
-        return nullptr;
-    }
-    else
-    {
-        return buffer->second;
-    }
+    return mBufferNameSpace.find(handle);
 }
 
 Shader *ResourceManager::getShader(unsigned int handle)
@@ -288,18 +254,7 @@ Shader *ResourceManager::getShader(unsigned int handle)
 
 Texture *ResourceManager::getTexture(unsigned int handle)
 {
-    if(handle == 0) return nullptr;
-
-    TextureMap::iterator texture = mTextureMap.find(handle);
-
-    if(texture == mTextureMap.end())
-    {
-        return nullptr;
-    }
-    else
-    {
-        return texture->second;
-    }
+    return mTextureNameSpace.find(handle);
 }
 
 Program *ResourceManager::getProgram(unsigned int handle)
@@ -318,49 +273,17 @@ Program *ResourceManager::getProgram(unsigned int handle)
 
 Renderbuffer *ResourceManager::getRenderbuffer(unsigned int handle)
 {
-    RenderbufferMap::iterator renderbuffer = mRenderbufferMap.find(handle);
-
-    if(renderbuffer == mRenderbufferMap.end())
-    {
-        return nullptr;
-    }
-    else
-    {
-        return renderbuffer->second;
-    }
+    return mRenderbufferNameSpace.find(handle);
 }
 
 Sampler *ResourceManager::getSampler(unsigned int handle)
 {
-       auto sampler = mSamplerMap.find(handle);
-
-       if(sampler == mSamplerMap.end())
-       {
-               return nullptr;
-       }
-       else
-       {
-               return sampler->second;
-       }
+       return mSamplerNameSpace.find(handle);
 }
 
 FenceSync *ResourceManager::getFenceSync(unsigned int handle)
 {
-       auto fenceObjectIt = mFenceSyncMap.find(handle);
-
-       if(fenceObjectIt == mFenceSyncMap.end())
-       {
-               return nullptr;
-       }
-       else
-       {
-               return fenceObjectIt->second;
-       }
-}
-
-void ResourceManager::setRenderbuffer(GLuint handle, Renderbuffer *buffer)
-{
-    mRenderbufferMap[handle] = buffer;
+       return mFenceSyncNameSpace.find(handle);
 }
 
 void ResourceManager::checkBufferAllocation(unsigned int buffer)
@@ -370,8 +293,7 @@ void ResourceManager::checkBufferAllocation(unsigned int buffer)
         Buffer *bufferObject = new Buffer(buffer);
                bufferObject->addRef();
 
-               mBufferNameSpace.insert(buffer);
-        mBufferMap[buffer] = bufferObject;
+               mBufferNameSpace.insert(buffer, bufferObject);
     }
 }
 
@@ -409,8 +331,7 @@ void ResourceManager::checkTextureAllocation(GLuint texture, TextureType type)
 
                textureObject->addRef();
 
-               mTextureNameSpace.insert(texture);
-        mTextureMap[texture] = textureObject;
+               mTextureNameSpace.insert(texture, textureObject);
     }
 }
 
@@ -421,8 +342,7 @@ void ResourceManager::checkRenderbufferAllocation(GLuint handle)
                Renderbuffer *renderbufferObject = new Renderbuffer(handle, new Colorbuffer(0, 0, GL_RGBA4_OES, 0));
                renderbufferObject->addRef();
 
-               mRenderbufferNameSpace.insert(handle);
-               mRenderbufferMap[handle] = renderbufferObject;
+               mRenderbufferNameSpace.insert(handle, renderbufferObject);
        }
 }
 
@@ -433,14 +353,13 @@ void ResourceManager::checkSamplerAllocation(GLuint sampler)
                Sampler *samplerObject = new Sampler(sampler);
                samplerObject->addRef();
 
-               mSamplerNameSpace.insert(sampler);
-               mSamplerMap[sampler] = samplerObject;
+               mSamplerNameSpace.insert(sampler, samplerObject);
        }
 }
 
 bool ResourceManager::isSampler(GLuint sampler)
 {
-       return mSamplerMap.find(sampler) != mSamplerMap.end();
+       return mSamplerNameSpace.find(sampler) != nullptr;
 }
 
 }
index 381b5bd..8e282e7 100644 (file)
@@ -45,7 +45,7 @@ enum TextureType
 \r
 class ResourceManager\r
 {\r
-  public:\r
+public:\r
     ResourceManager();\r
     ~ResourceManager();\r
 \r
@@ -76,8 +76,6 @@ class ResourceManager
     Sampler *getSampler(GLuint handle);\r
     FenceSync *getFenceSync(GLuint handle);\r
 \r
-    void setRenderbuffer(GLuint handle, Renderbuffer *renderbuffer);\r
-\r
     void checkBufferAllocation(unsigned int buffer);\r
     void checkTextureAllocation(GLuint texture, TextureType type);\r
     void checkRenderbufferAllocation(GLuint handle);\r
@@ -85,11 +83,9 @@ class ResourceManager
 \r
     bool isSampler(GLuint sampler);\r
 \r
-  private:\r
+private:\r
     std::size_t mRefCount;\r
 \r
-    typedef std::map<GLint, Buffer*> BufferMap;\r
-    BufferMap mBufferMap;\r
     gl::NameSpace<Buffer> mBufferNameSpace;\r
 \r
     typedef std::map<GLint, Shader*> ShaderMap;\r
@@ -99,20 +95,9 @@ class ResourceManager
     ProgramMap mProgramMap;\r
     gl::NameSpace<Program> mProgramShaderNameSpace;\r
 \r
-    typedef std::map<GLint, Texture*> TextureMap;\r
-    TextureMap mTextureMap;\r
     gl::NameSpace<Texture> mTextureNameSpace;\r
-\r
-    typedef std::map<GLint, Renderbuffer*> RenderbufferMap;\r
-    RenderbufferMap mRenderbufferMap;\r
     gl::NameSpace<Renderbuffer> mRenderbufferNameSpace;\r
-\r
-       typedef std::map<GLint, Sampler*> SamplerMap;\r
-       SamplerMap mSamplerMap;\r
        gl::NameSpace<Sampler> mSamplerNameSpace;\r
-\r
-       typedef std::map<GLint, FenceSync*> FenceMap;\r
-       FenceMap mFenceSyncMap;\r
        gl::NameSpace<FenceSync> mFenceSyncNameSpace;\r
 };\r
 \r