Fix GL resource access thread safety
Add resource manager lock, and ContextPtr to automatically take it
Affects: Everything, dEQP-EGL.functional.sharing.gles2.multithread.*
Bug: b/112184433
Change-Id: Ifdc5b18c738f92bbab08217f672a8ed6093e1672
Reviewed-on: https://swiftshader-review.googlesource.com/20388
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
diff --git a/src/OpenGL/libGLESv2/Context.h b/src/OpenGL/libGLESv2/Context.h
index 743ec73..866982b 100644
--- a/src/OpenGL/libGLESv2/Context.h
+++ b/src/OpenGL/libGLESv2/Context.h
@@ -699,6 +699,7 @@
Device *getDevice();
const GLubyte *getExtensions(GLuint index, GLuint *numExt = nullptr) const;
+ sw::MutexLock *getResourceLock() { return mResourceManager->getLock(); }
private:
~Context() override;
@@ -769,6 +770,26 @@
Device *device;
ResourceManager *mResourceManager;
};
+
+// ptr to a context, which also holds the context's resource manager's lock.
+class ContextPtr {
+public:
+ explicit ContextPtr(Context *context) : ptr(context)
+ {
+ if (ptr) ptr->getResourceLock()->lock();
+ }
+
+ ~ContextPtr() {
+ if (ptr) ptr->getResourceLock()->unlock();
+ }
+
+ Context *operator ->() { return ptr; }
+ operator bool() const { return ptr != nullptr; }
+
+private:
+ Context *ptr;
+};
+
}
#endif // INCLUDE_CONTEXT_H_
diff --git a/src/OpenGL/libGLESv2/Framebuffer.cpp b/src/OpenGL/libGLESv2/Framebuffer.cpp
index fd9cd10..0439bef 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.cpp
+++ b/src/OpenGL/libGLESv2/Framebuffer.cpp
@@ -65,7 +65,7 @@
Renderbuffer *Framebuffer::lookupRenderbuffer(GLenum type, GLuint handle, GLint level) const
{
- Context *context = getContext();
+ Context *context = getContextLocked();
Renderbuffer *buffer = nullptr;
if(type == GL_NONE)
diff --git a/src/OpenGL/libGLESv2/ResourceManager.h b/src/OpenGL/libGLESv2/ResourceManager.h
index c076653..a7c156a 100644
--- a/src/OpenGL/libGLESv2/ResourceManager.h
+++ b/src/OpenGL/libGLESv2/ResourceManager.h
@@ -19,6 +19,7 @@
#define LIBGLESV2_RESOURCEMANAGER_H_
#include "common/NameSpace.hpp"
+#include "Common/MutexLock.hpp"
#include <GLES2/gl2.h>
@@ -86,9 +87,11 @@
void checkSamplerAllocation(GLuint sampler);
bool isSampler(GLuint sampler);
+ sw::MutexLock *getLock() { return &mMutex; }
private:
std::size_t mRefCount;
+ sw::MutexLock mMutex;
gl::NameSpace<Buffer> mBufferNameSpace;
gl::NameSpace<Program> mProgramNameSpace;
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index 4be1261..4c31d44 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -54,7 +54,7 @@
{
TRACE("(GLenum texture = 0x%X)", texture);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -71,7 +71,7 @@
{
TRACE("(GLuint program = %d, GLuint shader = %d)", program, shader);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -127,7 +127,7 @@
return error(GL_INVALID_OPERATION);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -144,7 +144,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -175,7 +175,7 @@
{
TRACE("(GLenum target = 0x%X, GLuint buffer = %d)", target, buffer);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -220,7 +220,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -245,7 +245,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -261,7 +261,7 @@
{
TRACE("(GLenum target = 0x%X, GLuint texture = %d)", target, texture);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -303,7 +303,7 @@
TRACE("(GLclampf red = %f, GLclampf green = %f, GLclampf blue = %f, GLclampf alpha = %f)",
red, green, blue, alpha);
- es2::Context* context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -344,7 +344,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -452,7 +452,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -489,7 +489,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -522,7 +522,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -562,7 +562,7 @@
return error(GL_INVALID_ENUM, 0);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -596,7 +596,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -609,7 +609,7 @@
TRACE("(GLclampf red = %f, GLclampf green = %f, GLclampf blue = %f, GLclampf alpha = %f)",
red, green, blue, alpha);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -621,7 +621,7 @@
{
TRACE("(GLclampf depth = %f)", depth);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -633,7 +633,7 @@
{
TRACE("(GLint s = %d)", s);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -646,7 +646,7 @@
TRACE("(GLboolean red = %d, GLboolean green = %d, GLboolean blue = %d, GLboolean alpha = %d)",
red, green, blue, alpha);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -658,7 +658,7 @@
{
TRACE("(GLuint shader = %d)", shader);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -702,7 +702,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -807,7 +807,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -867,7 +867,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1026,7 +1026,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1070,7 +1070,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1084,7 +1084,7 @@
{
TRACE("(GLenum type = 0x%X)", type);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1111,7 +1111,7 @@
case GL_BACK:
case GL_FRONT_AND_BACK:
{
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1133,7 +1133,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1153,7 +1153,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1173,7 +1173,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1196,7 +1196,7 @@
return;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1225,7 +1225,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1245,7 +1245,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1265,7 +1265,7 @@
return;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1294,7 +1294,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1327,7 +1327,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1339,7 +1339,7 @@
{
TRACE("(GLboolean flag = %d)", flag);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1351,7 +1351,7 @@
{
TRACE("(GLclampf zNear = %f, GLclampf zFar = %f)", zNear, zFar);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1363,7 +1363,7 @@
{
TRACE("(GLuint program = %d, GLuint shader = %d)", program, shader);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1409,7 +1409,7 @@
{
TRACE("(GLenum cap = 0x%X)", cap);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1441,7 +1441,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1472,7 +1472,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1510,7 +1510,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1558,7 +1558,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1606,7 +1606,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1624,7 +1624,7 @@
{
TRACE("(GLuint index = %d, GLuint divisor = %d)", index, divisor);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1661,7 +1661,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1714,7 +1714,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1737,7 +1737,7 @@
{
TRACE("(GLuint index = %d, GLuint divisor = %d)", index, divisor);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1754,7 +1754,7 @@
{
TRACE("(GLenum cap = 0x%X)", cap);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1786,7 +1786,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1807,7 +1807,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1819,7 +1819,7 @@
{
TRACE("(GLuint fence = %d)", fence);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1838,7 +1838,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1850,7 +1850,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1869,7 +1869,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1936,7 +1936,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2044,7 +2044,7 @@
case GL_CW:
case GL_CCW:
{
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2066,7 +2066,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2081,7 +2081,7 @@
{
TRACE("(GLenum target = 0x%X)", target);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2134,7 +2134,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2154,7 +2154,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2174,7 +2174,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2194,7 +2194,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2214,7 +2214,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2236,7 +2236,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2274,7 +2274,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2311,7 +2311,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2337,7 +2337,7 @@
{
TRACE("(GLuint program = %d, const GLchar* name = %s)", program, name);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2370,7 +2370,7 @@
{
TRACE("(GLenum pname = 0x%X, GLboolean* params = %p)", pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2426,7 +2426,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = %p)", target, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2472,7 +2472,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2486,7 +2486,7 @@
{
TRACE("(GLuint fence = %d, GLenum pname = 0x%X, GLint *params = %p)", fence, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2505,7 +2505,7 @@
{
TRACE("(GLenum pname = 0x%X, GLfloat* params = %p)", pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2559,7 +2559,7 @@
TRACE("(GLenum target = 0x%X, GLenum attachment = 0x%X, GLenum pname = 0x%X, GLint* params = %p)",
target, attachment, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2798,7 +2798,7 @@
{
TRACE("(GLenum pname = 0x%X, GLint* params = %p)", pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(!context)
{
@@ -2876,7 +2876,7 @@
{
TRACE("(GLuint program = %d, GLenum pname = 0x%X, GLint* params = %p)", program, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2960,7 +2960,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2994,7 +2994,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3015,7 +3015,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3049,7 +3049,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = %p)", target, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3092,7 +3092,7 @@
{
TRACE("(GLuint shader = %d, GLenum pname = %d, GLint* params = %p)", shader, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3143,7 +3143,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3212,7 +3212,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3250,7 +3250,7 @@
return (GLubyte*)"OpenGL ES GLSL ES 3.00 SwiftShader " VERSION_STRING;
case GL_EXTENSIONS:
{
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
return context ? context->getExtensions(GL_INVALID_INDEX) : (GLubyte*)nullptr;
}
default:
@@ -3262,7 +3262,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat* params = %p)", target, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3349,7 +3349,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = %p)", target, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3442,7 +3442,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3476,7 +3476,7 @@
{
TRACE("(GLuint program = %d, GLint location = %d, GLfloat* params = %p)", program, location, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3516,7 +3516,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3550,7 +3550,7 @@
{
TRACE("(GLuint program = %d, GLint location = %d, GLint* params = %p)", program, location, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3584,7 +3584,7 @@
{
TRACE("(GLuint program = %d, const GLchar* name = %s)", program, name);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(strstr(name, "gl_") == name)
{
@@ -3622,7 +3622,7 @@
{
TRACE("(GLuint index = %d, GLenum pname = 0x%X, GLfloat* params = %p)", index, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3675,7 +3675,7 @@
{
TRACE("(GLuint index = %d, GLenum pname = 0x%X, GLint* params = %p)", index, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3729,7 +3729,7 @@
{
TRACE("(GLuint index = %d, GLenum pname = 0x%X, GLvoid** pointer = %p)", index, pname, pointer);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3761,7 +3761,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3786,7 +3786,7 @@
{
TRACE("(GLuint buffer = %d)", buffer);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context && buffer)
{
@@ -3805,7 +3805,7 @@
{
TRACE("(GLenum cap = 0x%X)", cap);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3834,7 +3834,7 @@
{
TRACE("(GLuint fence = %d)", fence);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3855,7 +3855,7 @@
{
TRACE("(GLuint framebuffer = %d)", framebuffer);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context && framebuffer)
{
@@ -3874,7 +3874,7 @@
{
TRACE("(GLuint program = %d)", program);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context && program)
{
@@ -3898,7 +3898,7 @@
return GL_FALSE;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3917,7 +3917,7 @@
{
TRACE("(GLuint renderbuffer = %d)", renderbuffer);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context && renderbuffer)
{
@@ -3936,7 +3936,7 @@
{
TRACE("(GLuint shader = %d)", shader);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context && shader)
{
@@ -3955,7 +3955,7 @@
{
TRACE("(GLuint texture = %d)", texture);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context && texture)
{
@@ -3979,7 +3979,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3991,7 +3991,7 @@
{
TRACE("(GLuint program = %d)", program);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4026,7 +4026,7 @@
{
TRACE("(GLenum pname = 0x%X, GLint param = %d)", pname, param);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4112,7 +4112,7 @@
{
TRACE("(GLfloat factor = %f, GLfloat units = %f)", factor, units);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4132,7 +4132,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4151,7 +4151,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4192,7 +4192,7 @@
return error(GL_INVALID_OPERATION);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4236,7 +4236,7 @@
{
TRACE("(GLclampf value = %f, GLboolean invert = %d)", value, invert);
- es2::Context* context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4253,7 +4253,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4277,7 +4277,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context* context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4305,7 +4305,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4361,7 +4361,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4396,7 +4396,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4477,7 +4477,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4497,7 +4497,7 @@
{
TRACE("(GLuint fence = %d)", fence);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4526,7 +4526,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4621,7 +4621,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat param = %f)", target, pname, param);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4752,7 +4752,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %d)", target, pname, param);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4911,7 +4911,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -4969,7 +4969,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5006,7 +5006,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5045,7 +5045,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5084,7 +5084,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5123,7 +5123,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5162,7 +5162,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5201,7 +5201,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5240,7 +5240,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5273,7 +5273,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5306,7 +5306,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5339,7 +5339,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5366,7 +5366,7 @@
{
TRACE("(GLuint program = %d)", program);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5403,7 +5403,7 @@
{
TRACE("(GLuint program = %d)", program);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5434,7 +5434,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5452,7 +5452,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5470,7 +5470,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5488,7 +5488,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5506,7 +5506,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5524,7 +5524,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5542,7 +5542,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5560,7 +5560,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5613,7 +5613,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5638,7 +5638,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5666,7 +5666,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5748,7 +5748,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5795,7 +5795,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5836,7 +5836,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5901,7 +5901,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5958,7 +5958,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -5989,7 +5989,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -6081,7 +6081,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -6194,7 +6194,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
index b4f5377..709c129 100644
--- a/src/OpenGL/libGLESv2/libGLESv3.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv3.cpp
@@ -214,7 +214,7 @@
{
TRACE("(GLenum src = 0x%X)", src);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -318,7 +318,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -364,7 +364,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -418,7 +418,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -465,7 +465,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -539,7 +539,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -626,7 +626,7 @@
break;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -666,7 +666,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -686,7 +686,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -706,7 +706,7 @@
return GL_FALSE;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -735,7 +735,7 @@
return error(GL_INVALID_OPERATION);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -752,7 +752,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -770,7 +770,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -792,7 +792,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -826,7 +826,7 @@
{
TRACE("(GLenum target = 0x%X)", target);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -864,7 +864,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -893,7 +893,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -985,7 +985,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1017,7 +1017,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1049,7 +1049,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1081,7 +1081,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1113,7 +1113,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1145,7 +1145,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1194,7 +1194,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1222,7 +1222,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1370,7 +1370,7 @@
return error(GL_INVALID_OPERATION, nullptr);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1424,7 +1424,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1466,7 +1466,7 @@
{
TRACE("(GLuint array = %d)", array);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1493,7 +1493,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1518,7 +1518,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1543,7 +1543,7 @@
return GL_FALSE;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1568,7 +1568,7 @@
TRACE("(GLenum target = 0x%X, GLuint index = %d, GLint* data = %p)",
target, index, data);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1637,7 +1637,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1662,7 +1662,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1693,7 +1693,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1734,7 +1734,7 @@
TRACE("(GLenum target = 0x%X, GLuint index = %d, GLuint buffer = %d)",
target, index, buffer);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1780,7 +1780,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1805,7 +1805,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1853,7 +1853,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1874,7 +1874,7 @@
TRACE("(GLuint index = %d, GLenum pname = 0x%X, GLint *params = %p)",
index, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1930,7 +1930,7 @@
TRACE("(GLuint index = %d, GLenum pname = 0x%X, GLuint *params = %p)",
index, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -1991,7 +1991,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2010,7 +2010,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2028,7 +2028,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2045,7 +2045,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2058,7 +2058,7 @@
TRACE("(GLuint program = %d, GLint location = %d, GLuint *params = %p)",
program, location, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2092,7 +2092,7 @@
{
TRACE("(GLuint program = %d, const GLchar *name = %p)", program, name);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2157,7 +2157,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2190,7 +2190,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2223,7 +2223,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2256,7 +2256,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2284,7 +2284,7 @@
TRACE("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLint *value = %p)",
buffer, drawbuffer, value);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2321,7 +2321,7 @@
TRACE("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLuint *value = %p)",
buffer, drawbuffer, value);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2348,7 +2348,7 @@
TRACE("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLfloat *value = %p)",
buffer, drawbuffer, value);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2385,7 +2385,7 @@
TRACE("(GLenum buffer = 0x%X, GLint drawbuffer = %d, GLfloat depth = %f, GLint stencil = %d)",
buffer, drawbuffer, depth, stencil);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2412,7 +2412,7 @@
{
TRACE("(GLenum name = 0x%X, GLuint index = %d)", name, index);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
GLuint numExtensions;
@@ -2445,7 +2445,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2488,7 +2488,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2548,7 +2548,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2589,7 +2589,7 @@
TRACE("(GLuint program = %d, const GLchar *uniformBlockName = %p)",
program, uniformBlockName);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2618,7 +2618,7 @@
TRACE("(GLuint program = %d, GLuint uniformBlockIndex = %d, GLenum pname = 0x%X, GLint *params = %p)",
program, uniformBlockIndex, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2663,7 +2663,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2693,7 +2693,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2737,7 +2737,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2785,7 +2785,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2816,7 +2816,7 @@
return error(GL_INVALID_VALUE, nullptr);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2830,7 +2830,7 @@
{
TRACE("(GLsync sync = %p)", sync);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2854,7 +2854,7 @@
return;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2876,7 +2876,7 @@
return error(GL_INVALID_VALUE, GL_FALSE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2909,7 +2909,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2930,7 +2930,7 @@
{
TRACE("(GLenum pname = 0x%X, GLint64 *data = %p)", pname, data);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -2993,7 +2993,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3011,7 +3011,7 @@
{
TRACE("(GLenum target = 0x%X, GLuint index = %d, GLint64 *data = %p)", target, index, data);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3070,7 +3070,7 @@
{
TRACE("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint64 *params = %p)", target, pname, params);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3122,7 +3122,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3142,7 +3142,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3162,7 +3162,7 @@
return GL_FALSE;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3184,7 +3184,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3220,7 +3220,7 @@
return;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3251,7 +3251,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3277,7 +3277,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3300,7 +3300,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3317,7 +3317,7 @@
{
TRACE("(GLuint index = %d, GLuint divisor = %d)", index, divisor);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3339,7 +3339,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3368,7 +3368,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3398,7 +3398,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3418,7 +3418,7 @@
return GL_FALSE;
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3437,7 +3437,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3458,7 +3458,7 @@
{
TRACE("()");
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3485,7 +3485,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3511,7 +3511,7 @@
return error(GL_INVALID_VALUE);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3532,7 +3532,7 @@
TRACE("(GLuint program = %d, GLenum pname = 0x%X, GLint value = %d)",
program, pname, value);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3571,7 +3571,7 @@
TRACE("(GLenum target = 0x%X, GLsizei numAttachments = %d, const GLenum *attachments = %p, GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
target, numAttachments, attachments, x, y, width, height);
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3655,7 +3655,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
@@ -3737,7 +3737,7 @@
return error(GL_INVALID_ENUM);
}
- es2::Context *context = es2::getContext();
+ auto context = es2::getContext();
if(context)
{
diff --git a/src/OpenGL/libGLESv2/main.cpp b/src/OpenGL/libGLESv2/main.cpp
index 0924a75..aaabcbd 100644
--- a/src/OpenGL/libGLESv2/main.cpp
+++ b/src/OpenGL/libGLESv2/main.cpp
@@ -75,7 +75,7 @@
namespace es2
{
-es2::Context *getContext()
+Context *getContextLocked()
{
egl::Context *context = libEGL->clientGetCurrentContext();
@@ -88,17 +88,23 @@
return nullptr;
}
+ContextPtr getContext()
+{
+ return ContextPtr{getContextLocked()};
+}
+
Device *getDevice()
{
- Context *context = getContext();
+ Context *context = getContextLocked();
return context ? context->getDevice() : nullptr;
}
// Records an error code
+// Assumed to already hold the context lock for the current context
void error(GLenum errorCode)
{
- es2::Context *context = es2::getContext();
+ es2::Context *context = es2::getContextLocked();
if(context)
{
diff --git a/src/OpenGL/libGLESv2/main.h b/src/OpenGL/libGLESv2/main.h
index 3f2fa78..8e84e24 100644
--- a/src/OpenGL/libGLESv2/main.h
+++ b/src/OpenGL/libGLESv2/main.h
@@ -30,7 +30,8 @@
namespace es2
{
- Context *getContext();
+ Context *getContextLocked();
+ ContextPtr getContext();
Device *getDevice();
void error(GLenum errorCode);