From dc96fcd771bea09d726a760266739906e95c09a6 Mon Sep 17 00:00:00 2001 From: Vasco Date: Sun, 23 Aug 2026 02:25:33 +0100 Subject: Peak 0.1.1 --- Peak/demos/demo.c | 65 ++++++++++++++++++++++++++++++++++++++++ Peak/demos/demo_replace_main.c | 67 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 Peak/demos/demo.c create mode 100644 Peak/demos/demo_replace_main.c (limited to 'Peak/demos') diff --git a/Peak/demos/demo.c b/Peak/demos/demo.c new file mode 100644 index 0000000..7aec9b3 --- /dev/null +++ b/Peak/demos/demo.c @@ -0,0 +1,65 @@ +#include +#include +#include + +#define PEAK_IMPLEMENTATION +#include "../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) { + 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, +}; + + +typedef struct { + char *msg; +} AppData; + +static AppData data; + +int main(int argc, char**argv) { + peak_init(); + int running = 1000000; + PeakEvent ev; + data.msg = "hello world"; + while (running--) { + while (peak_poll_events(&ev)) { + if (ev.type == PEAK_EVENT_NONE) + continue; + print_event[ev.type](ev); + switch (ev.type) { + case PEAK_EVENT_WINDOW_CLOSE: + printf("STOPPPPEEED\n"); + return 1; + } + } + // printf("frame: %d - %s\n", running, data.msg); + } + peak_quit(); + return 0; +} + diff --git a/Peak/demos/demo_replace_main.c b/Peak/demos/demo_replace_main.c new file mode 100644 index 0000000..3aedfaa --- /dev/null +++ b/Peak/demos/demo_replace_main.c @@ -0,0 +1,67 @@ +#include +#include +#include + +#define PEAK_REPLACE_MAIN +#define PEAK_IMPLEMENTATION +#include "../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) { + 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, +}; + + +typedef struct { + char *msg; +} AppData; + +static AppData data; + +int main(int argc, char**argv) { + data.msg = "Hello World"; + return PEAK_CONTINUE; +} + +void +peak_events(PeakEvent ev) +{ + print_event[ev.type](ev); + switch (ev.type) { + case PEAK_EVENT_WINDOW_CLOSE: + printf("stoppppeeed\n"); + peak_stop(); + break; + } +} + +void +peak_tick() +{ + printf("%s\n",data.msg); + sleep(1); +} -- cgit v1.3.1