void exit_display() { int i; glXMakeContextCurrent(display, None, None, NULL); glXDestroyContext(display, gl_context); glXDestroyWindow(display, gl_window); glXDestroyPbuffer(display, gl_pbuffer); #ifdef USE_NV_FENCE glDeleteFencesNV(1, &nvFence); #endif XDestroyWindow(display, window); for(i = 0; i < numsurfaces; i++) { XvMCDestroySurface(display, &surfaces[i]); } XvMCDestroyBlocks(display, &blocks); XvMCDestroyMacroBlocks(display, ¯o_blocks); XvMCDestroyContext(display, &context); XvUngrabPort(display, portNum, CurrentTime); XCloseDisplay(display); }
Milestone::~Milestone() { if (glDeleteFencesNV) { // The global factory might have been deallocated already on shutdown if (factory.getCArray() != NULL) { // Save it for later factory.push(glfence); if (factory.size() > 20) { // We've deallocated an awful lot, so free some glDeleteFencesNV(factory.size() - 5, &(factory.last()) - 5); factory.resize(20); } } else { glDeleteFencesNV(1, &glfence); } } }
CVertexArrayRange::~CVertexArrayRange() { glDeleteFencesNV(1,&fence); }