Bool rdpUnrealizeWindow(WindowPtr pWindow) { ScreenPtr pScreen; rdpWindowRec *priv; Bool rv; LLOGLN(10, ("rdpUnrealizeWindow:")); priv = GETWINPRIV(pWindow); pScreen = pWindow->drawable.pScreen; pScreen->UnrealizeWindow = g_rdpScreen.UnrealizeWindow; rv = pScreen->UnrealizeWindow(pWindow); pScreen->UnrealizeWindow = rdpUnrealizeWindow; if (g_use_rail) { if (priv->status == 1) { LLOGLN(10, ("rdpUnrealizeWindow:")); priv->status = 0; rdpup_delete_window(pWindow, priv); } } return rv; }
Bool rdpUnrealizeWindow(WindowPtr pWindow) { ScreenPtr pScreen; rdpWindowRec* priv; Bool rv; ErrorF("rdpUnrealizeWindow:\n"); priv = GETWINPRIV(pWindow); pScreen = pWindow->drawable.pScreen; pScreen->UnrealizeWindow = g_rdpScreen.UnrealizeWindow; rv = pScreen->UnrealizeWindow(pWindow); pScreen->UnrealizeWindow = rdpUnrealizeWindow; return rv; }
Bool glWinUnrealizeWindow(WindowPtr pWin) { /* If this window has GL contexts, tell them to unattach */ Bool result; ScreenPtr pScreen = pWin->drawable.pScreen; glWinScreenRec *screenPriv = &glWinScreens[pScreen->myNum]; __GLXdrawablePrivate *glxPriv; GLWIN_DEBUG_MSG("glWinUnrealizeWindow\n"); /* The Aqua window may have already been destroyed (windows * are unrealized from top down) */ /* Unattach this window's GL contexts, if any. */ glxPriv = __glXFindDrawablePrivate(pWin->drawable.id); if (glxPriv) { __GLXcontext *gx; __GLcontext *gc; GLWIN_DEBUG_MSG("glWinUnealizeWindow is GL drawable!\n"); /* GL contexts bound to this window for drawing */ for (gx = glxPriv->drawGlxc; gx != NULL; gx = gx->next) { gc = (__GLcontext *)gx->gc; unattach(gc); } /* GL contexts bound to this window for reading */ for (gx = glxPriv->readGlxc; gx != NULL; gx = gx->next) { gc = (__GLcontext *)gx->gc; unattach(gc); } } pScreen->UnrealizeWindow = screenPriv->UnrealizeWindow; result = pScreen->UnrealizeWindow(pWin); pScreen->UnrealizeWindow = glWinUnrealizeWindow; return result; }