Start removing old driver funcs like ColorMask, ClearColor, etc.
authorBrian <brian.paul@tungstengraphics.com>
Wed, 31 Oct 2007 20:49:46 +0000 (14:49 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Wed, 31 Oct 2007 20:49:46 +0000 (14:49 -0600)
src/mesa/pipe/xlib/xm_api.c
src/mesa/pipe/xlib/xm_dd.c
src/mesa/pipe/xlib/xm_surface.c
src/mesa/pipe/xlib/xmesaP.h

index 878ee30be96216b14fbcff9494f691b9ec31866d..eff84f12a72ec3b40128cc745c1a6d3e1109f9ca 100644 (file)
@@ -1523,9 +1523,6 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
    XMesaContext c;
    GLcontext *mesaCtx;
    struct dd_function_table functions;
-#if 0
-   TNLcontext *tnl;
-#endif
 
    if (firstTime) {
       _glthread_INIT_MUTEX(_xmesa_lock);
index 3c5c413c73433b4bdf12aaecbc0413155801a9cd..f6da1cb9f72db08803983eb8af6ba342f28c531e 100644 (file)
@@ -101,99 +101,10 @@ finish_or_flush( GLcontext *ctx )
       _glthread_UNLOCK_MUTEX(_xmesa_lock);
    }
 #endif
+   abort();
 }
 
 
-static void
-clear_index( GLcontext *ctx, GLuint index )
-{
-   if (ctx->DrawBuffer->Name == 0) {
-      const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-      XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
-      xmesa->clearpixel = (unsigned long) index;
-      XMesaSetForeground( xmesa->display, xmbuf->cleargc, (unsigned long) index );
-   }
-}
-
-
-static void
-clear_color( GLcontext *ctx, const GLfloat color[4] )
-{
-   if (ctx->DrawBuffer->Name == 0) {
-      const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-      XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
-
-      CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[0], color[0]);
-      CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[1], color[1]);
-      CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[2], color[2]);
-      CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[3], color[3]);
-      xmesa->clearpixel = xmesa_color_to_pixel( ctx,
-                                                xmesa->clearcolor[0],
-                                                xmesa->clearcolor[1],
-                                                xmesa->clearcolor[2],
-                                                xmesa->clearcolor[3],
-                                                xmesa->xm_visual->undithered_pf );
-      _glthread_LOCK_MUTEX(_xmesa_lock);
-      XMesaSetForeground( xmesa->display, xmbuf->cleargc,
-                          xmesa->clearpixel );
-      _glthread_UNLOCK_MUTEX(_xmesa_lock);
-   }
-}
-
-
-
-/* Set index mask ala glIndexMask */
-static void
-index_mask( GLcontext *ctx, GLuint mask )
-{
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
-   /* not sure this conditional is really needed */
-   if (xmbuf->backxrb && xmbuf->backxrb->pixmap) {
-      unsigned long m;
-      if (mask==0xffffffff) {
-        m = ((unsigned long)~0L);
-      }
-      else {
-         m = (unsigned long) mask;
-      }
-      XMesaSetPlaneMask( xmesa->display, xmbuf->cleargc, m );
-   }
-}
-
-
-/* Implements glColorMask() */
-static void
-color_mask(GLcontext *ctx,
-           GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask)
-{
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   XMesaBuffer xmbuf;
-   const int xclass = xmesa->xm_visual->mesa_visual.visualType;
-   (void) amask;
-
-   if (ctx->DrawBuffer->Name != 0)
-      return;
-
-   xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
-
-   if (xclass == GLX_TRUE_COLOR || xclass == GLX_DIRECT_COLOR) {
-      unsigned long m;
-      if (rmask && gmask && bmask) {
-         m = ((unsigned long)~0L);
-      }
-      else {
-         m = 0;
-         if (rmask)   m |= GET_REDMASK(xmesa->xm_visual);
-         if (gmask)   m |= GET_GREENMASK(xmesa->xm_visual);
-         if (bmask)   m |= GET_BLUEMASK(xmesa->xm_visual);
-      }
-      XMesaSetPlaneMask( xmesa->display, xmbuf->cleargc, m );
-   }
-}
-
-
-
 /**********************************************************************/
 /*** glClear implementations                                        ***/
 /**********************************************************************/
@@ -204,7 +115,7 @@ color_mask(GLcontext *ctx,
  */
 static void
 clear_pixmap(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-             GLint x, GLint y, GLint width, GLint height)
+             GLint x, GLint y, GLint width, GLint height, GLuint value)
 {
    const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
@@ -216,6 +127,8 @@ clear_pixmap(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
    assert(xrb->pixmap);
    assert(xmbuf->cleargc);
 
+   XMesaSetForeground( xmesa->display, xmbuf->cleargc, value );
+
    XMesaFillRectangle( xmesa->display, xrb->pixmap, xmbuf->cleargc,
                        x, xrb->St.Base.Height - y - height,
                        width, height );
@@ -224,7 +137,7 @@ clear_pixmap(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 static void
 clear_8bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                   GLint x, GLint y, GLint width, GLint height )
+                   GLint x, GLint y, GLint width, GLint height, GLuint value )
 {
    const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    GLint i;
@@ -237,7 +150,7 @@ clear_8bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 static void
 clear_HPCR_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                   GLint x, GLint y, GLint width, GLint height )
+                   GLint x, GLint y, GLint width, GLint height, GLuint value )
 {
    const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    GLint i;
@@ -258,20 +171,19 @@ clear_HPCR_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 static void
 clear_16bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                    GLint x, GLint y, GLint width, GLint height)
+                    GLint x, GLint y, GLint width, GLint height, GLuint value)
 {
    const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   GLuint pixel = (GLuint) xmesa->clearpixel;
    GLint i, j;
 
    if (xmesa->swapbytes) {
-      pixel = ((pixel >> 8) & 0x00ff) | ((pixel << 8) & 0xff00);
+      value = ((value >> 8) & 0x00ff) | ((value << 8) & 0xff00);
    }
 
    for (j = 0; j < height; j++) {
       GLushort *ptr2 = PIXEL_ADDR2(xrb, x, y + j);
       for (i = 0; i < width; i++) {
-         ptr2[i] = pixel;
+         ptr2[i] = value;
       }
    }
 }
@@ -280,12 +192,11 @@ clear_16bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 /* Optimized code provided by Nozomi Ytow <noz@xfree86.org> */
 static void
 clear_24bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                   GLint x, GLint y, GLint width, GLint height)
+                   GLint x, GLint y, GLint width, GLint height, GLuint value)
 {
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   const GLubyte r = xmesa->clearcolor[0];
-   const GLubyte g = xmesa->clearcolor[1];
-   const GLubyte b = xmesa->clearcolor[2];
+   const GLubyte r = (value      ) & 0xff;
+   const GLubyte g = (value >>  8) & 0xff;
+   const GLubyte b = (value >> 16) & 0xff;
 
    if (r == g && g == b) {
       /* same value for all three components (gray) */
@@ -313,33 +224,32 @@ clear_24bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 static void
 clear_32bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                   GLint x, GLint y, GLint width, GLint height)
+                   GLint x, GLint y, GLint width, GLint height, GLuint value)
 {
    const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   register GLuint pixel = (GLuint) xmesa->clearpixel;
 
    if (!xrb->ximage)
       return;
 
    if (xmesa->swapbytes) {
-      pixel = ((pixel >> 24) & 0x000000ff)
-            | ((pixel >> 8)  & 0x0000ff00)
-            | ((pixel << 8)  & 0x00ff0000)
-            | ((pixel << 24) & 0xff000000);
+      value = ((value >> 24) & 0x000000ff)
+            | ((value >> 8)  & 0x0000ff00)
+            | ((value << 8)  & 0x00ff0000)
+            | ((value << 24) & 0xff000000);
    }
 
    if (width == xrb->St.Base.Width && height == xrb->St.Base.Height) {
       /* clearing whole buffer */
       const GLuint n = xrb->St.Base.Width * xrb->St.Base.Height;
       GLuint *ptr4 = (GLuint *) xrb->ximage->data;
-      if (pixel == 0) {
+      if (value == 0) {
          /* common case */
-         _mesa_memset(ptr4, pixel, 4 * n);
+         _mesa_memset(ptr4, value, 4 * n);
       }
       else {
          GLuint i;
          for (i = 0; i < n; i++)
-            ptr4[i] = pixel;
+            ptr4[i] = value;
       }
    }
    else {
@@ -348,7 +258,7 @@ clear_32bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
       for (j = 0; j < height; j++) {
          GLuint *ptr4 = PIXEL_ADDR4(xrb, x, y + j);
          for (i = 0; i < width; i++) {
-            ptr4[i] = pixel;
+            ptr4[i] = value;
          }
       }
    }
@@ -357,9 +267,8 @@ clear_32bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 static void
 clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                  GLint x, GLint y, GLint width, GLint height)
+                  GLint x, GLint y, GLint width, GLint height, GLuint value)
 {
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xrb->ximage;
    GLint i, j;
 
@@ -367,7 +276,7 @@ clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
    y = YFLIP(xrb, y);
    for (j = 0; j < height; j++) {
       for (i = 0; i < width; i++) {
-         XMesaPutPixel(img, x+i, y-j, xmesa->clearpixel);
+         XMesaPutPixel(img, x+i, y-j, value);
       }
    }
 }
@@ -375,7 +284,7 @@ clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb,
 
 
 void
-xmesa_clear_buffers(GLcontext *ctx, GLbitfield buffers)
+xmesa_clear_buffers(GLcontext *ctx, GLbitfield buffers, GLuint value)
 {
    if (ctx->DrawBuffer->Name == 0) {
       /* this is a window system framebuffer */
@@ -394,7 +303,7 @@ xmesa_clear_buffers(GLcontext *ctx, GLbitfield buffers)
                = 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);
+               b->frontxrb->clearFunc(ctx, b->frontxrb, x, y, width, height, value);
                buffers &= ~BUFFER_BIT_FRONT_LEFT;
             }
             else {
@@ -407,7 +316,7 @@ xmesa_clear_buffers(GLcontext *ctx, GLbitfield buffers)
                = 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);
+               b->backxrb->clearFunc(ctx, b->backxrb, x, y, width, height, value);
                buffers &= ~BUFFER_BIT_BACK_LEFT;
             }
          }
@@ -786,12 +695,10 @@ xmesa_init_driver_functions( XMesaVisual xmvisual,
    driver->GetBufferSize = NULL; /* OBSOLETE */
    driver->Flush = finish_or_flush;
    driver->Finish = finish_or_flush;
-   driver->ClearIndex = clear_index;
-   driver->ClearColor = clear_color;
-   driver->IndexMask = index_mask;
-   driver->ColorMask = color_mask;
    driver->Enable = enable;
+#if 0
    driver->Clear = xmesa_clear_buffers;
+#endif
    driver->Viewport = xmesa_viewport;
    driver->TestProxyTexImage = test_proxy_teximage;
 #if ENABLE_EXT_texure_compression_s3tc
index 5533158ece00b8904b48939e617a5bdfe2e26230..47ed15cccae153f27201b01f57167430ae33e50e 100644 (file)
@@ -236,12 +236,12 @@ xmesa_clear(struct pipe_context *pipe, struct pipe_surface *ps, GLuint value)
    if (xrb && xrb->ximage) {
       /* clearing back color buffer */
       GET_CURRENT_CONTEXT(ctx);
-      xmesa_clear_buffers(ctx, BUFFER_BIT_BACK_LEFT);
+      xmesa_clear_buffers(ctx, BUFFER_BIT_BACK_LEFT, value);
    }
    else if (xrb && xrb->pixmap) {
       /* clearing front color buffer */
       GET_CURRENT_CONTEXT(ctx);
-      xmesa_clear_buffers(ctx, BUFFER_BIT_FRONT_LEFT);
+      xmesa_clear_buffers(ctx, BUFFER_BIT_FRONT_LEFT, value);
    }
    else {
       /* clearing other buffer */
index 9e0c79a139a9eaad17bcf55961e66840d576eb91..9a91aebc648fd37d3853fd956e4c9c5315b74b90 100644 (file)
@@ -54,7 +54,8 @@ struct xmesa_renderbuffer;
 
 /* Function pointer for clearing color buffers */
 typedef void (*ClearFunc)( GLcontext *ctx, struct xmesa_renderbuffer *xrb,
-                           GLint x, GLint y, GLint width, GLint height );
+                           GLint x, GLint y, GLint width, GLint height,
+                           GLuint value );
 
 
 
@@ -585,7 +586,7 @@ extern void
 xmesa_clear(struct pipe_context *pipe, struct pipe_surface *ps, GLuint value);
 
 extern void
-xmesa_clear_buffers(GLcontext *ctx, GLbitfield buffers);
+xmesa_clear_buffers(GLcontext *ctx, GLbitfield buffers, GLuint value);
 
 extern struct pipe_context *
 xmesa_create_softpipe(XMesaContext xm);