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; }
/** * 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(®); RegionCopy(®, &pair->local->clipList); screen->WindowExposures(pair->local, ®); RegionUninit(®); }
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; }