예제 #1
0
파일: rdpdraw.c 프로젝트: mehulsbhatt/xrdp
void
rdpWindowExposures(WindowPtr pWindow, RegionPtr pRegion, RegionPtr pBSRegion)
{
  ScreenPtr pScreen;
  rdpWindowRec* priv;

  ErrorF("rdpWindowExposures:\n");
  priv = GETWINPRIV(pWindow);
  pScreen = pWindow->drawable.pScreen;
  pScreen->WindowExposures = g_rdpScreen.WindowExposures;
  pScreen->WindowExposures(pWindow, pRegion, pBSRegion);
  pScreen->WindowExposures = rdpWindowExposures;
}
예제 #2
0
/**
 * find if the remote window denoted by a_remote
 * is paired with an internal Window within the Xephyr server.
 * If the remove window is paired with an internal window, send an
 * expose event to the client insterested in the internal window expose event.
 *
 * Pairing happens when a drawable inside Xephyr is associated with
 * a GL surface in a DRI environment.
 * Look at the function ProcXF86DRICreateDrawable in ephyrdriext.c to
 * know a paired window is created.
 *
 * This is useful to make GL drawables (only windows for now) handle
 * expose events and send those events to clients.
 */
static void
ephyrExposePairedWindow(int a_remote)
{
    EphyrWindowPair *pair = NULL;
    RegionRec reg;
    ScreenPtr screen;

    if (!findWindowPairFromRemote(a_remote, &pair)) {
        EPHYR_LOG("did not find a pair for this window\n");
        return;
    }
    screen = pair->local->drawable.pScreen;
    RegionNull(&reg);
    RegionCopy(&reg, &pair->local->clipList);
    screen->WindowExposures(pair->local, &reg);
    RegionUninit(&reg);
}
예제 #3
0
파일: rdpdraw.c 프로젝트: piccolo/xrdp
void
rdpWindowExposures(WindowPtr pWindow, RegionPtr pRegion, RegionPtr pBSRegion)
{
    ScreenPtr pScreen;
    rdpWindowRec *priv;

    LLOGLN(10, ("rdpWindowExposures:"));
    priv = GETWINPRIV(pWindow);
    pScreen = pWindow->drawable.pScreen;
    pScreen->WindowExposures = g_rdpScreen.WindowExposures;
    pScreen->WindowExposures(pWindow, pRegion, pBSRegion);

    if (g_use_rail)
    {
    }

    pScreen->WindowExposures = rdpWindowExposures;
}