diff options
author | 3gg <3gg@shellblade.net> | 2025-06-27 10:18:39 -0700 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2025-06-27 10:18:39 -0700 |
commit | bd57f345ed9dbed1d81683e48199626de2ea9044 (patch) | |
tree | 4221f2f2a7ad2244d2e93052bd68187ec91b8ea9 /gfx-iso/demos/isomap/isomap.c | |
parent | 9a82ce0083437a4f9f58108b2c23b957d2249ad8 (diff) |
Diffstat (limited to 'gfx-iso/demos/isomap/isomap.c')
-rw-r--r-- | gfx-iso/demos/isomap/isomap.c | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/gfx-iso/demos/isomap/isomap.c b/gfx-iso/demos/isomap/isomap.c deleted file mode 100644 index a233659..0000000 --- a/gfx-iso/demos/isomap/isomap.c +++ /dev/null | |||
@@ -1,105 +0,0 @@ | |||
1 | #include <isogfx/backend.h> | ||
2 | #include <isogfx/isogfx.h> | ||
3 | |||
4 | #include <gfx/app.h> | ||
5 | |||
6 | #include <assert.h> | ||
7 | #include <stdbool.h> | ||
8 | |||
9 | static const int WINDOW_WIDTH = 1408; | ||
10 | static const int WINDOW_HEIGHT = 960; | ||
11 | static const int MAX_FPS = 60; | ||
12 | |||
13 | // Virtual screen dimensions. | ||
14 | static const int SCREEN_WIDTH = 704; | ||
15 | static const int SCREEN_HEIGHT = 480; | ||
16 | |||
17 | typedef struct GfxAppState { | ||
18 | IsoBackend* backend; | ||
19 | IsoGfx* iso; | ||
20 | int xpick; | ||
21 | int ypick; | ||
22 | SpriteSheet stag_sheet; | ||
23 | Sprite stag; | ||
24 | } GfxAppState; | ||
25 | |||
26 | static bool init(GfxAppState* state, int argc, const char** argv) { | ||
27 | assert(state); | ||
28 | (void)argc; | ||
29 | (void)argv; | ||
30 | |||
31 | if (!(state->iso = isogfx_new(&(IsoGfxDesc){ | ||
32 | .screen_width = SCREEN_WIDTH, .screen_height = SCREEN_HEIGHT}))) { | ||
33 | return false; | ||
34 | } | ||
35 | IsoGfx* iso = state->iso; | ||
36 | |||
37 | isogfx_resize(iso, SCREEN_WIDTH, SCREEN_HEIGHT); | ||
38 | |||
39 | if (!isogfx_load_world(iso, "/home/jeanne/assets/tilemaps/demo1.tm")) { | ||
40 | return false; | ||
41 | } | ||
42 | |||
43 | if (!isogfx_load_sprite_sheet( | ||
44 | iso, "/home/jeanne/assets/tilesets/scrabling/critters/stag/stag.ss", | ||
45 | &state->stag_sheet)) { | ||
46 | return false; | ||
47 | } | ||
48 | |||
49 | state->stag = isogfx_make_sprite(iso, state->stag_sheet); | ||
50 | isogfx_set_sprite_position(iso, state->stag, 5, 4); | ||
51 | |||
52 | if (!(state->backend = IsoBackendInit(iso))) { | ||
53 | return false; | ||
54 | } | ||
55 | |||
56 | return true; | ||
57 | } | ||
58 | |||
59 | static void shutdown(GfxAppState* state) { | ||
60 | assert(state); | ||
61 | // | ||
62 | } | ||
63 | |||
64 | static void update(GfxAppState* state, double t, double dt) { | ||
65 | assert(state); | ||
66 | (void)dt; | ||
67 | |||
68 | IsoGfx* iso = state->iso; | ||
69 | isogfx_update(iso, t); | ||
70 | } | ||
71 | |||
72 | static void render(GfxAppState* state) { | ||
73 | assert(state); | ||
74 | |||
75 | IsoGfx* iso = state->iso; | ||
76 | isogfx_render(iso); | ||
77 | IsoBackendRender(state->backend, iso); | ||
78 | } | ||
79 | |||
80 | static void resize(GfxAppState* state, int width, int height) { | ||
81 | assert(state); | ||
82 | |||
83 | IsoBackendResizeWindow(state->backend, state->iso, width, height); | ||
84 | } | ||
85 | |||
86 | int main(int argc, const char** argv) { | ||
87 | GfxAppState state = {0}; | ||
88 | gfx_app_run( | ||
89 | &(GfxAppDesc){ | ||
90 | .argc = argc, | ||
91 | .argv = argv, | ||
92 | .width = WINDOW_WIDTH, | ||
93 | .height = WINDOW_HEIGHT, | ||
94 | .max_fps = MAX_FPS, | ||
95 | .update_delta_time = MAX_FPS > 0 ? 1.0 / (double)MAX_FPS : 0.0, | ||
96 | .title = "Isometric Renderer", | ||
97 | .app_state = &state}, | ||
98 | &(GfxAppCallbacks){ | ||
99 | .init = init, | ||
100 | .update = update, | ||
101 | .render = render, | ||
102 | .resize = resize, | ||
103 | .shutdown = shutdown}); | ||
104 | return 0; | ||
105 | } | ||