summaryrefslogtreecommitdiff
path: root/plat.h
diff options
context:
space:
mode:
Diffstat (limited to 'plat.h')
-rw-r--r--plat.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/plat.h b/plat.h
index 1d79465..70fdf36 100644
--- a/plat.h
+++ b/plat.h
@@ -64,6 +64,90 @@ void fps_begin(FPS* f);
void fps_end(FPS* f);
void fps_update(FPS* f);
+#define key_xmacro() \
+ x(key_unknown) \
+ x(key_A) \
+ x(key_B) \
+ x(key_C) \
+ x(key_D) \
+ x(key_E) \
+ x(key_F) \
+ x(key_G) \
+ x(key_H) \
+ x(key_I) \
+ x(key_J) \
+ x(key_K) \
+ x(key_L) \
+ x(key_M) \
+ x(key_N) \
+ x(key_O) \
+ x(key_P) \
+ x(key_Q) \
+ x(key_R) \
+ x(key_S) \
+ x(key_T) \
+ x(key_U) \
+ x(key_V) \
+ x(key_W) \
+ x(key_X) \
+ x(key_Y) \
+ x(key_Z) \
+ x(key_f1) \
+ x(key_f2) \
+ x(key_f3) \
+ x(key_f4) \
+ x(key_f5) \
+ x(key_f6) \
+ x(key_f7) \
+ x(key_f8) \
+ x(key_f9) \
+ x(key_f10) \
+ x(key_f11) \
+ x(key_f12) \
+ x(key_down) \
+ x(key_left) \
+ x(key_right) \
+ x(key_up) \
+ x(key_escape) \
+ x(key_return) \
+ x(key_backspace) \
+ x(key_tab) \
+ x(key_delete) \
+ x(key_home) \
+ x(key_end) \
+ x(key_page_up) \
+ x(key_page_down) \
+ x(key_insert) \
+ x(key_shift) \
+ x(key_control) \
+ x(key_super) \
+ x(key_alt) \
+ x(key_space) \
+ x(key_period) \
+ x(key_0) \
+ x(key_1) \
+ x(key_2) \
+ x(key_3) \
+ x(key_4) \
+ x(key_5) \
+ x(key_6) \
+ x(key_7) \
+ x(key_8) \
+ x(key_9) \
+
+typedef enum {
+#define x(name) name,
+ key_xmacro()
+#undef x
+ key_count
+} Key;
+
+typedef enum {
+ key_state_pressed = 1 << 0,
+ key_state_just_pressed = 1 << 1,
+ key_state_just_released = 1 << 2
+} Key_State;
+
typedef struct {
int w, h, s, o, mpf;
int fps;
@@ -72,6 +156,7 @@ typedef struct {
Error err;
Colour* fb;
Heap* heap;
+ unsigned char key_states[key_count];
} App;
App* new_app(Heap* mem, int w, int h, const char* n);