Fireset
Loading...
Searching...
No Matches
input.h
1
// Copyright (c) 2025 Henrique Rodrigues Santos
2
// Licensed under the MIT License
3
// Repo: https://github.com/saintsHr/Fireset
4
5
#pragma once
6
7
#include <GLFW/glfw3.h>
8
#include <stdbool.h>
9
10
#include "fireset/window.h"
11
#include "fireset/vertex.h"
12
18
25
typedef
enum
{
26
FS_KEY_A
= GLFW_KEY_A,
27
FS_KEY_B
= GLFW_KEY_B,
28
FS_KEY_C
= GLFW_KEY_C,
29
FS_KEY_D
= GLFW_KEY_D,
30
FS_KEY_E
= GLFW_KEY_E,
31
FS_KEY_F
= GLFW_KEY_F,
32
FS_KEY_G
= GLFW_KEY_G,
33
FS_KEY_H
= GLFW_KEY_H,
34
FS_KEY_I
= GLFW_KEY_I,
35
FS_KEY_J
= GLFW_KEY_J,
36
FS_KEY_K
= GLFW_KEY_K,
37
FS_KEY_L
= GLFW_KEY_L,
38
FS_KEY_M
= GLFW_KEY_M,
39
FS_KEY_N
= GLFW_KEY_N,
40
FS_KEY_O
= GLFW_KEY_O,
41
FS_KEY_P
= GLFW_KEY_P,
42
FS_KEY_Q
= GLFW_KEY_Q,
43
FS_KEY_R
= GLFW_KEY_R,
44
FS_KEY_S
= GLFW_KEY_S,
45
FS_KEY_T
= GLFW_KEY_T,
46
FS_KEY_U
= GLFW_KEY_U,
47
FS_KEY_V
= GLFW_KEY_V,
48
FS_KEY_W
= GLFW_KEY_W,
49
FS_KEY_X
= GLFW_KEY_X,
50
FS_KEY_Y
= GLFW_KEY_Y,
51
FS_KEY_Z
= GLFW_KEY_Z,
52
53
FS_KEY_0
= GLFW_KEY_0,
54
FS_KEY_1
= GLFW_KEY_1,
55
FS_KEY_2
= GLFW_KEY_2,
56
FS_KEY_3
= GLFW_KEY_3,
57
FS_KEY_4
= GLFW_KEY_4,
58
FS_KEY_5
= GLFW_KEY_5,
59
FS_KEY_6
= GLFW_KEY_6,
60
FS_KEY_7
= GLFW_KEY_7,
61
FS_KEY_8
= GLFW_KEY_8,
62
FS_KEY_9
= GLFW_KEY_9,
63
64
FS_KEY_SPACE
= GLFW_KEY_SPACE,
65
FS_KEY_MINUS
= GLFW_KEY_MINUS,
66
FS_KEY_EQUAL
= GLFW_KEY_EQUAL,
67
FS_KEY_LEFT_BRACKET
= GLFW_KEY_LEFT_BRACKET,
68
FS_KEY_RIGHT_BRACKET
= GLFW_KEY_RIGHT_BRACKET,
69
FS_KEY_BACKSLASH
= GLFW_KEY_BACKSLASH,
70
FS_KEY_SEMICOLON
= GLFW_KEY_SEMICOLON,
71
FS_KEY_APOSTROPHE
= GLFW_KEY_APOSTROPHE,
72
FS_KEY_COMMA
= GLFW_KEY_COMMA,
73
FS_KEY_PERIOD
= GLFW_KEY_PERIOD,
74
FS_KEY_SLASH
= GLFW_KEY_SLASH,
75
76
FS_KEY_ESCAPE
= GLFW_KEY_ESCAPE,
77
FS_KEY_ENTER
= GLFW_KEY_ENTER,
78
FS_KEY_TAB
= GLFW_KEY_TAB,
79
FS_KEY_BACKSPACE
= GLFW_KEY_BACKSPACE,
80
FS_KEY_LEFT_SHIFT
= GLFW_KEY_LEFT_SHIFT,
81
FS_KEY_RIGHT_SHIFT
= GLFW_KEY_RIGHT_SHIFT,
82
FS_KEY_LEFT_CONTROL
= GLFW_KEY_LEFT_CONTROL,
83
FS_KEY_RIGHT_CONTROL
= GLFW_KEY_RIGHT_CONTROL,
84
FS_KEY_LEFT_ALT
= GLFW_KEY_LEFT_ALT,
85
FS_KEY_RIGHT_ALT
= GLFW_KEY_RIGHT_ALT,
86
FS_KEY_LEFT_SUPER
= GLFW_KEY_LEFT_SUPER,
87
FS_KEY_RIGHT_SUPER
= GLFW_KEY_RIGHT_SUPER,
88
FS_KEY_MENU
= GLFW_KEY_MENU,
89
90
FS_KEY_UP
= GLFW_KEY_UP,
91
FS_KEY_DOWN
= GLFW_KEY_DOWN,
92
FS_KEY_LEFT
= GLFW_KEY_LEFT,
93
FS_KEY_RIGHT
= GLFW_KEY_RIGHT,
94
95
FS_KEY_NUM_LOCK
= GLFW_KEY_NUM_LOCK,
96
FS_KEY_KP_0
= GLFW_KEY_KP_0,
97
FS_KEY_KP_1
= GLFW_KEY_KP_1,
98
FS_KEY_KP_2
= GLFW_KEY_KP_2,
99
FS_KEY_KP_3
= GLFW_KEY_KP_3,
100
FS_KEY_KP_4
= GLFW_KEY_KP_4,
101
FS_KEY_KP_5
= GLFW_KEY_KP_5,
102
FS_KEY_KP_6
= GLFW_KEY_KP_6,
103
FS_KEY_KP_7
= GLFW_KEY_KP_7,
104
FS_KEY_KP_8
= GLFW_KEY_KP_8,
105
FS_KEY_KP_9
= GLFW_KEY_KP_9,
106
FS_KEY_KP_DECIMAL
= GLFW_KEY_KP_DECIMAL,
107
FS_KEY_KP_DIVIDE
= GLFW_KEY_KP_DIVIDE,
108
FS_KEY_KP_MULTIPLY
= GLFW_KEY_KP_MULTIPLY,
109
FS_KEY_KP_SUBTRACT
= GLFW_KEY_KP_SUBTRACT,
110
FS_KEY_KP_ADD
= GLFW_KEY_KP_ADD,
111
FS_KEY_KP_ENTER
= GLFW_KEY_KP_ENTER,
112
FS_KEY_KP_EQUAL
= GLFW_KEY_KP_EQUAL
113
}
FsKey
;
114
121
typedef
enum
{
122
FS_LMB
= GLFW_MOUSE_BUTTON_LEFT,
123
FS_RMB
= GLFW_MOUSE_BUTTON_RIGHT,
124
FS_MMB
= GLFW_MOUSE_BUTTON_MIDDLE
125
}
FsMouseButton
;
126
134
void
fsInputUpdate
(
FsWindow
* window);
135
147
bool
fsKeyJustPressed
(
FsKey
key);
148
160
bool
fsKeyJustReleased
(
FsKey
key);
161
170
bool
fsKeyDown
(
FsKey
key);
171
181
FsVec2
fsCursorGetPos
(
const
FsWindow
* window);
182
193
bool
fsMouseButtonDown
(
const
FsWindow
* window,
FsMouseButton
bt);
194
205
bool
fsMouseButtonJustPressed
(
const
FsWindow
* window,
FsMouseButton
bt);
206
217
bool
fsMouseButtonJustReleased
(
const
FsWindow
* window,
FsMouseButton
bt);
218
FsMouseButton
FsMouseButton
Mouse buttons enumeration.
Definition
input.h:121
fsMouseButtonJustReleased
bool fsMouseButtonJustReleased(const FsWindow *window, FsMouseButton bt)
Checks if a mouse button was just released.
Definition
input.c:72
FsKey
FsKey
Keyboard key codes.
Definition
input.h:25
fsKeyJustPressed
bool fsKeyJustPressed(FsKey key)
Checks if a key was just pressed.
Definition
input.c:27
fsMouseButtonJustPressed
bool fsMouseButtonJustPressed(const FsWindow *window, FsMouseButton bt)
Checks if a mouse button was just pressed.
Definition
input.c:64
fsKeyDown
bool fsKeyDown(FsKey key)
Checks if a key is currently pressed.
Definition
input.c:35
fsInputUpdate
void fsInputUpdate(FsWindow *window)
Updates the input state.
Definition
input.c:17
fsKeyJustReleased
bool fsKeyJustReleased(FsKey key)
Checks if a key was just released.
Definition
input.c:31
fsMouseButtonDown
bool fsMouseButtonDown(const FsWindow *window, FsMouseButton bt)
Checks if a specific mouse button is currently pressed.
Definition
input.c:51
fsCursorGetPos
FsVec2 fsCursorGetPos(const FsWindow *window)
Gets the current cursor position.
Definition
input.c:39
FS_LMB
@ FS_LMB
Definition
input.h:122
FS_MMB
@ FS_MMB
Definition
input.h:124
FS_RMB
@ FS_RMB
Definition
input.h:123
FS_KEY_KP_DECIMAL
@ FS_KEY_KP_DECIMAL
Definition
input.h:106
FS_KEY_S
@ FS_KEY_S
Definition
input.h:44
FS_KEY_MENU
@ FS_KEY_MENU
Definition
input.h:88
FS_KEY_Q
@ FS_KEY_Q
Definition
input.h:42
FS_KEY_2
@ FS_KEY_2
Definition
input.h:55
FS_KEY_KP_MULTIPLY
@ FS_KEY_KP_MULTIPLY
Definition
input.h:108
FS_KEY_7
@ FS_KEY_7
Definition
input.h:60
FS_KEY_ESCAPE
@ FS_KEY_ESCAPE
Definition
input.h:76
FS_KEY_U
@ FS_KEY_U
Definition
input.h:46
FS_KEY_KP_0
@ FS_KEY_KP_0
Definition
input.h:96
FS_KEY_W
@ FS_KEY_W
Definition
input.h:48
FS_KEY_P
@ FS_KEY_P
Definition
input.h:41
FS_KEY_BACKSPACE
@ FS_KEY_BACKSPACE
Definition
input.h:79
FS_KEY_9
@ FS_KEY_9
Definition
input.h:62
FS_KEY_T
@ FS_KEY_T
Definition
input.h:45
FS_KEY_RIGHT_SHIFT
@ FS_KEY_RIGHT_SHIFT
Definition
input.h:81
FS_KEY_RIGHT_ALT
@ FS_KEY_RIGHT_ALT
Definition
input.h:85
FS_KEY_KP_7
@ FS_KEY_KP_7
Definition
input.h:103
FS_KEY_MINUS
@ FS_KEY_MINUS
Definition
input.h:65
FS_KEY_X
@ FS_KEY_X
Definition
input.h:49
FS_KEY_RIGHT
@ FS_KEY_RIGHT
Definition
input.h:93
FS_KEY_4
@ FS_KEY_4
Definition
input.h:57
FS_KEY_KP_ENTER
@ FS_KEY_KP_ENTER
Definition
input.h:111
FS_KEY_SLASH
@ FS_KEY_SLASH
Definition
input.h:74
FS_KEY_KP_3
@ FS_KEY_KP_3
Definition
input.h:99
FS_KEY_RIGHT_BRACKET
@ FS_KEY_RIGHT_BRACKET
Definition
input.h:68
FS_KEY_RIGHT_SUPER
@ FS_KEY_RIGHT_SUPER
Definition
input.h:87
FS_KEY_NUM_LOCK
@ FS_KEY_NUM_LOCK
Definition
input.h:95
FS_KEY_F
@ FS_KEY_F
Definition
input.h:31
FS_KEY_LEFT_BRACKET
@ FS_KEY_LEFT_BRACKET
Definition
input.h:67
FS_KEY_DOWN
@ FS_KEY_DOWN
Definition
input.h:91
FS_KEY_LEFT
@ FS_KEY_LEFT
Definition
input.h:92
FS_KEY_APOSTROPHE
@ FS_KEY_APOSTROPHE
Definition
input.h:71
FS_KEY_Z
@ FS_KEY_Z
Definition
input.h:51
FS_KEY_KP_ADD
@ FS_KEY_KP_ADD
Definition
input.h:110
FS_KEY_RIGHT_CONTROL
@ FS_KEY_RIGHT_CONTROL
Definition
input.h:83
FS_KEY_TAB
@ FS_KEY_TAB
Definition
input.h:78
FS_KEY_KP_8
@ FS_KEY_KP_8
Definition
input.h:104
FS_KEY_C
@ FS_KEY_C
Definition
input.h:28
FS_KEY_1
@ FS_KEY_1
Definition
input.h:54
FS_KEY_ENTER
@ FS_KEY_ENTER
Definition
input.h:77
FS_KEY_PERIOD
@ FS_KEY_PERIOD
Definition
input.h:73
FS_KEY_6
@ FS_KEY_6
Definition
input.h:59
FS_KEY_LEFT_CONTROL
@ FS_KEY_LEFT_CONTROL
Definition
input.h:82
FS_KEY_8
@ FS_KEY_8
Definition
input.h:61
FS_KEY_EQUAL
@ FS_KEY_EQUAL
Definition
input.h:66
FS_KEY_SPACE
@ FS_KEY_SPACE
Definition
input.h:64
FS_KEY_LEFT_ALT
@ FS_KEY_LEFT_ALT
Definition
input.h:84
FS_KEY_N
@ FS_KEY_N
Definition
input.h:39
FS_KEY_KP_6
@ FS_KEY_KP_6
Definition
input.h:102
FS_KEY_LEFT_SUPER
@ FS_KEY_LEFT_SUPER
Definition
input.h:86
FS_KEY_I
@ FS_KEY_I
Definition
input.h:34
FS_KEY_KP_2
@ FS_KEY_KP_2
Definition
input.h:98
FS_KEY_L
@ FS_KEY_L
Definition
input.h:37
FS_KEY_0
@ FS_KEY_0
Definition
input.h:53
FS_KEY_KP_5
@ FS_KEY_KP_5
Definition
input.h:101
FS_KEY_H
@ FS_KEY_H
Definition
input.h:33
FS_KEY_UP
@ FS_KEY_UP
Definition
input.h:90
FS_KEY_M
@ FS_KEY_M
Definition
input.h:38
FS_KEY_K
@ FS_KEY_K
Definition
input.h:36
FS_KEY_R
@ FS_KEY_R
Definition
input.h:43
FS_KEY_KP_SUBTRACT
@ FS_KEY_KP_SUBTRACT
Definition
input.h:109
FS_KEY_KP_4
@ FS_KEY_KP_4
Definition
input.h:100
FS_KEY_COMMA
@ FS_KEY_COMMA
Definition
input.h:72
FS_KEY_O
@ FS_KEY_O
Definition
input.h:40
FS_KEY_J
@ FS_KEY_J
Definition
input.h:35
FS_KEY_KP_9
@ FS_KEY_KP_9
Definition
input.h:105
FS_KEY_E
@ FS_KEY_E
Definition
input.h:30
FS_KEY_KP_EQUAL
@ FS_KEY_KP_EQUAL
Definition
input.h:112
FS_KEY_LEFT_SHIFT
@ FS_KEY_LEFT_SHIFT
Definition
input.h:80
FS_KEY_V
@ FS_KEY_V
Definition
input.h:47
FS_KEY_KP_DIVIDE
@ FS_KEY_KP_DIVIDE
Definition
input.h:107
FS_KEY_G
@ FS_KEY_G
Definition
input.h:32
FS_KEY_SEMICOLON
@ FS_KEY_SEMICOLON
Definition
input.h:70
FS_KEY_BACKSLASH
@ FS_KEY_BACKSLASH
Definition
input.h:69
FS_KEY_D
@ FS_KEY_D
Definition
input.h:29
FS_KEY_KP_1
@ FS_KEY_KP_1
Definition
input.h:97
FS_KEY_A
@ FS_KEY_A
Definition
input.h:26
FS_KEY_B
@ FS_KEY_B
Definition
input.h:27
FS_KEY_5
@ FS_KEY_5
Definition
input.h:58
FS_KEY_Y
@ FS_KEY_Y
Definition
input.h:50
FS_KEY_3
@ FS_KEY_3
Definition
input.h:56
FsVec2
2D vector.
Definition
vertex.h:20
FsWindow
Window object.
Definition
window.h:17
include
fireset
input.h
Generated by
1.15.0