diff --git a/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java b/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java index 31db5e34..445b6e11 100644 --- a/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java +++ b/imgui-lwjgl3/src/main/java/imgui/glfw/ImGuiImplGlfw.java @@ -1143,17 +1143,16 @@ protected void updateGamepads() { final MapAnalog mapAnalog; if (glfwHasGamepadApi) { - try (GLFWGamepadState gamepad = GLFWGamepadState.create()) { - if (!glfwGetGamepadState(GLFW_JOYSTICK_1, gamepad)) { - return; - } - mapButton = (keyNo, buttonNo, _unused) -> io.addKeyEvent(keyNo, gamepad.buttons(buttonNo) != 0); - mapAnalog = (keyNo, axisNo, _unused, v0, v1) -> { - float v = gamepad.axes(axisNo); - v = (v - v0) / (v1 - v0); - io.addKeyAnalogEvent(keyNo, v > 0.10f, saturate(v)); - }; + GLFWGamepadState gamepad = GLFWGamepadState.create(); + if (!glfwGetGamepadState(GLFW_JOYSTICK_1, gamepad)) { + return; } + mapButton = (keyNo, buttonNo, _unused) -> io.addKeyEvent(keyNo, gamepad.buttons(buttonNo) != 0); + mapAnalog = (keyNo, axisNo, _unused, v0, v1) -> { + float v = gamepad.axes(axisNo); + v = (v - v0) / (v1 - v0); + io.addKeyAnalogEvent(keyNo, v > 0.10f, saturate(v)); + }; } else { final FloatBuffer axes = glfwGetJoystickAxes(GLFW_JOYSTICK_1); final ByteBuffer buttons = glfwGetJoystickButtons(GLFW_JOYSTICK_1);