From ac522d475638ec8bb53428353120f6a6a72d2ef5 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 13 Dec 2000 16:24:39 +0000 Subject: use inverted Y coordinate for choosing dither value (conformance fixes) --- src/mesa/drivers/x11/xm_line.c | 10 ++++++++-- src/mesa/drivers/x11/xm_tri.c | 44 ++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/x11/xm_line.c b/src/mesa/drivers/x11/xm_line.c index 881e219713f..a759d376bb4 100644 --- a/src/mesa/drivers/x11/xm_line.c +++ b/src/mesa/drivers/x11/xm_line.c @@ -1,4 +1,4 @@ -/* $Id: xm_line.c,v 1.12 2000/11/22 07:32:18 joukj Exp $ */ +/* $Id: xm_line.c,v 1.13 2000/12/13 16:24:40 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -54,6 +54,8 @@ /* * Render an array of points into a pixmap, any pixel format. */ +#if 000 +/* XXX don't use this, it doesn't dither correctly */ static void draw_points_ANY_pixmap( GLcontext *ctx, const SWvertex *vert ) { XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; @@ -82,7 +84,7 @@ static void draw_points_ANY_pixmap( GLcontext *ctx, const SWvertex *vert ) XMesaDrawPoint( dpy, buffer, gc, x, y); } } - +#endif /* Override the swrast point-selection function. Try to use one of @@ -91,6 +93,7 @@ static void draw_points_ANY_pixmap( GLcontext *ctx, const SWvertex *vert ) */ void xmesa_choose_point( GLcontext *ctx ) { +#if 0 XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -104,6 +107,9 @@ void xmesa_choose_point( GLcontext *ctx ) else { _swrast_choose_point( ctx ); } +#else + _swrast_choose_point( ctx ); +#endif } diff --git a/src/mesa/drivers/x11/xm_tri.c b/src/mesa/drivers/x11/xm_tri.c index 97235c0b27a..09f1f7ce1c1 100644 --- a/src/mesa/drivers/x11/xm_tri.c +++ b/src/mesa/drivers/x11/xm_tri.c @@ -1,4 +1,4 @@ -/* $Id: xm_tri.c,v 1.13 2000/11/24 10:25:09 keithw Exp $ */ +/* $Id: xm_tri.c,v 1.14 2000/12/13 16:24:39 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -277,11 +277,12 @@ static void smooth_DITHER_5R6G5B_z_triangle( GLcontext *ctx, #define INNER_LOOP( LEFT, RIGHT, Y ) \ { \ GLint i, len = RIGHT-LEFT; \ + GLint yy = FLIP(xmesa->xm_buffer, Y); \ (void) fffog; \ for (i=0;ixm_buffer, Y); \ + (void) fffog; \ for (i=0;icolor[0], v0->color[1], v0->color[2] ); -#define INNER_LOOP( LEFT, RIGHT, Y ) \ -{ \ - GLint i, xx = LEFT, len = RIGHT-LEFT; \ - FLAT_DITHER_ROW_SETUP(FLIP(xmesa->xm_buffer, Y)); \ - (void) fffog; \ - for (i=0;ixm_buffer,Y), len = RIGHT-LEFT; \ + FLAT_DITHER_ROW_SETUP(FLIP(xmesa->xm_buffer, yy)); \ + (void) fffog; \ + for (i=0;ixm_buffer->backimage->bytes_per_line) #define INNER_LOOP( LEFT, RIGHT, Y ) \ { \ - GLint xx; \ + GLint xx, yy = FLIP(xmesa->xm_buffer, Y); \ PIXEL_TYPE *pixel = pRow; \ for (xx=LEFT;xxxm_buffer->backimage->bytes_per_line) #define INNER_LOOP( LEFT, RIGHT, Y ) \ { \ - GLint xx; \ + GLint xx, yy = FLIP(xmesa->xm_buffer, Y); \ PIXEL_TYPE *pixel = pRow; \ for (xx=LEFT;xx