Remove x/y/width/height parameters from Clear functions.
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 1 Nov 2006 19:35:22 +0000 (19:35 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 1 Nov 2006 19:35:22 +0000 (19:35 +0000)
41 files changed:
src/mesa/drivers/directfb/idirectfbgl_mesa.c
src/mesa/drivers/dri/ffb/ffb_clear.c
src/mesa/drivers/dri/ffb/ffb_clear.h
src/mesa/drivers/dri/ffb/ffb_xmesa.c
src/mesa/drivers/dri/gamma/gamma_state.c
src/mesa/drivers/dri/i810/i810ioctl.c
src/mesa/drivers/dri/i915/intel_ioctl.c
src/mesa/drivers/dri/i915/intel_ioctl.h
src/mesa/drivers/dri/i915tex/intel_blit.c
src/mesa/drivers/dri/i915tex/intel_blit.h
src/mesa/drivers/dri/i915tex/intel_buffers.c
src/mesa/drivers/dri/i965/intel_blit.c
src/mesa/drivers/dri/i965/intel_blit.h
src/mesa/drivers/dri/i965/intel_buffers.c
src/mesa/drivers/dri/mach64/mach64_ioctl.c
src/mesa/drivers/dri/mga/mgaioctl.c
src/mesa/drivers/dri/r128/r128_ioctl.c
src/mesa/drivers/dri/r200/r200_ioctl.c
src/mesa/drivers/dri/r300/r300_ioctl.c
src/mesa/drivers/dri/radeon/radeon_ioctl.c
src/mesa/drivers/dri/s3v/s3v_state.c
src/mesa/drivers/dri/savage/savageioctl.c
src/mesa/drivers/dri/sis/sis6326_clear.c
src/mesa/drivers/dri/sis/sis_clear.c
src/mesa/drivers/dri/sis/sis_state.h
src/mesa/drivers/dri/tdfx/tdfx_render.c
src/mesa/drivers/dri/trident/trident_state.c
src/mesa/drivers/dri/unichrome/via_ioctl.c
src/mesa/drivers/ggi/ggimesa.c
src/mesa/drivers/glide/fxdd.c
src/mesa/drivers/svga/svgamesa15.c
src/mesa/drivers/svga/svgamesa16.c
src/mesa/drivers/svga/svgamesa24.c
src/mesa/drivers/svga/svgamesa32.c
src/mesa/drivers/svga/svgamesa8.c
src/mesa/drivers/windows/gdi/wmesa.c
src/mesa/drivers/x11/xm_dd.c
src/mesa/main/buffers.c
src/mesa/main/dd.h
src/mesa/swrast/s_buffers.c
src/mesa/swrast/swrast.h

index 3c2a77b5bc49d8c2ff23860425ff890d3ed57db7..323cdd6791383e82bfe492b421a311cfeb4355e6 100644 (file)
@@ -372,10 +372,14 @@ dfbSetViewport( GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h )
 }
 
 static void
-dfbClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
-          GLint x, GLint y, GLint width, GLint height )
+dfbClear( GLcontext *ctx, GLbitfield mask )
 {
      IDirectFBGL_data *data = (IDirectFBGL_data*) ctx->DriverCtx;
+     int x = ctx->DrawBuffer->_Xmin;
+     int y = ctx->DrawBuffer->_Ymin;
+     int width = ctx->DrawBuffer->_Xmax - x;
+     int height = ctx->DrawBuffer->_Ymax - y;
+     GLboolean all = (width == ctx->DrawBuffer->Width && height == ctx->DrawBuffer->height)
      
      if (mask & BUFFER_BIT_FRONT_LEFT &&
          ctx->Color.ColorMask[0]      &&
@@ -420,7 +424,7 @@ dfbClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
      }
      
      if (mask)
-          _swrast_Clear( ctx, mask, all, x, y, width, height );
+          _swrast_Clear( ctx, mask );
 }        
           
      
index 9cd5a12b7dc2098a252118b5e6efa1e208608eca..e8dfcbe2543be13ed6b405fa4553d908ee8b5c55 100644 (file)
@@ -249,8 +249,7 @@ ffb_do_clear(GLcontext *ctx, __DRIdrawablePrivate *dPriv)
        }
 }
 
-void ffbDDClear(GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-               GLint cxFoo, GLint cyFoo, GLint cwidthFoo, GLint cheightFoo)
+void ffbDDClear(GLcontext *ctx, GLbitfield mask)
 {
        ffbContextPtr fmesa = FFB_CONTEXT(ctx);
        __DRIdrawablePrivate *dPriv = fmesa->driDrawable;
@@ -334,6 +333,6 @@ void ffbDDClear(GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
        }
 
        if (mask) 
-               _swrast_Clear(ctx, mask, 0, 0, 0, 0, 0);
+               _swrast_Clear(ctx, mask);
 }
 
index 4b707f19b2ae0c73f749fbc90b6bcfee841e2011..c3b8ce714b335811ca4d74975e1daffcb4380856 100644 (file)
@@ -1,9 +1,6 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/ffb/ffb_clear.h,v 1.2 2002/02/22 21:32:58 dawes Exp $ */
-
 #ifndef _FFB_CLEAR_H
 #define _FFB_CLEAR_H
 
-extern void ffbDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
-                      GLint cx, GLint cy, GLint cwidth, GLint cheight);
+extern void ffbDDClear(GLcontext *ctx, GLbitfield mask);
 
 #endif /* !(_FFB_CLEAR_H) */
index ab2a6688bab069c8e61e117ef8917f23869378d0..99256d76b6ee5dff5963d00a7dd1cc9346456494 100644 (file)
@@ -568,8 +568,7 @@ ffbMakeCurrent(__DRIcontextPrivate *driContextPriv,
                         */
                        ffbDDClear(fmesa->glCtx,
                                   (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT |
-                                   BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL),
-                                  1, 0, 0, 0, 0);
+                                   BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL));
                }
        } else {
                _mesa_make_current(NULL, NULL, NULL);
index 026ff5efbff8e10d17612d0e73073da8fb5e538d..08749bf5d39c52a8ec405becc7f603755e354220 100644 (file)
@@ -205,8 +205,7 @@ static void gammaDDBlendFuncSeparate( GLcontext *ctx,
  * Buffer clear
  */
 
-static void gammaDDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                              GLint cx, GLint cy, GLint cw, GLint ch )
+static void gammaDDClear( GLcontext *ctx, GLbitfield mask )
 {
    gammaContextPtr gmesa = GAMMA_CONTEXT(ctx);
    GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)gmesa->driScreen->pDevPriv;
@@ -410,7 +409,7 @@ static void gammaDDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
 #endif
 
    if ( mask )
-      _swrast_Clear( ctx, mask, all, cx, cy, cw, ch );
+      _swrast_Clear( ctx, mask );
 }
 
 /* =============================================================
index 9e52d80a8b93a1b9c65f932a61317abbb02f7f77..57c84193faf42464c42d64ab2650eb87a6fc3108 100644 (file)
@@ -48,8 +48,7 @@ static drmBufPtr i810_get_buffer_ioctl( i810ContextPtr imesa )
 
 #define DEPTH_SCALE ((1<<16)-1)
 
-static void i810Clear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                      GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo ) 
+static void i810Clear( GLcontext *ctx, GLbitfield mask )
 {
    i810ContextPtr imesa = I810_CONTEXT( ctx );
    __DRIdrawablePrivate *dPriv = imesa->driDrawable;
@@ -142,7 +141,7 @@ static void i810Clear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    }
 
    if (mask) 
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
 }
 
 
index fa02a17da134dd84e5dedf369a4d88450a22eae3..ede3b6378fe3998f2a700141eb3ad5e220343cdc 100644 (file)
@@ -375,8 +375,7 @@ void intelFinish( GLcontext *ctx  )
 }
 
 
-void intelClear(GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-               GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+void intelClear(GLcontext *ctx, GLbitfield mask)
 {
    intelContextPtr intel = INTEL_CONTEXT( ctx );
    const GLuint colorMask = *((GLuint *) &ctx->Color.ColorMask);
@@ -435,7 +434,7 @@ void intelClear(GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
       intel->vtbl.clear_with_tris( intel, tri_mask, 0, 0, 0, 0, 0);
 
    if (swrast_mask)
-      _swrast_Clear( ctx, swrast_mask, 0, 0, 0, 0, 0);
+      _swrast_Clear( ctx, swrast_mask );
 }
 
 
index 099a7e1a44e2e0dd8ede3b1a26d6fa0dc3275286..6ea47e462e11b4a43945eaea8af8abe8d5781130 100644 (file)
@@ -32,8 +32,7 @@
 
 extern void intelWaitAgeLocked( intelContextPtr intel, int age, GLboolean unlock );
 
-extern void intelClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
-                      GLint cx, GLint cy, GLint cw, GLint ch);
+extern void intelClear(GLcontext *ctx, GLbitfield mask);
 
 extern void intelPageFlip( const __DRIdrawablePrivate *dpriv );
 
index 1781fef569a2e45f569169c6d213b0a5a4cb0f52..b6b65439087b8c9dab3d4df763f1a2886ce883a8 100644 (file)
@@ -376,8 +376,7 @@ intelEmitCopyBlit(struct intel_context *intel,
  * \param mask  bitmask of BUFFER_BIT_* values indicating buffers to clear
  */
 void
-intelClearWithBlit(GLcontext * ctx, GLbitfield mask, GLboolean allFoo,
-                   GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+intelClearWithBlit(GLcontext * ctx, GLbitfield mask)
 {
    struct intel_context *intel = intel_context(ctx);
    GLuint clear_depth;
index 1d99988c3c67a586f3b2c327701868effa21f693..ee85c626334dac53e43eaa179d3eb454ce17fb99 100644 (file)
@@ -35,9 +35,7 @@
 extern void intelCopyBuffer(const __DRIdrawablePrivate * dpriv,
                             const drm_clip_rect_t * rect);
 
-extern void intelClearWithBlit(GLcontext * ctx, GLbitfield mask,
-                               GLboolean all, GLint cx1, GLint cy1, GLint cw,
-                               GLint ch);
+extern void intelClearWithBlit(GLcontext * ctx, GLbitfield mask);
 
 extern void intelEmitCopyBlit(struct intel_context *intel,
                               GLuint cpp,
index 3da1420cddc2dccaec390b0c1f3f251f62a979ef..d3925bbc1ea861bc306b9d00d627c9f0eb2f0fc0 100644 (file)
@@ -279,9 +279,7 @@ intelWindowMoved(struct intel_context *intel)
  * machine independent.  Maybe we'll get there one day.
  */
 static void
-intelClearWithTris(struct intel_context *intel,
-                   GLbitfield mask,
-                   GLboolean allFoo, GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+intelClearWithTris(struct intel_context *intel, GLbitfield mask)
 {
    GLcontext *ctx = &intel->ctx;
    drm_clip_rect_t clear;
@@ -534,9 +532,7 @@ intelRotateWindow(struct intel_context *intel,
  * Called by ctx->Driver.Clear.
  */
 static void
-intelClear(GLcontext * ctx,
-           GLbitfield mask,
-           GLboolean allFoo, GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+intelClear(GLcontext *ctx, GLbitfield mask)
 {
    struct intel_context *intel = intel_context(ctx);
    const GLuint colorMask = *((GLuint *) & ctx->Color.ColorMask);
@@ -603,13 +599,13 @@ intelClear(GLcontext * ctx,
    intelFlush(ctx);             /* XXX intelClearWithBlit also does this */
 
    if (blit_mask)
-      intelClearWithBlit(ctx, blit_mask, 0, 0, 0, 0, 0);
+      intelClearWithBlit(ctx, blit_mask);
 
    if (tri_mask)
-      intelClearWithTris(intel, tri_mask, 0, 0, 0, 0, 0);
+      intelClearWithTris(intel, tri_mask);
 
    if (swrast_mask)
-      _swrast_Clear(ctx, swrast_mask, 0, 0, 0, 0, 0);
+      _swrast_Clear(ctx, swrast_mask);
 }
 
 
index e501f5e6609e511e27ef0a4c2286b391a4d91c83..0974f1f80ad462b062e50409e0e98e2599e64cd4 100644 (file)
@@ -322,14 +322,14 @@ void intelEmitCopyBlit( struct intel_context *intel,
 
 
 
-void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all,
-                     GLint cx1, GLint cy1, GLint cw, GLint ch)
+void intelClearWithBlit(GLcontext *ctx, GLbitfield flags)
 {
    struct intel_context *intel = intel_context( ctx );
    intelScreenPrivate *intelScreen = intel->intelScreen;
    GLuint clear_depth, clear_color;
-   GLint cx, cy;
+   GLint cx, cy, cw, ch;
    GLint cpp = intelScreen->cpp;
+   GLboolean all;
    GLint i;
    struct intel_region *front = intel->front_region;
    struct intel_region *back = intel->back_region;
@@ -376,21 +376,16 @@ void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all,
    intelFlush( &intel->ctx );
    LOCK_HARDWARE( intel );
    {
-      /* Refresh the cx/y/w/h values as they may have been invalidated
-       * by a new window position or size picked up when we did
-       * LOCK_HARDWARE above.  The values passed by mesa are not
-       * reliable.
-       */
-      {
-         cx = ctx->DrawBuffer->_Xmin;
-         cy = ctx->DrawBuffer->_Ymin;
-         ch = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
-         cw  = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
-      }
+      /* get clear bounds after locking */
+      cx = ctx->DrawBuffer->_Xmin;
+      cy = ctx->DrawBuffer->_Ymin;
+      ch = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
+      cw = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
+      all = (cw == ctx->DrawBuffer->Width && ch == ctx->DrawBuffer->Height);
 
       /* flip top to bottom */
-      cy = intel->driDrawable->h-cy1-ch;
-      cx = cx1 + intel->drawX;
+      cy = intel->driDrawable->h - cy - ch;
+      cx = cx + intel->drawX;
       cy += intel->drawY;
 
       /* adjust for page flipping */
index 71ce8307784c6b381ac72a88e5c5168be68faba8..b15fb1c2b7f59bbb34d0d679a95850dde1401475 100644 (file)
@@ -35,8 +35,7 @@ struct buffer;
 
 extern void intelCopyBuffer( const __DRIdrawablePrivate *dpriv,
                             const drm_clip_rect_t *rect );
-extern void intelClearWithBlit(GLcontext *ctx, GLbitfield mask, GLboolean all,
-                            GLint cx1, GLint cy1, GLint cw, GLint ch);
+extern void intelClearWithBlit(GLcontext *ctx, GLbitfield mask);
 
 extern void intelEmitCopyBlit( struct intel_context *intel,
                               GLuint cpp,
index dc5b9c0bc42e4a5906900d5e470635270eb7506a..d155c039d77872017e943b20df8ce262e5ed0249 100644 (file)
@@ -224,12 +224,11 @@ void intelWindowMoved( struct intel_context *intel )
  * machine independent.  Maybe we'll get there one day.
  */
 static void intelClearWithTris(struct intel_context *intel, 
-                              GLbitfield mask,
-                              GLboolean all,
-                              GLint cx, GLint cy, 
-                              GLint cw, GLint ch)
+                              GLbitfield mask)
 {
+   GLcontext *ctx = &intel->ctx;
    drm_clip_rect_t clear;
+   GLint cx, cy, cw, ch;
 
    if (INTEL_DEBUG & DEBUG_DRI)
       _mesa_printf("%s %x\n", __FUNCTION__, mask);
@@ -238,18 +237,11 @@ static void intelClearWithTris(struct intel_context *intel,
 
       intel->vtbl.install_meta_state(intel);
 
-      /* Refresh the cx/y/w/h values as they may have been invalidated
-       * by a new window position or size picked up when we did
-       * LOCK_HARDWARE above.  The values passed by mesa are not
-       * reliable.
-       */
-      {
-        GLcontext *ctx = &intel->ctx;
-        cx = ctx->DrawBuffer->_Xmin;
-        cy = ctx->DrawBuffer->_Ymin;
-        ch = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
-        cw  = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
-      }
+      /* Get clear bounds after locking */
+      cx = ctx->DrawBuffer->_Xmin;
+      cy = ctx->DrawBuffer->_Ymin;
+      cw = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
+      ch = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
 
       clear.x1 = cx;
       clear.y1 = cy;
@@ -327,11 +319,7 @@ static void intelClearWithTris(struct intel_context *intel,
 
 
 
-static void intelClear(GLcontext *ctx, 
-                      GLbitfield mask, 
-                      GLboolean all,
-                      GLint cx, GLint cy, 
-                      GLint cw, GLint ch)
+static void intelClear(GLcontext *ctx, GLbitfield mask)
 {
    struct intel_context *intel = intel_context( ctx );
    const GLuint colorMask = *((GLuint *) &ctx->Color.ColorMask);
@@ -340,8 +328,7 @@ static void intelClear(GLcontext *ctx,
    GLbitfield swrast_mask = 0;
 
    if (INTEL_DEBUG & DEBUG_DRI)
-      fprintf(stderr, "%s %x all %d dims %d,%d %dx%d\n", __FUNCTION__,
-             mask, all, cx, cy, cw, ch);
+      fprintf(stderr, "%s %x\n", __FUNCTION__, mask);
 
 
    if (mask & BUFFER_BIT_FRONT_LEFT) {
@@ -392,13 +379,13 @@ static void intelClear(GLcontext *ctx,
    intelFlush( ctx );
 
    if (blit_mask)
-      intelClearWithBlit( ctx, blit_mask, all, cx, cy, cw, ch );
+      intelClearWithBlit( ctx, blit_mask );
 
    if (tri_mask) 
-      intelClearWithTris( intel, tri_mask, all, cx, cy, cw, ch);
+      intelClearWithTris( intel, tri_mask );
 
    if (swrast_mask)
-      _swrast_Clear( ctx, swrast_mask, all, cx, cy, cw, ch );
+      _swrast_Clear( ctx, swrast_mask );
 }
 
 
index 30a45ad034cabca75d960d531d534195664bcd54..36e7d3c5d3defc56ccaea4d50c856d0b77aa6143 100644 (file)
@@ -665,8 +665,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa )
  * Buffer clear
  */
 
-static void mach64DDClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                          GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo )
+static void mach64DDClear( GLcontext *ctx, GLbitfield mask )
 {
    mach64ContextPtr mmesa = MACH64_CONTEXT( ctx );
    __DRIdrawablePrivate *dPriv = mmesa->driDrawable;
@@ -713,7 +712,7 @@ static void mach64DDClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    }
 
    if ( mask )
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
 
    if ( !flags )
       return;
index c9fa9d1294064835ffde734a03b1fd38b39425b2..f8587fc541ee8f50b3a930c416f1522b4c6bba44 100644 (file)
@@ -204,8 +204,7 @@ drmBufPtr mga_get_buffer_ioctl( mgaContextPtr mmesa )
 
 
 static void
-mgaClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-          GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo )
+mgaClear( GLcontext *ctx, GLbitfield mask )
 {
    mgaContextPtr mmesa = MGA_CONTEXT(ctx);
    __DRIdrawablePrivate *dPriv = mmesa->driDrawable;
@@ -334,7 +333,7 @@ mgaClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    }
 
    if (mask) 
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
 }
 
 
index 7dbb5e5ddab97640bfb61374c09a4fd53dd7d8ca..b0dba7d04e12d81eca8f9fcaa82138730b972637 100644 (file)
@@ -399,8 +399,7 @@ void r128PageFlip( const __DRIdrawablePrivate *dPriv )
  * Buffer clear
  */
 
-static void r128Clear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                       GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo )
+static void r128Clear( GLcontext *ctx, GLbitfield mask )
 {
    r128ContextPtr rmesa = R128_CONTEXT(ctx);
    __DRIdrawablePrivate *dPriv = rmesa->driDrawable;
@@ -541,7 +540,7 @@ static void r128Clear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    }
 
    if ( mask )
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
 }
 
 
index efa0b64ed2557b2875e43fc0bfdde354d0d616a8..463bd64415b7f32f8b36ba8467f1cc0c4187a6f5 100644 (file)
@@ -605,8 +605,7 @@ void r200PageFlip( const __DRIdrawablePrivate *dPriv )
 /* ================================================================
  * Buffer clear
  */
-static void r200Clear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                       GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo )
+static void r200Clear( GLcontext *ctx, GLbitfield mask )
 {
    r200ContextPtr rmesa = R200_CONTEXT(ctx);
    __DRIdrawablePrivate *dPriv = rmesa->dri.drawable;
@@ -653,7 +652,7 @@ static void r200Clear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    if ( mask ) {
       if (R200_DEBUG & DEBUG_FALLBACKS)
         fprintf(stderr, "%s: swrast clear, mask: %x\n", __FUNCTION__, mask);
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
    }
 
    if ( !flags ) 
index 7775ca96e4b856a3194e168d3923aab03b1f2e11..87276a11aed6335c0c18de26a4746480d23240cb 100644 (file)
@@ -477,8 +477,7 @@ static void r300EmitClearState(GLcontext * ctx)
 /**
  * Buffer clear
  */
-static void r300Clear(GLcontext * ctx, GLbitfield mask, GLboolean allFoo,
-                     GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+static void r300Clear(GLcontext * ctx, GLbitfield mask)
 {
        r300ContextPtr r300 = R300_CONTEXT(ctx);
        __DRIdrawablePrivate *dPriv = r300->radeon.dri.drawable;
@@ -520,7 +519,7 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask, GLboolean allFoo,
                if (RADEON_DEBUG & DEBUG_FALLBACKS)
                        fprintf(stderr, "%s: swrast clear, mask: %x\n",
                                __FUNCTION__, mask);
-               _swrast_Clear(ctx, mask, 0, 0, 0, 0, 0);
+               _swrast_Clear(ctx, mask);
        }
 
        swapped = r300->radeon.doPageFlip && (r300->radeon.sarea->pfCurrentPage == 1);
index d9eec622f34cd15068295dd27fb5ee2ac82d100d..737490fcde0143b2eb7e27bbdd0a5229b3cf7786 100644 (file)
@@ -1021,8 +1021,7 @@ void radeonPageFlip( const __DRIdrawablePrivate *dPriv )
  */
 #define RADEON_MAX_CLEARS      256
 
-static void radeonClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                        GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo )
+static void radeonClear( GLcontext *ctx, GLbitfield mask )
 {
    radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
    __DRIdrawablePrivate *dPriv = rmesa->dri.drawable;
@@ -1071,7 +1070,7 @@ static void radeonClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    if ( mask ) {
       if (RADEON_DEBUG & DEBUG_FALLBACKS)
         fprintf(stderr, "%s: swrast clear, mask: %x\n", __FUNCTION__, mask);
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
    }
 
    if ( !flags ) 
index 4f412edf0947902838db93a09b44fe23ad9e5d34..fcea901c1c9d8ebbecff623a2a7ef8df4395bc88 100644 (file)
@@ -73,8 +73,7 @@ static void s3vDDBlendFunc( GLcontext *ctx, GLenum sfactor, GLenum dfactor )
  * Buffer clear
  */
 
-static void s3vDDClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                        GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo )
+static void s3vDDClear( GLcontext *ctx, GLbitfield mask )
 {
        s3vContextPtr vmesa = S3V_CONTEXT(ctx);
        unsigned int _stride;
@@ -163,7 +162,7 @@ static void s3vDDClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
        if ( mask )
                DEBUG(("still masked ;3(\n")); */ /* yes */
 #else
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
 #endif
 }
 
index 7513a07e8523557b8b1b865dae4ff96094ad5a64..4eac1fb3498d49026920f337e0c4f5142a9f0e89 100644 (file)
@@ -327,8 +327,7 @@ static GLuint savageIntersectClipRects(drm_clip_rect_t *dest,
 }
 
 
-static void savageDDClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-                          GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo ) 
+static void savageDDClear( GLcontext *ctx, GLbitfield mask )
 {
    savageContextPtr imesa = SAVAGE_CONTEXT( ctx );
    GLuint colorMask, depthMask, clearColor, clearDepth, flags;
@@ -426,7 +425,7 @@ static void savageDDClear( GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    }
 
    if (mask) 
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0 );
+      _swrast_Clear( ctx, mask );
 }
 
 /*
index d8f39b31c7d4bdd0bbfa4884f7f98b7eb6d55a7f..48db19566c663e75baf4759072a14ab72235d54d 100644 (file)
@@ -69,8 +69,7 @@ sis6326UpdateZPattern(sisContextPtr smesa, GLclampd z)
 }
 
 void
-sis6326DDClear(GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
-               GLint xFoo, GLint yFoo, GLint widthFoo, GLint heightFoo)
+sis6326DDClear(GLcontext *ctx, GLbitfield mask)
 {
    sisContextPtr smesa = SIS_CONTEXT(ctx);
    GLint x1, y1, width1, height1;
@@ -110,7 +109,7 @@ sis6326DDClear(GLcontext *ctx, GLbitfield mask, GLboolean allFoo,
    UNLOCK_HARDWARE();
 
    if (mask != 0)
-      _swrast_Clear(ctx, mask, 0, 0, 0, 0, 0);
+      _swrast_Clear(ctx, mask);
 }
 
 
index 64b68708717c22f1b737fda66ff6b2c526c88848..fb92d06c7355db63087531a0da379d5ec12e4abc 100644 (file)
@@ -95,8 +95,7 @@ sisUpdateZStencilPattern( sisContextPtr smesa, GLclampd z, GLint stencil )
 }
 
 void
-sisDDClear( GLcontext * ctx, GLbitfield mask, GLboolean allFoo,
-           GLint xFoo, GLint yFoo, GLint widthFoo, GLint heightFoo )
+sisDDClear( GLcontext * ctx, GLbitfield mask )
 {
    sisContextPtr smesa = SIS_CONTEXT(ctx);
 
@@ -145,7 +144,7 @@ sisDDClear( GLcontext * ctx, GLbitfield mask, GLboolean allFoo,
    UNLOCK_HARDWARE();
 
    if (mask != 0)
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0);
+      _swrast_Clear( ctx, mask);
 }
 
 
@@ -329,9 +328,7 @@ sis_clear_color_buffer( GLcontext *ctx, GLenum mask, GLint x, GLint y,
                        GLint width, GLint height )
 {
    sisContextPtr smesa = SIS_CONTEXT(ctx);
-
    int count;
-   GLuint depth = smesa->bytesPerPixel;
    drm_clip_rect_t *pExtents = NULL;
    GLint xx, yy;
    GLint x0, y0, width0, height0;
@@ -379,8 +376,6 @@ sis_clear_color_buffer( GLcontext *ctx, GLenum mask, GLint x, GLint y,
       if (width <= 0 || height <= 0)
        continue;
 
-      int cmd;
-
       mWait3DCmdQueue (8);
       MMIO(REG_SRC_PITCH, (smesa->bytesPerPixel == 4) ? 
                           BLIT_DEPTH_32 : BLIT_DEPTH_16);
index 580a522bf34b8323dba3bceb67b18098512a9704..8f7e2acb92d150883959ba0de09d819f1aac1454 100644 (file)
@@ -35,15 +35,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "sis_context.h"
 
 /* sis6326_clear.c */
-extern void sis6326DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                           GLint x, GLint y, GLint width, GLint height );
+extern void sis6326DDClear( GLcontext *ctx, GLbitfield mask );
 extern void sis6326DDClearColor( GLcontext * ctx, const GLfloat color[4] );
 extern void sis6326DDClearDepth( GLcontext * ctx, GLclampd d );
 extern void sis6326UpdateZPattern(sisContextPtr smesa, GLclampd z);
 
 /* sis_clear.c */
-extern void sisDDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                       GLint x, GLint y, GLint width, GLint height );
+extern void sisDDClear( GLcontext *ctx, GLbitfield mask );
 extern void sisDDClearColor( GLcontext * ctx, const GLfloat color[4] );
 extern void sisDDClearDepth( GLcontext * ctx, GLclampd d );
 extern void sisDDClearStencil( GLcontext * ctx, GLint s );
index 3301d948e115c190dae013327bd34cee88b141e9..f36c97bfebec1c5ed476ce18d4c16b57b4a674e0 100644 (file)
@@ -46,9 +46,7 @@
 
 /* Clear the color and/or depth buffers.
  */
-static void tdfxClear( GLcontext *ctx,
-                       GLbitfield mask, GLboolean all,
-                       GLint xFoo, GLint yFoo, GLint widthFoo, GLint heightFoo)
+static void tdfxClear( GLcontext *ctx, GLbitfield mask )
 {
    tdfxContextPtr fxMesa = (tdfxContextPtr) ctx->DriverCtx;
    GLbitfield softwareMask = mask & (BUFFER_BIT_ACCUM);
@@ -312,7 +310,7 @@ static void tdfxClear( GLcontext *ctx,
    }
 
    if (softwareMask)
-      _swrast_Clear( ctx, softwareMask, 0, 0, 0, 0, 0);
+      _swrast_Clear(ctx, softwareMask);
 }
 
 
index a9be50688b3f3791de529b8af43b820d68aff31f..037cce5f8628e9f4a11fbf355ee59c2ed9569ec4 100644 (file)
@@ -150,8 +150,7 @@ void tridentCopyBuffer( const __DRIdrawablePrivate *dPriv )
 }
 
 
-static void tridentDDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                            GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+static void tridentDDClear( GLcontext *ctx, GLbitfield mask )
 {
    tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);
    unsigned char *MMIO = tmesa->tridentScreen->mmio.map;
@@ -297,7 +296,7 @@ if (flags & DRM_TRIDENT_FRONT) {
    UNLOCK_HARDWARE(tmesa);
 
    if ( mask )
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0);
+      _swrast_Clear( ctx, mask );
 }
 
 static void tridentDDShadeModel( GLcontext *ctx, GLenum mode )
index 86077bc4d4eb177f9cc7d640c9b968b515b2c7e6..dd2e93b286f8e3db72351d35ad1958b488d21441 100644 (file)
@@ -202,8 +202,7 @@ static void viaFillBuffer(struct via_context *vmesa,
 
 
 
-static void viaClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
-                     GLint cxFoo, GLint cyFoo, GLint cwFoo, GLint chFoo)
+static void viaClear(GLcontext *ctx, GLbitfield mask)
 {
    struct via_context *vmesa = VIA_CONTEXT(ctx);
    __DRIdrawablePrivate *dPriv = vmesa->driDrawable;
@@ -262,6 +261,7 @@ static void viaClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
       drm_clip_rect_t *boxes, *tmp_boxes = 0;
       int nr = 0;
       GLint cx, cy, cw, ch;
+      GLboolean all;
 
       LOCK_HARDWARE(vmesa);
            
@@ -270,6 +270,7 @@ static void viaClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
       cy = ctx->DrawBuffer->_Ymin;
       cw = ctx->DrawBuffer->_Xmax - cx;
       ch = ctx->DrawBuffer->_Ymax - cy;
+      all = (cw == ctx->DrawBuffer->Width && ch == ctx->DrawBuffer->Height);
 
       /* flip top to bottom */
       cy = dPriv->h - cy - ch;
@@ -335,7 +336,7 @@ static void viaClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
    }
    
    if (mask)
-      _swrast_Clear(ctx, mask, 0, 0, 0, 0, 0);
+      _swrast_Clear(ctx, mask);
 }
 
 
index 4fbbe61ab84bd7f4cde2bb6ae940445fc6c1919e..47d7f2bdb9919080007ff087f94a73f1406fd7a4 100644 (file)
@@ -313,10 +313,14 @@ static void gl_ggiSetClearColor(GLcontext *ctx, const GLfloat color[4])
        ggi_ctx->clearcolor = col;
 }
 
-static void gl_ggiClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
-                       GLint x, GLint y, GLint width, GLint height)
+static void gl_ggiClear(GLcontext *ctx, GLbitfield mask)
 {
        ggi_mesa_context_t ggi_ctx = (ggi_mesa_context_t)ctx->DriverCtx;
+        int x = ctx->DrawBuffer->_Xmin;
+        int y = ctx->DrawBuffer->_Ymin;
+        int w = ctx->DrawBuffer->_Xmax - x;
+        int h = ctx->DrawBuffer->_Ymax - y;
+        GLboolean all = (w == ctx->DrawBuffer->Width && h == ctx->DrawBuffer->height)
        
        GGIMESADPRINT_CORE("gl_ggiClear() called\n");
 
@@ -336,7 +340,7 @@ static void gl_ggiClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
 
                mask &= ~(DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT);
        }
-       _swrast_Clear(ctx, mask, all, x, y, width, height);
+       _swrast_Clear(ctx, mask);
        
 }
 
index 0ee0e0cae00c9b88abb292103d89d6d7b0612960..ef60602c83237b96b4395a38349c258369868100 100644 (file)
@@ -162,9 +162,7 @@ fxDDClearColor(GLcontext * ctx, const GLfloat color[4])
 
 
 /* Clear the color and/or depth buffers */
-static void fxDDClear( GLcontext *ctx,
-                       GLbitfield mask, GLboolean all,
-                       GLint x, GLint y, GLint width, GLint height )
+static void fxDDClear( GLcontext *ctx, GLbitfield mask )
 {
    fxMesaContext fxMesa = FX_CONTEXT(ctx);
    GLbitfield softwareMask = mask & (BUFFER_BIT_ACCUM);
@@ -173,8 +171,7 @@ static void fxDDClear( GLcontext *ctx,
    const FxU8 clearS = (FxU8) (ctx->Stencil.Clear & 0xff);
 
    if ( TDFX_DEBUG & MESA_VERBOSE ) {
-      fprintf( stderr, "fxDDClear( %d, %d, %d, %d )\n",
-                      (int) x, (int) y, (int) width, (int) height );
+      fprintf( stderr, "fxDDClear\n");
    }
 
    /* we can't clear accum buffers nor stereo */
@@ -389,7 +386,7 @@ static void fxDDClear( GLcontext *ctx,
    grRenderBuffer(fxMesa->currentFB);
 
    if (softwareMask)
-      _swrast_Clear( ctx, softwareMask, all, x, y, width, height );
+      _swrast_Clear( ctx, softwareMask );
 }
 
 
index 54b6c977a7baca8da4ddb828280e3c0ea94be06d..a4c0901e38fde984d5c070de2ed34df767a2cd6b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: svgamesa15.c,v 1.11 2002/11/11 18:42:39 brianp Exp $ */
+/* $Id: svgamesa15.c,v 1.12 2006/11/01 19:35:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -66,10 +66,14 @@ void __clear_color15( GLcontext *ctx, const GLfloat color[4] )
 /*   SVGAMesa->clear_hicolor=(red)<<10 | (green)<<5 | (blue);*/
 }   
 
-void __clear15( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                GLint x, GLint y, GLint width, GLint height )
+void __clear15( GLcontext *ctx, GLbitfield mask )
 {
    int i, j;
+   int x = ctx->DrawBuffer->_Xmin;
+   int y = ctx->DrawBuffer->_Ymin;
+   int width = ctx->DrawBuffer->_Xmax - x;
+   int height = ctx->DrawBuffer->_Ymax - y;
+   GLboolean all = (width == ctx->DrawBuffer->Width && height == ctx->DrawBuffer->height)
 
    if (mask & DD_FRONT_LEFT_BIT) {
       GLshort *shortBuffer=(void *)SVGABuffer.FrontBuffer;
@@ -105,7 +109,7 @@ void __clear15( GLcontext *ctx, GLbitfield mask, GLboolean all,
    }
 
    if (mask)
-      _swrast_Clear( ctx, mask, all, x, y, width, height );
+      _swrast_Clear( ctx, mask );
 }
 
 void __write_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y,
index 72ac8183294e87437eeae48443c42a50419c9c27..999c6331c9c6b775eaed6e7ad715190ccb2a7b7c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: svgamesa16.c,v 1.11 2002/11/11 18:42:40 brianp Exp $ */
+/* $Id: svgamesa16.c,v 1.12 2006/11/01 19:35:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -69,10 +69,14 @@ void __clear_color16( GLcontext *ctx, const GLfloat color[4] )
 /*    SVGAMesa->clear_hicolor=(red)<<11 | (green)<<5 | (blue); */
 }   
 
-void __clear16( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                GLint x, GLint y, GLint width, GLint height )
+void __clear16( GLcontext *ctx, GLbitfield mask )
 {
    int i,j;
+   int x = ctx->DrawBuffer->_Xmin;
+   int y = ctx->DrawBuffer->_Ymin;
+   int width = ctx->DrawBuffer->_Xmax - x;
+   int height = ctx->DrawBuffer->_Ymax - y;
+   GLboolean all = (width == ctx->DrawBuffer->Width && height == ctx->DrawBuffer->height)
 
    if (mask & DD_FRONT_LEFT_BIT) {
       if (all) {
@@ -108,7 +112,7 @@ void __clear16( GLcontext *ctx, GLbitfield mask, GLboolean all,
    }
 
    if (mask)
-      _swrast_Clear( ctx, mask, all, x, y, width, height );
+      _swrast_Clear( ctx, mask );
 }
 
 void __write_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y,
index 07491cc67ac3f006e739897b31d4b296cbf7a490..93c84167ebb9c509f001d291495fc6527a7ac8eb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: svgamesa24.c,v 1.12 2002/11/11 18:42:41 brianp Exp $ */
+/* $Id: svgamesa24.c,v 1.13 2006/11/01 19:35:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -91,10 +91,14 @@ void __clear_color24( GLcontext *ctx, const GLfloat color[4] )
 /*   SVGAMesa->clear_truecolor = red<<16 | green<<8 | blue; */
 }
 
-void __clear24( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                GLint x, GLint y, GLint width, GLint height )
+void __clear24( GLcontext *ctx, GLbitfield mask )
 {
    int i,j;
+   int x = ctx->DrawBuffer->_Xmin;
+   int y = ctx->DrawBuffer->_Ymin;
+   int width = ctx->DrawBuffer->_Xmax - x;
+   int height = ctx->DrawBuffer->_Ymax - y;
+   GLboolean all = (width == ctx->DrawBuffer->Width && height == ctx->DrawBuffer->height)
    
    if (mask & DD_FRONT_LEFT_BIT) {
       if (all) {
@@ -140,7 +144,7 @@ void __clear24( GLcontext *ctx, GLbitfield mask, GLboolean all,
    }
 
    if (mask)
-      _swrast_Clear( ctx, mask, all, x, y, width, height );
+      _swrast_Clear( ctx, mask );
 }
 
 void __write_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y,
index 8a366998d6bb3567ac359d26d5c7254360a02281..5a3a6776ce7fa80fca867bfaa05b91f528cb6ac7 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: svgamesa32.c,v 1.12 2002/11/11 18:42:42 brianp Exp $ */
+/* $Id: svgamesa32.c,v 1.13 2006/11/01 19:35:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -85,10 +85,14 @@ void __clear_color32( GLcontext *ctx, const GLfloat color[4] )
    SVGAMesa->clear_truecolor = (col[0] << 16) | (col[1] << 8) | col[2];
 }
 
-void __clear32( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                GLint x, GLint y, GLint width, GLint height )
+void __clear32( GLcontext *ctx, GLbitfield mask )
 {
    int i,j;
+   int x = ctx->DrawBuffer->_Xmin;
+   int y = ctx->DrawBuffer->_Ymin;
+   int width = ctx->DrawBuffer->_Xmax - x;
+   int height = ctx->DrawBuffer->_Ymax - y;
+   GLboolean all = (width == ctx->DrawBuffer->Width && height == ctx->DrawBuffer->height)
    
    if (mask & DD_FRONT_LEFT_BIT) {
       if (all) {
@@ -124,7 +128,7 @@ void __clear32( GLcontext *ctx, GLbitfield mask, GLboolean all,
    }
 
    if (mask)
-      _swrast_Clear( ctx, mask, all, x, y, width, height );
+      _swrast_Clear( ctx, mask );
 }
 
 void __write_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y,
index fd880ef85ad3db442bf36e8328d3bfee53324886..e3f5eaebf6a6d5acc39e17aab34a3fbef4513458 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: svgamesa8.c,v 1.9 2005/05/04 20:11:39 brianp Exp $ */
+/* $Id: svgamesa8.c,v 1.10 2006/11/01 19:35:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -60,10 +60,14 @@ void __clear_index8( GLcontext *ctx, GLuint index )
    SVGAMesa->clear_index = index;
 }
 
-void __clear8( GLcontext *ctx, GLbitfield mask, GLboolean all,
-               GLint x, GLint y, GLint width, GLint height )
+void __clear8( GLcontext *ctx, GLbitfield mask )
 {
    int i,j;
+   int x = ctx->DrawBuffer->_Xmin;
+   int y = ctx->DrawBuffer->_Ymin;
+   int width = ctx->DrawBuffer->_Xmax - x;
+   int height = ctx->DrawBuffer->_Ymax - y;
+   GLboolean all = (width == ctx->DrawBuffer->Width && height == ctx->DrawBuffer->height)
    
    if (mask & DD_FRONT_LEFT_BIT) {
       if (all) { 
@@ -95,7 +99,7 @@ void __clear8( GLcontext *ctx, GLbitfield mask, GLboolean all,
    }
 
    if (mask)
-      _swrast_Clear( ctx, mask, all, x, y, width, height );
+      _swrast_Clear( ctx, mask );
 }
 
 void __write_ci32_span8( const GLcontext *ctx, struct gl_renderbuffer *rb,
index 0dfd7a6b393d9d0f1a650a6eb7e3e155e701ef40..8c3229ab14c83c3e552ab965ed0d765bcb5b1a03 100644 (file)
@@ -281,11 +281,7 @@ static void clear_color(GLcontext *ctx, const GLfloat color[4])
  * Clearing of the other non-color buffers is left to the swrast. 
  */ 
 
-static void clear(GLcontext *ctx, 
-                 GLbitfield mask, 
-                 GLboolean all, 
-                 GLint xFoo, GLint yFoo,
-                 GLint widthFoo, GLint heightFoo) 
+static void clear(GLcontext *ctx, GLbitfield mask)
 {
 #define FLIP(Y)  (ctx->DrawBuffer->Height - (Y) - 1)
     const GLint x = ctx->DrawBuffer->_Xmin;
@@ -303,7 +299,7 @@ static void clear(GLcontext *ctx,
        ctx->Color.ColorMask[1] != 0xff ||
        ctx->Color.ColorMask[2] != 0xff ||
        ctx->Color.ColorMask[3] != 0xff) {
-       _swrast_Clear(ctx, mask, all, x, y, width, height); 
+       _swrast_Clear(ctx, mask);
        return;
     }
 
@@ -322,7 +318,8 @@ static void clear(GLcontext *ctx,
        
        /* Try for a fast clear - clearing entire buffer with a single
         * byte value. */
-       if (all) { /* entire buffer */
+       if (width == ctx->DrawBuffer->Width &&
+            height == ctx->DrawBuffer->Height) { /* entire buffer */
            /* Now check for an easy clear value */
            switch (bytesPerPixel) {
            case 1:
@@ -435,7 +432,7 @@ static void clear(GLcontext *ctx,
     
     /* Call swrast if there is anything left to clear (like DEPTH) */ 
     if (mask) 
-       _swrast_Clear(ctx, mask, all, x, y, width, height); 
+       _swrast_Clear(ctx, mask);
   
 #undef FLIP
 } 
index abad300cc3ffb314ebd1bd10d5106bbf52a39cc4..d272630d18a0fc7a18258473a6967aa711914901 100644 (file)
@@ -383,9 +383,7 @@ clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 
 static void
-clear_buffers( GLcontext *ctx, GLbitfield mask,
-               GLboolean all, GLint xFoo, GLint yFoo,
-               GLint widthFoo, GLint heightFoo )
+clear_buffers(GLcontext *ctx, GLbitfield buffers)
 {
    if (ctx->DrawBuffer->Name == 0) {
       /* this is a window system framebuffer */
@@ -398,33 +396,33 @@ clear_buffers( GLcontext *ctx, GLbitfield mask,
 
       /* we can't handle color or index masking */
       if (*colorMask == 0xffffffff && ctx->Color.IndexMask == 0xffffffff) {
-         if (mask & BUFFER_BIT_FRONT_LEFT) {
+         if (buffers & BUFFER_BIT_FRONT_LEFT) {
             /* clear front color buffer */
             struct gl_renderbuffer *frontRb
                = ctx->DrawBuffer->Attachment[BUFFER_FRONT_LEFT].Renderbuffer;
             if (b->frontxrb == xmesa_renderbuffer(frontRb)) {
                /* renderbuffer is not wrapped - great! */
                b->frontxrb->clearFunc(ctx, b->frontxrb, x, y, width, height);
-               mask &= ~BUFFER_BIT_FRONT_LEFT;
+               buffers &= ~BUFFER_BIT_FRONT_LEFT;
             }
             else {
                /* we can't directly clear an alpha-wrapped color buffer */
             }
          }
-         if (mask & BUFFER_BIT_BACK_LEFT) {
+         if (buffers & BUFFER_BIT_BACK_LEFT) {
             /* clear back color buffer */
             struct gl_renderbuffer *backRb
                = ctx->DrawBuffer->Attachment[BUFFER_BACK_LEFT].Renderbuffer;
             if (b->backxrb == xmesa_renderbuffer(backRb)) {
                /* renderbuffer is not wrapped - great! */
                b->backxrb->clearFunc(ctx, b->backxrb, x, y, width, height);
-               mask &= ~BUFFER_BIT_BACK_LEFT;
+               buffers &= ~BUFFER_BIT_BACK_LEFT;
             }
          }
       }
    }
-   if (mask)
-      _swrast_Clear( ctx, mask, 0, 0, 0, 0, 0);
+   if (buffers)
+      _swrast_Clear(ctx, buffers);
 }
 
 
index 2710d044545564173c13338165872c9020d27aac..ece53463b332d4e19f62878360a0332d34daf8df 100644 (file)
@@ -141,10 +141,6 @@ _mesa_Clear( GLbitfield mask )
    }
 
    if (ctx->RenderMode == GL_RENDER) {
-      const GLint x = ctx->DrawBuffer->_Xmin;
-      const GLint y = ctx->DrawBuffer->_Ymin;
-      const GLint height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
-      const GLint width  = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
       GLbitfield bufferMask;
 
       /* don't clear depth buffer if depth writing disabled */
@@ -177,8 +173,7 @@ _mesa_Clear( GLbitfield mask )
       }
 
       ASSERT(ctx->Driver.Clear);
-      ctx->Driver.Clear( ctx, bufferMask, (GLboolean) !ctx->Scissor.Enabled,
-                        x, y, width, height );
+      ctx->Driver.Clear(ctx, bufferMask);
    }
 }
 
index a1999ac76d7f133a0cf9ecfe749562542301c012..0e8987b7c6580a3c1c5c04a1a580ace8e9fb2469 100644 (file)
@@ -99,19 +99,10 @@ struct dd_function_table {
 
    /**
     * Clear the color/depth/stencil/accum buffer(s).
-    *
-    * \param mask a bitmask of the DD_*_BIT values defined above that indicates
-    * which buffers need to be cleared.
-    * \param all if true then clear the whole buffer, else clear only the
-    * region defined by <tt>(x, y, width, height)</tt>.
-    * 
-    * This function must obey the glColorMask(), glIndexMask() and
-    * glStencilMask() settings!
-    * Software Mesa can do masked clears if the device driver can't.
+    * \param mask  a bitmask of BUFFER_BIT_* flags indicating which
+    *              renderbuffers need to be cleared.
     */
-   void (*Clear)( GLcontext *ctx, GLbitfield mask, GLboolean all,
-                 GLint x, GLint y, GLint width, GLint height );
-
+   void (*Clear)( GLcontext *ctx, GLbitfield buffers );
 
    /**
     * \name For hardware accumulation buffer
index bb85ee577754c107d0ee7802372a5c9c8b711080..284ea2b517874e33e999bee3264d7b57d893c735 100644 (file)
@@ -293,18 +293,15 @@ clear_color_buffers(GLcontext *ctx)
 /**
  * Called via the device driver's ctx->Driver.Clear() function if the
  * device driver can't clear one or more of the buffers itself.
- * \param mask  bitfield of BUFER_BIT_* values indicating which renderbuffers
- *              are to be cleared.
+ * \param buffers  bitfield of BUFFER_BIT_* values indicating which
+ *                 renderbuffers are to be cleared.
  * \param all  if GL_TRUE, clear whole buffer, else clear specified region.
  */
 void
-_swrast_Clear(GLcontext *ctx, GLbitfield mask,
-             GLboolean all, GLint x, GLint y, GLint width, GLint height)
+_swrast_Clear(GLcontext *ctx, GLbitfield buffers)
 {
    SWcontext *swrast = SWRAST_CONTEXT(ctx);
 
-   (void) all; (void) x; (void) y; (void) width; (void) height;
-
 #ifdef DEBUG_FOO
    {
       const GLbitfield legalBits =
@@ -319,25 +316,25 @@ _swrast_Clear(GLcontext *ctx, GLbitfield mask,
          BUFFER_BIT_AUX1 |
          BUFFER_BIT_AUX2 |
          BUFFER_BIT_AUX3;
-      assert((mask & (~legalBits)) == 0);
+      assert((buffers & (~legalBits)) == 0);
    }
 #endif
 
    RENDER_START(swrast,ctx);
 
    /* do software clearing here */
-   if (mask) {
-      if (mask & ctx->DrawBuffer->_ColorDrawBufferMask[0]) {
+   if (buffers) {
+      if (buffers & ctx->DrawBuffer->_ColorDrawBufferMask[0]) {
          clear_color_buffers(ctx);
       }
-      if (mask & BUFFER_BIT_DEPTH) {
+      if (buffers & BUFFER_BIT_DEPTH) {
          _swrast_clear_depth_buffer(ctx, ctx->DrawBuffer->_DepthBuffer);
       }
-      if (mask & BUFFER_BIT_ACCUM) {
+      if (buffers & BUFFER_BIT_ACCUM) {
          _swrast_clear_accum_buffer(ctx,
                        ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer);
       }
-      if (mask & BUFFER_BIT_STENCIL) {
+      if (buffers & BUFFER_BIT_STENCIL) {
          _swrast_clear_stencil_buffer(ctx, ctx->DrawBuffer->_StencilBuffer);
       }
    }
index 04bd01a0cdc6868d707f7dce19856063c92d58c9..09686c8380aaf04356f5eb9c38f46e2fb52ffefd 100644 (file)
@@ -130,8 +130,7 @@ _swrast_BlitFramebuffer(GLcontext *ctx,
                         GLbitfield mask, GLenum filter);
 
 extern void
-_swrast_Clear( GLcontext *ctx, GLbitfield mask, GLboolean all,
-              GLint x, GLint y, GLint width, GLint height );
+_swrast_Clear(GLcontext *ctx, GLbitfield buffers);
 
 extern void
 _swrast_Accum(GLcontext *ctx, GLenum op, GLfloat value);