summaryrefslogtreecommitdiff
path: root/Peak/demos
diff options
context:
space:
mode:
Diffstat (limited to 'Peak/demos')
-rw-r--r--Peak/demos/demo.c65
-rw-r--r--Peak/demos/demo_replace_main.c67
2 files changed, 132 insertions, 0 deletions
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 <stdio.h>
+#include <math.h>
+#include <unistd.h>
+
+#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 <stdio.h>
+#include <math.h>
+#include <unistd.h>
+
+#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);
+}