From 8962f2e5898890c5757d55fb103aa16b240ef90b Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Thu, 24 Jun 2021 16:19:23 +0200 Subject: [PATCH] [#60] Added support for multiple joysticks Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- src/vkcv/Window.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/vkcv/Window.cpp b/src/vkcv/Window.cpp index d2ba366c..03a58a23 100644 --- a/src/vkcv/Window.cpp +++ b/src/vkcv/Window.cpp @@ -81,7 +81,12 @@ namespace vkcv { } glfwPollEvents(); - onGamepadEvent(GLFW_JOYSTICK_1); + + for (int gamepadIndex = GLFW_JOYSTICK_1; gamepadIndex <= GLFW_JOYSTICK_LAST; gamepadIndex++) { + if (glfwJoystickPresent(gamepadIndex)) { + onGamepadEvent(gamepadIndex); + } + } for (auto glfwWindow : s_Windows) { auto window = static_cast<Window *>(glfwGetWindowUserPointer(glfwWindow)); @@ -152,7 +157,7 @@ namespace vkcv { activeWindowIndex *= (activeWindowIndex < s_Windows.size()); // fixes index getting out of bounds (e.g. if there is no focused window) auto window = static_cast<Window *>(glfwGetWindowUserPointer(s_Windows[activeWindowIndex])); - if (window != nullptr && glfwJoystickPresent(gamepadIndex)) { + if (window != nullptr) { window->e_gamepad(gamepadIndex); } } -- GitLab