shengine pre-release
shengine by mrsinho
Loading...
Searching...
No Matches
shInput.h
Go to the documentation of this file.
1#ifndef SH_INPUT_H
2#define SH_INPUT_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif//__cplusplus
7
8
9
10#define GLFW_INCLUDE_NONE
11#define GLFW_INCLUDE_VULKAN
12#include <GLFW/glfw3.h>
13
14
15
16typedef struct ShWindow ShWindow;
17
18extern void shGetCursorPosition(ShWindow* p_window);
19
20
21
22#define SH_RELEASE GLFW_RELEASE
23#define SH_PRESS GLFW_PRESS
24#define SH_REPEAT GLFW_REPEAT
25
26
27
28/* Printable keys */
29#define SH_KEY_SPACE 32
30#define SH_KEY_APOSTROPHE 39 /* ' */
31#define SH_KEY_COMMA 44 /* , */
32#define SH_KEY_MINUS 45 /* - */
33#define SH_KEY_PERIOD 46 /* . */
34#define SH_KEY_SLASH 47 /* / */
35#define SH_KEY_0 48
36#define SH_KEY_1 49
37#define SH_KEY_2 50
38#define SH_KEY_3 51
39#define SH_KEY_4 52
40#define SH_KEY_5 53
41#define SH_KEY_6 54
42#define SH_KEY_7 55
43#define SH_KEY_8 56
44#define SH_KEY_9 57
45#define SH_KEY_SEMICOLON 59 /* ; */
46#define SH_KEY_EQUAL 61 /* = */
47#define SH_KEY_A 65
48#define SH_KEY_B 66
49#define SH_KEY_C 67
50#define SH_KEY_D 68
51#define SH_KEY_E 69
52#define SH_KEY_F 70
53#define SH_KEY_G 71
54#define SH_KEY_H 72
55#define SH_KEY_I 73
56#define SH_KEY_J 74
57#define SH_KEY_K 75
58#define SH_KEY_L 76
59#define SH_KEY_M 77
60#define SH_KEY_N 78
61#define SH_KEY_O 79
62#define SH_KEY_P 80
63#define SH_KEY_Q 81
64#define SH_KEY_R 82
65#define SH_KEY_S 83
66#define SH_KEY_T 84
67#define SH_KEY_U 85
68#define SH_KEY_V 86
69#define SH_KEY_W 87
70#define SH_KEY_X 88
71#define SH_KEY_Y 89
72#define SH_KEY_Z 90
73#define SH_KEY_LEFT_BRACKET 91 /* [ */
74#define SH_KEY_BACKSLASH 92 /* \ */
75#define SH_KEY_RIGHT_BRACKET 93 /* ] */
76#define SH_KEY_GRAVE_ACCENT 96 /* ` */
77#define SH_KEY_WORLD_1 161 /* non-US #1 */
78#define SH_KEY_WORLD_2 162 /* non-US #2 */
79
80/* Function keys */
81#define SH_KEY_ESCAPE 256
82#define SH_KEY_ENTER 257
83#define SH_KEY_TAB 258
84#define SH_KEY_BACKSPACE 259
85#define SH_KEY_INSERT 260
86#define SH_KEY_DELETE 261
87#define SH_KEY_RIGHT 262
88#define SH_KEY_LEFT 263
89#define SH_KEY_DOWN 264
90#define SH_KEY_UP 265
91#define SH_KEY_PAGE_UP 266
92#define SH_KEY_PAGE_DOWN 267
93#define SH_KEY_HOME 268
94#define SH_KEY_END 269
95#define SH_KEY_CAPS_LOCK 280
96#define SH_KEY_SCROLL_LOCK 281
97#define SH_KEY_NUM_LOCK 282
98#define SH_KEY_PRINT_SCREEN 283
99#define SH_KEY_PAUSE 284
100#define SH_KEY_F1 290
101#define SH_KEY_F2 291
102#define SH_KEY_F3 292
103#define SH_KEY_F4 293
104#define SH_KEY_F5 294
105#define SH_KEY_F6 295
106#define SH_KEY_F7 296
107#define SH_KEY_F8 297
108#define SH_KEY_F9 298
109#define SH_KEY_F10 299
110#define SH_KEY_F11 300
111#define SH_KEY_F12 301
112#define SH_KEY_F13 302
113#define SH_KEY_F14 303
114#define SH_KEY_F15 304
115#define SH_KEY_F16 305
116#define SH_KEY_F17 306
117#define SH_KEY_F18 307
118#define SH_KEY_F19 308
119#define SH_KEY_F20 309
120#define SH_KEY_F21 310
121#define SH_KEY_F22 311
122#define SH_KEY_F23 312
123#define SH_KEY_F24 313
124#define SH_KEY_F25 314
125#define SH_KEY_KP_0 320
126#define SH_KEY_KP_1 321
127#define SH_KEY_KP_2 322
128#define SH_KEY_KP_3 323
129#define SH_KEY_KP_4 324
130#define SH_KEY_KP_5 325
131#define SH_KEY_KP_6 326
132#define SH_KEY_KP_7 327
133#define SH_KEY_KP_8 328
134#define SH_KEY_KP_9 329
135#define SH_KEY_KP_DECIMAL 330
136#define SH_KEY_KP_DIVIDE 331
137#define SH_KEY_KP_MULTIPLY 332
138#define SH_KEY_KP_SUBTRACT 333
139#define SH_KEY_KP_ADD 334
140#define SH_KEY_KP_ENTER 335
141#define SH_KEY_KP_EQUAL 336
142#define SH_KEY_LEFT_SHIFT 340
143#define SH_KEY_LEFT_CONTROL 341
144#define SH_KEY_LEFT_ALT 342
145#define SH_KEY_LEFT_SUPER 343
146#define SH_KEY_RIGHT_SHIFT 344
147#define SH_KEY_RIGHT_CONTROL 345
148#define SH_KEY_RIGHT_ALT 346
149#define SH_KEY_RIGHT_SUPER 347
150#define SH_KEY_MENU 348
151
152#define SH_KEY_LAST SH_KEY_MENU
153
154typedef int8_t shKeyEvents[SH_KEY_LAST + 1];
155
156#define SH_MOUSE_BUTTON_1 0
157#define SH_MOUSE_BUTTON_2 1
158#define SH_MOUSE_BUTTON_3 2
159#define SH_MOUSE_BUTTON_4 3
160#define SH_MOUSE_BUTTON_5 4
161#define SH_MOUSE_BUTTON_6 5
162#define SH_MOUSE_BUTTON_7 6
163#define SH_MOUSE_BUTTON_8 7
164#define SH_MOUSE_BUTTON_LAST SH_MOUSE_BUTTON_8
165#define SH_MOUSE_BUTTON_LEFT SH_MOUSE_BUTTON_1
166#define SH_MOUSE_BUTTON_RIGHT SH_MOUSE_BUTTON_2
167#define SH_MOUSE_BUTTON_MIDDLE SH_MOUSE_BUTTON_3
168
170
171#define SH_JOYSTICK_1 0
172#define SH_JOYSTICK_2 1
173#define SH_JOYSTICK_3 2
174#define SH_JOYSTICK_4 3
175#define SH_JOYSTICK_5 4
176#define SH_JOYSTICK_6 5
177#define SH_JOYSTICK_7 6
178#define SH_JOYSTICK_8 7
179#define SH_JOYSTICK_9 8
180#define SH_JOYSTICK_10 9
181#define SH_JOYSTICK_11 10
182#define SH_JOYSTICK_12 11
183#define SH_JOYSTICK_13 12
184#define SH_JOYSTICK_14 13
185#define SH_JOYSTICK_15 14
186#define SH_JOYSTICK_16 15
187#define SH_JOYSTICK_LAST SH_JOYSTICK_16
188
189#define SH_GAMEPAD_BUTTON_A 0
190#define SH_GAMEPAD_BUTTON_B 1
191#define SH_GAMEPAD_BUTTON_X 2
192#define SH_GAMEPAD_BUTTON_Y 3
193#define SH_GAMEPAD_BUTTON_LEFT_BUMPER 4
194#define SH_GAMEPAD_BUTTON_RIGHT_BUMPER 5
195#define SH_GAMEPAD_BUTTON_BACK 6
196#define SH_GAMEPAD_BUTTON_START 7
197#define SH_GAMEPAD_BUTTON_GUIDE 8
198#define SH_GAMEPAD_BUTTON_LEFT_THUMB 9
199#define SH_GAMEPAD_BUTTON_RIGHT_THUMB 10
200#define SH_GAMEPAD_BUTTON_DPAD_UP 11
201#define SH_GAMEPAD_BUTTON_DPAD_RIGHT 12
202#define SH_GAMEPAD_BUTTON_DPAD_DOWN 13
203#define SH_GAMEPAD_BUTTON_DPAD_LEFT 14
204#define SH_GAMEPAD_BUTTON_LAST SH_GAMEPAD_BUTTON_DPAD_LEFT
205
206#define SH_GAMEPAD_BUTTON_CROSS SH_GAMEPAD_BUTTON_A
207#define SH_GAMEPAD_BUTTON_CIRCLE SH_GAMEPAD_BUTTON_B
208#define SH_GAMEPAD_BUTTON_SQUARE SH_GAMEPAD_BUTTON_X
209#define SH_GAMEPAD_BUTTON_TRIANGLE SH_GAMEPAD_BUTTON_Y
210
211#define SH_GAMEPAD_AXIS_LEFT_X 0
212#define SH_GAMEPAD_AXIS_LEFT_Y 1
213#define SH_GAMEPAD_AXIS_RIGHT_X 2
214#define SH_GAMEPAD_AXIS_RIGHT_Y 3
215#define SH_GAMEPAD_AXIS_LEFT_TRIGGER 4
216#define SH_GAMEPAD_AXIS_RIGHT_TRIGGER 5
217#define SH_GAMEPAD_AXIS_LAST SH_GAMEPAD_AXIS_RIGHT_TRIGGER
218
219
220
221#ifdef __cplusplus
222}
223#endif//__cplusplus
224
225#endif//SH_INPUT_H
int8_t shKeyEvents[SH_KEY_LAST+1]
Definition shInput.h:154
int8_t shMouseEvents[SH_MOUSE_BUTTON_8+1]
Definition shInput.h:169
#define SH_KEY_LAST
Definition shInput.h:152
#define SH_MOUSE_BUTTON_8
Definition shInput.h:163
void shGetCursorPosition(ShWindow *p_window)
Definition shInput.c:10
Structure representing a window in the shengine framework.
Definition shWindow.h:54