summaryrefslogtreecommitdiff
path: root/src/mesa
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2001-05-10 15:42:42 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2001-05-10 15:42:42 +0000
commit8b6a91a93f1b3f79796f398884aaca77a8a09198 (patch)
tree3323c86826125422774042db5a174e403ea8e5e1 /src/mesa
parente296d7f0e455ebb1776d01196020a3b4ce2507fb (diff)
Set 'prefer_float_colors' true, now that tnl uses them natively.
Apply Jeff Epler's optimization to ci spans as well, remove old code.
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/x11/xm_span.c95
-rw-r--r--src/mesa/main/api_loopback.c4
-rw-r--r--src/mesa/main/dlist.c4
-rw-r--r--src/mesa/main/state.c4
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 404bd9e02b..c9c1bdeb84 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 9c33cce690..3dabcc4423 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 9a703e097b..e171b6c84e 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 5586f7e4bd..e699ac0752 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;