glx/dri2: Always use X drawable ID for DRI2 protocol.

Fixes protocol errors in cases where the GLX ID is different.
This commit is contained in:
Michel Dänzer
2009-08-22 01:33:37 +02:00
parent 6b1f144d9b
commit 029e643b24
+5 -5
View File
@@ -159,7 +159,7 @@ dri2DestroyDrawable(__GLXDRIdrawable * pdraw)
const __DRIcoreExtension *core = pdraw->psc->core;
(*core->destroyDrawable) (pdraw->driDrawable);
DRI2DestroyDrawable(pdraw->psc->dpy, pdraw->drawable);
DRI2DestroyDrawable(pdraw->psc->dpy, pdraw->xDrawable);
Xfree(pdraw);
}
@@ -189,7 +189,7 @@ dri2CreateDrawable(__GLXscreenConfigs * psc,
config->driConfig, pdraw);
if (!pdraw->base.driDrawable) {
DRI2DestroyDrawable(psc->dpy, drawable);
DRI2DestroyDrawable(psc->dpy, xDrawable);
Xfree(pdraw);
return NULL;
}
@@ -221,7 +221,7 @@ dri2CopySubBuffer(__GLXDRIdrawable * pdraw,
region = XFixesCreateRegion(pdraw->psc->dpy, &xrect, 1);
/* should get a fence ID back from here at some point */
DRI2CopyRegion(pdraw->psc->dpy, pdraw->drawable, region,
DRI2CopyRegion(pdraw->psc->dpy, pdraw->xDrawable, region,
DRI2BufferFrontLeft, DRI2BufferBackLeft);
XFixesDestroyRegion(pdraw->psc->dpy, region);
@@ -261,7 +261,7 @@ dri2WaitX(__GLXDRIdrawable * pdraw)
#endif
region = XFixesCreateRegion(pdraw->psc->dpy, &xrect, 1);
DRI2CopyRegion(pdraw->psc->dpy, pdraw->drawable, region,
DRI2CopyRegion(pdraw->psc->dpy, pdraw->xDrawable, region,
DRI2BufferFakeFrontLeft, DRI2BufferFrontLeft);
XFixesDestroyRegion(pdraw->psc->dpy, region);
}
@@ -287,7 +287,7 @@ dri2WaitGL(__GLXDRIdrawable * pdraw)
#endif
region = XFixesCreateRegion(pdraw->psc->dpy, &xrect, 1);
DRI2CopyRegion(pdraw->psc->dpy, pdraw->drawable, region,
DRI2CopyRegion(pdraw->psc->dpy, pdraw->xDrawable, region,
DRI2BufferFrontLeft, DRI2BufferFakeFrontLeft);
XFixesDestroyRegion(pdraw->psc->dpy, region);
}