summaryrefslogtreecommitdiff
path: root/lib/graphics.h
diff options
context:
space:
mode:
authordawidg81 <dawidgorski.m@gmail.com>2026-02-13 17:36:37 +0100
committerdawidg81 <dawidgorski.m@gmail.com>2026-02-13 17:36:37 +0100
commit0debac04a0b10e2e9c71e0d9d4df116b160f4769 (patch)
tree3f0d5d98983f79f877e605bfe4c19cea2b61c841 /lib/graphics.h
parent5de9c01a640c32a241189edd16332f8c2740099a (diff)
Updated graphics.h and graphics.cpp to handle common user input
Diffstat (limited to 'lib/graphics.h')
-rw-r--r--lib/graphics.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/graphics.h b/lib/graphics.h
index cc0bd63..411f1aa 100644
--- a/lib/graphics.h
+++ b/lib/graphics.h
@@ -53,4 +53,76 @@ void drawPixel(WindowHandle* window, int x, int y, const Color& color);
void setDrawColor(WindowHandle* window, const Color& color);
void delay(uint32_t milliseconds);
+// ============================================================================
+// INPUT HANDLING
+// ============================================================================
+
+// Key codes (cross-platform)
+enum KeyCode {
+ KEY_UNKNOWN = 0,
+
+ // Arrow keys
+ KEY_UP,
+ KEY_DOWN,
+ KEY_LEFT,
+ KEY_RIGHT,
+
+ // Letter keys
+ KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H,
+ KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P,
+ KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X,
+ KEY_Y, KEY_Z,
+
+ // Number keys
+ KEY_0, KEY_1, KEY_2, KEY_3, KEY_4,
+ KEY_5, KEY_6, KEY_7, KEY_8, KEY_9,
+
+ // Function keys
+ KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6,
+ KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12,
+
+ // Special keys
+ KEY_SPACE,
+ KEY_ENTER,
+ KEY_ESCAPE,
+ KEY_BACKSPACE,
+ KEY_TAB,
+ KEY_SHIFT,
+ KEY_CONTROL,
+ KEY_ALT,
+
+ // Other
+ KEY_PLUS,
+ KEY_MINUS,
+
+ KEY_COUNT // Total number of keys
+};
+
+// Mouse buttons
+enum MouseButton {
+ MOUSE_LEFT = 0,
+ MOUSE_RIGHT,
+ MOUSE_MIDDLE,
+ MOUSE_BUTTON_COUNT
+};
+
+// Keyboard input functions
+bool keyDown(WindowHandle* window, KeyCode key);
+bool keyPressed(WindowHandle* window, KeyCode key); // True only on the frame the key was pressed
+bool keyReleased(WindowHandle* window, KeyCode key); // True only on the frame the key was released
+
+// Mouse input functions
+bool mouseDown(WindowHandle* window, MouseButton button);
+bool mousePressed(WindowHandle* window, MouseButton button);
+bool mouseReleased(WindowHandle* window, MouseButton button);
+
+void getMousePosition(WindowHandle* window, int& x, int& y);
+void getMouseDelta(WindowHandle* window, int& dx, int& dy);
+void setMousePosition(WindowHandle* window, int x, int y);
+void setMouseLocked(WindowHandle* window, bool locked); // Locks mouse to window center (for FPS games)
+bool isMouseLocked(WindowHandle* window);
+
+// Mouse wheel
+int getMouseWheelDelta(WindowHandle* window);
+
#endif // GRAPHICS_H \ No newline at end of file