diff options
-rw-r--r-- | src/mesa/drivers/x11/xm_span.c | 95 | ||||
-rw-r--r-- | src/mesa/main/api_loopback.c | 4 | ||||
-rw-r--r-- | src/mesa/main/dlist.c | 4 | ||||
-rw-r--r-- | src/mesa/main/state.c | 4 |
4 files changed, 46 insertions, 61 deletions
diff --git a/src/mesa/drivers/x11/xm_span.c b/src/mesa/drivers/x11/xm_span.c index 404bd9e02b8..c9c1bdeb84b 100644 --- a/src/mesa/drivers/x11/xm_span.c +++ b/src/mesa/drivers/x11/xm_span.c @@ -1,4 +1,4 @@ -/* $Id: xm_span.c,v 1.12 2001/05/10 14:21:17 brianp Exp $ */ +/* $Id: xm_span.c,v 1.13 2001/05/10 15:42:43 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -2547,51 +2547,35 @@ static void write_span_mono_pixmap( MONO_SPAN_ARGS ) XMesaGC gc = xmesa->xm_buffer->gc; const unsigned long pixel = xmesa_color_to_pixel(xmesa, color[RCOMP], color[GCOMP], color[BCOMP], color[ACOMP], xmesa->pixelformat); - register GLboolean write_all; register GLuint i; XMesaSetForeground( xmesa->display, gc, pixel ); y = FLIP(xmesa->xm_buffer, y); - write_all = GL_TRUE; - for (i=0;i<n;i++) { - if (!mask[i]) { - write_all = GL_FALSE; - break; - } - } - if (write_all) { - XMesaFillRectangle( dpy, buffer, gc, (int) x, (int) y, n, 1 ); - } - else { -#if 0 - for (i=0;i<n;i++,x++) { - if (mask[i]) { - XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y ); - } - } -#else - /* This version is usually faster. Contributed by Jeff Epler - * and cleaned up by Keith Whitwell. + + /* New code contributed by Jeff Epler and cleaned up by Keith + * Whitwell. + */ + for (i = 0; i < n; ) { + GLuint start = i; + + /* Identify and emit contiguous rendered pixels */ - for (i = 0; i < n; ) { - GLuint start = i; - /* Identify and emit contiguous rendered pixels - */ - for( ; i < n && mask[i]; i++) - /* Nothing */; - if (start < i) - XMesaFillRectangle( dpy, buffer, gc, - (int)(x+start), (int) y, - (int)(i-start), 1); - /* Eat up non-rendered pixels - */ - for(; i < n && !mask[i]; i++) - /* Nothing */; - } -#endif + while (i < n && mask[i]) + i++; + + if (start < i) + XMesaFillRectangle( dpy, buffer, gc, + (int)(x+start), (int) y, + (int)(i-start), 1); + + /* Eat up non-rendered pixels + */ + while (i < n && !mask[i]) + i++; } } + static void write_span_mono_index_pixmap( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLuint colorIndex, const GLubyte mask[] ) @@ -2600,26 +2584,27 @@ static void write_span_mono_index_pixmap( const GLcontext *ctx, GLuint n, XMesaDisplay *dpy = xmesa->xm_visual->display; XMesaDrawable buffer = xmesa->xm_buffer->buffer; XMesaGC gc = xmesa->xm_buffer->gc; - register GLboolean write_all; register GLuint i; XMesaSetForeground( xmesa->display, gc, colorIndex ); y = FLIP(xmesa->xm_buffer, y); - write_all = GL_TRUE; - for (i=0;i<n;i++) { - if (!mask[i]) { - write_all = GL_FALSE; - break; - } - } - if (write_all) { - XMesaFillRectangle( dpy, buffer, gc, (int) x, (int) y, n, 1 ); - } - else { - for (i=0;i<n;i++,x++) { - if (mask[i]) { - XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y ); - } - } + + for (i = 0 ; i < n ;) { + GLuint start = i; + + /* Identify and emit contiguous rendered pixels + */ + while (i < n && mask[i]) + i++; + + if (start < i) + XMesaFillRectangle( dpy, buffer, gc, + (int)(x+start), (int) y, + (int)(i-start), 1); + + /* Eat up non-rendered pixels + */ + while (i < n && !mask[i]) + i++; } } diff --git a/src/mesa/main/api_loopback.c b/src/mesa/main/api_loopback.c index 9c33cce6900..3dabcc44234 100644 --- a/src/mesa/main/api_loopback.c +++ b/src/mesa/main/api_loopback.c @@ -1,4 +1,4 @@ -/* $Id: api_loopback.c,v 1.7 2001/03/12 00:48:37 gareth Exp $ */ +/* $Id: api_loopback.c,v 1.8 2001/05/10 15:42:42 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -1444,7 +1444,7 @@ _mesa_loopback_prefer_float( struct _glapi_table *dest, } } -/* Passing prefer_f_colors as true will mean that all colors +/* Passing prefer_float_colors as true will mean that all colors * *except* Color{34}ub{v} are passed as floats. Setting it false will * mean all colors *except* Color{34}f{v} are passed as ubytes. * diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 9a703e097b9..e171b6c84e1 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -1,4 +1,4 @@ -/* $Id: dlist.c,v 1.69 2001/05/09 12:48:21 keithw Exp $ */ +/* $Id: dlist.c,v 1.70 2001/05/10 15:42:42 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -5533,7 +5533,7 @@ _mesa_init_dlist_table( struct _glapi_table *table, GLuint tableSize ) { _mesa_init_no_op_table(table, tableSize); - _mesa_loopback_init_api_table( table, GL_FALSE ); + _mesa_loopback_init_api_table( table, GL_TRUE ); /* GL 1.0 */ table->Accum = save_Accum; diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 5586f7e4bd9..e699ac07528 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -1,4 +1,4 @@ -/* $Id: state.c,v 1.64 2001/03/29 21:16:25 keithw Exp $ */ +/* $Id: state.c,v 1.65 2001/05/10 15:42:43 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -123,7 +123,7 @@ _mesa_init_exec_table(struct _glapi_table *exec, GLuint tableSize) /* first initialize all dispatch slots to no-op */ _mesa_init_no_op_table(exec, tableSize); - _mesa_loopback_init_api_table( exec, GL_FALSE ); + _mesa_loopback_init_api_table( exec, GL_TRUE ); /* load the dispatch slots we understand */ exec->Accum = _mesa_Accum; |