From c058f69daab817476582f8e04aedf8370f76d724 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 28 Nov 2006 04:50:54 +0000 Subject: add support to miniglx for updating drawables .. requires hacks to DRM to remove MASTER from UPDATE_DRAW and ADD_DRAW --- src/glx/mini/miniglx.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/glx/mini/miniglx.c b/src/glx/mini/miniglx.c index d4b2950863..ce45d37464 100644 --- a/src/glx/mini/miniglx.c +++ b/src/glx/mini/miniglx.c @@ -2310,7 +2310,9 @@ __glXGetDrawableInfo(__DRInativeDisplay *dpy, int scrn, GLXDrawable drawable = (GLXDrawable) draw; drm_clip_rect_t * cliprect; Display* display = (Display*)dpy; + __DRIscreenPrivate *psp = display->driScreen.private; __DRIcontextPrivate *pcp = (__DRIcontextPrivate *)CurrentContext->driContext.private; + __DRIdrawablePrivate *pdp = pcp->driDrawablePriv; if (drawable == 0) { return GL_FALSE; } @@ -2325,6 +2327,7 @@ __glXGetDrawableInfo(__DRInativeDisplay *dpy, int scrn, *index = display->clientID; *stamp = pcp->driScreenPriv->pSAREA->drawableTable[display->clientID].stamp; + drmUpdateDrawableInfo(psp->fd, pdp->hHWDrawable, DRM_DRAWABLE_CLIPRECTS, 1, cliprect); *x = drawable->x; *y = drawable->y; *width = drawable->w; @@ -2352,14 +2355,23 @@ static GLboolean xf86DRI_CreateDrawable(__DRInativeDisplay *dpy, int screen, __DRIid drawable, drm_drawable_t *hHWDrawable ) { - return GL_TRUE; + + Display *display = (Display *)dpy; + __DRIscreenPrivate *psp = display->driScreen.private; + int ret; + ret = drmCreateDrawable(psp->fd, hHWDrawable); + + fprintf(stderr, "drawable is %d %08X ret is %d\n", *hHWDrawable, drawable, -ret); + if (ret != 0) + return GL_FALSE; + return GL_TRUE; } static GLboolean xf86DRI_DestroyDrawable(__DRInativeDisplay *dpy, int screen, __DRIid drawable) { - return GL_TRUE; + return GL_TRUE; } -- cgit v1.2.3