summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers/dri
diff options
context:
space:
mode:
Diffstat (limited to 'src/egl/drivers/dri')
-rw-r--r--src/egl/drivers/dri/egldri.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/egl/drivers/dri/egldri.c b/src/egl/drivers/dri/egldri.c
index 504fa9f43d0..cab0be2bd18 100644
--- a/src/egl/drivers/dri/egldri.c
+++ b/src/egl/drivers/dri/egldri.c
@@ -713,17 +713,32 @@ __eglGetDrawableInfo(__DRInativeDisplay * ndpy, int screen, __DRIid drawable,
int* backX, int* backY,
int* numBackClipRects, drm_clip_rect_t ** pBackClipRects )
{
+ __DRIscreen *pDRIScreen;
+ __DRIscreenPrivate *psp;
driSurface *surf = Lookup_driSurface(drawable);
+ pDRIScreen = __eglFindDRIScreen(ndpy, screen);
+
+ if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) {
+ return GL_FALSE;
+ }
+ psp = (__DRIscreenPrivate *) pDRIScreen->private;
*X = 0;
*Y = 0;
*W = surf->Base.Width;
*H = surf->Base.Height;
+ *backX = 0;
+ *backY = 0;
+ *numBackClipRects = 0;
+ *pBackClipRects = NULL;
+
*numClipRects = 1;
*pClipRects = malloc(sizeof(**pClipRects));
**pClipRects = (drm_clip_rect_t){0, 0, surf->Base.Width, surf->Base.Height};
+ psp->pSAREA->drawableTable[0].stamp = 1;
+ *stamp = 1;
#if 0
GLXDrawable drawable = (GLXDrawable) draw;
drm_clip_rect_t * cliprect;