Constness in Context

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>
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index bf1e22b..166fc3b 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -760,7 +760,7 @@
 	mState.vertexAttribute[attribNum].mDivisor = divisor;

 }

 

-const VertexAttribute &Context::getVertexAttribState(unsigned int attribNum)

+const VertexAttribute &Context::getVertexAttribState(unsigned int attribNum) const

 {

     return mState.vertexAttribute[attribNum];

 }

@@ -1019,37 +1019,37 @@
 	}

 }

 

-Buffer *Context::getBuffer(GLuint handle)

+Buffer *Context::getBuffer(GLuint handle) const

 {

     return mResourceManager->getBuffer(handle);

 }

 

-Shader *Context::getShader(GLuint handle)

+Shader *Context::getShader(GLuint handle) const

 {

     return mResourceManager->getShader(handle);

 }

 

-Program *Context::getProgram(GLuint handle)

+Program *Context::getProgram(GLuint handle) const

 {

     return mResourceManager->getProgram(handle);

 }

 

-Texture *Context::getTexture(GLuint handle)

+Texture *Context::getTexture(GLuint handle) const

 {

     return mResourceManager->getTexture(handle);

 }

 

-Renderbuffer *Context::getRenderbuffer(GLuint handle)

+Renderbuffer *Context::getRenderbuffer(GLuint handle) const

 {

     return mResourceManager->getRenderbuffer(handle);

 }

 

-Framebuffer *Context::getReadFramebuffer()

+Framebuffer *Context::getReadFramebuffer() const

 {

     return getFramebuffer(mState.readFramebuffer);

 }

 

-Framebuffer *Context::getDrawFramebuffer()

+Framebuffer *Context::getDrawFramebuffer() const

 {

     return getFramebuffer(mState.drawFramebuffer);

 }

@@ -1264,7 +1264,7 @@
         ASSERT(false);

     }

 

-    Query *queryObject = getQuery(query, true, target);

+    Query *queryObject = createQuery(query, target);

 

     // Check that name was obtained with glGenQueries

     if(!queryObject)

@@ -1325,9 +1325,9 @@
     renderbufferObject->setStorage(renderbuffer);

 }

 

-Framebuffer *Context::getFramebuffer(unsigned int handle)

+Framebuffer *Context::getFramebuffer(unsigned int handle) const

 {

-    FramebufferMap::iterator framebuffer = mFramebufferMap.find(handle);

+    FramebufferMap::const_iterator framebuffer = mFramebufferMap.find(handle);

 

     if(framebuffer == mFramebufferMap.end())

     {

@@ -1339,9 +1339,9 @@
     }

 }

 

-Fence *Context::getFence(unsigned int handle)

+Fence *Context::getFence(unsigned int handle) const

 {

-    FenceMap::iterator fence = mFenceMap.find(handle);

+    FenceMap::const_iterator fence = mFenceMap.find(handle);

 

     if(fence == mFenceMap.end())

     {

@@ -1353,83 +1353,97 @@
     }

 }

 

-Query *Context::getQuery(unsigned int handle, bool create, GLenum type)

+Query *Context::getQuery(unsigned int handle) const

 {

-    QueryMap::iterator query = mQueryMap.find(handle);

+	QueryMap::const_iterator query = mQueryMap.find(handle);

 

-    if(query == mQueryMap.end())

-    {

-        return NULL;

-    }

-    else

-    {

-        if(!query->second && create)

-        {

-            query->second = new Query(handle, type);

-            query->second->addRef();

-        }

-

-        return query->second;

-    }

+	if(query == mQueryMap.end())

+	{

+		return NULL;

+	}

+	else

+	{

+		return query->second;

+	}

 }

 

-VertexArray *Context::getVertexArray(GLuint array)

+Query *Context::createQuery(unsigned int handle, GLenum type)

 {

-	VertexArrayMap::iterator vertexArray = mVertexArrayMap.find(array);

+	QueryMap::iterator query = mQueryMap.find(handle);

+

+	if(query == mQueryMap.end())

+	{

+		return NULL;

+	}

+	else

+	{

+		if(!query->second)

+		{

+			query->second = new Query(handle, type);

+			query->second->addRef();

+		}

+

+		return query->second;

+	}

+}

+

+VertexArray *Context::getVertexArray(GLuint array) const

+{

+	VertexArrayMap::const_iterator vertexArray = mVertexArrayMap.find(array);

 

 	return (vertexArray == mVertexArrayMap.end()) ? NULL : vertexArray->second;

 }

 

-TransformFeedback *Context::getTransformFeedback(GLuint transformFeedback)

+TransformFeedback *Context::getTransformFeedback(GLuint transformFeedback) const

 {

-	TransformFeedbackMap::iterator transformFeedbackObject = mTransformFeedbackMap.find(transformFeedback);

+	TransformFeedbackMap::const_iterator transformFeedbackObject = mTransformFeedbackMap.find(transformFeedback);

 

 	return (transformFeedbackObject == mTransformFeedbackMap.end()) ? NULL : transformFeedbackObject->second;

 }

 

-Sampler *Context::getSampler(GLuint sampler)

+Sampler *Context::getSampler(GLuint sampler) const

 {

-	SamplerMap::iterator samplerObject = mSamplerMap.find(sampler);

+	SamplerMap::const_iterator samplerObject = mSamplerMap.find(sampler);

 

 	return (samplerObject == mSamplerMap.end()) ? NULL : samplerObject->second;

 }

 

-Buffer *Context::getArrayBuffer()

+Buffer *Context::getArrayBuffer() const

 {

     return mState.arrayBuffer;

 }

 

-Buffer *Context::getElementArrayBuffer()

+Buffer *Context::getElementArrayBuffer() const

 {

     return mState.elementArrayBuffer;

 }

 

-Buffer *Context::getCopyReadBuffer()

+Buffer *Context::getCopyReadBuffer() const

 {

 	return mState.copyReadBuffer;

 }

 

-Buffer *Context::getCopyWriteBuffer()

+Buffer *Context::getCopyWriteBuffer() const

 {

 	return mState.copyWriteBuffer;

 }

 

-Buffer *Context::getPixelPackBuffer()

+Buffer *Context::getPixelPackBuffer() const

 {

 	return mState.pixelPackBuffer;

 }

 

-Buffer *Context::getPixelUnpackBuffer()

+Buffer *Context::getPixelUnpackBuffer() const

 {

 	return mState.pixelUnpackBuffer;

 }

 

-Buffer *Context::getUniformBuffer()

+Buffer *Context::getUniformBuffer() const

 {

 	return mState.uniformBuffer;

 }

 

-bool Context::getBuffer(GLenum target, es2::Buffer **buffer)

+bool Context::getBuffer(GLenum target, es2::Buffer **buffer) const

 {

 	switch(target)

 	{

@@ -1488,37 +1502,37 @@
 	return true;

 }

 

-TransformFeedback *Context::getTransformFeedback()

+TransformFeedback *Context::getTransformFeedback() const

 {

 	return getTransformFeedback(mState.transformFeedback);

 }

 

-Program *Context::getCurrentProgram()

+Program *Context::getCurrentProgram() const

 {

     return mResourceManager->getProgram(mState.currentProgram);

 }

 

-Texture2D *Context::getTexture2D()

+Texture2D *Context::getTexture2D() const

 {

 	return static_cast<Texture2D*>(getSamplerTexture(mState.activeSampler, TEXTURE_2D));

 }

 

-Texture3D *Context::getTexture3D()

+Texture3D *Context::getTexture3D() const

 {

 	return static_cast<Texture3D*>(getSamplerTexture(mState.activeSampler, TEXTURE_3D));

 }

 

-TextureCubeMap *Context::getTextureCubeMap()

+TextureCubeMap *Context::getTextureCubeMap() const

 {

     return static_cast<TextureCubeMap*>(getSamplerTexture(mState.activeSampler, TEXTURE_CUBE));

 }

 

-TextureExternal *Context::getTextureExternal()

+TextureExternal *Context::getTextureExternal() const

 {

     return static_cast<TextureExternal*>(getSamplerTexture(mState.activeSampler, TEXTURE_EXTERNAL));

 }

 

-Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type)

+Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type) const

 {

     GLuint texid = mState.samplerTexture[type][sampler].name();

 

@@ -1537,7 +1551,7 @@
     return mState.samplerTexture[type][sampler];

 }

 

-bool Context::getBooleanv(GLenum pname, GLboolean *params)

+bool Context::getBooleanv(GLenum pname, GLboolean *params) const

 {

     switch (pname)

     {

@@ -1588,7 +1602,7 @@
     return true;

 }

 

-bool Context::getFloatv(GLenum pname, GLfloat *params)

+bool Context::getFloatv(GLenum pname, GLfloat *params) const

 {

     // Please note: DEPTH_CLEAR_VALUE is included in our internal getFloatv implementation

     // because it is stored as a float, despite the fact that the GL ES 2.0 spec names

@@ -1635,7 +1649,7 @@
     return true;

 }

 

-bool Context::getIntegerv(GLenum pname, GLint *params)

+bool Context::getIntegerv(GLenum pname, GLint *params) const

 {

     // Please note: DEPTH_CLEAR_VALUE is not included in our internal getIntegerv implementation

     // because it is stored as a float, despite the fact that the GL ES 2.0 spec names

@@ -2121,7 +2135,7 @@
     return true;

 }

 

-bool Context::getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param)

+bool Context::getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param) const

 {

 	UNIMPLEMENTED();

 

@@ -2162,7 +2176,7 @@
 	return true;

 }

 

-bool Context::getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams)

+bool Context::getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams) const

 {

     // Please note: the query type returned for DEPTH_CLEAR_VALUE in this implementation

     // is FLOAT rather than INT, as would be suggested by the GL ES 2.0 spec. This is due

@@ -4028,7 +4042,7 @@
 	return device;

 }

 

-const GLubyte* Context::getExtensions(GLuint index, GLuint* numExt)

+const GLubyte* Context::getExtensions(GLuint index, GLuint* numExt) const

 {

 	// Keep list sorted in following order:

 	// OES extensions

diff --git a/src/OpenGL/libGLESv2/Context.h b/src/OpenGL/libGLESv2/Context.h
index 2c1cdf4..8ebf2d4 100644
--- a/src/OpenGL/libGLESv2/Context.h
+++ b/src/OpenGL/libGLESv2/Context.h
@@ -435,7 +435,7 @@
 

     void setEnableVertexAttribArray(unsigned int attribNum, bool enabled);

     void setVertexAttribDivisor(unsigned int attribNum, GLuint divisor);

-    const VertexAttribute &getVertexAttribState(unsigned int attribNum);

+    const VertexAttribute &getVertexAttribState(unsigned int attribNum) const;

     void setVertexAttribState(unsigned int attribNum, Buffer *boundBuffer, GLint size, GLenum type,

                               bool normalized, GLsizei stride, const void *pointer);

     const void *getVertexAttribPointer(unsigned int attribNum) const;

@@ -517,42 +517,43 @@
     void setVertexAttrib(GLuint index, const GLint *values);

     void setVertexAttrib(GLuint index, const GLuint *values);

 

-    Buffer *getBuffer(GLuint handle);

-    Fence *getFence(GLuint handle);

-    Shader *getShader(GLuint handle);

-    Program *getProgram(GLuint handle);

-    virtual Texture *getTexture(GLuint handle);

-    Framebuffer *getFramebuffer(GLuint handle);

-    virtual Renderbuffer *getRenderbuffer(GLuint handle);

-	Query *getQuery(GLuint handle, bool create, GLenum type);

-	VertexArray *getVertexArray(GLuint array);

-	TransformFeedback *getTransformFeedback(GLuint transformFeedback);

-	TransformFeedback *getTransformFeedback();

-	Sampler *getSampler(GLuint sampler);

+	Buffer *getBuffer(GLuint handle) const;

+	Fence *getFence(GLuint handle) const;

+	Shader *getShader(GLuint handle) const;

+	Program *getProgram(GLuint handle) const;

+	virtual Texture *getTexture(GLuint handle) const;

+	Framebuffer *getFramebuffer(GLuint handle) const;

+	virtual Renderbuffer *getRenderbuffer(GLuint handle) const;

+	Query *getQuery(GLuint handle) const;

+	VertexArray *getVertexArray(GLuint array) const;

+	VertexArray *getCurrentVertexArray() const;

+	TransformFeedback *getTransformFeedback(GLuint transformFeedback) const;

+	TransformFeedback *getTransformFeedback() const;

+	Sampler *getSampler(GLuint sampler) const;

 

-    Buffer *getArrayBuffer();

-    Buffer *getElementArrayBuffer();

-	Buffer *getCopyReadBuffer();

-	Buffer *getCopyWriteBuffer();

-	Buffer *getPixelPackBuffer();

-	Buffer *getPixelUnpackBuffer();

-	Buffer *getUniformBuffer();

-	bool getBuffer(GLenum target, es2::Buffer **buffer);

-    Program *getCurrentProgram();

-    Texture2D *getTexture2D();

-	Texture3D *getTexture3D();

-	TextureCubeMap *getTextureCubeMap();

-    TextureExternal *getTextureExternal();

-    Texture *getSamplerTexture(unsigned int sampler, TextureType type);

-    Framebuffer *getReadFramebuffer();

-    Framebuffer *getDrawFramebuffer();

+	Buffer *getArrayBuffer() const;

+	Buffer *getElementArrayBuffer() const;

+	Buffer *getCopyReadBuffer() const;

+	Buffer *getCopyWriteBuffer() const;

+	Buffer *getPixelPackBuffer() const;

+	Buffer *getPixelUnpackBuffer() const;

+	Buffer *getUniformBuffer() const;

+	bool getBuffer(GLenum target, es2::Buffer **buffer) const;

+	Program *getCurrentProgram() const;

+	Texture2D *getTexture2D() const;

+	Texture3D *getTexture3D() const;

+	TextureCubeMap *getTextureCubeMap() const;

+	TextureExternal *getTextureExternal() const;

+	Texture *getSamplerTexture(unsigned int sampler, TextureType type) const;

+	Framebuffer *getReadFramebuffer() const;

+	Framebuffer *getDrawFramebuffer() const;

 

-    bool getFloatv(GLenum pname, GLfloat *params);

-    bool getIntegerv(GLenum pname, GLint *params);

-    bool getBooleanv(GLenum pname, GLboolean *params);

-	bool getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);

+	bool getFloatv(GLenum pname, GLfloat *params) const;

+	bool getIntegerv(GLenum pname, GLint *params) const;

+	bool getBooleanv(GLenum pname, GLboolean *params) const;

+	bool getTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param) const;

 

-    bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams);

+	bool getQueryParameterInfo(GLenum pname, GLenum *type, unsigned int *numParams) const;

 

     void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei *bufSize, void* pixels);

     void clear(GLbitfield mask);

@@ -581,7 +582,7 @@
 

 	Device *getDevice();

 

-	const GLubyte* getExtensions(GLuint index, GLuint* numExt = nullptr);

+	const GLubyte* getExtensions(GLuint index, GLuint* numExt = nullptr) const;

 

 private:

 	virtual ~Context();

@@ -603,6 +604,8 @@
     bool cullSkipsDraw(GLenum drawMode);

     bool isTriangleMode(GLenum drawMode);

 

+	Query *createQuery(GLuint handle, GLenum type);

+

 	const EGLint clientVersion;

     const egl::Config *const mConfig;

 

diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index f7164e6..34a096f 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -3045,7 +3045,7 @@
 

 	if(context)

 	{

-		es2::Query *queryObject = context->getQuery(name, false, GL_NONE);

+		es2::Query *queryObject = context->getQuery(name);

 

 		if(!queryObject)

 		{

@@ -4029,7 +4029,7 @@
 

 	if(context)

 	{

-		es2::Query *queryObject = context->getQuery(name, false, GL_NONE);

+		es2::Query *queryObject = context->getQuery(name);

 

 		if(queryObject)

 		{

diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
index 823b008..950f4ec 100644
--- a/src/OpenGL/libGLESv2/libGLESv3.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv3.cpp
@@ -882,7 +882,7 @@
 

 	if(context)

 	{

-		es2::Query *queryObject = context->getQuery(id, false, GL_NONE);

+		es2::Query *queryObject = context->getQuery(id);

 

 		if(queryObject)

 		{

@@ -968,7 +968,7 @@
 

 	if(context)

 	{

-		es2::Query *queryObject = context->getQuery(id, false, GL_NONE);

+		es2::Query *queryObject = context->getQuery(id);

 

 		if(!queryObject)

 		{