|
|
@ -1258,8 +1258,18 @@ GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state) |
|
|
|
if (e->type == _GLFW_JOYSTICK_AXIS) |
|
|
|
if (e->type == _GLFW_JOYSTICK_AXIS) |
|
|
|
{ |
|
|
|
{ |
|
|
|
const float value = js->axes[e->index] * e->axisScale + e->axisOffset; |
|
|
|
const float value = js->axes[e->index] * e->axisScale + e->axisOffset; |
|
|
|
if (value > 0.f) |
|
|
|
// HACK: This should be baked into the value transform
|
|
|
|
state->buttons[i] = GLFW_PRESS; |
|
|
|
// TODO: Bake into transform when implementing output modifiers
|
|
|
|
|
|
|
|
if (e->axisScale < 0 || e->axisOffset < 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (value > 0.f) |
|
|
|
|
|
|
|
state->buttons[i] = GLFW_PRESS; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (value < 0.f) |
|
|
|
|
|
|
|
state->buttons[i] = GLFW_PRESS; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (e->type == _GLFW_JOYSTICK_HATBIT) |
|
|
|
else if (e->type == _GLFW_JOYSTICK_HATBIT) |
|
|
|
{ |
|
|
|
{ |
|
|
|