Refactor using concrete EGL object pointers.
Bug 20045861
Change-Id: I3dc737b5cc5759e487245030bfd8d871eacd8124
Reviewed-on: https://swiftshader-review.googlesource.com/2793
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libEGL/Display.cpp b/src/OpenGL/libEGL/Display.cpp
index c3b1824..097d913 100644
--- a/src/OpenGL/libEGL/Display.cpp
+++ b/src/OpenGL/libEGL/Display.cpp
@@ -192,7 +192,7 @@
if(this == getCurrentDisplay())
{
- setCurrentDisplay(EGL_NO_DISPLAY);
+ setCurrentDisplay(nullptr);
}
}
@@ -442,12 +442,12 @@
if(surface == getCurrentDrawSurface())
{
- setCurrentDrawSurface(EGL_NO_SURFACE);
+ setCurrentDrawSurface(nullptr);
}
if(surface == getCurrentReadSurface())
{
- setCurrentReadSurface(EGL_NO_SURFACE);
+ setCurrentReadSurface(nullptr);
}
}
@@ -458,9 +458,9 @@
if(context == getCurrentContext())
{
- setCurrentContext(EGL_NO_CONTEXT);
- setCurrentDrawSurface(EGL_NO_SURFACE);
- setCurrentReadSurface(EGL_NO_SURFACE);
+ setCurrentContext(nullptr);
+ setCurrentDrawSurface(nullptr);
+ setCurrentReadSurface(nullptr);
}
}
diff --git a/src/OpenGL/libEGL/libEGL.cpp b/src/OpenGL/libEGL/libEGL.cpp
index b053c94..1e2a70c 100644
--- a/src/OpenGL/libEGL/libEGL.cpp
+++ b/src/OpenGL/libEGL/libEGL.cpp
@@ -668,6 +668,8 @@
egl::Display *display = static_cast<egl::Display*>(dpy);
egl::Context *context = static_cast<egl::Context*>(ctx);
+ egl::Surface *drawSurface = static_cast<egl::Surface*>(draw);
+ egl::Surface *readSurface = static_cast<egl::Surface*>(read);
if(ctx != EGL_NO_CONTEXT || draw != EGL_NO_SURFACE || read != EGL_NO_SURFACE)
{
@@ -687,8 +689,8 @@
return EGL_FALSE;
}
- if((draw != EGL_NO_SURFACE && !validateSurface(display, static_cast<egl::Surface*>(draw))) ||
- (read != EGL_NO_SURFACE && !validateSurface(display, static_cast<egl::Surface*>(read))))
+ if((draw != EGL_NO_SURFACE && !validateSurface(display, drawSurface)) ||
+ (read != EGL_NO_SURFACE && !validateSurface(display, readSurface)))
{
return EGL_FALSE;
}
@@ -703,14 +705,14 @@
UNIMPLEMENTED(); // FIXME
}
- egl::setCurrentDisplay(dpy);
- egl::setCurrentDrawSurface(draw);
- egl::setCurrentReadSurface(read);
- egl::setCurrentContext(ctx);
+ egl::setCurrentDisplay(display);
+ egl::setCurrentDrawSurface(drawSurface);
+ egl::setCurrentReadSurface(readSurface);
+ egl::setCurrentContext(context);
if(context)
{
- context->makeCurrent(static_cast<egl::Surface*>(draw));
+ context->makeCurrent(drawSurface);
}
return success(EGL_TRUE);
diff --git a/src/OpenGL/libEGL/main.cpp b/src/OpenGL/libEGL/main.cpp
index 111d417..33facde 100644
--- a/src/OpenGL/libEGL/main.cpp
+++ b/src/OpenGL/libEGL/main.cpp
@@ -40,10 +40,10 @@
current->error = EGL_SUCCESS;
current->API = EGL_OPENGL_ES_API;
- current->display = EGL_NO_DISPLAY;
- current->drawSurface = EGL_NO_SURFACE;
- current->readSurface = EGL_NO_SURFACE;
- current->context = EGL_NO_CONTEXT;
+ current->display = nullptr;
+ current->context = nullptr;
+ current->drawSurface = nullptr;
+ current->readSurface = nullptr;
}
}
@@ -241,56 +241,56 @@
return current->API;
}
-void setCurrentDisplay(EGLDisplay dpy)
+void setCurrentDisplay(egl::Display *dpy)
{
Current *current = eglGetCurrent();
current->display = dpy;
}
-EGLDisplay getCurrentDisplay()
+egl::Display *getCurrentDisplay()
{
Current *current = eglGetCurrent();
return current->display;
}
-void setCurrentContext(EGLContext ctx)
+void setCurrentContext(egl::Context *ctx)
{
Current *current = eglGetCurrent();
current->context = ctx;
}
-EGLContext getCurrentContext()
+egl::Context *getCurrentContext()
{
Current *current = eglGetCurrent();
return current->context;
}
-void setCurrentDrawSurface(EGLSurface surface)
+void setCurrentDrawSurface(egl::Surface *surface)
{
Current *current = eglGetCurrent();
current->drawSurface = surface;
}
-EGLSurface getCurrentDrawSurface()
+egl::Surface *getCurrentDrawSurface()
{
Current *current = eglGetCurrent();
return current->drawSurface;
}
-void setCurrentReadSurface(EGLSurface surface)
+void setCurrentReadSurface(egl::Surface *surface)
{
Current *current = eglGetCurrent();
current->readSurface = surface;
}
-EGLSurface getCurrentReadSurface()
+egl::Surface *getCurrentReadSurface()
{
Current *current = eglGetCurrent();
diff --git a/src/OpenGL/libEGL/main.h b/src/OpenGL/libEGL/main.h
index f6d74d5..9758237 100644
--- a/src/OpenGL/libEGL/main.h
+++ b/src/OpenGL/libEGL/main.h
@@ -20,14 +20,18 @@
namespace egl
{
+ class Display;
+ class Context;
+ class Surface;
+
struct Current
{
EGLint error;
EGLenum API;
- EGLDisplay display;
- EGLContext context;
- EGLSurface drawSurface;
- EGLSurface readSurface;
+ Display *display;
+ Context *context;
+ Surface *drawSurface;
+ Surface *readSurface;
};
void setCurrentError(EGLint error);
@@ -36,17 +40,17 @@
void setCurrentAPI(EGLenum API);
EGLenum getCurrentAPI();
- void setCurrentDisplay(EGLDisplay dpy);
- EGLDisplay getCurrentDisplay();
+ void setCurrentDisplay(Display *dpy);
+ Display *getCurrentDisplay();
- void setCurrentContext(EGLContext ctx);
- EGLContext getCurrentContext();
+ void setCurrentContext(Context *ctx);
+ Context *getCurrentContext();
- void setCurrentDrawSurface(EGLSurface surface);
- EGLSurface getCurrentDrawSurface();
+ void setCurrentDrawSurface(Surface *surface);
+ Surface *getCurrentDrawSurface();
- void setCurrentReadSurface(EGLSurface surface);
- EGLSurface getCurrentReadSurface();
+ void setCurrentReadSurface(Surface *surface);
+ Surface *getCurrentReadSurface();
}
void error(EGLint errorCode);