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
25typedef 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
121typedef enum {
122 FS_LMB = GLFW_MOUSE_BUTTON_LEFT,
123 FS_RMB = GLFW_MOUSE_BUTTON_RIGHT,
124 FS_MMB = GLFW_MOUSE_BUTTON_MIDDLE
126
134void fsInputUpdate(FsWindow* window);
135
147bool fsKeyJustPressed(FsKey key);
148
160bool fsKeyJustReleased(FsKey key);
161
170bool fsKeyDown(FsKey key);
171
181FsVec2 fsCursorGetPos(const FsWindow* window);
182
193bool fsMouseButtonDown(const FsWindow* window, FsMouseButton bt);
194
205bool fsMouseButtonJustPressed(const FsWindow* window, FsMouseButton bt);
206
217bool fsMouseButtonJustReleased(const FsWindow* window, FsMouseButton bt);
218
FsMouseButton
Mouse buttons enumeration.
Definition input.h:121
bool fsMouseButtonJustReleased(const FsWindow *window, FsMouseButton bt)
Checks if a mouse button was just released.
Definition input.c:72
FsKey
Keyboard key codes.
Definition input.h:25
bool fsKeyJustPressed(FsKey key)
Checks if a key was just pressed.
Definition input.c:27
bool fsMouseButtonJustPressed(const FsWindow *window, FsMouseButton bt)
Checks if a mouse button was just pressed.
Definition input.c:64
bool fsKeyDown(FsKey key)
Checks if a key is currently pressed.
Definition input.c:35
void fsInputUpdate(FsWindow *window)
Updates the input state.
Definition input.c:17
bool fsKeyJustReleased(FsKey key)
Checks if a key was just released.
Definition input.c:31
bool fsMouseButtonDown(const FsWindow *window, FsMouseButton bt)
Checks if a specific mouse button is currently pressed.
Definition input.c:51
FsVec2 fsCursorGetPos(const FsWindow *window)
Gets the current cursor position.
Definition input.c:39
@ FS_LMB
Definition input.h:122
@ FS_MMB
Definition input.h:124
@ FS_RMB
Definition input.h:123
@ FS_KEY_KP_DECIMAL
Definition input.h:106
@ FS_KEY_S
Definition input.h:44
@ FS_KEY_MENU
Definition input.h:88
@ FS_KEY_Q
Definition input.h:42
@ FS_KEY_2
Definition input.h:55
@ FS_KEY_KP_MULTIPLY
Definition input.h:108
@ FS_KEY_7
Definition input.h:60
@ FS_KEY_ESCAPE
Definition input.h:76
@ FS_KEY_U
Definition input.h:46
@ FS_KEY_KP_0
Definition input.h:96
@ FS_KEY_W
Definition input.h:48
@ FS_KEY_P
Definition input.h:41
@ FS_KEY_BACKSPACE
Definition input.h:79
@ FS_KEY_9
Definition input.h:62
@ FS_KEY_T
Definition input.h:45
@ FS_KEY_RIGHT_SHIFT
Definition input.h:81
@ FS_KEY_RIGHT_ALT
Definition input.h:85
@ FS_KEY_KP_7
Definition input.h:103
@ FS_KEY_MINUS
Definition input.h:65
@ FS_KEY_X
Definition input.h:49
@ FS_KEY_RIGHT
Definition input.h:93
@ FS_KEY_4
Definition input.h:57
@ FS_KEY_KP_ENTER
Definition input.h:111
@ FS_KEY_SLASH
Definition input.h:74
@ FS_KEY_KP_3
Definition input.h:99
@ FS_KEY_RIGHT_BRACKET
Definition input.h:68
@ FS_KEY_RIGHT_SUPER
Definition input.h:87
@ FS_KEY_NUM_LOCK
Definition input.h:95
@ FS_KEY_F
Definition input.h:31
@ FS_KEY_LEFT_BRACKET
Definition input.h:67
@ FS_KEY_DOWN
Definition input.h:91
@ FS_KEY_LEFT
Definition input.h:92
@ FS_KEY_APOSTROPHE
Definition input.h:71
@ FS_KEY_Z
Definition input.h:51
@ FS_KEY_KP_ADD
Definition input.h:110
@ FS_KEY_RIGHT_CONTROL
Definition input.h:83
@ FS_KEY_TAB
Definition input.h:78
@ FS_KEY_KP_8
Definition input.h:104
@ FS_KEY_C
Definition input.h:28
@ FS_KEY_1
Definition input.h:54
@ FS_KEY_ENTER
Definition input.h:77
@ FS_KEY_PERIOD
Definition input.h:73
@ FS_KEY_6
Definition input.h:59
@ FS_KEY_LEFT_CONTROL
Definition input.h:82
@ FS_KEY_8
Definition input.h:61
@ FS_KEY_EQUAL
Definition input.h:66
@ FS_KEY_SPACE
Definition input.h:64
@ FS_KEY_LEFT_ALT
Definition input.h:84
@ FS_KEY_N
Definition input.h:39
@ FS_KEY_KP_6
Definition input.h:102
@ FS_KEY_LEFT_SUPER
Definition input.h:86
@ FS_KEY_I
Definition input.h:34
@ FS_KEY_KP_2
Definition input.h:98
@ FS_KEY_L
Definition input.h:37
@ FS_KEY_0
Definition input.h:53
@ FS_KEY_KP_5
Definition input.h:101
@ FS_KEY_H
Definition input.h:33
@ FS_KEY_UP
Definition input.h:90
@ FS_KEY_M
Definition input.h:38
@ FS_KEY_K
Definition input.h:36
@ FS_KEY_R
Definition input.h:43
@ FS_KEY_KP_SUBTRACT
Definition input.h:109
@ FS_KEY_KP_4
Definition input.h:100
@ FS_KEY_COMMA
Definition input.h:72
@ FS_KEY_O
Definition input.h:40
@ FS_KEY_J
Definition input.h:35
@ FS_KEY_KP_9
Definition input.h:105
@ FS_KEY_E
Definition input.h:30
@ FS_KEY_KP_EQUAL
Definition input.h:112
@ FS_KEY_LEFT_SHIFT
Definition input.h:80
@ FS_KEY_V
Definition input.h:47
@ FS_KEY_KP_DIVIDE
Definition input.h:107
@ FS_KEY_G
Definition input.h:32
@ FS_KEY_SEMICOLON
Definition input.h:70
@ FS_KEY_BACKSLASH
Definition input.h:69
@ FS_KEY_D
Definition input.h:29
@ FS_KEY_KP_1
Definition input.h:97
@ FS_KEY_A
Definition input.h:26
@ FS_KEY_B
Definition input.h:27
@ FS_KEY_5
Definition input.h:58
@ FS_KEY_Y
Definition input.h:50
@ FS_KEY_3
Definition input.h:56
2D vector.
Definition vertex.h:20
Window object.
Definition window.h:17