void REPLICATESPU_APIENTRY replicatespu_WindowDestroy(GLint win) { WindowInfo *winInfo = (WindowInfo *) crHashtableSearch( replicate_spu.windowTable, win ); GET_THREAD(thread); int i; replicatespuFlushAll( (void *) thread ); if (winInfo) { for (i = 0; i < CR_MAX_REPLICANTS; i++) { if (!IS_CONNECTED(replicate_spu.rserver[i].conn)) continue; if (replicate_spu.swap) crPackWindowDestroySWAP( winInfo->id[i] ); else crPackWindowDestroy( winInfo->id[i] ); winInfo->id[i] = -1; /* just to be safe */ replicatespuFlushOne(thread, i); } } crHashtableDelete(replicate_spu.windowTable, win, crFree); }
void PACKSPU_APIENTRY packspu_WindowDestroy( GLint window ) { if (pack_spu.swap) { crPackWindowDestroySWAP(window); } else { crPackWindowDestroy(window); } crHashtableDelete(pack_spu.XWindows,window,crFree); }