From: Nicolas Capens Date: Fri, 24 Oct 2014 14:40:41 +0000 (-0400) Subject: Eliminate the getCurrentContext() dependency. X-Git-Tag: android-x86-7.1-r1~1405 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6899f6c85d7f06be5552a589ea9151fe3cd483d5;p=android-x86%2Fexternal-swiftshader.git Eliminate the getCurrentContext() dependency. BUG=18110152 Change-Id: Ic1e502cdd1392c16d6f53a139f57bc224b338cc4 Reviewed-on: https://swiftshader-review.googlesource.com/1241 Reviewed-by: Nicolas Capens Tested-by: Nicolas Capens --- diff --git a/src/GLES2/libEGL/Surface.cpp b/src/GLES2/libEGL/Surface.cpp index 687474d35..c98ad2776 100644 --- a/src/GLES2/libEGL/Surface.cpp +++ b/src/GLES2/libEGL/Surface.cpp @@ -311,7 +311,7 @@ bool Surface::checkForResize() if(static_cast(getCurrentDrawSurface()) == this) { - gl::makeCurrent(gl::getCurrentContext(), static_cast(getCurrentDisplay()), this); + gl::makeCurrent(static_cast(getCurrentContext()), static_cast(getCurrentDisplay()), this); } return true; diff --git a/src/GLES2/libEGL/libEGL.cpp b/src/GLES2/libEGL/libEGL.cpp index c5c67d2fd..521c98232 100644 --- a/src/GLES2/libEGL/libEGL.cpp +++ b/src/GLES2/libEGL/libEGL.cpp @@ -884,7 +884,7 @@ EGLContext EGLAPIENTRY eglGetCurrentContext(void) try { - EGLContext context = gl::getCurrentContext(); + EGLContext context = egl::getCurrentContext(); return success(context); } diff --git a/src/GLES2/libEGL/main.cpp b/src/GLES2/libEGL/main.cpp index e61ee7f40..9e0483a22 100644 --- a/src/GLES2/libEGL/main.cpp +++ b/src/GLES2/libEGL/main.cpp @@ -91,7 +91,6 @@ CONSTRUCTOR static bool eglAttachProcess() gl::createDevice = (gl::Device*(*)())getProcAddress(libGLESv2, "createDevice"); gl::createContext = (gl::Context *(*)(const egl::Config*, const gl::Context*))getProcAddress(libGLESv2, "glCreateContext"); gl::makeCurrent = (void (*)(gl::Context*, egl::Display*, egl::Surface*))getProcAddress(libGLESv2, "glMakeCurrent"); - gl::getCurrentContext = (gl::Context *(*)())getProcAddress(libGLESv2, "glGetCurrentContext"); gl::getProcAddress = (__eglMustCastToProperFunctionPointerType (*)(const char*))getProcAddress(libGLESv2, "glGetProcAddress"); gl::createBackBuffer = (gl::Image *(*)(int, int, const egl::Config*))getProcAddress(libGLESv2, "createBackBuffer"); gl::createFrameBuffer = (sw::FrameBuffer *(*)(EGLNativeDisplayType, EGLNativeWindowType, int, int))getProcAddress(libGLESv2, "createFrameBuffer"); @@ -190,6 +189,20 @@ EGLDisplay getCurrentDisplay() return current->display; } +void setCurrentContext(EGLContext ctx) +{ + Current *current = eglGetCurrent(); + + current->context = ctx; +} + +EGLDisplay getCurrentContext() +{ + Current *current = eglGetCurrent(); + + return current->context; +} + void setCurrentDrawSurface(EGLSurface surface) { Current *current = eglGetCurrent(); diff --git a/src/GLES2/libEGL/main.h b/src/GLES2/libEGL/main.h index 8b1052b45..6f67abdfd 100644 --- a/src/GLES2/libEGL/main.h +++ b/src/GLES2/libEGL/main.h @@ -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); diff --git a/src/GLES2/libGLES_CM/Context.cpp b/src/GLES2/libGLES_CM/Context.cpp index a8cfa270b..f909a4c4e 100644 --- a/src/GLES2/libGLES_CM/Context.cpp +++ b/src/GLES2/libGLES_CM/Context.cpp @@ -2231,9 +2231,4 @@ extern "C" { gl::makeCurrent(context, display, surface); } - - gl::Context *glGetCurrentContext() - { - return gl::getContext(); - } } diff --git a/src/GLES2/libGLES_CM/libGLES_CM.def b/src/GLES2/libGLES_CM/libGLES_CM.def index 0ada4dae6..faf6203a2 100644 --- a/src/GLES2/libGLES_CM/libGLES_CM.def +++ b/src/GLES2/libGLES_CM/libGLES_CM.def @@ -148,7 +148,6 @@ EXPORTS ; EGL dependencies glCreateContext @144 glMakeCurrent @146 - glGetCurrentContext @147 glGetProcAddress @148 glBindTexImage @158 diff --git a/src/GLES2/libGLESv2/Context.cpp b/src/GLES2/libGLESv2/Context.cpp index 0fb562645..c775e81bb 100644 --- a/src/GLES2/libGLESv2/Context.cpp +++ b/src/GLES2/libGLESv2/Context.cpp @@ -3044,9 +3044,4 @@ extern "C" { gl::makeCurrent(context, display, surface); } - - gl::Context *glGetCurrentContext() - { - return gl::getContext(); - } } diff --git a/src/GLES2/libGLESv2/libGLESv2.def b/src/GLES2/libGLESv2/libGLESv2.def index 129dd46ad..c6dfa6ef0 100644 --- a/src/GLES2/libGLESv2/libGLESv2.def +++ b/src/GLES2/libGLESv2/libGLESv2.def @@ -171,7 +171,6 @@ EXPORTS ; EGL dependencies glCreateContext @144 glMakeCurrent @146 - glGetCurrentContext @147 glGetProcAddress @148 glBindTexImage @158