diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/drivers/dri/i915/intel_context.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/src/mesa/drivers/dri/i915/intel_context.c b/src/mesa/drivers/dri/i915/intel_context.c index 2a8ccccaa5..0f89972b70 100644 --- a/src/mesa/drivers/dri/i915/intel_context.c +++ b/src/mesa/drivers/dri/i915/intel_context.c @@ -538,14 +538,14 @@ void intelSetBackClipRects( intelContextPtr intel )  void intelWindowMoved( intelContextPtr intel )  {     __DRIdrawablePrivate *dPriv = intel->driDrawable; +   GLframebuffer *drawFb = (GLframebuffer *) dPriv->driverPrivate;     if (!intel->ctx.DrawBuffer) {        intelSetFrontClipRects( intel );     }     else {        driUpdateFramebufferSize(&intel->ctx, dPriv); -     -      switch (intel->ctx.DrawBuffer->_ColorDrawBufferMask[0]) { +      switch (drawFb->_ColorDrawBufferMask[0]) {        case BUFFER_BIT_FRONT_LEFT:  	 intelSetFrontClipRects( intel );  	 break; @@ -558,10 +558,12 @@ void intelWindowMoved( intelContextPtr intel )        }     } -   _mesa_resize_framebuffer(&intel->ctx, -			    (GLframebuffer*)dPriv->driverPrivate, -			    dPriv->w, dPriv->h); -    +   if (drawFb->Width != dPriv->w || drawFb->Height != dPriv->h) { +      /* update Mesa's notion of framebuffer/window size */ +      _mesa_resize_framebuffer(&intel->ctx, drawFb, dPriv->w, dPriv->h); +      drawFb->Initialized = GL_TRUE; /* XXX remove someday */ +   } +     /* Set state we know depends on drawable parameters:      */     { | 
