示例#1
0
文件: rdpdraw.c 项目: piccolo/xrdp
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;
}
示例#2
0
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;
}
示例#3
0
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;
}