diff options
Diffstat (limited to 'gfx-app/include')
-rw-r--r-- | gfx-app/include/gfx/gfx_app.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gfx-app/include/gfx/gfx_app.h b/gfx-app/include/gfx/gfx_app.h new file mode 100644 index 0000000..bdb3550 --- /dev/null +++ b/gfx-app/include/gfx/gfx_app.h | |||
@@ -0,0 +1,23 @@ | |||
1 | #pragma once | ||
2 | |||
3 | #include <stdbool.h> | ||
4 | |||
5 | typedef struct GfxAppDesc { | ||
6 | int argc; // Number of application arguments. | ||
7 | const char** argv; // Application arguments. | ||
8 | int width; // Window width. | ||
9 | int height; // Window height. | ||
10 | int max_fps; // Desired maximum framerate. 0 to disable. | ||
11 | double update_delta_time; // Desired delta time between frame updates. | ||
12 | } GfxAppDesc; | ||
13 | |||
14 | typedef struct GfxAppCallbacks { | ||
15 | bool (*init)(const GfxAppDesc*, void** app_state); | ||
16 | void (*update)(void* app_state, double t, double dt); | ||
17 | void (*render)(void* app_state); | ||
18 | void (*resize)(void* app_state, int width, int height); | ||
19 | void (*shutdown)(void* app_state); | ||
20 | } GfxAppCallbacks; | ||
21 | |||
22 | /// Create a window with an OpenGL context and run the main loop. | ||
23 | bool gfx_app_run(const GfxAppDesc*, const GfxAppCallbacks*); | ||