(view as text)
diff --git a/Source/Core/DolphinWX/Src/GLInterface.cpp b/Source/Core/DolphinWX/Src/GLInterface.cpp
index 75afed5..40bbf1d 100644
--- a/Source/Core/DolphinWX/Src/GLInterface.cpp
+++ b/Source/Core/DolphinWX/Src/GLInterface.cpp
@@ -3,6 +3,7 @@
 // Refer to the license.txt file included.
 
 #include "GLInterface.h"
+#include "GLInterface/InterfaceBase.h"
 
 GLWindow GLWin;
 cInterfaceBase *GLInterface;
diff --git a/Source/Core/DolphinWX/Src/GLInterface.h b/Source/Core/DolphinWX/Src/GLInterface.h
index 0966ed0..688438b 100644
--- a/Source/Core/DolphinWX/Src/GLInterface.h
+++ b/Source/Core/DolphinWX/Src/GLInterface.h
@@ -5,48 +5,41 @@
 #ifndef _GLINTERFACE_H_
 #define _GLINTERFACE_H_
 
-#include "GLInterface/InterfaceBase.h"
+#include "VideoCommon.h"
 
-#if USE_EGL
-#include "GLInterface/Platform.h"
+#if USE_GLES
+#ifdef USE_GLES3
+#include <GLES3/gl3.h>
 #else
-
-#include "Thread.h"
-#ifdef ANDROID
 #include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-#include <EGL/egl.h>
-#include "GLInterface/EGL.h"
-#elif defined(USE_EGL) && USE_EGL
-#include "GLInterface/EGL.h"
-#elif defined(__APPLE__)
-#include "GLInterface/AGL.h"
-#elif defined(_WIN32)
-#include "GLInterface/WGL.h"
-#elif defined(HAVE_X11) && HAVE_X11
-#include "GLInterface/GLX.h"
-#else
-#error Platform doesnt have a GLInterface
 #endif
-
-typedef struct {
-#if defined(HAVE_X11) && HAVE_X11
-	int screen;
-	Window win;
-	Window parent;
-	// dpy used for glx stuff, evdpy for window events etc.
-	// evdpy is to be used by XEventThread only
-	Display *evdpy;
-	XVisualInfo *vi;
-	int x, y;
-	unsigned int width, height;
+#else
+#include <GL/glew.h>
 #endif
-} GLWindow;
 
-#endif
+class cInterfaceBase
+{
+protected:
+	// Window dimensions.
+	u32 s_backbuffer_width;
+	u32 s_backbuffer_height;
+public:
+	virtual void Swap() {}
+	virtual void UpdateFPSDisplay(const char *Text) {}
+	virtual bool Create(void *&window_handle) { return true; }
+	virtual bool MakeCurrent() { return true; }
+	virtual bool ClearCurrent() { return true; }
+	virtual void Shutdown() {}
+
+	virtual void SwapInterval(int Interval) { }
+	virtual u32 GetBackBufferWidth() { return s_backbuffer_width; }
+	virtual u32 GetBackBufferHeight() { return s_backbuffer_height; }
+	virtual void SetBackBufferDimensions(u32 W, u32 H) {s_backbuffer_width = W; s_backbuffer_height = H; }
+	virtual void Update() { }
+	virtual bool PeekMessages() { return false; }
+};
 
 extern cInterfaceBase *GLInterface;
-extern GLWindow GLWin;
 
 void InitInterface();
 
diff --git a/Source/Core/DolphinWX/Src/GLInterface/InterfaceBase.h b/Source/Core/DolphinWX/Src/GLInterface/InterfaceBase.h
index b69d9fe..2319a16 100644
--- a/Source/Core/DolphinWX/Src/GLInterface/InterfaceBase.h
+++ b/Source/Core/DolphinWX/Src/GLInterface/InterfaceBase.h
@@ -4,25 +4,47 @@
 
 #ifndef _GLINTERFACEBASE_H_
 #define _GLINTERFACEBASE_H_
-class cInterfaceBase
-{
-protected:
-	// Window dimensions.
-	u32 s_backbuffer_width;
-	u32 s_backbuffer_height;
-public:
-	virtual void Swap() {}
-	virtual void UpdateFPSDisplay(const char *Text) {}
-	virtual bool Create(void *&window_handle) { return true; }
-	virtual bool MakeCurrent() { return true; }
-	virtual bool ClearCurrent() { return true; }
-	virtual void Shutdown() {}
-
-	virtual void SwapInterval(int Interval) { }
-	virtual u32 GetBackBufferWidth() { return s_backbuffer_width; }
-	virtual u32 GetBackBufferHeight() { return s_backbuffer_height; }
-	virtual void SetBackBufferDimensions(u32 W, u32 H) {s_backbuffer_width = W; s_backbuffer_height = H; }
-	virtual void Update() { }
-	virtual bool PeekMessages() { return false; }
-};
+
+#include "GLInterface.h"
+
+#if USE_EGL
+#include "GLInterface/Platform.h"
+#else
+
+#include "Thread.h"
+#ifdef ANDROID
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+#include <EGL/egl.h>
+#include "GLInterface/EGL.h"
+#elif defined(USE_EGL) && USE_EGL
+#include "GLInterface/EGL.h"
+#elif defined(__APPLE__)
+#include "GLInterface/AGL.h"
+#elif defined(_WIN32)
+#include "GLInterface/WGL.h"
+#elif defined(HAVE_X11) && HAVE_X11
+#include "GLInterface/GLX.h"
+#else
+#error Platform doesnt have a GLInterface
+#endif
+
+typedef struct {
+#if defined(HAVE_X11) && HAVE_X11
+	int screen;
+	Window win;
+	Window parent;
+	// dpy used for glx stuff, evdpy for window events etc.
+	// evdpy is to be used by XEventThread only
+	Display *evdpy;
+	XVisualInfo *vi;
+	int x, y;
+	unsigned int width, height;
+#endif
+} GLWindow;
+
+#endif
+
+extern GLWindow GLWin;
+
 #endif
diff --git a/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp b/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp
index 6724381..f3229c4 100644
--- a/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp
+++ b/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp
@@ -17,7 +17,8 @@
 
 #include "Host.h"
 #include "VideoConfig.h"
-#include "../GLInterface.h"
+#include "GLInterface.h"
+#include "GLInterface/InterfaceBase.h"
 
 #if USE_EGL
 bool cXInterface::ServerConnect(void)