ENTRYPOINT void free_unicrud (ModeInfo *mi) { unicrud_configuration *bp = &bps[MI_SCREEN(mi)]; if (!bp->glx_context) return; glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context); if (bp->trackball) gltrackball_free (bp->trackball); if (bp->rot) free_rotator (bp->rot); if (bp->title_font) free_texture_font (bp->title_font); if (bp->char_font) free_texture_font (bp->char_font); }
ENTRYPOINT void free_splitflap (ModeInfo *mi) { splitflap_configuration *bp = &bps[MI_SCREEN(mi)]; int i; if (!bp->glx_context) return; glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context); if (bp->flappers) free (bp->flappers); if (bp->tc) textclient_close (bp->tc); if (bp->trackball) gltrackball_free (bp->trackball); if (bp->rot) free_rotator (bp->rot); if (bp->rot2) free_rotator (bp->rot2); if (bp->font_data) free_texture_font (bp->font_data); if (bp->dlists) { for (i = 0; i < countof(all_objs); i++) if (glIsList(bp->dlists[i])) glDeleteLists(bp->dlists[i], 1); free (bp->dlists); } if (bp->texinfo) { for (i = 0; i < bp->texinfo_size; i++) if (bp->texinfo[i].texid) glDeleteTextures (1, &bp->texinfo[i].texid); free (bp->texinfo); } }
ENTRYPOINT void release_wip24(ModeInfo *mi) { wip24_state* state = states + MI_SCREEN(mi); glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(state->glx_context)); for (unsigned int i = 0; i < 4; i++) glDeleteTextures(1, &state->channels[i].texture); glDeleteFramebuffers(1, &state->framebuffer); glDeleteTextures(1, &state->fb_texture); glDeleteProgram(state->program); free_texture_font(state->font); glXDestroyContext(MI_DISPLAY(mi), *state->glx_context); free(state->glx_context); }