#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; }