diff options
| author | 3gg <3gg@shellblade.net> | 2024-02-17 13:54:40 -0800 |
|---|---|---|
| committer | 3gg <3gg@shellblade.net> | 2024-02-17 13:54:44 -0800 |
| commit | dc2466b88b4478d8944251d9d97cbe0c774f5ca0 (patch) | |
| tree | 50b8e0768ed7d4406381550ead6d35ca1a298488 /game/src/plugins | |
| parent | ff28bcb64cd2043164263ca0a03b41a560763d9a (diff) | |
Address viewer reloading TODO.
This works now with the recent changes to the asset cache.
Diffstat (limited to 'game/src/plugins')
| -rw-r--r-- | game/src/plugins/viewer.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/game/src/plugins/viewer.c b/game/src/plugins/viewer.c index c58b0e0..945a422 100644 --- a/game/src/plugins/viewer.c +++ b/game/src/plugins/viewer.c | |||
| @@ -102,6 +102,10 @@ static Model* load_scene(Game* game, State* state, const char* scene_filepath) { | |||
| 102 | bool init(Game* game, State** pp_state) { | 102 | bool init(Game* game, State** pp_state) { |
| 103 | assert(game); | 103 | assert(game); |
| 104 | 104 | ||
| 105 | // Usage: <scene file> | ||
| 106 | const char* scene_filepath = | ||
| 107 | game->argc > 1 ? game->argv[1] : DEFAULT_SCENE_FILE; | ||
| 108 | |||
| 105 | State* state = calloc(1, sizeof(State)); | 109 | State* state = calloc(1, sizeof(State)); |
| 106 | if (!state) { | 110 | if (!state) { |
| 107 | goto cleanup; | 111 | goto cleanup; |
| @@ -114,12 +118,6 @@ bool init(Game* game, State** pp_state) { | |||
| 114 | goto cleanup; | 118 | goto cleanup; |
| 115 | } | 119 | } |
| 116 | 120 | ||
| 117 | const int argc = game->argc; | ||
| 118 | const char** argv = game->argv; | ||
| 119 | |||
| 120 | // Usage: <scene file> | ||
| 121 | const char* scene_filepath = argc > 1 ? argv[1] : DEFAULT_SCENE_FILE; | ||
| 122 | |||
| 123 | state->model = load_scene(game, state, scene_filepath); | 121 | state->model = load_scene(game, state, scene_filepath); |
| 124 | if (!state->model) { | 122 | if (!state->model) { |
| 125 | goto cleanup; | 123 | goto cleanup; |
| @@ -145,10 +143,6 @@ cleanup: | |||
| 145 | void shutdown(Game* game, State* state) { | 143 | void shutdown(Game* game, State* state) { |
| 146 | assert(game); | 144 | assert(game); |
| 147 | if (state) { | 145 | if (state) { |
| 148 | // TODO: Destroying the scene here currently does not play well with asset | ||
| 149 | // reloading. The issue is that we expect to mutate the scene/model during | ||
| 150 | // animation. This needs to change if we want to be able to cache assets | ||
| 151 | // in memory. | ||
| 152 | gfx_destroy_camera(&state->camera); | 146 | gfx_destroy_camera(&state->camera); |
| 153 | gfx_destroy_scene(&state->scene); | 147 | gfx_destroy_scene(&state->scene); |
| 154 | // State freed by plugin engine. | 148 | // State freed by plugin engine. |
