summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glx/glxdri2.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 027615ae2..79d7f55b9 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -89,6 +89,8 @@ struct __GLXDRIdrawable {
__DRIdrawable *driDrawable;
__GLXDRIscreen *screen;
DRI2DrawablePtr pDRI2Draw;
+ XID id;
+ ClientPtr client;
/* Dimensions as last reported by DRI2GetBuffers. */
int width;
@@ -102,6 +104,8 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable)
{
__GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
const __DRIcoreExtension *core = private->screen->core;
+
+ DRI2DestroyDrawable(private->client, private->pDRI2Draw, private->id);
(*core->destroyDrawable)(private->driDrawable);
@@ -479,6 +483,8 @@ __glXDRIscreenCreateDrawable(ClientPtr client,
}
private->pDRI2Draw = DRI2GetDrawable(pDraw);
+ private->id = drawId;
+ private->client = client;
private->driDrawable =
(*driScreen->dri2->createNewDrawable)(driScreen->driScreen,