From 729e1b33920e577d942cd0ffa84b1c5e710e8dd4 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Tue, 7 Jul 2020 00:59:49 +1000 Subject: [PATCH] GLContext: Fix Android context creation --- src/common/CMakeLists.txt | 2 +- src/common/gl/context.cpp | 2 ++ src/common/gl/context_egl.h | 1 - src/common/gl/context_egl_android.cpp | 13 +++++++------ src/common/gl/context_egl_android.h | 6 ------ 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 513525b6b..74d73722b 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -135,7 +135,7 @@ if(USE_EGL) ) target_compile_definitions(common PRIVATE "-DUSE_EGL=1") - if(SUPPORTS_X11) + if(USE_X11) target_sources(common PRIVATE gl/context_egl_x11.cpp gl/context_egl_x11.h diff --git a/src/common/gl/context.cpp b/src/common/gl/context.cpp index 2548d722f..20c65b760 100644 --- a/src/common/gl/context.cpp +++ b/src/common/gl/context.cpp @@ -74,6 +74,8 @@ std::unique_ptr Context::Create(const WindowInfo& wi, const Version context = ContextWGL::Create(wi, versions_to_try, num_versions_to_try); #elif defined(__APPLE__) context = ContextAGL::Create(wi, versions_to_try, num_versions_to_try); +#elif defined(ANDROID) + context = ContextEGLAndroid::Create(wi, versions_to_try, num_versions_to_try); #else if (wi.type == WindowInfo::Type::X11) { diff --git a/src/common/gl/context_egl.h b/src/common/gl/context_egl.h index d70752328..d2a2e2042 100644 --- a/src/common/gl/context_egl.h +++ b/src/common/gl/context_egl.h @@ -1,7 +1,6 @@ #pragma once #include "context.h" #include "glad_egl.h" -#include "x11_window.h" namespace GL { diff --git a/src/common/gl/context_egl_android.cpp b/src/common/gl/context_egl_android.cpp index fdd146641..daf7b23cb 100644 --- a/src/common/gl/context_egl_android.cpp +++ b/src/common/gl/context_egl_android.cpp @@ -1,10 +1,11 @@ #include "context_egl_android.h" #include "../log.h" +#include Log_SetChannel(GL::ContextEGLAndroid); namespace GL { -ContextEGLX11::ContextEGLAndroid(const WindowInfo& wi) : ContextEGL(wi) {} -ContextEGLX11::~ContextEGLAndroid() = default; +ContextEGLAndroid::ContextEGLAndroid(const WindowInfo& wi) : ContextEGL(wi) {} +ContextEGLAndroid::~ContextEGLAndroid() = default; std::unique_ptr ContextEGLAndroid::Create(const WindowInfo& wi, const Version* versions_to_try, size_t num_versions_to_try) @@ -29,16 +30,16 @@ std::unique_ptr ContextEGLAndroid::CreateSharedContext(const WindowInfo EGLNativeWindowType ContextEGLAndroid::GetNativeWindow(EGLConfig config) { - X11InhibitErrors ei; - EGLint native_visual_id = 0; if (!eglGetConfigAttrib(m_display, m_config, EGL_NATIVE_VISUAL_ID, &native_visual_id)) { - Log_ErrorPrintf("Failed to get X11 visual ID"); - return false; + Log_ErrorPrintf("Failed to get native visual ID"); + return 0; } ANativeWindow_setBuffersGeometry(static_cast(m_wi.window_handle), 0, 0, static_cast(native_visual_id)); + m_wi.surface_width = ANativeWindow_getWidth(static_cast(m_wi.window_handle)); + m_wi.surface_height = ANativeWindow_getHeight(static_cast(m_wi.window_handle)); return static_cast(m_wi.window_handle); } } // namespace GL diff --git a/src/common/gl/context_egl_android.h b/src/common/gl/context_egl_android.h index cb452c9b0..1b2de02eb 100644 --- a/src/common/gl/context_egl_android.h +++ b/src/common/gl/context_egl_android.h @@ -1,6 +1,5 @@ #pragma once #include "context_egl.h" -#include "x11_window.h" namespace GL { @@ -17,11 +16,6 @@ public: protected: EGLNativeWindowType GetNativeWindow(EGLConfig config) override; - -private: - ALWAYS_INLINE Display* GetDisplay() const { return static_cast(m_wi.display_connection); } - - X11Window m_window; }; } // namespace GL