static void Particles_Free(void) { Gfx_DeleteTexture(&Particles_TexId); Particles_ContextLost(NULL); Event_UnregisterBlock(&UserEvents_BlockChanged, NULL, Particles_BreakBlockEffect_Handler); Event_UnregisterStream(&TextureEvents_FileChanged, NULL, Particles_FileChanged); Event_UnregisterVoid(&GfxEvents_ContextLost, NULL, Particles_ContextLost); Event_UnregisterVoid(&GfxEvents_ContextRecreated, NULL, Particles_ContextRecreated); }
static void Gui_Free(void) { Event_UnregisterVoid(&ChatEvents.FontChanged, NULL, Gui_FontChanged); Event_UnregisterEntry(&TextureEvents.FileChanged, NULL, Gui_FileChanged); if (Gui_Active) Elem_TryFree(Gui_Active); Elem_TryFree(Gui_Status); Elem_TryFree(Gui_HUD); Gfx_DeleteTexture(&Gui_GuiTex); Gfx_DeleteTexture(&Gui_GuiClassicTex); Gfx_DeleteTexture(&Gui_IconsTex); Gui_Reset(); }
static void MapRenderer_Free(void) { Event_UnregisterVoid(&TextureEvents.AtlasChanged, NULL, MapRenderer_TerrainAtlasChanged); Event_UnregisterInt(&WorldEvents.EnvVarChanged, NULL, MapRenderer_EnvVariableChanged); Event_UnregisterVoid(&BlockEvents.BlockDefChanged, NULL, MapRenderer_BlockDefinitionChanged); Event_UnregisterVoid(&GfxEvents.ViewDistanceChanged, NULL, MapRenderer_RecalcVisibility); Event_UnregisterVoid(&GfxEvents.ProjectionChanged, NULL, MapRenderer_RecalcVisibility); Event_UnregisterVoid(&GfxEvents.ContextLost, NULL, MapRenderer_DeleteChunks_); Event_UnregisterVoid(&GfxEvents.ContextRecreated, NULL, MapRenderer_Refresh_); MapRenderer_OnNewMap(); }
static void PickedPosRenderer_Free(void) { PickedPosRenderer_ContextLost(NULL); Event_UnregisterVoid(&GfxEvents_ContextLost, NULL, PickedPosRenderer_ContextLost); Event_UnregisterVoid(&GfxEvents_ContextRecreated, NULL, PickedPosRenderer_ContextRecreated); }
static void AxisLinesRenderer_Free(void) { AxisLinesRenderer_ContextLost(NULL); Event_UnregisterVoid(&GfxEvents_ContextLost, NULL, AxisLinesRenderer_ContextLost); }
void Screen_CommonFree(void* screen) { struct Screen* s = screen; Event_UnregisterVoid(&GfxEvents.ContextLost, s, s->VTABLE->ContextLost); Event_UnregisterVoid(&GfxEvents.ContextRecreated, s, s->VTABLE->ContextRecreated); s->VTABLE->ContextLost(s); }