remove HPCR support
authorBrian <brian.paul@tungstengraphics.com>
Wed, 31 Oct 2007 21:13:29 +0000 (15:13 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Wed, 31 Oct 2007 21:13:29 +0000 (15:13 -0600)
src/mesa/pipe/xlib/xm_api.c
src/mesa/pipe/xlib/xm_buffer.c
src/mesa/pipe/xlib/xm_dd.c
src/mesa/pipe/xlib/xm_span.c
src/mesa/pipe/xlib/xmesaP.h

index 3beb903..74246dd 100644 (file)
@@ -88,68 +88,6 @@ _glthread_Mutex _xmesa_lock;
 
 
 
-/**
- * Lookup tables for HPCR pixel format:
- */
-static short hpcr_rgbTbl[3][256] = {
-{
- 16,  16,  17,  17,  18,  18,  19,  19,  20,  20,  21,  21,  22,  22,  23,  23,
- 24,  24,  25,  25,  26,  26,  27,  27,  28,  28,  29,  29,  30,  30,  31,  31,
- 32,  32,  33,  33,  34,  34,  35,  35,  36,  36,  37,  37,  38,  38,  39,  39,
- 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
- 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
- 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
- 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
- 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
-128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
-160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
-192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
-208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
-224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
-},
-{
- 16,  16,  17,  17,  18,  18,  19,  19,  20,  20,  21,  21,  22,  22,  23,  23,
- 24,  24,  25,  25,  26,  26,  27,  27,  28,  28,  29,  29,  30,  30,  31,  31,
- 32,  32,  33,  33,  34,  34,  35,  35,  36,  36,  37,  37,  38,  38,  39,  39,
- 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
- 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
- 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
- 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
- 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
-128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
-160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
-192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
-208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
-224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
-},
-{
- 32,  32,  33,  33,  34,  34,  35,  35,  36,  36,  37,  37,  38,  38,  39,  39,
- 40,  40,  41,  41,  42,  42,  43,  43,  44,  44,  45,  45,  46,  46,  47,  47,
- 48,  48,  49,  49,  50,  50,  51,  51,  52,  52,  53,  53,  54,  54,  55,  55,
- 56,  56,  57,  57,  58,  58,  59,  59,  60,  60,  61,  61,  62,  62,  63,  63,
- 64,  64,  65,  65,  66,  66,  67,  67,  68,  68,  69,  69,  70,  70,  71,  71,
- 72,  72,  73,  73,  74,  74,  75,  75,  76,  76,  77,  77,  78,  78,  79,  79,
- 80,  80,  81,  81,  82,  82,  83,  83,  84,  84,  85,  85,  86,  86,  87,  87,
- 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
- 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
-128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
-160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
-192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
-208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223
-}
-};
-
-
-
 /**********************************************************************/
 /*****                     X Utility Functions                    *****/
 /**********************************************************************/
@@ -859,62 +797,6 @@ setup_dithered_color(int client, XMesaVisual v,
 
 
 /**
- * Setup for Hewlett Packard Color Recovery 8-bit TrueColor mode.
- * HPCR simulates 24-bit color fidelity with an 8-bit frame buffer.
- * Special dithering tables have to be initialized.
- */
-static void
-setup_8bit_hpcr(XMesaVisual v)
-{
-   /* HP Color Recovery contributed by:  Alex De Bruyn (ad@lms.be)
-    * To work properly, the atom _HP_RGB_SMOOTH_MAP_LIST must be defined
-    * on the root window AND the colormap obtainable by XGetRGBColormaps
-    * for that atom must be set on the window.  (see also tkInitWindow)
-    * If that colormap is not set, the output will look stripy.
-    */
-
-   /* Setup color tables with gamma correction */
-   int i;
-   double g;
-
-   g = 1.0 / v->RedGamma;
-   for (i=0; i<256; i++) {
-      GLint red = IROUND_POS(255.0 * _mesa_pow( hpcr_rgbTbl[0][i]/255.0, g ));
-      v->hpcr_rgbTbl[0][i] = CLAMP( red, 16, 239 );
-   }
-
-   g = 1.0 / v->GreenGamma;
-   for (i=0; i<256; i++) {
-      GLint green = IROUND_POS(255.0 * _mesa_pow( hpcr_rgbTbl[1][i]/255.0, g ));
-      v->hpcr_rgbTbl[1][i] = CLAMP( green, 16, 239 );
-   }
-
-   g = 1.0 / v->BlueGamma;
-   for (i=0; i<256; i++) {
-      GLint blue = IROUND_POS(255.0 * _mesa_pow( hpcr_rgbTbl[2][i]/255.0, g ));
-      v->hpcr_rgbTbl[2][i] = CLAMP( blue, 32, 223 );
-   }
-   v->undithered_pf = PF_HPCR;  /* can't really disable dithering for now */
-   v->dithered_pf = PF_HPCR;
-
-   /* which method should I use to clear */
-   /* GL_FALSE: keep the ordinary method  */
-   /* GL_TRUE : clear with dither pattern */
-   v->hpcr_clear_flag = _mesa_getenv("MESA_HPCR_CLEAR") ? GL_TRUE : GL_FALSE;
-
-   if (v->hpcr_clear_flag) {
-      v->hpcr_clear_pixmap = XMesaCreatePixmap(v->display,
-                                               DefaultRootWindow(v->display),
-                                               16, 2, 8);
-#ifndef XFree86Server
-      v->hpcr_clear_ximage = XGetImage(v->display, v->hpcr_clear_pixmap,
-                                       0, 0, 16, 2, AllPlanes, ZPixmap);
-#endif
-   }
-}
-
-
-/**
  * Setup RGB rendering for a window with a True/DirectColor visual.
  */
 static void
@@ -1039,13 +921,6 @@ setup_truecolor(XMesaVisual v, XMesaBuffer buffer, XMesaColormap cmap)
       v->undithered_pf = PF_5R6G5B;
       v->dithered_pf = PF_Dither_5R6G5B;
    }
-   else if (GET_REDMASK(v)  ==0xe0
-       &&   GET_GREENMASK(v)==0x1c
-       &&   GET_BLUEMASK(v) ==0x03
-       && CHECK_FOR_HPCR(v)) {
-      /* 8-bit HP color recovery */
-      setup_8bit_hpcr( v );
-   }
 }
 
 
@@ -1198,23 +1073,6 @@ initialize_visual_and_buffer(XMesaVisual v, XMesaBuffer b,
       }
 #endif
       XMesaSetFunction( v->display, b->swapgc, GXcopy );
-      /*
-       * Set fill style and tile pixmap once for all for HPCR stuff
-       * (instead of doing it each time in clear_color_HPCR_pixmap())
-       * Initialize whole stuff
-       * Patch contributed by Jacques Leroy March 8, 1998.
-       */
-      if (v->hpcr_clear_flag && b->backxrb && b->backxrb->pixmap) {
-         int i;
-         for (i = 0; i < 16; i++) {
-            XMesaPutPixel(v->hpcr_clear_ximage, i, 0, 0);
-            XMesaPutPixel(v->hpcr_clear_ximage, i, 1, 0);
-         }
-         XMesaPutImage(b->display, (XMesaDrawable) v->hpcr_clear_pixmap,
-                       b->cleargc, v->hpcr_clear_ximage, 0, 0, 0, 0, 16, 2);
-         XMesaSetFillStyle( v->display, b->cleargc, FillTiled);
-         XMesaSetTile( v->display, b->cleargc, v->hpcr_clear_pixmap );
-      }
 
       /* Initialize the row buffer XImage for use in write_color_span() */
       data = (char*) MALLOC(MAX_WIDTH*4);
@@ -1275,8 +1133,6 @@ xmesa_color_to_pixel(GLcontext *ctx,
       case PF_1Bit:
          /* 382 = (3*255)/2 */
          return ((r+g+b) > 382) ^ xmesa->xm_visual->bitFlip;
-      case PF_HPCR:
-         return DITHER_HPCR(1, 1, r, g, b);
       case PF_Lookup:
          {
             LOOKUP_SETUP;
@@ -2293,8 +2149,6 @@ unsigned long XMesaDitherColor( XMesaContext xmesa, GLint x, GLint y,
       case PF_1Bit:
          /* 382 = (3*255)/2 */
          return ((r+g+b) > 382) ^ xmesa->xm_visual->bitFlip;
-      case PF_HPCR:
-         return DITHER_HPCR(x, y, r, g, b);
       case PF_Lookup:
          {
             LOOKUP_SETUP;
index 09356c7..b25ceef 100644 (file)
@@ -484,11 +484,6 @@ xmesa_delete_framebuffer(struct gl_framebuffer *fb)
       }
       if (b->backxrb->pixmap) {
          XMesaFreePixmap( b->display, b->backxrb->pixmap );
-         if (b->xm_visual->hpcr_clear_flag) {
-            XMesaFreePixmap( b->display,
-                             b->xm_visual->hpcr_clear_pixmap );
-            XMesaDestroyImage( b->xm_visual->hpcr_clear_ximage );
-         }
       }
    }
 
index a07f17b..87d1e40 100644 (file)
@@ -65,21 +65,6 @@ const int xmesa_kernel8[DITH_DY * DITH_DX] = {
    15 * MAXC,  7 * MAXC, 13 * MAXC,  5 * MAXC,
 };
 
-const short xmesa_HPCR_DRGB[3][2][16] = {
-   {
-      { 16, -4,  1,-11, 14, -6,  3, -9, 15, -5,  2,-10, 13, -7,  4, -8},
-      {-15,  5,  0, 12,-13,  7, -2, 10,-14,  6, -1, 11,-12,  8, -3,  9}
-   },
-   {
-      {-11, 15, -7,  3, -8, 14, -4,  2,-10, 16, -6,  4, -9, 13, -5,  1},
-      { 12,-14,  8, -2,  9,-13,  5, -1, 11,-15,  7, -3, 10,-12,  6,  0}
-   },
-   {
-      {  6,-18, 26,-14,  2,-22, 30,-10,  8,-16, 28,-12,  4,-20, 32, -8},
-      { -4, 20,-24, 16,  0, 24,-28, 12, -6, 18,-26, 14, -2, 22,-30, 10}
-   }
-};
-
 const int xmesa_kernel1[16] = {
    0*47,  9*47,  4*47, 12*47,     /* 47 = (255*3)/16 */
    6*47,  2*47, 14*47,  8*47,
@@ -148,29 +133,6 @@ clear_8bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, GLuint value)
 
 
 static void
-clear_HPCR_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, GLuint value)
-                   
-{
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   GLint width = xrb->St.Base.Width;
-   GLint height = xrb->St.Base.Height;
-   GLint i;
-   for (i = 0; i < height; i++) {
-      GLubyte *ptr = PIXEL_ADDR1( xrb, 0, i );
-      int j;
-      const GLubyte *sptr = xmesa->xm_visual->hpcr_clear_ximage_pattern[0];
-      if (i & 1) {
-         sptr += 16;
-      }
-      for (j = 0; j < width; j++) {
-         *ptr = sptr[j&15];
-         ptr++;
-      }
-   }
-}
-
-
-static void
 clear_16bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, GLuint value)
 {
    const XMesaContext xmesa = XMESA_CONTEXT(ctx);
@@ -273,80 +235,6 @@ clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, GLuint value)
 }
 
 
-static void
-clear_color_HPCR_ximage( GLcontext *ctx, const GLfloat color[4] )
-{
-   int i;
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-
-   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]);
-
-   if (color[0] == 0.0 && color[1] == 0.0 && color[2] == 0.0) {
-      /* black is black */
-      MEMSET( xmesa->xm_visual->hpcr_clear_ximage_pattern, 0x0 ,
-              sizeof(xmesa->xm_visual->hpcr_clear_ximage_pattern));
-   }
-   else {
-      /* build clear pattern */
-      for (i=0; i<16; i++) {
-         xmesa->xm_visual->hpcr_clear_ximage_pattern[0][i] =
-            DITHER_HPCR(i, 0,
-                        xmesa->clearcolor[0],
-                        xmesa->clearcolor[1],
-                        xmesa->clearcolor[2]);
-         xmesa->xm_visual->hpcr_clear_ximage_pattern[1][i]    =
-            DITHER_HPCR(i, 1,
-                        xmesa->clearcolor[0],
-                        xmesa->clearcolor[1],
-                        xmesa->clearcolor[2]);
-      }
-   }
-}
-
-
-static void
-clear_color_HPCR_pixmap( GLcontext *ctx, const GLfloat color[4] )
-{
-   int i;
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-
-   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]);
-
-   if (color[0] == 0.0 && color[1] == 0.0 && color[2] == 0.0) {
-      /* black is black */
-      for (i=0; i<16; i++) {
-         XMesaPutPixel(xmesa->xm_visual->hpcr_clear_ximage, i, 0, 0);
-         XMesaPutPixel(xmesa->xm_visual->hpcr_clear_ximage, i, 1, 0);
-      }
-   }
-   else {
-      for (i=0; i<16; i++) {
-         XMesaPutPixel(xmesa->xm_visual->hpcr_clear_ximage, i, 0,
-                       DITHER_HPCR(i, 0,
-                                   xmesa->clearcolor[0],
-                                   xmesa->clearcolor[1],
-                                   xmesa->clearcolor[2]));
-         XMesaPutPixel(xmesa->xm_visual->hpcr_clear_ximage, i, 1,
-                       DITHER_HPCR(i, 1,
-                                   xmesa->clearcolor[0],
-                                   xmesa->clearcolor[1],
-                                   xmesa->clearcolor[2]));
-      }
-   }
-   /* change tile pixmap content */
-   XMesaPutImage(xmesa->display,
-                (XMesaDrawable)xmesa->xm_visual->hpcr_clear_pixmap,
-                XMESA_BUFFER(ctx->DrawBuffer)->cleargc,
-                xmesa->xm_visual->hpcr_clear_ximage, 0, 0, 0, 0, 16, 2);
-}
-
-
 /**
  * Called when the driver should update its state, based on the new_state
  * flags.
@@ -387,12 +275,7 @@ xmesa_update_state( GLcontext *ctx, GLbitfield new_state )
          else {
             switch (xmesa->xm_visual->BitsPerPixel) {
             case 8:
-               if (xmesa->xm_visual->hpcr_clear_flag) {
-                  back_xrb->clearFunc = clear_HPCR_ximage;
-               }
-               else {
-                  back_xrb->clearFunc = clear_8bit_ximage;
-               }
+               back_xrb->clearFunc = clear_8bit_ximage;
                break;
             case 16:
                back_xrb->clearFunc = clear_16bit_ximage;
@@ -410,22 +293,6 @@ xmesa_update_state( GLcontext *ctx, GLbitfield new_state )
          }
       }
    }
-
-   if (xmesa->xm_visual->hpcr_clear_flag) {
-      /* this depends on whether we're drawing to the front or back buffer */
-      /* XXX FIX THIS! */
-#if 0
-      if (pixmap) {
-         ctx->Driver.ClearColor = clear_color_HPCR_pixmap;
-      }
-      else {
-         ctx->Driver.ClearColor = clear_color_HPCR_ximage;
-      }
-#else
-      (void) clear_color_HPCR_pixmap;
-      (void) clear_color_HPCR_ximage;
-#endif
-   }
 }
 
 
index 89eeff5..e404ff4 100644 (file)
@@ -989,71 +989,6 @@ static void put_row_rgb_1BIT_pixmap( RGB_SPAN_ARGS )
 
 
 /*
- * Write a span of PF_HPCR pixels to a pixmap.
- */
-static void put_row_HPCR_pixmap( PUT_ROW_ARGS )
-{
-   const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   GET_XRB(xrb);
-   XMesaDisplay *dpy = xmesa->xm_visual->display;
-   XMesaDrawable buffer = xrb->drawable;
-   XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
-   register GLuint i;
-   y = YFLIP(xrb, y);
-   if (mask) {
-      for (i=0;i<n;i++,x++) {
-         if (mask[i]) {
-            XMesaSetForeground( dpy, gc,
-                            DITHER_HPCR( x, y, rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] ) );
-            XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
-         }
-      }
-   }
-   else {
-      XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
-      register GLubyte *ptr = (GLubyte *) XMESA_BUFFER(ctx->DrawBuffer)->rowimage->data;
-      for (i=0;i<n;i++) {
-         ptr[i] = DITHER_HPCR( (x+i), y, rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] );
-      }
-      XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
-   }
-}
-
-
-/*
- * Write a span of PF_HPCR pixels to a pixmap (no alpha).
- */
-static void put_row_rgb_HPCR_pixmap( RGB_SPAN_ARGS )
-{
-   const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   GET_XRB(xrb);
-   XMesaDisplay *dpy = xmesa->xm_visual->display;
-   XMesaDrawable buffer = xrb->drawable;
-   XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
-   register GLuint i;
-   y = YFLIP(xrb, y);
-   if (mask) {
-      for (i=0;i<n;i++,x++) {
-         if (mask[i]) {
-            XMesaSetForeground( dpy, gc,
-              DITHER_HPCR(x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]) );
-            XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
-         }
-      }
-   }
-   else {
-      XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
-      register GLubyte *ptr = (GLubyte *) XMESA_BUFFER(ctx->DrawBuffer)->rowimage->data;
-      for (i=0;i<n;i++) {
-         ptr[i] = DITHER_HPCR( (x+i), y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
-      }
-      XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
-   }
-}
-
-/*
  * Write a span of PF_LOOKUP pixels to a pixmap.
  */
 static void put_row_LOOKUP_pixmap( PUT_ROW_ARGS )
@@ -1968,58 +1903,6 @@ static void put_row_rgb_1BIT_ximage( RGB_SPAN_ARGS )
 
 
 /*
- * Write a span of PF_HPCR pixels to an XImage.
- */
-static void put_row_HPCR_ximage( PUT_ROW_ARGS )
-{
-   const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
-   GET_XRB(xrb);
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   register GLuint i;
-   register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
-   if (mask) {
-      for (i=0;i<n;i++,x++) {
-         if (mask[i]) {
-            ptr[i] = DITHER_HPCR( x, y, rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] );
-         }
-      }
-   }
-   else {
-      /* draw all pixels */
-      for (i=0;i<n;i++,x++) {
-         ptr[i] = DITHER_HPCR( x, y, rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] );
-      }
-   }
-}
-
-
-/*
- * Write a span of PF_HPCR pixels to an XImage (no alpha).
- */
-static void put_row_rgb_HPCR_ximage( RGB_SPAN_ARGS )
-{
-   const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
-   GET_XRB(xrb);
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   register GLuint i;
-   register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
-   if (mask) {
-      for (i=0;i<n;i++,x++) {
-         if (mask[i]) {
-            ptr[i] = DITHER_HPCR( x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
-         }
-      }
-   }
-   else {
-      /* draw all pixels */
-      for (i=0;i<n;i++,x++) {
-         ptr[i] = DITHER_HPCR( x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
-      }
-   }
-}
-
-
-/*
  * Write a span of PF_LOOKUP pixels to an XImage.
  */
 static void put_row_LOOKUP_ximage( PUT_ROW_ARGS )
@@ -2459,27 +2342,6 @@ static void put_values_1BIT_pixmap( PUT_VALUES_ARGS )
 }
 
 
-/*
- * Write an array of PF_HPCR pixels to a pixmap.
- */
-static void put_values_HPCR_pixmap( PUT_VALUES_ARGS )
-{
-   const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   GET_XRB(xrb);
-   XMesaDisplay *dpy = xmesa->xm_visual->display;
-   XMesaDrawable buffer = xrb->drawable;
-   XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
-   register GLuint i;
-   for (i=0;i<n;i++) {
-      if (mask[i]) {
-         XMesaSetForeground( dpy, gc,
-                         DITHER_HPCR( x[i], y[i], rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] ));
-         XMesaDrawPoint( dpy, buffer, gc, (int) x[i], (int) YFLIP(xrb, y[i]) );
-      }
-   }
-}
-
 
 /*
  * Write an array of PF_LOOKUP pixels to a pixmap.
@@ -2726,24 +2588,6 @@ static void put_values_1BIT_ximage( PUT_VALUES_ARGS )
 
 
 /*
- * Write an array of PF_HPCR pixels to an XImage.
- */
-static void put_values_HPCR_ximage( PUT_VALUES_ARGS )
-{
-   const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
-   GET_XRB(xrb);
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   register GLuint i;
-   for (i=0;i<n;i++) {
-      if (mask[i]) {
-         GLubyte *ptr = PIXEL_ADDR1(xrb, x[i], y[i]);
-         *ptr = (GLubyte) DITHER_HPCR( x[i], y[i], rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] );
-      }
-   }
-}
-
-
-/*
  * Write an array of PF_LOOKUP pixels to an XImage.
  */
 static void put_values_LOOKUP_ximage( PUT_VALUES_ARGS )
@@ -3196,25 +3040,6 @@ static void put_mono_row_1BIT_ximage( PUT_MONO_ROW_ARGS )
 
 
 /*
- * Write a span of identical HPCR pixels to an XImage.
- */
-static void put_mono_row_HPCR_ximage( PUT_MONO_ROW_ARGS )
-{
-   const GLubyte *color = (const GLubyte *) value;
-   GET_XRB(xrb);
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
-   register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
-   register GLuint i;
-   for (i=0;i<n;i++,x++) {
-      if (!mask || mask[i]) {
-         ptr[i] = DITHER_HPCR( x, y, r, g, b );
-      }
-   }
-}
-
-
-/*
  * Write a span of identical 8-bit GRAYSCALE pixels to an XImage.
  */
 static void put_mono_row_GRAYSCALE8_ximage( PUT_MONO_ROW_ARGS )
@@ -3592,25 +3417,6 @@ static void put_mono_values_1BIT_ximage( PUT_MONO_VALUES_ARGS )
 
 
 /*
- * Write an array of identical PF_HPCR pixels to an XImage.
- */
-static void put_mono_values_HPCR_ximage( PUT_MONO_VALUES_ARGS )
-{
-   const GLubyte *color = (const GLubyte *) value;
-   GET_XRB(xrb);
-   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
-   const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
-   register GLuint i;
-   for (i=0;i<n;i++) {
-      if (mask[i]) {
-         GLubyte *ptr = PIXEL_ADDR1(xrb, x[i], y[i]);
-         *ptr = DITHER_HPCR( x[i], y[i], r, g, b );
-      }
-   }
-}
-
-
-/*
  * Write an array of identical 8-bit PF_GRAYSCALE pixels to an XImage.
  */
 static void put_mono_values_GRAYSCALE8_ximage( PUT_MONO_VALUES_ARGS )
@@ -3990,19 +3796,6 @@ get_row_rgba(GLcontext *ctx, struct gl_renderbuffer *rb,
                   }
               }
               break;
-            case PF_HPCR:
-               {
-                  GLubyte *ptr1 = (GLubyte *) span->data;
-                  GLuint i;
-                  for (i=0;i<n;i++) {
-                     GLubyte p = *ptr1++;
-                     rgba[i][RCOMP] =  p & 0xE0;
-                     rgba[i][GCOMP] = (p & 0x1C) << 3;
-                     rgba[i][BCOMP] = (p & 0x03) << 6;
-                     rgba[i][ACOMP] = 255;
-                  }
-               }
-               break;
            case PF_Dither:
            case PF_Lookup:
            case PF_Grayscale:
@@ -4190,19 +3983,6 @@ get_row_rgba(GLcontext *ctx, struct gl_renderbuffer *rb,
                }
             }
            break;
-         case PF_HPCR:
-            {
-               const GLubyte *ptr1 = PIXEL_ADDR1(xrb, x, y);
-               GLuint i;
-               for (i=0;i<n;i++) {
-                  GLubyte p = *ptr1++;
-                  rgba[i][RCOMP] =  p & 0xE0;
-                  rgba[i][GCOMP] = (p & 0x1C) << 3;
-                  rgba[i][BCOMP] = (p & 0x03) << 6;
-                  rgba[i][ACOMP] = 255;
-               }
-            }
-            break;
         case PF_Dither:
         case PF_Lookup:
         case PF_Grayscale:
@@ -4365,16 +4145,6 @@ get_values_rgba(GLcontext *ctx, struct gl_renderbuffer *rb,
                rgba[i][ACOMP] = 255;
            }
            break;
-         case PF_HPCR:
-            for (i=0;i<n;i++) {
-               unsigned long p = read_pixel( dpy, buffer,
-                                             x[i], YFLIP(xrb, y[i]) );
-               rgba[i][RCOMP] = (GLubyte) ( p & 0xE0      );
-               rgba[i][GCOMP] = (GLubyte) ((p & 0x1C) << 3);
-                  rgba[i][BCOMP] = (GLubyte) ((p & 0x03) << 6);
-                  rgba[i][ACOMP] = (GLubyte) 255;
-            }
-            break;
         case PF_Dither:
         case PF_Lookup:
         case PF_Grayscale:
@@ -4477,16 +4247,6 @@ get_values_rgba(GLcontext *ctx, struct gl_renderbuffer *rb,
                rgba[i][ACOMP] = 255;
            }
            break;
-         case PF_HPCR:
-            for (i=0;i<n;i++) {
-               GLubyte *ptr1 = PIXEL_ADDR1(xrb, x[i], y[i]);
-               GLubyte p = *ptr1;
-               rgba[i][RCOMP] =  p & 0xE0;
-               rgba[i][GCOMP] = (p & 0x1C) << 3;
-               rgba[i][BCOMP] = (p & 0x03) << 6;
-               rgba[i][ACOMP] = 255;
-            }
-            break;
         case PF_Dither:
         case PF_Lookup:
         case PF_Grayscale:
@@ -4729,22 +4489,6 @@ xmesa_set_renderbuffer_funcs(struct xmesa_renderbuffer *xrb,
          rb->PutMonoValues = put_mono_values_1BIT_ximage;
       }
       break;
-   case PF_HPCR:
-      if (pixmap) {
-         rb->PutRow        = put_row_HPCR_pixmap;
-         rb->PutRowRGB     = put_row_rgb_HPCR_pixmap;
-         rb->PutMonoRow    = put_mono_row_pixmap;
-         rb->PutValues     = put_values_HPCR_pixmap;
-         rb->PutMonoValues = put_mono_values_pixmap;
-      }
-      else {
-         rb->PutRow        = put_row_HPCR_ximage;
-         rb->PutRowRGB     = put_row_rgb_HPCR_ximage;
-         rb->PutMonoRow    = put_mono_row_HPCR_ximage;
-         rb->PutValues     = put_values_HPCR_ximage;
-         rb->PutMonoValues = put_mono_values_HPCR_ximage;
-      }
-      break;
    case PF_Lookup:
       if (pixmap) {
          rb->PutRow        = put_row_LOOKUP_pixmap;
index f878af9..195d483 100644 (file)
@@ -71,7 +71,6 @@ enum pixel_format {
    PF_5R6G5B,          /**< 16-bit TrueColor:  5-R, 6-G, 5-B bits */
    PF_Dither,          /**< Color-mapped RGB with dither */
    PF_Lookup,          /**< Color-mapped RGB without dither */
-   PF_HPCR,            /**< HP Color Recovery (ad@lms.be 30/08/95) */
    PF_1Bit,            /**< monochrome dithering of RGB */
    PF_Grayscale,       /**< Grayscale or StaticGray */
    PF_Dither_5R6G5B    /**< 16-bit dithered TrueColor: 5-R, 6-G, 5-B */
@@ -113,13 +112,6 @@ struct xmesa_visual {
    GLubyte PixelToG[256];
    GLubyte PixelToB[256];
 
-   /* For PF_HPCR */
-   short       hpcr_rgbTbl[3][256];
-   GLboolean   hpcr_clear_flag;
-   GLubyte     hpcr_clear_ximage_pattern[2][16];
-   XMesaImage *hpcr_clear_ximage;
-   XMesaPixmap hpcr_clear_pixmap;
-
    /* For PF_1BIT */
    int bitFlip;
 };
@@ -422,25 +414,6 @@ extern const int xmesa_kernel8[DITH_DY * DITH_DX];
                        _dither_lookup(DITH_B, (B)))]
 
 
-/**
- * If pixelformat==PF_HPCR:
- *
- *      HP Color Recovery dithering               (ad@lms.be 30/08/95)
- *      HP has on it's 8-bit 700-series computers, a feature called
- *      'Color Recovery'.  This allows near 24-bit output (so they say).
- *      It is enabled by selecting the 8-bit  TrueColor  visual AND
- *      corresponding  colormap (see tkInitWindow) AND doing some special
- *      dither.
- */
-extern const short xmesa_HPCR_DRGB[3][2][16];
-
-#define DITHER_HPCR( X, Y, R, G, B )                                      \
-  ( ((xmesa->xm_visual->hpcr_rgbTbl[0][R] + xmesa_HPCR_DRGB[0][(Y)&1][(X)&15]) & 0xE0)     \
-  |(((xmesa->xm_visual->hpcr_rgbTbl[1][G] + xmesa_HPCR_DRGB[1][(Y)&1][(X)&15]) & 0xE0)>>3) \
-  | ((xmesa->xm_visual->hpcr_rgbTbl[2][B] + xmesa_HPCR_DRGB[2][(Y)&1][(X)&15])>>6)        \
-  )
-
-
 
 /**
  * If pixelformat==PF_1BIT: