Refactor process/thread attach/detach.
These functions looked too much like EGL entry functions.
Change-Id: I29dda78a34d3eb53aad002bec83ea7a77cfac1c8
Reviewed-on: https://swiftshader-review.googlesource.com/5580
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libEGL/main.cpp b/src/OpenGL/libEGL/main.cpp
index 6cae329..2479b4e 100644
--- a/src/OpenGL/libEGL/main.cpp
+++ b/src/OpenGL/libEGL/main.cpp
@@ -37,11 +37,13 @@
#define DESTRUCTOR
#endif
-static void eglAttachThread()
+namespace egl
+{
+void attachThread()
{
TRACE("()");
- egl::Current *current = new egl::Current;
+ Current *current = new Current;
if(current)
{
@@ -56,19 +58,14 @@
}
}
-static void eglDetachThread()
+void detachThread()
{
TRACE("()");
- egl::Current *current = (egl::Current*)sw::Thread::getLocalStorage(currentTLS);
-
- if(current)
- {
- delete current;
- }
+ delete (Current*)sw::Thread::getLocalStorage(currentTLS);
}
-CONSTRUCTOR static void eglAttachProcess()
+CONSTRUCTOR void attachProcess()
{
TRACE("()");
@@ -90,16 +87,17 @@
return;
}
- eglAttachThread();
+ attachThread();
}
-DESTRUCTOR static void eglDetachProcess()
+DESTRUCTOR void detachProcess()
{
TRACE("()");
- eglDetachThread();
+ detachThread();
sw::Thread::freeLocalStorageKey(currentTLS);
}
+}
#if defined(_WIN32)
static INT_PTR CALLBACK DebuggerWaitDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
@@ -147,16 +145,16 @@
#ifndef NDEBUG
WaitForDebugger(instance);
#endif
- eglAttachProcess();
+ egl::attachProcess();
break;
case DLL_THREAD_ATTACH:
- eglAttachThread();
+ egl::attachThread();
break;
case DLL_THREAD_DETACH:
- eglDetachThread();
+ egl::detachThread();
break;
case DLL_PROCESS_DETACH:
- eglDetachProcess();
+ egl::detachProcess();
break;
default:
break;
@@ -168,13 +166,13 @@
namespace egl
{
-static Current *eglGetCurrent(void)
+static Current *getCurrent(void)
{
Current *current = (Current*)sw::Thread::getLocalStorage(currentTLS);
if(!current)
{
- eglAttachThread();
+ attachThread();
}
return (Current*)sw::Thread::getLocalStorage(currentTLS);
@@ -182,49 +180,49 @@
void setCurrentError(EGLint error)
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
current->error = error;
}
EGLint getCurrentError()
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
return current->error;
}
void setCurrentAPI(EGLenum API)
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
current->API = API;
}
EGLenum getCurrentAPI()
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
return current->API;
}
void setCurrentDisplay(EGLDisplay dpy)
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
current->display = dpy;
}
EGLDisplay getCurrentDisplay()
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
return current->display;
}
void setCurrentContext(egl::Context *ctx)
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
if(ctx)
{
@@ -241,14 +239,14 @@
egl::Context *getCurrentContext()
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
return current->context;
}
void setCurrentDrawSurface(egl::Surface *surface)
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
if(surface)
{
@@ -265,14 +263,14 @@
egl::Surface *getCurrentDrawSurface()
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
return current->drawSurface;
}
void setCurrentReadSurface(egl::Surface *surface)
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
if(surface)
{
@@ -289,7 +287,7 @@
egl::Surface *getCurrentReadSurface()
{
- Current *current = eglGetCurrent();
+ Current *current = getCurrent();
return current->readSurface;
}
diff --git a/src/OpenGL/libEGL/main.h b/src/OpenGL/libEGL/main.h
index f604a59..f3231f0 100644
--- a/src/OpenGL/libEGL/main.h
+++ b/src/OpenGL/libEGL/main.h
@@ -39,6 +39,8 @@
Surface *readSurface;
};
+ void detachThread();
+
void setCurrentError(EGLint error);
EGLint getCurrentError();