Allow toggling Wayland support (#1654)

This commit is contained in:
DarkOK 2023-04-03 15:02:50 +01:00 committed by GitHub
parent 41b95b9c8f
commit 350292fb3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 12 deletions

View File

@ -15,7 +15,9 @@ Log_SetChannel(GL::Context);
#elif defined(__APPLE__)
#include "context_agl.h"
#else
#ifdef WAYLAND_ENABLED
#include "context_egl_wayland.h"
#endif
#include "context_egl_x11.h"
#include "context_glx.h"
#endif
@ -80,8 +82,10 @@ std::unique_ptr<GL::Context> Context::Create(const WindowInfo& wi, const Version
context = ContextGLX::Create(wi, versions_to_try, num_versions_to_try);
}
#ifdef WAYLAND_ENABLED
if (wi.type == WindowInfo::Type::Wayland)
context = ContextEGLWayland::Create(wi, versions_to_try, num_versions_to_try);
#endif
#endif
if (!context)

View File

@ -106,20 +106,30 @@ elseif (APPLE)
../duckstation/gl/context_agl.mm
)
else()
find_package(X11 REQUIRED)
find_package(EGL REQUIRED)
option(ENABLE_WAYLAND "Enable Wayland support" ON)
if (ENABLE_WAYLAND)
# we only need ECM for Wayland
# so we only require it from here
find_package(ECM REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}")
find_package(X11 REQUIRED)
find_package(EGL REQUIRED)
find_package(Wayland REQUIRED Client)
target_compile_definitions(melonDS PRIVATE WAYLAND_ENABLED)
target_sources(melonDS PRIVATE
../duckstation/gl/context_egl_wayland.cpp
)
endif()
target_sources(melonDS PRIVATE
../duckstation/gl/context_egl.cpp
../duckstation/gl/context_egl_x11.cpp
../duckstation/gl/context_glx.cpp
../duckstation/gl/context_egl_wayland.cpp
../duckstation/gl/x11_window.cpp
../glad/glad_egl.c