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__) #elif defined(__APPLE__)
#include "context_agl.h" #include "context_agl.h"
#else #else
#ifdef WAYLAND_ENABLED
#include "context_egl_wayland.h" #include "context_egl_wayland.h"
#endif
#include "context_egl_x11.h" #include "context_egl_x11.h"
#include "context_glx.h" #include "context_glx.h"
#endif #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); context = ContextGLX::Create(wi, versions_to_try, num_versions_to_try);
} }
#ifdef WAYLAND_ENABLED
if (wi.type == WindowInfo::Type::Wayland) if (wi.type == WindowInfo::Type::Wayland)
context = ContextEGLWayland::Create(wi, versions_to_try, num_versions_to_try); context = ContextEGLWayland::Create(wi, versions_to_try, num_versions_to_try);
#endif
#endif #endif
if (!context) if (!context)

View File

@ -14,11 +14,11 @@ set(SOURCES_QT_SDL
InputConfig/MapButton.h InputConfig/MapButton.h
InputConfig/resources/ds.qrc InputConfig/resources/ds.qrc
VideoSettingsDialog.cpp VideoSettingsDialog.cpp
CameraSettingsDialog.cpp CameraSettingsDialog.cpp
AudioSettingsDialog.cpp AudioSettingsDialog.cpp
FirmwareSettingsDialog.cpp FirmwareSettingsDialog.cpp
PathSettingsDialog.cpp PathSettingsDialog.cpp
MPSettingsDialog.cpp MPSettingsDialog.cpp
WifiSettingsDialog.cpp WifiSettingsDialog.cpp
InterfaceSettingsDialog.cpp InterfaceSettingsDialog.cpp
ROMInfoDialog.cpp ROMInfoDialog.cpp
@ -27,15 +27,15 @@ set(SOURCES_QT_SDL
Input.cpp Input.cpp
LAN_PCap.cpp LAN_PCap.cpp
LAN_Socket.cpp LAN_Socket.cpp
LocalMP.cpp LocalMP.cpp
OSD.cpp OSD.cpp
OSD_shaders.h OSD_shaders.h
font.h font.h
Platform.cpp Platform.cpp
QPathInput.h QPathInput.h
ROMManager.cpp ROMManager.cpp
SaveManager.cpp SaveManager.cpp
CameraManager.cpp CameraManager.cpp
ArchiveUtil.h ArchiveUtil.h
ArchiveUtil.cpp ArchiveUtil.cpp
@ -106,20 +106,30 @@ elseif (APPLE)
../duckstation/gl/context_agl.mm ../duckstation/gl/context_agl.mm
) )
else() else()
# 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(X11 REQUIRED)
find_package(EGL REQUIRED) find_package(EGL REQUIRED)
find_package(Wayland REQUIRED Client)
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(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 target_sources(melonDS PRIVATE
../duckstation/gl/context_egl.cpp ../duckstation/gl/context_egl.cpp
../duckstation/gl/context_egl_x11.cpp ../duckstation/gl/context_egl_x11.cpp
../duckstation/gl/context_glx.cpp ../duckstation/gl/context_glx.cpp
../duckstation/gl/context_egl_wayland.cpp
../duckstation/gl/x11_window.cpp ../duckstation/gl/x11_window.cpp
../glad/glad_egl.c ../glad/glad_egl.c