diff options
| author | Vasco <[email protected]> | 2026-08-24 03:53:16 +0100 |
|---|---|---|
| committer | Vasco <[email protected]> | 2026-08-24 03:53:16 +0100 |
| commit | ad5248a3e1bafc1b7dec4c8af82d56ed324ef314 (patch) | |
| tree | b575c3b85d6ad314fa9768855bed9aed8642917e /demos/demo.c | |
| parent | 5dc2716abd43166cd65133625f408ad36a6623b3 (diff) | |
Slimed out podium. Updated math. Rend kinda works but still bugged.
Diffstat (limited to 'demos/demo.c')
| -rw-r--r-- | demos/demo.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/demos/demo.c b/demos/demo.c new file mode 100644 index 0000000..c095fdb --- /dev/null +++ b/demos/demo.c @@ -0,0 +1,61 @@ +#include <stdio.h> + +#define PEAK_IMPLEMENTATION +#include "../Peak/peak.h" + +void print_window_resize(PeakEvent ev) { + printf("window: %u %u\n", ev.resize.width, ev.resize.height); +} + +void print_window_close(PeakEvent ev) { + (void)ev; + printf("WINDOW CLOSE!!!!!!\nWOWWWOWAAAAAAAAAAAAAAAAAAAAAAAAh\n"); +} + +void print_mouse(PeakEvent ev) { + printf("mouse: state=%d type=%d pos=(%f, %f)\n", ev.pointer.state, ev.pointer.type, ev.pointer.x, ev.pointer.y); +} + +void print_key(PeakEvent ev) { + printf("key: key=%d mod=%d\n", ev.key.key, ev.key.mod); +} + +typedef void (*print_event_func)(PeakEvent ev); +print_event_func print_event[PEAK_EVENT_LAST] = { + [PEAK_EVENT_NONE] = print_mouse, + [PEAK_EVENT_WINDOW_RESIZE] = print_window_resize, + [PEAK_EVENT_WINDOW_CLOSE] = print_window_close, + [PEAK_EVENT_POINTER] = print_mouse, + [PEAK_EVENT_POINTER_CONNECTED] = print_mouse, + [PEAK_EVENT_POINTER_DISCONNECTED] = print_mouse, + [PEAK_EVENT_KEY_DOWN] = print_key, + [PEAK_EVENT_KEY_UP] = print_key, +}; + +int main(int argc, char **argv) { + (void)argc; + (void)argv; + + if (!peak_init()) return 1; + + PeakWindow win = peak_window_open("Demo", 800, 600, 0); + peak_window_clear(&win, 0.5, 0.5, 0, 1); + + PeakEvent ev; + while (win.running) { + while (peak_window_epoll(&win, &ev)) { + if (ev.type == PEAK_EVENT_NONE) continue; + print_event[ev.type](ev); + if (ev.type == PEAK_EVENT_WINDOW_CLOSE) { + win.running = 0; + break; + } + } + if (!win.running) break; + + } + + peak_window_close(&win); + peak_quit(); + return 0; +} |
