diff options
author | Dave Airlie <airliedfreedesktop.org> | 2006-11-28 04:50:54 +0000 |
---|---|---|
committer | Dave Airlie <airliedfreedesktop.org> | 2006-11-28 04:50:54 +0000 |
commit | c058f69daab817476582f8e04aedf8370f76d724 (patch) | |
tree | 283896e0698daf5dd38b371631b8d1b37d1c7372 | |
parent | 4a6f47c23bf6fcd03220289fb3bdf75238c4b940 (diff) |
add support to miniglx for updating drawables ..
requires hacks to DRM to remove MASTER from UPDATE_DRAW and ADD_DRAW
-rw-r--r-- | src/glx/mini/miniglx.c | 16 |
1 files 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; } |