mirror of
https://github.com/glfw/glfw.git
synced 2024-11-14 18:34:34 +00:00
Update docs, readme, news, and contributors
This commit is contained in:
parent
a4c3492a03
commit
b9acd9d45f
@ -294,6 +294,9 @@ video tutorials.
|
||||
- Jonas Ådahl
|
||||
- Lasse Öörni
|
||||
- Leonard König
|
||||
- Beoran
|
||||
- Enthuin
|
||||
- Narrik Synthfox
|
||||
- All the unmentioned and anonymous contributors in the GLFW community, for bug
|
||||
reports, patches, feedback, testing and encouragement
|
||||
|
||||
|
@ -129,7 +129,7 @@ information on what to include when reporting a bug.
|
||||
- [Null] Added EGL context creation on Mesa via `EGL_MESA_platform_surfaceless`
|
||||
- [EGL] Allowed native access on Wayland with `GLFW_CONTEXT_CREATION_API` set to
|
||||
`GLFW_NATIVE_CONTEXT_API` (#2518)
|
||||
|
||||
- Added `GLFWgamepadstatefun`, `glfwSetGamepadStateCallback`, `GLFWjoystickbuttonfun`,`glfwSetJoystickButtonCallback`, `GLFWjoystickaxisfun`, `glfwSetJoystickAxisCallback`, `GLFWjoystickhatfun`, and `glfwSetJoystickHatCallback` for event-based joystick/gamepad input.
|
||||
|
||||
## Contact
|
||||
|
||||
|
@ -911,6 +911,85 @@ righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,
|
||||
were recently added to SDL. The input modifiers `+`, `-` and `~` are supported
|
||||
and described above.
|
||||
|
||||
### Event-based joystick and gamepad input {#joystick_input_event}
|
||||
|
||||
If you wish to be notified when a button on a joystick is pressed or released, set a joystick button callback.
|
||||
|
||||
```c
|
||||
glfwSetJoystickButtonCallback(joystick_button_callback);
|
||||
```
|
||||
|
||||
The callback function receives the joystick id, the [joystick button](@ref joystick_button) that was pressed or released, and action.
|
||||
|
||||
```c
|
||||
void joystick_button_callback(int jid, int button, int action)
|
||||
{
|
||||
if (button == 0 && action == GLFW_PRESS)
|
||||
jump();
|
||||
}
|
||||
```
|
||||
|
||||
The action is one of `GLFW_PRESS` or `GLFW_RELEASE`
|
||||
|
||||
If you wish to be notified when an axis on a joystick is moved, set a joystick axis callback.
|
||||
|
||||
```c
|
||||
glfwSetJoystickAxisCallback(joystick_axis_callback);
|
||||
```
|
||||
|
||||
The callback function receives the joystick id, [joystick axis](@ref joystick_axis) that was moved, and float value from -1.0 to 1.0 for the axis.
|
||||
|
||||
```c
|
||||
void joystick_axis_callback(int jid, int axis, float value)
|
||||
{
|
||||
if (axis == 0){
|
||||
if(value == -1.0f)
|
||||
move_left();
|
||||
else if(value == 1.0f)
|
||||
move_right();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
If you wish to be notified when a hat on a joystick is moved, set a joystick hat callback.
|
||||
|
||||
```c
|
||||
glfwSetJoystickHatCallback(joystick_hat_callback);
|
||||
```
|
||||
|
||||
The callback function receives the joystick id, hat, and the [hat states](@ref hat_state).
|
||||
|
||||
```c
|
||||
void joystick_hat_callback(int jid, int hat, int position)
|
||||
{
|
||||
if(hat == 0 && position == GLFW_HAT_UP)
|
||||
move_up();
|
||||
}
|
||||
```
|
||||
|
||||
If you wish to be notified when the state of a gamepad is updated, set a gamepad state callback. This callback will occur every time any button, axis, or hat updates, so with this, you will have to handle checks for if a value is changed.
|
||||
|
||||
```c
|
||||
glfwSetGamepadStateCallback(gamepad_state_callback);
|
||||
```
|
||||
|
||||
The callback function recieves the joystick id and the gamepad state.
|
||||
|
||||
```c
|
||||
bool jumpButtonHeld = false;
|
||||
|
||||
gamepad_state_callback(int jid, GLFWgamepadstate state){
|
||||
if (state.buttons[GLFW_GAMEPAD_BUTTON_A] && !jumpButtonHeld)
|
||||
{
|
||||
input_jump();
|
||||
jumpButtonHeld = true;
|
||||
}
|
||||
else if (!state.buttons[GLFW_GAMEPAD_BUTTON_A] && jumpButtonHeld)
|
||||
{
|
||||
jumpButtonHeld = false;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Time input {#time}
|
||||
|
||||
|
15
docs/news.md
15
docs/news.md
@ -14,6 +14,11 @@ values over 8. For compatibility with older versions, the
|
||||
@ref GLFW_UNLIMITED_MOUSE_BUTTONS input mode needs to be set to make use of
|
||||
this.
|
||||
|
||||
### Callback functions for gamepad state, joystick buttons, joystick axes, and joystick hat inputs {#joystick_input_callbacks}
|
||||
|
||||
GLFW now has callback functions for [gamepad state](@ref glfwSetGamepadStateCallback), [joystick buttons](@ref glfwSetJoystickButtonCallback), [joystick axes](@ref glfwSetJoystickAxisCallback), and [joystick hats](@ref glfwSetJoystickHatCallback), allowing for
|
||||
event-based inputs for joysticks and gamepads.
|
||||
|
||||
## Caveats {#caveats}
|
||||
|
||||
## Deprecations {#deprecations}
|
||||
@ -24,8 +29,18 @@ this.
|
||||
|
||||
### New functions {#new_functions}
|
||||
|
||||
- @ref glfwSetJoystickButtonCallback
|
||||
- @ref glfwSetJoystickAxisCallback
|
||||
- @ref glfwSetJoystickHatCallback
|
||||
- @ref glfwSetGamepadStateCallback
|
||||
|
||||
### New types {#new_types}
|
||||
|
||||
- @ref GLFWjoystickbuttonfun
|
||||
- @ref GLFWjoystickaxisfun
|
||||
- @ref GLFWjoystickhatfun
|
||||
- @ref GLFWgamepadstatefun
|
||||
|
||||
### New constants {#new_constants}
|
||||
|
||||
- @ref GLFW_UNLIMITED_MOUSE_BUTTONS
|
||||
|
Loading…
Reference in New Issue
Block a user