From 576c558759aa84df7b30ee29ca55143719d73028 Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Tue, 17 Sep 2024 20:03:03 +0300 Subject: Xcode16 build fix --- indra/llwindow/llwindowmacosx.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 80001b14ee..cc88268c67 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -1040,7 +1040,7 @@ F32 LLWindowMacOSX::getGamma() &greenGamma, &blueMin, &blueMax, - &blueGamma) == noErr) + &blueGamma) == static_cast(noErr)) { // So many choices... // Let's just return the green channel gamma for now. @@ -1091,7 +1091,7 @@ bool LLWindowMacOSX::setGamma(const F32 gamma) &greenGamma, &blueMin, &blueMax, - &blueGamma) != noErr) + &blueGamma) != static_cast(noErr)) { return false; } @@ -1106,7 +1106,7 @@ bool LLWindowMacOSX::setGamma(const F32 gamma) gamma, blueMin, blueMax, - gamma) != noErr) + gamma) != static_cast(noErr)) { return false; } @@ -1158,7 +1158,7 @@ bool LLWindowMacOSX::setCursorPosition(const LLCoordWindow position) newPosition.y = screen_pos.mY; CGSetLocalEventsSuppressionInterval(0.0); - if(CGWarpMouseCursorPosition(newPosition) == noErr) + if(CGWarpMouseCursorPosition(newPosition) == static_cast(noErr)) { result = true; } -- cgit v1.2.3 From 8ce04ba92a4821e935b672451abf92df8c8f997d Mon Sep 17 00:00:00 2001 From: Ansariel Hiller Date: Sun, 13 Oct 2024 08:09:51 +0200 Subject: Remove traces of FLTK (#2834) --- indra/llwindow/llwindowsdl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index f87a00c34b..9d736a9970 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -1369,7 +1369,7 @@ void LLWindowSDL::processMiscNativeEvents() void LLWindowSDL::gatherInput(bool app_has_focus) { - SDL_Event event; + SDL_Event event; // Handle all outstanding SDL events while (SDL_PollEvent(&event)) -- cgit v1.2.3 From 43beabd0c7ef22e9c814124916c2f193624834e7 Mon Sep 17 00:00:00 2001 From: AiraYumi Date: Thu, 17 Oct 2024 01:44:31 +0900 Subject: Remove dependency on libwayland-dev (#2865) --- indra/llwindow/llsdl.cpp | 1 + indra/llwindow/llwindowsdl.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llsdl.cpp b/indra/llwindow/llsdl.cpp index 6161bd2972..3f7992a1d7 100644 --- a/indra/llwindow/llsdl.cpp +++ b/indra/llwindow/llsdl.cpp @@ -56,6 +56,7 @@ void init_sdl() std::initializer_list > hintList = { {SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR,"0"}, + {SDL_HINT_VIDEODRIVER,"wayland,x11"}, {SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH,"1"}, {SDL_HINT_IME_INTERNAL_EDITING,"1"} }; diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 9d736a9970..4793ab4fc7 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -147,7 +147,7 @@ struct wl_proxy* (*ll_wl_proxy_marshal_flags)(struct wl_proxy *proxy, uint32_t o bool loadWaylandClient() { - auto *pSO = dlopen( "libwayland-client.so", RTLD_NOW); + auto *pSO = dlopen( "libwayland-client.so.0", RTLD_NOW); if( !pSO ) return false; @@ -506,6 +506,7 @@ bool LLWindowSDL::createContext(int x, int y, int width, int height, int bits, b /* Save the information for later use */ if ( info.subsystem == SDL_SYSWM_X11 ) { + SDL_SetHint(SDL_HINT_VIDEODRIVER, "x11"); mX11Data.mDisplay = info.info.x11.display; mX11Data.mXWindowID = info.info.x11.window; mServerProtocol = X11; @@ -514,8 +515,12 @@ bool LLWindowSDL::createContext(int x, int y, int width, int height, int bits, b else if ( info.subsystem == SDL_SYSWM_WAYLAND ) { #ifdef LL_WAYLAND - if( !loadWaylandClient() ) + if( !loadWaylandClient() ) { + SDL_SetHint(SDL_HINT_VIDEODRIVER, "x11"); LL_ERRS() << "Failed to load wayland-client.so or grab required functions" << LL_ENDL; + } else { + SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland"); + } mWaylandData.mSurface = info.info.wl.surface; mServerProtocol = Wayland; -- cgit v1.2.3 From 9927ac2561eaa4aed94bd82a90d006f614c6cf05 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:32:23 +0300 Subject: Resolve maint-c post merge shutdown issue (#2872) --- indra/llwindow/llwindowwin32.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index f8294f063f..6d8bbe281c 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -4576,11 +4576,9 @@ inline LLWindowWin32::LLWindowWin32Thread::LLWindowWin32Thread() void LLWindowWin32::LLWindowWin32Thread::close() { - if (!mQueue->isClosed()) + if (mWindowHandleThrd) { LL_WARNS() << "Closing window thread without using destroy_window_handler" << LL_ENDL; - LL::ThreadPool::close(); - // Workaround for SL-18721 in case window closes too early and abruptly LLSplashScreen::show(); LLSplashScreen::update("..."); // will be updated later -- cgit v1.2.3 From e4105bc8ca37af537cdd8da18c031ae8c0d6ae99 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 17 Oct 2024 17:58:04 +0300 Subject: Resolve maint-c post merge shutdown issue #2 --- indra/llwindow/llwindowwin32.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 6d8bbe281c..f349c4aea8 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -403,6 +403,7 @@ struct LLWindowWin32::LLWindowWin32Thread : public LL::ThreadPool // until after some graphics setup. See SL-20177. -Cosmic,2023-09-18 bool mGLReady = false; bool mGotGLBuffer = false; + bool mShuttingDown = false; }; @@ -4576,12 +4577,14 @@ inline LLWindowWin32::LLWindowWin32Thread::LLWindowWin32Thread() void LLWindowWin32::LLWindowWin32Thread::close() { - if (mWindowHandleThrd) + LL::ThreadPool::close(); + if (!mShuttingDown) { LL_WARNS() << "Closing window thread without using destroy_window_handler" << LL_ENDL; // Workaround for SL-18721 in case window closes too early and abruptly LLSplashScreen::show(); LLSplashScreen::update("..."); // will be updated later + mShuttingDown = true; } } @@ -4793,6 +4796,8 @@ void LLWindowWin32::LLWindowWin32Thread::wakeAndDestroy() return; } + mShuttingDown = true; + // Make sure we don't leave a blank toolbar button. // Also hiding window now prevents user from suspending it // via some action (like dragging it around) -- cgit v1.2.3 From f9dc4f40b8dc36b0436e8cf7412626f290743722 Mon Sep 17 00:00:00 2001 From: leviathan Date: Fri, 18 Oct 2024 10:26:53 -0700 Subject: temporary workaround for #2870: disable SDL2 on mac --- indra/llwindow/llgamecontrol.cpp | 8 ++++++++ indra/llwindow/llwindow.cpp | 4 ++++ 2 files changed, 12 insertions(+) (limited to 'indra/llwindow') diff --git a/indra/llwindow/llgamecontrol.cpp b/indra/llwindow/llgamecontrol.cpp index 9d3c854ca2..67847600e7 100644 --- a/indra/llwindow/llgamecontrol.cpp +++ b/indra/llwindow/llgamecontrol.cpp @@ -1530,6 +1530,9 @@ void LLGameControl::init(const std::string& gamecontrollerdb_path, llassert(saveObject); llassert(updateUI); +#ifndef LL_DARWIN + // SDL2 is temporarily disabled on Mac, so this needs to be a no-op on that platform + int result = SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER | SDL_INIT_SENSOR); if (result < 0) { @@ -1555,6 +1558,7 @@ void LLGameControl::init(const std::string& gamecontrollerdb_path, LL_INFOS("SDL2") << "Total " << count << " mappings added from " << gamecontrollerdb_path << LL_ENDL; } } +#endif // LL_DARWIN g_gameControl = LLGameControl::getInstance(); @@ -1614,6 +1618,9 @@ void LLGameControl::clearAllStates() // static void LLGameControl::processEvents(bool app_has_focus) { +#ifndef LL_DARWIN + // SDL2 is temporarily disabled on Mac, so this needs to be a no-op on that platform + // This method used by non-linux platforms which only use SDL for GameController input SDL_Event event; if (!app_has_focus) @@ -1631,6 +1638,7 @@ void LLGameControl::processEvents(bool app_has_focus) { handleEvent(event, app_has_focus); } +#endif // LL_DARWIN } void LLGameControl::handleEvent(const SDL_Event& event, bool app_has_focus) diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp index 93ac58ca6f..066d29c624 100644 --- a/indra/llwindow/llwindow.cpp +++ b/indra/llwindow/llwindow.cpp @@ -416,7 +416,11 @@ LLWindow* LLWindowManager::createWindow( if (use_gl) { +#ifndef LL_DARWIN + // SDL2 is temporarily disabled on Mac init_sdl(); +#endif + #if LL_WINDOWS new_window = new LLWindowWin32(callbacks, title, name, x, y, width, height, flags, -- cgit v1.2.3