Used types in deinit functions

This commit is contained in:
Warwick 2026-01-31 17:48:07 +00:00
parent 44c776ed04
commit b07bc1365e
4 changed files with 8 additions and 6 deletions

View file

@ -67,11 +67,12 @@ wn_shader *wn_shader_init(Arena *arena,
shader->shaderProgram = shaderProgram; shader->shaderProgram = shaderProgram;
shader->success = true; shader->success = true;
arena_deinit_task_push(arena, (void *)shader, *wn_shader_deinit); arena_deinit_task_push(arena, (void *)shader,
(void (*)(void *))wn_shader_deinit);
return shader; return shader;
} }
void wn_shader_deinit(void *shader) { void wn_shader_deinit(wn_shader *shader) {
wn_shader *cast_shader = (wn_shader *)shader; wn_shader *cast_shader = (wn_shader *)shader;
glDeleteProgram(cast_shader->shaderProgram); glDeleteProgram(cast_shader->shaderProgram);
} }

View file

@ -17,4 +17,4 @@ typedef struct wn_shader_s wn_shader;
wn_shader *wn_shader_init(Arena *arena, wn_shader *wn_shader_init(Arena *arena,
wn_shader_code_location shader_code_location); wn_shader_code_location shader_code_location);
void wn_shader_deinit(void* shader); void wn_shader_deinit(wn_shader *shader);

View file

@ -56,12 +56,13 @@ wn_window *wn_window_init(Arena *arena) {
SDL_SetWindowRelativeMouseMode(window->window, true); SDL_SetWindowRelativeMouseMode(window->window, true);
SDL_GetRelativeMouseState(NULL, NULL); SDL_GetRelativeMouseState(NULL, NULL);
arena_deinit_task_push(arena, (void *)window, *wn_window_deinit); arena_deinit_task_push(arena, (void *)window,
(void (*)(void *))wn_window_deinit);
return window; return window;
} }
void wn_window_deinit(void *window) { void wn_window_deinit(wn_window *window) {
wn_window *cast_window = (wn_window *)window; wn_window *cast_window = (wn_window *)window;
SDL_GL_DestroyContext(cast_window->glcontext); SDL_GL_DestroyContext(cast_window->glcontext);
SDL_DestroyWindow(cast_window->window); SDL_DestroyWindow(cast_window->window);

View file

@ -15,6 +15,6 @@ struct wn_window_s {
typedef struct wn_window_s wn_window; typedef struct wn_window_s wn_window;
wn_window *wn_window_init(Arena *arena); wn_window *wn_window_init(Arena *arena);
void wn_window_deinit(void *window); void wn_window_deinit(wn_window *window);
void wn_swapwindow(wn_window *window); void wn_swapwindow(wn_window *window);