SBgl
0.1.0
A graphics framework in C99
Loading...
Searching...
No Matches
sbgl_input.h
Go to the documentation of this file.
1
9
#ifndef SBGL_PUBLIC_INPUT_H
10
#define SBGL_PUBLIC_INPUT_H
11
12
#include <stdbool.h>
13
#include <stdint.h>
14
21
typedef
enum
{
22
SBGL_SCANCODE_UNKNOWN
= 0,
23
SBGL_SCANCODE_A
= 4,
24
SBGL_SCANCODE_B
= 5,
25
SBGL_SCANCODE_C
= 6,
26
SBGL_SCANCODE_D
= 7,
27
SBGL_SCANCODE_E
= 8,
28
SBGL_SCANCODE_F
= 9,
29
SBGL_SCANCODE_G
= 10,
30
SBGL_SCANCODE_H
= 11,
31
SBGL_SCANCODE_I
= 12,
32
SBGL_SCANCODE_J
= 13,
33
SBGL_SCANCODE_K
= 14,
34
SBGL_SCANCODE_L
= 15,
35
SBGL_SCANCODE_M
= 16,
36
SBGL_SCANCODE_N
= 17,
37
SBGL_SCANCODE_O
= 18,
38
SBGL_SCANCODE_P
= 19,
39
SBGL_SCANCODE_Q
= 20,
40
SBGL_SCANCODE_R
= 21,
41
SBGL_SCANCODE_S
= 22,
42
SBGL_SCANCODE_T
= 23,
43
SBGL_SCANCODE_U
= 24,
44
SBGL_SCANCODE_V
= 25,
45
SBGL_SCANCODE_W
= 26,
46
SBGL_SCANCODE_X
= 27,
47
SBGL_SCANCODE_Y
= 28,
48
SBGL_SCANCODE_Z
= 29,
49
50
SBGL_SCANCODE_1
= 30,
51
SBGL_SCANCODE_2
= 31,
52
SBGL_SCANCODE_3
= 32,
53
SBGL_SCANCODE_4
= 33,
54
SBGL_SCANCODE_5
= 34,
55
SBGL_SCANCODE_6
= 35,
56
SBGL_SCANCODE_7
= 36,
57
SBGL_SCANCODE_8
= 37,
58
SBGL_SCANCODE_9
= 38,
59
SBGL_SCANCODE_0
= 39,
60
61
SBGL_SCANCODE_RETURN
= 40,
62
SBGL_SCANCODE_ESCAPE
= 41,
63
SBGL_SCANCODE_BACKSPACE
= 42,
64
SBGL_SCANCODE_TAB
= 43,
65
SBGL_SCANCODE_SPACE
= 44,
66
67
SBGL_SCANCODE_MINUS
= 45,
68
SBGL_SCANCODE_EQUAL
= 46,
69
70
SBGL_SCANCODE_RIGHT
= 79,
71
SBGL_SCANCODE_LEFT
= 80,
72
SBGL_SCANCODE_DOWN
= 81,
73
SBGL_SCANCODE_UP
= 82,
74
75
SBGL_SCANCODE_LSHIFT
= 225,
76
SBGL_SCANCODE_LCTRL
= 224,
77
SBGL_SCANCODE_LALT
= 226,
78
79
/* Function keys */
80
SBGL_SCANCODE_F1
= 58,
81
SBGL_SCANCODE_F2
= 59,
82
SBGL_SCANCODE_F3
= 60,
83
SBGL_SCANCODE_F4
= 61,
84
SBGL_SCANCODE_F5
= 62,
85
SBGL_SCANCODE_F6
= 63,
86
SBGL_SCANCODE_F7
= 64,
87
SBGL_SCANCODE_F8
= 65,
88
SBGL_SCANCODE_F9
= 66,
89
SBGL_SCANCODE_F10
= 67,
90
SBGL_SCANCODE_F11
= 68,
91
SBGL_SCANCODE_F12
= 69,
92
93
/* Navigation keys */
94
SBGL_SCANCODE_INSERT
= 73,
95
SBGL_SCANCODE_HOME
= 74,
96
SBGL_SCANCODE_PAGEUP
= 75,
97
SBGL_SCANCODE_DELETE
= 76,
98
SBGL_SCANCODE_END
= 77,
99
SBGL_SCANCODE_PAGEDOWN
= 78,
100
101
/* Numpad */
102
SBGL_SCANCODE_NUMLOCKCLEAR
= 83,
103
SBGL_SCANCODE_KP_DIVIDE
= 84,
104
SBGL_SCANCODE_KP_MULTIPLY
= 85,
105
SBGL_SCANCODE_KP_MINUS
= 86,
106
SBGL_SCANCODE_KP_PLUS
= 87,
107
SBGL_SCANCODE_KP_ENTER
= 88,
108
SBGL_SCANCODE_KP_1
= 89,
109
SBGL_SCANCODE_KP_2
= 90,
110
SBGL_SCANCODE_KP_3
= 91,
111
SBGL_SCANCODE_KP_4
= 92,
112
SBGL_SCANCODE_KP_5
= 93,
113
SBGL_SCANCODE_KP_6
= 94,
114
SBGL_SCANCODE_KP_7
= 95,
115
SBGL_SCANCODE_KP_8
= 96,
116
SBGL_SCANCODE_KP_9
= 97,
117
SBGL_SCANCODE_KP_0
= 98,
118
SBGL_SCANCODE_KP_PERIOD
= 99,
119
120
/* Symbol keys */
121
SBGL_SCANCODE_SEMICOLON
= 51,
122
SBGL_SCANCODE_APOSTROPHE
= 52,
123
SBGL_SCANCODE_GRAVE
= 53,
124
SBGL_SCANCODE_COMMA
= 54,
125
SBGL_SCANCODE_PERIOD
= 55,
126
SBGL_SCANCODE_SLASH
= 56,
127
SBGL_SCANCODE_CAPSLOCK
= 57,
128
SBGL_SCANCODE_LEFTBRACKET
= 47,
129
SBGL_SCANCODE_BACKSLASH
= 49,
130
SBGL_SCANCODE_RIGHTBRACKET
= 48,
131
132
/* Right modifiers */
133
SBGL_SCANCODE_RSHIFT
= 229,
134
SBGL_SCANCODE_RCTRL
= 228,
135
SBGL_SCANCODE_RALT
= 230,
136
137
SBGL_SCANCODE_MAX
= 512
138
}
SBGL_Scancode
;
139
143
typedef
enum
{
144
SBGL_MOUSE_BUTTON_LEFT
= 0,
145
SBGL_MOUSE_BUTTON_RIGHT
= 1,
146
SBGL_MOUSE_BUTTON_MIDDLE
= 2,
147
SBGL_MOUSE_BUTTON_MAX
= 8
148
}
SBGL_MouseButton
;
149
153
typedef
enum
{
154
SBGL_MOUSE_MODE_NORMAL
,
155
SBGL_MOUSE_MODE_HIDDEN
,
156
SBGL_MOUSE_MODE_CAPTURED
157
}
sbgl_MouseMode
;
158
165
typedef
struct
sbgl_InputState
{
166
bool
keysDown
[
SBGL_SCANCODE_MAX
];
167
bool
keysPressed
[
SBGL_SCANCODE_MAX
];
168
bool
mouseDown
[
SBGL_MOUSE_BUTTON_MAX
];
169
int
mouseX
,
mouseY
;
170
int
mouseDeltaX
,
mouseDeltaY
;
171
int
_internalMouseX
,
_internalMouseY
;
172
}
sbgl_InputState
;
173
174
#endif
// SBGL_PUBLIC_INPUT_H
sbgl_InputState
struct sbgl_InputState sbgl_InputState
Represents the real-time state of physical inputs.
sbgl_MouseMode
sbgl_MouseMode
Mouse behavior modes.
Definition
sbgl_input.h:153
SBGL_MOUSE_MODE_NORMAL
@ SBGL_MOUSE_MODE_NORMAL
Definition
sbgl_input.h:154
SBGL_MOUSE_MODE_CAPTURED
@ SBGL_MOUSE_MODE_CAPTURED
Definition
sbgl_input.h:156
SBGL_MOUSE_MODE_HIDDEN
@ SBGL_MOUSE_MODE_HIDDEN
Definition
sbgl_input.h:155
SBGL_Scancode
SBGL_Scancode
OS-independent physical scancodes.
Definition
sbgl_input.h:21
SBGL_SCANCODE_F3
@ SBGL_SCANCODE_F3
Definition
sbgl_input.h:82
SBGL_SCANCODE_LEFTBRACKET
@ SBGL_SCANCODE_LEFTBRACKET
Definition
sbgl_input.h:128
SBGL_SCANCODE_V
@ SBGL_SCANCODE_V
Definition
sbgl_input.h:44
SBGL_SCANCODE_M
@ SBGL_SCANCODE_M
Definition
sbgl_input.h:35
SBGL_SCANCODE_UNKNOWN
@ SBGL_SCANCODE_UNKNOWN
Definition
sbgl_input.h:22
SBGL_SCANCODE_0
@ SBGL_SCANCODE_0
Definition
sbgl_input.h:59
SBGL_SCANCODE_RALT
@ SBGL_SCANCODE_RALT
Definition
sbgl_input.h:135
SBGL_SCANCODE_K
@ SBGL_SCANCODE_K
Definition
sbgl_input.h:33
SBGL_SCANCODE_SPACE
@ SBGL_SCANCODE_SPACE
Definition
sbgl_input.h:65
SBGL_SCANCODE_RIGHT
@ SBGL_SCANCODE_RIGHT
Definition
sbgl_input.h:70
SBGL_SCANCODE_9
@ SBGL_SCANCODE_9
Definition
sbgl_input.h:58
SBGL_SCANCODE_C
@ SBGL_SCANCODE_C
Definition
sbgl_input.h:25
SBGL_SCANCODE_KP_8
@ SBGL_SCANCODE_KP_8
Definition
sbgl_input.h:115
SBGL_SCANCODE_F9
@ SBGL_SCANCODE_F9
Definition
sbgl_input.h:88
SBGL_SCANCODE_2
@ SBGL_SCANCODE_2
Definition
sbgl_input.h:51
SBGL_SCANCODE_8
@ SBGL_SCANCODE_8
Definition
sbgl_input.h:57
SBGL_SCANCODE_A
@ SBGL_SCANCODE_A
Definition
sbgl_input.h:23
SBGL_SCANCODE_Y
@ SBGL_SCANCODE_Y
Definition
sbgl_input.h:47
SBGL_SCANCODE_KP_6
@ SBGL_SCANCODE_KP_6
Definition
sbgl_input.h:113
SBGL_SCANCODE_LALT
@ SBGL_SCANCODE_LALT
Definition
sbgl_input.h:77
SBGL_SCANCODE_RCTRL
@ SBGL_SCANCODE_RCTRL
Definition
sbgl_input.h:134
SBGL_SCANCODE_SLASH
@ SBGL_SCANCODE_SLASH
Definition
sbgl_input.h:126
SBGL_SCANCODE_RIGHTBRACKET
@ SBGL_SCANCODE_RIGHTBRACKET
Definition
sbgl_input.h:130
SBGL_SCANCODE_LEFT
@ SBGL_SCANCODE_LEFT
Definition
sbgl_input.h:71
SBGL_SCANCODE_APOSTROPHE
@ SBGL_SCANCODE_APOSTROPHE
Definition
sbgl_input.h:122
SBGL_SCANCODE_O
@ SBGL_SCANCODE_O
Definition
sbgl_input.h:37
SBGL_SCANCODE_RSHIFT
@ SBGL_SCANCODE_RSHIFT
Definition
sbgl_input.h:133
SBGL_SCANCODE_R
@ SBGL_SCANCODE_R
Definition
sbgl_input.h:40
SBGL_SCANCODE_INSERT
@ SBGL_SCANCODE_INSERT
Definition
sbgl_input.h:94
SBGL_SCANCODE_NUMLOCKCLEAR
@ SBGL_SCANCODE_NUMLOCKCLEAR
Definition
sbgl_input.h:102
SBGL_SCANCODE_F8
@ SBGL_SCANCODE_F8
Definition
sbgl_input.h:87
SBGL_SCANCODE_4
@ SBGL_SCANCODE_4
Definition
sbgl_input.h:53
SBGL_SCANCODE_KP_MULTIPLY
@ SBGL_SCANCODE_KP_MULTIPLY
Definition
sbgl_input.h:104
SBGL_SCANCODE_Z
@ SBGL_SCANCODE_Z
Definition
sbgl_input.h:48
SBGL_SCANCODE_F10
@ SBGL_SCANCODE_F10
Definition
sbgl_input.h:89
SBGL_SCANCODE_KP_9
@ SBGL_SCANCODE_KP_9
Definition
sbgl_input.h:116
SBGL_SCANCODE_H
@ SBGL_SCANCODE_H
Definition
sbgl_input.h:30
SBGL_SCANCODE_5
@ SBGL_SCANCODE_5
Definition
sbgl_input.h:54
SBGL_SCANCODE_KP_4
@ SBGL_SCANCODE_KP_4
Definition
sbgl_input.h:111
SBGL_SCANCODE_J
@ SBGL_SCANCODE_J
Definition
sbgl_input.h:32
SBGL_SCANCODE_LSHIFT
@ SBGL_SCANCODE_LSHIFT
Definition
sbgl_input.h:75
SBGL_SCANCODE_PERIOD
@ SBGL_SCANCODE_PERIOD
Definition
sbgl_input.h:125
SBGL_SCANCODE_PAGEUP
@ SBGL_SCANCODE_PAGEUP
Definition
sbgl_input.h:96
SBGL_SCANCODE_ESCAPE
@ SBGL_SCANCODE_ESCAPE
Definition
sbgl_input.h:62
SBGL_SCANCODE_KP_PERIOD
@ SBGL_SCANCODE_KP_PERIOD
Definition
sbgl_input.h:118
SBGL_SCANCODE_X
@ SBGL_SCANCODE_X
Definition
sbgl_input.h:46
SBGL_SCANCODE_LCTRL
@ SBGL_SCANCODE_LCTRL
Definition
sbgl_input.h:76
SBGL_SCANCODE_UP
@ SBGL_SCANCODE_UP
Definition
sbgl_input.h:73
SBGL_SCANCODE_B
@ SBGL_SCANCODE_B
Definition
sbgl_input.h:24
SBGL_SCANCODE_DOWN
@ SBGL_SCANCODE_DOWN
Definition
sbgl_input.h:72
SBGL_SCANCODE_G
@ SBGL_SCANCODE_G
Definition
sbgl_input.h:29
SBGL_SCANCODE_CAPSLOCK
@ SBGL_SCANCODE_CAPSLOCK
Definition
sbgl_input.h:127
SBGL_SCANCODE_TAB
@ SBGL_SCANCODE_TAB
Definition
sbgl_input.h:64
SBGL_SCANCODE_7
@ SBGL_SCANCODE_7
Definition
sbgl_input.h:56
SBGL_SCANCODE_F
@ SBGL_SCANCODE_F
Definition
sbgl_input.h:28
SBGL_SCANCODE_GRAVE
@ SBGL_SCANCODE_GRAVE
Definition
sbgl_input.h:123
SBGL_SCANCODE_F7
@ SBGL_SCANCODE_F7
Definition
sbgl_input.h:86
SBGL_SCANCODE_MINUS
@ SBGL_SCANCODE_MINUS
Definition
sbgl_input.h:67
SBGL_SCANCODE_KP_7
@ SBGL_SCANCODE_KP_7
Definition
sbgl_input.h:114
SBGL_SCANCODE_DELETE
@ SBGL_SCANCODE_DELETE
Definition
sbgl_input.h:97
SBGL_SCANCODE_HOME
@ SBGL_SCANCODE_HOME
Definition
sbgl_input.h:95
SBGL_SCANCODE_RETURN
@ SBGL_SCANCODE_RETURN
Definition
sbgl_input.h:61
SBGL_SCANCODE_KP_ENTER
@ SBGL_SCANCODE_KP_ENTER
Definition
sbgl_input.h:107
SBGL_SCANCODE_E
@ SBGL_SCANCODE_E
Definition
sbgl_input.h:27
SBGL_SCANCODE_T
@ SBGL_SCANCODE_T
Definition
sbgl_input.h:42
SBGL_SCANCODE_F6
@ SBGL_SCANCODE_F6
Definition
sbgl_input.h:85
SBGL_SCANCODE_3
@ SBGL_SCANCODE_3
Definition
sbgl_input.h:52
SBGL_SCANCODE_D
@ SBGL_SCANCODE_D
Definition
sbgl_input.h:26
SBGL_SCANCODE_F12
@ SBGL_SCANCODE_F12
Definition
sbgl_input.h:91
SBGL_SCANCODE_1
@ SBGL_SCANCODE_1
Definition
sbgl_input.h:50
SBGL_SCANCODE_COMMA
@ SBGL_SCANCODE_COMMA
Definition
sbgl_input.h:124
SBGL_SCANCODE_F4
@ SBGL_SCANCODE_F4
Definition
sbgl_input.h:83
SBGL_SCANCODE_MAX
@ SBGL_SCANCODE_MAX
Definition
sbgl_input.h:137
SBGL_SCANCODE_KP_PLUS
@ SBGL_SCANCODE_KP_PLUS
Definition
sbgl_input.h:106
SBGL_SCANCODE_F11
@ SBGL_SCANCODE_F11
Definition
sbgl_input.h:90
SBGL_SCANCODE_KP_0
@ SBGL_SCANCODE_KP_0
Definition
sbgl_input.h:117
SBGL_SCANCODE_END
@ SBGL_SCANCODE_END
Definition
sbgl_input.h:98
SBGL_SCANCODE_BACKSLASH
@ SBGL_SCANCODE_BACKSLASH
Definition
sbgl_input.h:129
SBGL_SCANCODE_KP_DIVIDE
@ SBGL_SCANCODE_KP_DIVIDE
Definition
sbgl_input.h:103
SBGL_SCANCODE_KP_5
@ SBGL_SCANCODE_KP_5
Definition
sbgl_input.h:112
SBGL_SCANCODE_F1
@ SBGL_SCANCODE_F1
Definition
sbgl_input.h:80
SBGL_SCANCODE_P
@ SBGL_SCANCODE_P
Definition
sbgl_input.h:38
SBGL_SCANCODE_Q
@ SBGL_SCANCODE_Q
Definition
sbgl_input.h:39
SBGL_SCANCODE_BACKSPACE
@ SBGL_SCANCODE_BACKSPACE
Definition
sbgl_input.h:63
SBGL_SCANCODE_L
@ SBGL_SCANCODE_L
Definition
sbgl_input.h:34
SBGL_SCANCODE_6
@ SBGL_SCANCODE_6
Definition
sbgl_input.h:55
SBGL_SCANCODE_KP_3
@ SBGL_SCANCODE_KP_3
Definition
sbgl_input.h:110
SBGL_SCANCODE_KP_1
@ SBGL_SCANCODE_KP_1
Definition
sbgl_input.h:108
SBGL_SCANCODE_SEMICOLON
@ SBGL_SCANCODE_SEMICOLON
Definition
sbgl_input.h:121
SBGL_SCANCODE_S
@ SBGL_SCANCODE_S
Definition
sbgl_input.h:41
SBGL_SCANCODE_U
@ SBGL_SCANCODE_U
Definition
sbgl_input.h:43
SBGL_SCANCODE_KP_MINUS
@ SBGL_SCANCODE_KP_MINUS
Definition
sbgl_input.h:105
SBGL_SCANCODE_N
@ SBGL_SCANCODE_N
Definition
sbgl_input.h:36
SBGL_SCANCODE_F5
@ SBGL_SCANCODE_F5
Definition
sbgl_input.h:84
SBGL_SCANCODE_EQUAL
@ SBGL_SCANCODE_EQUAL
Definition
sbgl_input.h:68
SBGL_SCANCODE_I
@ SBGL_SCANCODE_I
Definition
sbgl_input.h:31
SBGL_SCANCODE_PAGEDOWN
@ SBGL_SCANCODE_PAGEDOWN
Definition
sbgl_input.h:99
SBGL_SCANCODE_W
@ SBGL_SCANCODE_W
Definition
sbgl_input.h:45
SBGL_SCANCODE_KP_2
@ SBGL_SCANCODE_KP_2
Definition
sbgl_input.h:109
SBGL_SCANCODE_F2
@ SBGL_SCANCODE_F2
Definition
sbgl_input.h:81
SBGL_MouseButton
SBGL_MouseButton
Standard mouse buttons.
Definition
sbgl_input.h:143
SBGL_MOUSE_BUTTON_MIDDLE
@ SBGL_MOUSE_BUTTON_MIDDLE
Definition
sbgl_input.h:146
SBGL_MOUSE_BUTTON_MAX
@ SBGL_MOUSE_BUTTON_MAX
Definition
sbgl_input.h:147
SBGL_MOUSE_BUTTON_LEFT
@ SBGL_MOUSE_BUTTON_LEFT
Definition
sbgl_input.h:144
SBGL_MOUSE_BUTTON_RIGHT
@ SBGL_MOUSE_BUTTON_RIGHT
Definition
sbgl_input.h:145
sbgl_InputState
Represents the real-time state of physical inputs.
Definition
sbgl_input.h:165
sbgl_InputState::mouseDown
bool mouseDown[SBGL_MOUSE_BUTTON_MAX]
Definition
sbgl_input.h:168
sbgl_InputState::_internalMouseY
int _internalMouseY
Definition
sbgl_input.h:171
sbgl_InputState::keysPressed
bool keysPressed[SBGL_SCANCODE_MAX]
Definition
sbgl_input.h:167
sbgl_InputState::mouseY
int mouseY
Definition
sbgl_input.h:169
sbgl_InputState::mouseX
int mouseX
Definition
sbgl_input.h:169
sbgl_InputState::keysDown
bool keysDown[SBGL_SCANCODE_MAX]
Definition
sbgl_input.h:166
sbgl_InputState::mouseDeltaY
int mouseDeltaY
Definition
sbgl_input.h:170
sbgl_InputState::mouseDeltaX
int mouseDeltaX
Definition
sbgl_input.h:170
sbgl_InputState::_internalMouseX
int _internalMouseX
Definition
sbgl_input.h:171
include
sbgl_input.h
Generated by
1.12.0