summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/GLInterface/Platform.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-08-05 20:33:50 -0400
committerJasper St. Pierre <jstpierre@mecheye.net>2014-08-19 10:05:56 -0400
commit8bd4b9d2f90ca62de609be3dd07564f70edc44ad (patch)
tree27af91b0e22e7ba85440ab4a3abff5f5fd925b72 /Source/Core/DolphinWX/GLInterface/Platform.cpp
parent355f7b366b572538791cd218d1c5d193147cf3ef (diff)
Remove support for Wayland
Yes, this is a fancy new feature, but our Wayland support was particularly bitrotten, and ideally this would be handled by a platform layer like SDL. If not, we can always add this back in when GLInterface has caught up. We might be able to even support wxWidgets and GL together with subsurfaces!
Diffstat (limited to 'Source/Core/DolphinWX/GLInterface/Platform.cpp')
-rw-r--r--Source/Core/DolphinWX/GLInterface/Platform.cpp177
1 files changed, 10 insertions, 167 deletions
diff --git a/Source/Core/DolphinWX/GLInterface/Platform.cpp b/Source/Core/DolphinWX/GLInterface/Platform.cpp
index 86b12858dc..cdd78e973d 100644
--- a/Source/Core/DolphinWX/GLInterface/Platform.cpp
+++ b/Source/Core/DolphinWX/GLInterface/Platform.cpp
@@ -6,130 +6,12 @@
#include "Core/Host.h"
#include "DolphinWX/GLInterface/GLInterface.h"
-bool cPlatform::SelectDisplay(void)
-{
- enum egl_platform selected_platform = EGL_PLATFORM_NONE;
- enum egl_platform desired_platform = EGL_PLATFORM_NONE;
- char *platform_env = getenv("DOLPHIN_EGL_PLATFORM");
-
- if (platform_env)
- platform_env = strdup(platform_env);
-
- if (!platform_env)
- printf("Running automatic platform detection\n");
-
- // Try to select the platform set in the environment variable first
-#if HAVE_WAYLAND
- bool wayland_possible = WaylandInterface.ServerConnect();
-
- if (platform_env && !strcmp(platform_env, "wayland"))
- {
- desired_platform = EGL_PLATFORM_WAYLAND;
- if (wayland_possible)
- selected_platform = EGL_PLATFORM_WAYLAND;
- else
- printf("Wayland display server connection failed\n");
- }
-#endif
-
-#if HAVE_X11
- bool x11_possible = XInterface.ServerConnect();
-
- if (platform_env && !strcmp(platform_env, "x11"))
- {
- desired_platform = EGL_PLATFORM_X11;
- if ((selected_platform != EGL_PLATFORM_WAYLAND) && x11_possible)
- selected_platform = EGL_PLATFORM_X11;
- else
- printf("X11 display server connection failed\n");
- }
-#endif
- // Fall back to automatic detection
- if (selected_platform == EGL_PLATFORM_NONE)
- {
- if (platform_env && (desired_platform == EGL_PLATFORM_NONE)) {
- printf("DOLPHIN_EGL_PLATFORM set to unrecognized platform \"%s\".\n"
-#if HAVE_WAYLAND && !HAVE_X11
- "Note: Valid value is \"wayland\" (built without x11 support)\n",
-#endif
-#if HAVE_X11 && !HAVE_WAYLAND
- "Note: Valid values is \"x11\" (built without wayland support)\n",
-#endif
-#if HAVE_WAYLAND && HAVE_X11
- "Note: Valid values are \"wayland\" and \"x11\"\n",
-#endif
-#if !HAVE_WAYLAND && !HAVE_X11
- "Note: No Valid platform. Must be Android\n",
-#endif
- platform_env);
- free(platform_env);
- platform_env = nullptr;
- }
-#if HAVE_WAYLAND
- if (wayland_possible)
- {
- selected_platform = EGL_PLATFORM_WAYLAND;
- platform_env = strdup("wayland");
- }
-#endif
-#if HAVE_X11
- if ((selected_platform != EGL_PLATFORM_WAYLAND) && x11_possible)
- {
- selected_platform = EGL_PLATFORM_X11;
- platform_env = strdup("x11");
- }
-#endif
-#ifdef ANDROID
- selected_platform = EGL_PLATFORM_ANDROID;
-#endif
- if (selected_platform == EGL_PLATFORM_NONE)
- {
- printf("FATAL: Failed to find suitable platform for display connection\n");
- goto out;
- }
- }
-
- printf("Using EGL Native Display Platform: %s\n", platform_env);
-out:
- cPlatform::platform = selected_platform;
- free(platform_env);
-#if HAVE_WAYLAND
- if (selected_platform != EGL_PLATFORM_WAYLAND) {
- if (GLWin.wl_display)
- wl_display_disconnect(GLWin.wl_display);
- }
-
-#endif
-#if HAVE_X11
- if (selected_platform != EGL_PLATFORM_X11) {
- if (GLWin.dpy)
- {
- XCloseDisplay(GLWin.dpy);
- }
- }
-#endif
-#if ANDROID
- selected_platform = EGL_PLATFORM_ANDROID;
-#endif
- if (selected_platform == EGL_PLATFORM_NONE)
- return false;
-
- return true;
-}
-
bool cPlatform::Init(EGLConfig config, void *window_handle)
{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- if (!WaylandInterface.Initialize(config))
- return false;
-#endif
#if HAVE_X11
- if (cPlatform::platform == EGL_PLATFORM_X11)
- if (!XInterface.Initialize(config, window_handle))
- return false;
-#endif
-#ifdef ANDROID
+ if (!XInterface.Initialize(config, window_handle))
+ return false;
+#elif ANDROID
EGLint format;
eglGetConfigAttrib(GLWin.egl_dpy, config, EGL_NATIVE_VISUAL_ID, &format);
ANativeWindow_setBuffersGeometry((EGLNativeWindowType)Host_GetRenderHandle(), 0, 0, format);
@@ -142,15 +24,9 @@ bool cPlatform::Init(EGLConfig config, void *window_handle)
EGLDisplay cPlatform::EGLGetDisplay(void)
{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- return (EGLDisplay) WaylandInterface.EGLGetDisplay();
-#endif
#if HAVE_X11
- if (cPlatform::platform == EGL_PLATFORM_X11)
- return (EGLDisplay) XInterface.EGLGetDisplay();
-#endif
-#ifdef ANDROID
+ return (EGLDisplay) XInterface.EGLGetDisplay();
+#elif ANDROID
return eglGetDisplay(EGL_DEFAULT_DISPLAY);
#endif
return nullptr;
@@ -158,13 +34,8 @@ EGLDisplay cPlatform::EGLGetDisplay(void)
EGLNativeWindowType cPlatform::CreateWindow(void)
{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- return (EGLNativeWindowType) WaylandInterface.CreateWindow();
-#endif
#if HAVE_X11
- if (cPlatform::platform == EGL_PLATFORM_X11)
- return (EGLNativeWindowType) XInterface.CreateWindow();
+ return (EGLNativeWindowType) XInterface.CreateWindow();
#endif
#ifdef ANDROID
return (EGLNativeWindowType)Host_GetRenderHandle();
@@ -174,52 +45,24 @@ EGLNativeWindowType cPlatform::CreateWindow(void)
void cPlatform::DestroyWindow(void)
{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- WaylandInterface.DestroyWindow();
-#endif
#if HAVE_X11
- if (cPlatform::platform == EGL_PLATFORM_X11)
- XInterface.DestroyWindow();
+ XInterface.DestroyWindow();
#endif
}
void cPlatform::UpdateFPSDisplay(const std::string& text)
{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- WaylandInterface.UpdateFPSDisplay(text);
-#endif
-#if HAVE_X11
- if (cPlatform::platform == EGL_PLATFORM_X11)
- XInterface.UpdateFPSDisplay(text);
-#endif
-}
-
-void
-cPlatform::ToggleFullscreen(bool fullscreen)
-{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- WaylandInterface.ToggleFullscreen(fullscreen);
-#endif
#if HAVE_X11
- // Only wayland uses this function
+ XInterface.UpdateFPSDisplay(text);
#endif
}
void
cPlatform::SwapBuffers()
{
-#if HAVE_WAYLAND
- if (cPlatform::platform == EGL_PLATFORM_WAYLAND)
- WaylandInterface.SwapBuffers();
-#endif
#if HAVE_X11
- if (cPlatform::platform == EGL_PLATFORM_X11)
- XInterface.SwapBuffers();
-#endif
-#if ANDROID
+ XInterface.SwapBuffers();
+#elif ANDROID
eglSwapBuffers(GLWin.egl_dpy, GLWin.egl_surf);
#endif
}