From 9081defd46e2ca3da7629e2e4f15eedbf88c49df Mon Sep 17 00:00:00 2001 From: Gil Barbosa Reis Date: Sun, 7 Feb 2021 16:49:37 -0300 Subject: [PATCH] Fix initialize GLFW's Joystick subsystem before window is created on Desktop platforms (#1554) (#1572) --- src/core.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/core.c b/src/core.c index 1696c41e9..b21b27ca2 100644 --- a/src/core.c +++ b/src/core.c @@ -3329,6 +3329,20 @@ static bool InitGraphicsDevice(int width, int height) #endif } +#if defined(PLATFORM_DESKTOP) + // NOTE: GLFW 3.4+ defers initialization of the Joystick subsystem on the + // first call to any Joystick related functions. Forcing this + // initialization here avoids doing it on `PollInputEvents` called by + // `EndDrawing` after first frame has been just drawn. The initialization + // will still happen and possible delays still occur, but before the window + // is shown, which is a nicer experience. + // Ref: https://github.com/raysan5/raylib/issues/1554 + if (MAX_GAMEPADS > 0) + { + glfwSetJoystickCallback(NULL); + } +#endif // PLATFORM_DESKTOP + if (CORE.Window.fullscreen) { // remember center for switchinging from fullscreen to window