diff options
author | Ian Romanick <[email protected]> | 2006-10-30 23:44:54 +0000 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2006-10-30 23:44:54 +0000 |
commit | b14bae846678b0d340af5b26c36e762817929d5d (patch) | |
tree | 9c8271f71b3a1ac33cc731f4924c16bf8daee77a /src/mesa/drivers | |
parent | 86a465412d5b305356460e778c29107722b93f0f (diff) |
Fix bug #8799.
Properly resize bith the drawable and the readable in mgaUpdateRects.
Eliminate the use of the deprecated GetBufferSize interface. Bump
driver date.
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/mga/mgadd.c | 19 | ||||
-rw-r--r-- | src/mesa/drivers/dri/mga/mgastate.c | 11 |
2 files changed, 8 insertions, 22 deletions
diff --git a/src/mesa/drivers/dri/mga/mgadd.c b/src/mesa/drivers/dri/mga/mgadd.c index faf46f31392..b1d5e0c48fc 100644 --- a/src/mesa/drivers/dri/mga/mgadd.c +++ b/src/mesa/drivers/dri/mga/mgadd.c @@ -41,7 +41,7 @@ #include "mga_xmesa.h" #include "utils.h" -#define DRIVER_DATE "20050609" +#define DRIVER_DATE "20061030" /*************************************** @@ -74,24 +74,7 @@ static const GLubyte *mgaGetString( GLcontext *ctx, GLenum name ) } -static void mgaBufferSize(GLframebuffer *buffer, GLuint *width, GLuint *height) -{ - GET_CURRENT_CONTEXT(ctx); - mgaContextPtr mmesa = MGA_CONTEXT(ctx); - - /* Need to lock to make sure the driDrawable is uptodate. This - * information is used to resize Mesa's software buffers, so it has - * to be correct. - */ - LOCK_HARDWARE( mmesa ); - *width = mmesa->driDrawable->w; - *height = mmesa->driDrawable->h; - UNLOCK_HARDWARE( mmesa ); -} - - void mgaInitDriverFuncs( struct dd_function_table *functions ) { - functions->GetBufferSize = mgaBufferSize; functions->GetString = mgaGetString; } diff --git a/src/mesa/drivers/dri/mga/mgastate.c b/src/mesa/drivers/dri/mga/mgastate.c index 26fd863dadb..71a1150d026 100644 --- a/src/mesa/drivers/dri/mga/mgastate.c +++ b/src/mesa/drivers/dri/mga/mgastate.c @@ -774,13 +774,18 @@ static void mga_set_cliprects(mgaContextPtr mmesa) void mgaUpdateRects( mgaContextPtr mmesa, GLuint buffers ) { - __DRIdrawablePrivate *driDrawable = mmesa->driDrawable; + __DRIdrawablePrivate *const driDrawable = mmesa->driDrawable; + __DRIdrawablePrivate *const driReadable = mmesa->driReadable; drm_mga_sarea_t *sarea = mmesa->sarea; - DRI_VALIDATE_DRAWABLE_INFO(mmesa->driScreen, driDrawable); mmesa->dirty_cliprects = 0; + driUpdateFramebufferSize(mmesa->glCtx, driDrawable); + if (driDrawable != driReadable) { + driUpdateFramebufferSize(mmesa->glCtx, driReadable); + } + mga_set_cliprects(mmesa); sarea->req_drawable = driDrawable->draw; @@ -788,8 +793,6 @@ void mgaUpdateRects( mgaContextPtr mmesa, GLuint buffers ) mgaUpdateClipping( mmesa->glCtx ); mgaCalcViewport( mmesa->glCtx ); - - mmesa->dirty |= MGA_UPLOAD_CLIPRECTS; } |