OSDN Git Service

Constness in Context
authorAlexis Hetu <sugoi@google.com>
Tue, 28 Apr 2015 13:59:09 +0000 (09:59 -0400)
committerAlexis Hétu <sugoi@google.com>
Tue, 28 Apr 2015 15:26:07 +0000 (15:26 +0000)
Added proper constness to Context getters.

Change-Id: I0495cbe7ab0c9f50d4d9aa3d969507f117539bd8
Reviewed-on: https://swiftshader-review.googlesource.com/2983
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/OpenGL/libGLESv2/Context.cpp
src/OpenGL/libGLESv2/Context.h
src/OpenGL/libGLESv2/libGLESv2.cpp
src/OpenGL/libGLESv2/libGLESv3.cpp

index bf1e22b..166fc3b 100644 (file)
@@ -760,7 +760,7 @@ void Context::setVertexAttribDivisor(unsigned int attribNum, GLuint divisor)
        mState.vertexAttribute[attribNum].mDivisor = divisor;\r
 }\r
 \r
-const VertexAttribute &Context::getVertexAttribState(unsigned int attribNum)\r
+const VertexAttribute &Context::getVertexAttribState(unsigned int attribNum) const\r
 {\r
     return mState.vertexAttribute[attribNum];\r
 }\r
@@ -1019,37 +1019,37 @@ void Context::deleteSampler(GLuint sampler)
        }\r
 }\r
 \r
-Buffer *Context::getBuffer(GLuint handle)\r
+Buffer *Context::getBuffer(GLuint handle) const\r
 {\r
     return mResourceManager->getBuffer(handle);\r
 }\r
 \r
-Shader *Context::getShader(GLuint handle)\r
+Shader *Context::getShader(GLuint handle) const\r
 {\r
     return mResourceManager->getShader(handle);\r
 }\r
 \r
-Program *Context::getProgram(GLuint handle)\r
+Program *Context::getProgram(GLuint handle) const\r
 {\r
     return mResourceManager->getProgram(handle);\r
 }\r
 \r
-Texture *Context::getTexture(GLuint handle)\r
+Texture *Context::getTexture(GLuint handle) const\r
 {\r
     return mResourceManager->getTexture(handle);\r
 }\r
 \r
-Renderbuffer *Context::getRenderbuffer(GLuint handle)\r
+Renderbuffer *Context::getRenderbuffer(GLuint handle) const\r
 {\r
     return mResourceManager->getRenderbuffer(handle);\r
 }\r
 \r
-Framebuffer *Context::getReadFramebuffer()\r
+Framebuffer *Context::getReadFramebuffer() const\r
 {\r
     return getFramebuffer(mState.readFramebuffer);\r
 }\r
 \r
-Framebuffer *Context::getDrawFramebuffer()\r
+Framebuffer *Context::getDrawFramebuffer() const\r
 {\r
     return getFramebuffer(mState.drawFramebuffer);\r
 }\r
@@ -1264,7 +1264,7 @@ void Context::beginQuery(GLenum target, GLuint query)
         ASSERT(false);\r
     }\r
 \r
-    Query *queryObject = getQuery(query, true, target);\r
+    Query *queryObject = createQuery(query, target);\r
 \r
     // Check that name was obtained with glGenQueries\r
     if(!queryObject)\r
@@ -1325,9 +1325,9 @@ void Context::setRenderbufferStorage(RenderbufferStorage *renderbuffer)
     renderbufferObject->setStorage(renderbuffer);\r
 }\r
 \r
-Framebuffer *Context::getFramebuffer(unsigned int handle)\r
+Framebuffer *Context::getFramebuffer(unsigned int handle) const\r
 {\r
-    FramebufferMap::iterator framebuffer = mFramebufferMap.find(handle);\r
+    FramebufferMap::const_iterator framebuffer = mFramebufferMap.find(handle);\r
 \r
     if(framebuffer == mFramebufferMap.end())\r
     {\r
@@ -1339,9 +1339,9 @@ Framebuffer *Context::getFramebuffer(unsigned int handle)
     }\r
 }\r
 \r
-Fence *Context::getFence(unsigned int handle)\r
+Fence *Context::getFence(unsigned int handle) const\r
 {\r
-    FenceMap::iterator fence = mFenceMap.find(handle);\r
+    FenceMap::const_iterator fence = mFenceMap.find(handle);\r
 \r
     if(fence == mFenceMap.end())\r
     {\r
@@ -1353,83 +1353,97 @@ Fence *Context::getFence(unsigned int handle)
     }\r
 }\r
 \r
-Query *Context::getQuery(unsigned int handle, bool create, GLenum type)\r
+Query *Context::getQuery(unsigned int handle) const\r
 {\r
-    QueryMap::iterator query = mQueryMap.find(handle);\r
+       QueryMap::const_iterator query = mQueryMap.find(handle);\r
 \r
-    if(query == mQueryMap.end())\r
-    {\r
-        return NULL;\r
-    }\r
-    else\r
-    {\r
-        if(!query->second && create)\r
-        {\r
-            query->second = new Query(handle, type);\r
-            query->second->addRef();\r
-        }\r
+       if(query == mQueryMap.end())\r
+       {\r
+               return NULL;\r
+       }\r
+       else\r
+       {\r
+               return query->second;\r
+       }\r
+}\r
 \r
-        return query->second;\r
-    }\r
+Query *Context::createQuery(unsigned int handle, GLenum type)\r
+{\r
+       QueryMap::iterator query = mQueryMap.find(handle);\r
+\r
+       if(query == mQueryMap.end())\r
+       {\r
+               return NULL;\r
+       }\r
+       else\r
+       {\r
+               if(!query->second)\r
+               {\r
+                       query->second = new Query(handle, type);\r
+                       query->second->addRef();\r
+               }\r
+\r
+               return query->second;\r
+       }\r
 }\r
 \r
-VertexArray *Context::getVertexArray(GLuint array)\r
+VertexArray *Context::getVertexArray(GLuint array) const\r
 {\r
-       VertexArrayMap::iterator vertexArray = mVertexArrayMap.find(array);\r
+       VertexArrayMap::const_iterator vertexArray = mVertexArrayMap.find(array);\r
 \r
        return (vertexArray == mVertexArrayMap.end()) ? NULL : vertexArray->second;\r
 }\r
 \r
-TransformFeedback *Context::getTransformFeedback(GLuint transformFeedback)\r
+TransformFeedback *Context::getTransformFeedback(GLuint transformFeedback) const\r
 {\r
-       TransformFeedbackMap::iterator transformFeedbackObject = mTransformFeedbackMap.find(transformFeedback);\r
+       TransformFeedbackMap::const_iterator transformFeedbackObject = mTransformFeedbackMap.find(transformFeedback);\r
 \r
        return (transformFeedbackObject == mTransformFeedbackMap.end()) ? NULL : transformFeedbackObject->second;\r
 }\r
 \r
-Sampler *Context::getSampler(GLuint sampler)\r
+Sampler *Context::getSampler(GLuint sampler) const\r
 {\r
-       SamplerMap::iterator samplerObject = mSamplerMap.find(sampler);\r
+       SamplerMap::const_iterator samplerObject = mSamplerMap.find(sampler);\r
 \r
        return (samplerObject == mSamplerMap.end()) ? NULL : samplerObject->second;\r
 }\r
 \r
-Buffer *Context::getArrayBuffer()\r
+Buffer *Context::getArrayBuffer() const\r
 {\r
     return mState.arrayBuffer;\r
 }\r
 \r
-Buffer *Context::getElementArrayBuffer()\r
+Buffer *Context::getElementArrayBuffer() const\r
 {\r
     return mState.elementArrayBuffer;\r
 }\r
 \r
-Buffer *Context::getCopyReadBuffer()\r
+Buffer *Context::getCopyReadBuffer() const\r
 {\r
        return mState.copyReadBuffer;\r
 }\r
 \r
-Buffer *Context::getCopyWriteBuffer()\r
+Buffer *Context::getCopyWriteBuffer() const\r
 {\r
        return mState.copyWriteBuffer;\r
 }\r
 \r
-Buffer *Context::getPixelPackBuffer()\r
+Buffer *Context::getPixelPackBuffer() const\r
 {\r
        return mState.pixelPackBuffer;\r
 }\r
 \r
-Buffer *Context::getPixelUnpackBuffer()\r
+Buffer *Context::getPixelUnpackBuffer() const\r
 {\r
        return mState.pixelUnpackBuffer;\r
 }\r
 \r
-Buffer *Context::getUniformBuffer()\r
+Buffer *Context::getUniformBuffer() const\r
 {\r
        return mState.uniformBuffer;\r
 }\r
 \r
-bool Context::getBuffer(GLenum target, es2::Buffer **buffer)\r
+bool Context::getBuffer(GLenum target, es2::Buffer **buffer) const\r
 {\r
        switch(target)\r
        {\r
@@ -1488,37 +1502,37 @@ bool Context::getBuffer(GLenum target, es2::Buffer **buffer)
        return true;\r
 }\r
 \r
-TransformFeedback *Context::getTransformFeedback()\r
+TransformFeedback *Context::getTransformFeedback() const\r
 {\r
        return getTransformFeedback(mState.transformFeedback);\r
 }\r
 \r
-Program *Context::getCurrentProgram()\r
+Program *Context::getCurrentProgram() const\r
 {\r
     return mResourceManager->getProgram(mState.currentProgram);\r
 }\r
 \r
-Texture2D *Context::getTexture2D()\r
+Texture2D *Context::getTexture2D() const\r
 {\r
        return static_cast<Texture2D*>(getSamplerTexture(mState.activeSampler, TEXTURE_2D));\r
 }\r
 \r
-Texture3D *Context::getTexture3D()\r
+Texture3D *Context::getTexture3D() const\r
 {\r
        return static_cast<Texture3D*>(getSamplerTexture(mState.activeSampler, TEXTURE_3D));\r
 }\r
 \r
-TextureCubeMap *Context::getTextureCubeMap()\r
+TextureCubeMap *Context::getTextureCubeMap() const\r
 {\r
     return static_cast<TextureCubeMap*>(getSamplerTexture(mState.activeSampler, TEXTURE_CUBE));\r
 }\r
 \r
-TextureExternal *Context::getTextureExternal()\r
+TextureExternal *Context::getTextureExternal() const\r
 {\r
     return static_cast<TextureExternal*>(getSamplerTexture(mState.activeSampler, TEXTURE_EXTERNAL));\r
 }\r
 \r
-Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type)\r
+Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type) const\r
 {\r
     GLuint texid = mState.samplerTexture[type][sampler].name();\r
 \r
@@ -1537,7 +1551,7 @@ Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type)
     return mState.samplerTexture[type][sampler];\r
 }\r
 \r
-bool Context::getBooleanv(GLenum pname, GLboolean *params)\r
+bool Context::getBooleanv(GLenum pname, GLboolean *params) const\r
 {\r
     switch (pname)\r
     {\r
@@ -1588,7 +1602,7 @@ bool Context::getBooleanv(GLenum pname, GLboolean *params)
     return true;\r
 }\r
 \r
-bool Context::getFloatv(GLenum pname, GLfloat *params)\r
+bool Context::getFloatv(GLenum pname, GLfloat *params) const\r
 {\r
     // Please note: DEPTH_CLEAR_VALUE is included in our internal getFloatv implementation\r
     // because it is stored as a float, despite the fact that the GL ES 2.0 spec names\r
@@ -1635,7 +1649,7 @@ bool Context::getFloatv(GLenum pname, GLfloat *params)
     return true;\r
 }\r
 \r
-bool Context::getIntegerv(GLenum pname, GLint *params)\r
+bool Context::getIntegerv(GLenum pname, GLint *params) const\r
 {\r
     // Please note: DEPTH_CLEAR_VALUE is not included in our internal getIntegerv implementation\r
     // because it is stored as a float, despite the fact that the GL ES 2.0 spec names\r
@@ -2121,7 +2135,7 @@ bool Context::getIntegerv(GLenum pname, GLint *params)
     return true;\r
 }\r
 \r
-bool Context::getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param)\r
+bool Context::getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param) const\r
 {\r
        UNIMPLEMENTED();\r
 \r
@@ -2162,7 +2176,7 @@ bool Context::getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param)
        return true;\r
 }\r
 \r
-bool Context::getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams)\r
+bool Context::getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams) const\r
 {\r
     // Please note: the query type returned for DEPTH_CLEAR_VALUE in this implementation\r
     // is FLOAT rather than INT, as would be suggested by the GL ES 2.0 spec. This is due\r
@@ -4028,7 +4042,7 @@ Device *Context::getDevice()
        return device;\r
 }\r
 \r
-const GLubyte* Context::getExtensions(GLuint index, GLuint* numExt)\r
+const GLubyte* Context::getExtensions(GLuint index, GLuint* numExt) const\r
 {\r
        // Keep list sorted in following order:\r
        // OES extensions\r
index 2c1cdf4..8ebf2d4 100644 (file)
@@ -435,7 +435,7 @@ public:
 \r
     void setEnableVertexAttribArray(unsigned int attribNum, bool enabled);\r
     void setVertexAttribDivisor(unsigned int attribNum, GLuint divisor);\r
-    const VertexAttribute &getVertexAttribState(unsigned int attribNum);\r
+    const VertexAttribute &getVertexAttribState(unsigned int attribNum) const;\r
     void setVertexAttribState(unsigned int attribNum, Buffer *boundBuffer, GLint size, GLenum type,\r
                               bool normalized, GLsizei stride, const void *pointer);\r
     const void *getVertexAttribPointer(unsigned int attribNum) const;\r
@@ -517,42 +517,43 @@ public:
     void setVertexAttrib(GLuint index, const GLint *values);\r
     void setVertexAttrib(GLuint index, const GLuint *values);\r
 \r
-    Buffer *getBuffer(GLuint handle);\r
-    Fence *getFence(GLuint handle);\r
-    Shader *getShader(GLuint handle);\r
-    Program *getProgram(GLuint handle);\r
-    virtual Texture *getTexture(GLuint handle);\r
-    Framebuffer *getFramebuffer(GLuint handle);\r
-    virtual Renderbuffer *getRenderbuffer(GLuint handle);\r
-       Query *getQuery(GLuint handle, bool create, GLenum type);\r
-       VertexArray *getVertexArray(GLuint array);\r
-       TransformFeedback *getTransformFeedback(GLuint transformFeedback);\r
-       TransformFeedback *getTransformFeedback();\r
-       Sampler *getSampler(GLuint sampler);\r
-\r
-    Buffer *getArrayBuffer();\r
-    Buffer *getElementArrayBuffer();\r
-       Buffer *getCopyReadBuffer();\r
-       Buffer *getCopyWriteBuffer();\r
-       Buffer *getPixelPackBuffer();\r
-       Buffer *getPixelUnpackBuffer();\r
-       Buffer *getUniformBuffer();\r
-       bool getBuffer(GLenum target, es2::Buffer **buffer);\r
-    Program *getCurrentProgram();\r
-    Texture2D *getTexture2D();\r
-       Texture3D *getTexture3D();\r
-       TextureCubeMap *getTextureCubeMap();\r
-    TextureExternal *getTextureExternal();\r
-    Texture *getSamplerTexture(unsigned int sampler, TextureType type);\r
-    Framebuffer *getReadFramebuffer();\r
-    Framebuffer *getDrawFramebuffer();\r
-\r
-    bool getFloatv(GLenum pname, GLfloat *params);\r
-    bool getIntegerv(GLenum pname, GLint *params);\r
-    bool getBooleanv(GLenum pname, GLboolean *params);\r
-       bool getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);\r
-\r
-    bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams);\r
+       Buffer *getBuffer(GLuint handle) const;\r
+       Fence *getFence(GLuint handle) const;\r
+       Shader *getShader(GLuint handle) const;\r
+       Program *getProgram(GLuint handle) const;\r
+       virtual Texture *getTexture(GLuint handle) const;\r
+       Framebuffer *getFramebuffer(GLuint handle) const;\r
+       virtual Renderbuffer *getRenderbuffer(GLuint handle) const;\r
+       Query *getQuery(GLuint handle) const;\r
+       VertexArray *getVertexArray(GLuint array) const;\r
+       VertexArray *getCurrentVertexArray() const;\r
+       TransformFeedback *getTransformFeedback(GLuint transformFeedback) const;\r
+       TransformFeedback *getTransformFeedback() const;\r
+       Sampler *getSampler(GLuint sampler) const;\r
+\r
+       Buffer *getArrayBuffer() const;\r
+       Buffer *getElementArrayBuffer() const;\r
+       Buffer *getCopyReadBuffer() const;\r
+       Buffer *getCopyWriteBuffer() const;\r
+       Buffer *getPixelPackBuffer() const;\r
+       Buffer *getPixelUnpackBuffer() const;\r
+       Buffer *getUniformBuffer() const;\r
+       bool getBuffer(GLenum target, es2::Buffer **buffer) const;\r
+       Program *getCurrentProgram() const;\r
+       Texture2D *getTexture2D() const;\r
+       Texture3D *getTexture3D() const;\r
+       TextureCubeMap *getTextureCubeMap() const;\r
+       TextureExternal *getTextureExternal() const;\r
+       Texture *getSamplerTexture(unsigned int sampler, TextureType type) const;\r
+       Framebuffer *getReadFramebuffer() const;\r
+       Framebuffer *getDrawFramebuffer() const;\r
+\r
+       bool getFloatv(GLenum pname, GLfloat *params) const;\r
+       bool getIntegerv(GLenum pname, GLint *params) const;\r
+       bool getBooleanv(GLenum pname, GLboolean *params) const;\r
+       bool getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param) const;\r
+\r
+       bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams) const;\r
 \r
     void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei *bufSize, void* pixels);\r
     void clear(GLbitfield mask);\r
@@ -581,7 +582,7 @@ public:
 \r
        Device *getDevice();\r
 \r
-       const GLubyte* getExtensions(GLuint index, GLuint* numExt = nullptr);\r
+       const GLubyte* getExtensions(GLuint index, GLuint* numExt = nullptr) const;\r
 \r
 private:\r
        virtual ~Context();\r
@@ -603,6 +604,8 @@ private:
     bool cullSkipsDraw(GLenum drawMode);\r
     bool isTriangleMode(GLenum drawMode);\r
 \r
+       Query *createQuery(GLuint handle, GLenum type);\r
+\r
        const EGLint clientVersion;\r
     const egl::Config *const mConfig;\r
 \r
index f7164e6..34a096f 100644 (file)
@@ -3045,7 +3045,7 @@ void GL_APIENTRY glGetQueryObjectuivEXT(GLuint name, GLenum pname, GLuint *param
 \r
        if(context)\r
        {\r
-               es2::Query *queryObject = context->getQuery(name, false, GL_NONE);\r
+               es2::Query *queryObject = context->getQuery(name);\r
 \r
                if(!queryObject)\r
                {\r
@@ -4029,7 +4029,7 @@ GLboolean GL_APIENTRY glIsQueryEXT(GLuint name)
 \r
        if(context)\r
        {\r
-               es2::Query *queryObject = context->getQuery(name, false, GL_NONE);\r
+               es2::Query *queryObject = context->getQuery(name);\r
 \r
                if(queryObject)\r
                {\r
index 823b008..950f4ec 100644 (file)
@@ -882,7 +882,7 @@ GLboolean GL_APIENTRY glIsQuery(GLuint id)
 \r
        if(context)\r
        {\r
-               es2::Query *queryObject = context->getQuery(id, false, GL_NONE);\r
+               es2::Query *queryObject = context->getQuery(id);\r
 \r
                if(queryObject)\r
                {\r
@@ -968,7 +968,7 @@ void GL_APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)
 \r
        if(context)\r
        {\r
-               es2::Query *queryObject = context->getQuery(id, false, GL_NONE);\r
+               es2::Query *queryObject = context->getQuery(id);\r
 \r
                if(!queryObject)\r
                {\r