Set 'prefer_float_colors' true, now that tnl uses them natively.

Apply Jeff Epler's optimization to ci spans as well, remove old code.
This commit is contained in:
Keith Whitwell 2001-05-10 15:42:42 +00:00
parent e296d7f0e4
commit 8b6a91a93f
4 changed files with 46 additions and 61 deletions

View File

@ -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++;
}
}

View File

@ -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.
*

View File

@ -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;

View File

@ -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;