don't use new glDrawPixel routines in Xserver
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 4 Dec 2003 15:29:10 +0000 (15:29 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 4 Dec 2003 15:29:10 +0000 (15:29 +0000)
src/mesa/drivers/x11/xm_dd.c

index 7d896c5d5862f68aed305c969ab4be78d22040e0..f88ca834948419d19816285e9c551b36575ba1e3 100644 (file)
@@ -764,6 +764,9 @@ xmesa_resize_buffers( GLframebuffer *buffer )
 }
 
 
+#ifndef XFree86Server
+/* XXX this was never tested in the Xserver environment */
+
 /**
  * This function implements glDrawPixels() with an XPutImage call when
  * drawing to the front buffer (X Window drawable).
@@ -820,9 +823,7 @@ xmesa_DrawPixels_8R8G8B( GLcontext *ctx,
          ximage.depth = 24;
          ximage.bytes_per_line = -rowLength * 4; /* negative to flip image */
          ximage.bits_per_pixel = 32;
-         ximage.red_mask   = 0xff0000;
-         ximage.green_mask = 0x00ff00;
-         ximage.blue_mask  = 0x0000ff;
+         /* it seems we don't need to set the ximage.red/green/blue_mask fields */
          /* flip Y axis for dest position */
          dstY = FLIP(xmesa->xm_draw_buffer, dstY) - h + 1;
          XPutImage(dpy, buffer, gc, &ximage, 0, 0, dstX, dstY, w, h);
@@ -888,15 +889,13 @@ xmesa_DrawPixels_5R6G5B( GLcontext *ctx,
          ximage.data = (char *) pixels
             + ((srcY + h - 1) * rowLength + srcX) * 2;
          ximage.byte_order = LSBFirst;
-         ximage.bitmap_unit = 32;
+         ximage.bitmap_unit = 16;
          ximage.bitmap_bit_order = LSBFirst;
-         ximage.bitmap_pad = 32;
+         ximage.bitmap_pad = 16;
          ximage.depth = 16;
          ximage.bytes_per_line = -rowLength * 2; /* negative to flip image */
          ximage.bits_per_pixel = 16;
-         ximage.red_mask   = 0xff0000;
-         ximage.green_mask = 0x00ff00;
-         ximage.blue_mask  = 0x0000ff;
+         /* it seems we don't need to set the ximage.red/green/blue_mask fields */
          /* flip Y axis for dest position */
          dstY = FLIP(xmesa->xm_draw_buffer, dstY) - h + 1;
          XPutImage(dpy, buffer, gc, &ximage, 0, 0, dstX, dstY, w, h);
@@ -908,6 +907,7 @@ xmesa_DrawPixels_5R6G5B( GLcontext *ctx,
                          format, type, unpack, pixels);
    }
 }
+#endif /* XFree86Server */
 
 
 
@@ -1117,6 +1117,9 @@ void xmesa_init_pointers( GLcontext *ctx )
    ctx->Driver.Clear = clear_buffers;
    ctx->Driver.ResizeBuffers = xmesa_resize_buffers;
    ctx->Driver.CopyPixels = xmesa_CopyPixels;
+#ifdef XFree86Server
+   ctx->Driver.DrawPixels = _swrast_DrawPixels;
+#else
    if (xmesa->xm_visual->undithered_pf == PF_8R8G8B &&
        xmesa->xm_visual->dithered_pf == PF_8R8G8B) {
       ctx->Driver.DrawPixels = xmesa_DrawPixels_8R8G8B;
@@ -1127,6 +1130,7 @@ void xmesa_init_pointers( GLcontext *ctx )
    else {
       ctx->Driver.DrawPixels = _swrast_DrawPixels;
    }
+#endif
    ctx->Driver.ReadPixels = _swrast_ReadPixels;
    ctx->Driver.DrawBuffer = _swrast_DrawBuffer;