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
}\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
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
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
}\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
}\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
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
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
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
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
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
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
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
\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
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
\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
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