-/* $Id: s_buffers.c,v 1.15 2002/10/24 23:57:24 brianp Exp $ */
+/* $Id: s_buffers.c,v 1.16 2002/11/13 16:46:19 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 4.1
+ * Version: 5.1
*
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
*
}
_mesa_mask_rgba_array( ctx, width, x, y + i, rgba );
(*swrast->Driver.WriteRGBASpan)( ctx, width, x, y + i,
- (CONST GLchan (*)[4]) rgba, NULL );
+ (CONST GLchan (*)[4]) rgba, NULL );
}
}
else {
if (ctx->Visual.rgbMode) {
/* RGBA mode */
GLchan clearColor[4];
- GLchan span[MAX_WIDTH][4];
GLint i;
CLAMPED_FLOAT_TO_CHAN(clearColor[RCOMP], ctx->Color.ClearColor[0]);
CLAMPED_FLOAT_TO_CHAN(clearColor[ACOMP], ctx->Color.ClearColor[3]);
ASSERT(*((GLuint *) &ctx->Color.ColorMask) == 0xffffffff);
+ ASSERT(swrast->Driver.WriteRGBASpan);
- for (i = 0; i < width; i++) {
- COPY_CHAN4(span[i], clearColor);
- }
for (i = 0; i < height; i++) {
- (*swrast->Driver.WriteRGBASpan)( ctx, width, x, y + i,
- (CONST GLchan (*)[4]) span, NULL );
+ (*swrast->Driver.WriteMonoRGBASpan)( ctx, width, x, y + i,
+ clearColor, NULL );
}
}
else {
/* Color index mode */
+ GLint i;
ASSERT((ctx->Color.IndexMask & ((1 << ctx->Visual.indexBits) - 1))
== (GLuint) ((1 << ctx->Visual.indexBits) - 1));
- if (ctx->Visual.indexBits == 8) {
- /* 8-bit clear */
- GLubyte span[MAX_WIDTH];
- GLint i;
- MEMSET(span, ctx->Color.ClearIndex, width);
- for (i = 0; i < height; i++) {
- (*swrast->Driver.WriteCI8Span)( ctx, width, x, y + i, span, NULL );
- }
- }
- else {
- /* non 8-bit clear */
- GLuint span[MAX_WIDTH];
- GLint i;
- for (i = 0; i < width; i++) {
- span[i] = ctx->Color.ClearIndex;
- }
- for (i = 0; i < height; i++) {
- (*swrast->Driver.WriteCI32Span)( ctx, width, x, y + i, span, NULL );
- }
+ ASSERT(swrast->Driver.WriteMonoCISpan);
+ for (i = 0; i < height; i++) {
+ (*swrast->Driver.WriteMonoCISpan)( ctx, width, x, y + i,
+ ctx->Color.ClearIndex, NULL);
}
}
}