void tcache_close() { DEBUG("Texture cache:"); DEBUG(" * Misses: %d", cache->misses); DEBUG(" * Hits: %d", cache->hits); DEBUG(" * Old frees: %d", cache->old_frees); tcache_clear(); hashmap_free(&cache->entries); free(cache); }
void video_reinit_renderer() { // Clear old texture cache entries tcache_clear(); // Kill old renderer SDL_DestroyRenderer(state.renderer); // Create a new renderer int renderer_flags = SDL_RENDERER_ACCELERATED; if(state.vsync) { renderer_flags |= SDL_RENDERER_PRESENTVSYNC; } state.renderer = SDL_CreateRenderer(state.window, -1, renderer_flags); SDL_RenderSetLogicalSize(state.renderer, NATIVE_W * state.scale_factor, NATIVE_H * state.scale_factor); tcache_reinit(state.renderer, state.scale_factor, &state.scaler); // Reset rendertarget reset_targets(); }
void tcache_reinit(SDL_Renderer *renderer, int scale_factor, scaler_plugin *scaler) { cache->renderer = renderer; cache->scaler = scaler; cache->scale_factor = scale_factor; tcache_clear(); }