#include "TZR.h" #include "TZR_globals.h" #include #include void TZR_Quit(void) { for (size_t i = 0; i < ___tzr_resources_size; i++) TZR_DestroyResource(&___tzr_resources[i], 1); if (___tzr_resources != NULL) free(___tzr_resources); ___tzr_resources = NULL; ___tzr_resources_size = 0; ___tzr_resources_capacity = 0; for (size_t i = 0; i < ___tzr_joysticks_size; i++) { if (___tzr_joysticks[i].ptr != NULL) SDL_GameControllerClose(___tzr_joysticks[i].ptr); } if (___tzr_joysticks != NULL) free(___tzr_joysticks); ___tzr_joysticks = NULL; ___tzr_joysticks_size = 0; ___tzr_joysticks_capacity = 0; if (___tzr_target_pre != NULL) { SDL_DestroyTexture(___tzr_target_pre); ___tzr_target = NULL; } if (___tzr_target != NULL) { SDL_DestroyTexture(___tzr_target); ___tzr_target = NULL; } if (___tzr_renderer != NULL) { SDL_DestroyRenderer(___tzr_renderer); ___tzr_renderer = NULL; } if (___tzr_gl_ctx != NULL) { SDL_GL_DeleteContext(___tzr_gl_ctx); ___tzr_gl_ctx = NULL; } if (___tzr_window != NULL) { SDL_DestroyWindow(___tzr_window); ___tzr_window = NULL; } if (___tzr_config.mixer) { #ifdef TZR_SOLOUD Soloud_deinit(___tzr_soloud); Soloud_destroy(___tzr_soloud); ___tzr_soloud = NULL; #endif Mix_CloseAudio(); Mix_Quit(); } SDL_Quit(); }