OSDN Git Service

Eliminate the getCurrentContext() dependency.
authorNicolas Capens <capn@google.com>
Fri, 24 Oct 2014 14:40:41 +0000 (10:40 -0400)
committerNicolas Capens <nicolascapens@google.com>
Sat, 25 Oct 2014 03:20:11 +0000 (03:20 +0000)
BUG=18110152

Change-Id: Ic1e502cdd1392c16d6f53a139f57bc224b338cc4
Reviewed-on: https://swiftshader-review.googlesource.com/1241
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
src/GLES2/libEGL/Surface.cpp
src/GLES2/libEGL/libEGL.cpp
src/GLES2/libEGL/main.cpp
src/GLES2/libEGL/main.h
src/GLES2/libGLES_CM/Context.cpp
src/GLES2/libGLES_CM/libGLES_CM.def
src/GLES2/libGLESv2/Context.cpp
src/GLES2/libGLESv2/libGLESv2.def

index 687474d..c98ad27 100644 (file)
@@ -311,7 +311,7 @@ bool Surface::checkForResize()
 \r
         if(static_cast<egl::Surface*>(getCurrentDrawSurface()) == this)\r
         {\r
-            gl::makeCurrent(gl::getCurrentContext(), static_cast<egl::Display*>(getCurrentDisplay()), this);\r
+            gl::makeCurrent(static_cast<gl::Context*>(getCurrentContext()), static_cast<egl::Display*>(getCurrentDisplay()), this);\r
         }\r
 \r
         return true;\r
index c5c67d2..521c982 100644 (file)
@@ -884,7 +884,7 @@ EGLContext EGLAPIENTRY eglGetCurrentContext(void)
 \r
     try\r
     {\r
-               EGLContext context = gl::getCurrentContext();\r
+               EGLContext context = egl::getCurrentContext();\r
 \r
                return success(context);\r
     }\r
index e61ee7f..9e0483a 100644 (file)
@@ -91,7 +91,6 @@ CONSTRUCTOR static bool eglAttachProcess()
     gl::createDevice = (gl::Device*(*)())getProcAddress(libGLESv2, "createDevice");\r
     gl::createContext = (gl::Context *(*)(const egl::Config*, const gl::Context*))getProcAddress(libGLESv2, "glCreateContext");\r
     gl::makeCurrent = (void (*)(gl::Context*, egl::Display*, egl::Surface*))getProcAddress(libGLESv2, "glMakeCurrent");\r
-    gl::getCurrentContext = (gl::Context *(*)())getProcAddress(libGLESv2, "glGetCurrentContext");\r
     gl::getProcAddress = (__eglMustCastToProperFunctionPointerType (*)(const char*))getProcAddress(libGLESv2, "glGetProcAddress");\r
     gl::createBackBuffer = (gl::Image *(*)(int, int, const egl::Config*))getProcAddress(libGLESv2, "createBackBuffer");\r
     gl::createFrameBuffer = (sw::FrameBuffer *(*)(EGLNativeDisplayType, EGLNativeWindowType, int, int))getProcAddress(libGLESv2, "createFrameBuffer");\r
@@ -190,6 +189,20 @@ EGLDisplay getCurrentDisplay()
     return current->display;\r
 }\r
 \r
+void setCurrentContext(EGLContext ctx)\r
+{\r
+    Current *current = eglGetCurrent();\r
+\r
+    current->context = ctx;\r
+}\r
+\r
+EGLDisplay getCurrentContext()\r
+{\r
+    Current *current = eglGetCurrent();\r
+\r
+    return current->context;\r
+}\r
+\r
 void setCurrentDrawSurface(EGLSurface surface)\r
 {\r
     Current *current = eglGetCurrent();\r
index 8b1052b..6f67abd 100644 (file)
@@ -25,6 +25,7 @@ namespace egl
                EGLint error;
                EGLenum API;
                EGLDisplay display;
+               EGLContext context;
                EGLSurface drawSurface;
                EGLSurface readSurface;
        };
@@ -38,6 +39,9 @@ namespace egl
        void setCurrentDisplay(EGLDisplay dpy);
        EGLDisplay getCurrentDisplay();
 
+       void setCurrentContext(EGLContext ctx);
+       EGLContext getCurrentContext();
+
        void setCurrentDrawSurface(EGLSurface surface);
        EGLSurface getCurrentDrawSurface();
 
@@ -86,7 +90,6 @@ namespace gl
        extern Context *(*createContext)(const egl::Config *config, const Context *shareContext);
        extern void (*bindTexImage)(egl::Surface *surface);
        extern void (*makeCurrent)(Context *context, egl::Display *display, egl::Surface *surface);
-       extern Context *(*getCurrentContext)();
        extern __eglMustCastToProperFunctionPointerType (*getProcAddress)(const char *procname);
        extern Image *(*createBackBuffer)(int width, int height, const egl::Config *config);
        extern sw::FrameBuffer *(*createFrameBuffer)(EGLNativeDisplayType display, EGLNativeWindowType window, int width, int height);
index a8cfa27..f909a4c 100644 (file)
@@ -2231,9 +2231,4 @@ extern "C"
        {\r
                gl::makeCurrent(context, display, surface);\r
        }\r
-\r
-       gl::Context *glGetCurrentContext()\r
-       {\r
-               return gl::getContext();\r
-       }\r
 }\r
index 0ada4da..faf6203 100644 (file)
@@ -148,7 +148,6 @@ EXPORTS
     ; EGL dependencies
     glCreateContext                 @144
     glMakeCurrent                   @146
-    glGetCurrentContext             @147
     glGetProcAddress                @148
     glBindTexImage                  @158
 
index 0fb5626..c775e81 100644 (file)
@@ -3044,9 +3044,4 @@ extern "C"
        {\r
                gl::makeCurrent(context, display, surface);\r
        }\r
-\r
-       gl::Context *glGetCurrentContext()\r
-       {\r
-               return gl::getContext();\r
-       }\r
 }\r
index 129dd46..c6dfa6e 100644 (file)
@@ -171,7 +171,6 @@ EXPORTS
     ; EGL dependencies
     glCreateContext                 @144
     glMakeCurrent                   @146
-    glGetCurrentContext             @147
     glGetProcAddress                @148
     glBindTexImage                  @158