From 55924a6b112435669458ddd1454f7ac691cb830e Mon Sep 17 00:00:00 2001 From: grbr404 <166065505+grbr404@users.noreply.github.com> Date: Thu, 29 May 2025 15:08:15 +0200 Subject: Check for Wayland to use it if the system uses it Check for Wayland to use it if the system uses it --- source/application/StarMainApplication_sdl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/application/StarMainApplication_sdl.cpp') diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index 941b344..953d3d8 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -282,6 +282,15 @@ public: if (!m_platformServices) Logger::info("Application: No platform services available"); +#ifdef STAR_SYSTEM_LINUX // Checks for Wayland and uses it if available, otherwise uses X11. + if (SDL_getenv("WAYLAND_DISPLAY") != nullptr) { + SDL_setenv("SDL_VIDEODRIVER", "wayland", 1); + Logger::info("Application: Using Wayland window system"); + } else { + SDL_setenv("SDL_VIDEODRIVER", "x11", 1); + Logger::info("Application: Using X11 window system"); + } + Logger::info("Application: Creating SDL Window"); m_sdlWindow = SDL_CreateWindow(m_windowTitle.utf8Ptr(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, m_windowSize[0], m_windowSize[1], SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); -- cgit v1.2.3 From 5218e9056f154bb3768869cbccc90d47cce217c5 Mon Sep 17 00:00:00 2001 From: grbr404 <166065505+grbr404@users.noreply.github.com> Date: Thu, 29 May 2025 15:45:13 +0200 Subject: forgot #endif --- source/application/StarMainApplication_sdl.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'source/application/StarMainApplication_sdl.cpp') diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index 953d3d8..6149864 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -290,6 +290,7 @@ public: SDL_setenv("SDL_VIDEODRIVER", "x11", 1); Logger::info("Application: Using X11 window system"); } +#endif Logger::info("Application: Creating SDL Window"); m_sdlWindow = SDL_CreateWindow(m_windowTitle.utf8Ptr(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, -- cgit v1.2.3 From 0ae1e2ababc2581ffc1fa6e64d7ec021f1063c06 Mon Sep 17 00:00:00 2001 From: grbr404 <166065505+grbr404@users.noreply.github.com> Date: Thu, 29 May 2025 17:34:04 +0200 Subject: changed check to be befor init video --- source/application/StarMainApplication_sdl.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'source/application/StarMainApplication_sdl.cpp') diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index 6149864..a53a433 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -257,7 +257,17 @@ public: } catch (std::exception const& e) { throw ApplicationException("Application threw exception during startup", e); } - + +#ifdef STAR_SYSTEM_LINUX // Checks for Wayland and uses it if available, otherwise uses X11. + if (SDL_getenv("WAYLAND_DISPLAY") != nullptr) { + SDL_setenv("SDL_VIDEODRIVER", "wayland", 1); + Logger::info("Application: Using Wayland window system"); + } else { + SDL_setenv("SDL_VIDEODRIVER", "x11", 1); + Logger::info("Application: Using X11 window system"); + } +#endif + Logger::info("Application: Initializing SDL Video"); if (SDL_InitSubSystem(SDL_INIT_VIDEO)) throw ApplicationException(strf("Couldn't initialize SDL Video: {}", SDL_GetError())); @@ -282,16 +292,6 @@ public: if (!m_platformServices) Logger::info("Application: No platform services available"); -#ifdef STAR_SYSTEM_LINUX // Checks for Wayland and uses it if available, otherwise uses X11. - if (SDL_getenv("WAYLAND_DISPLAY") != nullptr) { - SDL_setenv("SDL_VIDEODRIVER", "wayland", 1); - Logger::info("Application: Using Wayland window system"); - } else { - SDL_setenv("SDL_VIDEODRIVER", "x11", 1); - Logger::info("Application: Using X11 window system"); - } -#endif - Logger::info("Application: Creating SDL Window"); m_sdlWindow = SDL_CreateWindow(m_windowTitle.utf8Ptr(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, m_windowSize[0], m_windowSize[1], SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); -- cgit v1.2.3 From 53fd66e23c28f8088399dc9ef5c8ce5dee20df17 Mon Sep 17 00:00:00 2001 From: grbr404 <166065505+grbr404@users.noreply.github.com> Date: Thu, 29 May 2025 19:20:17 +0200 Subject: made the wayland/x11 check better --- source/application/StarMainApplication_sdl.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'source/application/StarMainApplication_sdl.cpp') diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index a53a433..c124d72 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -259,13 +259,14 @@ public: } #ifdef STAR_SYSTEM_LINUX // Checks for Wayland and uses it if available, otherwise uses X11. - if (SDL_getenv("WAYLAND_DISPLAY") != nullptr) { - SDL_setenv("SDL_VIDEODRIVER", "wayland", 1); - Logger::info("Application: Using Wayland window system"); - } else { - SDL_setenv("SDL_VIDEODRIVER", "x11", 1); - Logger::info("Application: Using X11 window system"); - } + if (SDL_getenv("SDL_VIDEODRIVER") == nullptr) { + if (SDL_getenv("WAYLAND_DISPLAY") != nullptr) { + SDL_setenv("SDL_VIDEODRIVER", "wayland", 1); + } else { + SDL_setenv("SDL_VIDEODRIVER", "x11", 1); + } + } + Logger::info("Application: using Windowing System '{}'", SDL_GetCurrentVideoDriver()); #endif Logger::info("Application: Initializing SDL Video"); -- cgit v1.2.3 From f0b6d6482cd3229b00da629b87f28e977e564910 Mon Sep 17 00:00:00 2001 From: grbr404 <166065505+grbr404@users.noreply.github.com> Date: Thu, 29 May 2025 21:01:25 +0200 Subject: Update StarMainApplication_sdl.cpp --- source/application/StarMainApplication_sdl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/application/StarMainApplication_sdl.cpp') diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index c124d72..6c7c5af 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -266,7 +266,7 @@ public: SDL_setenv("SDL_VIDEODRIVER", "x11", 1); } } - Logger::info("Application: using Windowing System '{}'", SDL_GetCurrentVideoDriver()); + #endif Logger::info("Application: Initializing SDL Video"); -- cgit v1.2.3 From 4c603d90b705e7f8e75b3a2726fa01d0c17b1bc5 Mon Sep 17 00:00:00 2001 From: grbr404 <166065505+grbr404@users.noreply.github.com> Date: Thu, 29 May 2025 21:25:58 +0200 Subject: I moved the logger as it can't return anything if placed before video initialization. --- source/application/StarMainApplication_sdl.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/application/StarMainApplication_sdl.cpp') diff --git a/source/application/StarMainApplication_sdl.cpp b/source/application/StarMainApplication_sdl.cpp index 6c7c5af..c43aba7 100644 --- a/source/application/StarMainApplication_sdl.cpp +++ b/source/application/StarMainApplication_sdl.cpp @@ -266,13 +266,14 @@ public: SDL_setenv("SDL_VIDEODRIVER", "x11", 1); } } - #endif Logger::info("Application: Initializing SDL Video"); if (SDL_InitSubSystem(SDL_INIT_VIDEO)) throw ApplicationException(strf("Couldn't initialize SDL Video: {}", SDL_GetError())); + Logger::info("Application: using Video Driver '{}'", SDL_GetCurrentVideoDriver()); + Logger::info("Application: Initializing SDL Controller"); if (SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER)) throw ApplicationException(strf("Couldn't initialize SDL Controller: {}", SDL_GetError())); -- cgit v1.2.3