22 lines
960 B
Plaintext
22 lines
960 B
Plaintext
--- src/misc.c.orig Sun Mar 7 19:14:46 1999
|
|
+++ src/misc.c Sun Mar 7 19:14:51 1999
|
|
@@ -260,8 +263,17 @@
|
|
width = ctx->Buffer->Xmax - ctx->Buffer->Xmin + 1;
|
|
|
|
/* let device driver try to clear the buffers */
|
|
- newMask = (*ctx->Driver.Clear)( ctx, mask, !ctx->Scissor.Enabled,
|
|
+ if ((mask & GL_COLOR_BUFFER_BIT) != 0 && ctx->Color.SWmasking) {
|
|
+ /* driver can't clear color buffer with color/index masking */
|
|
+ GLbitfield mask2 = mask & (~GL_COLOR_BUFFER_BIT);
|
|
+ newMask = (*ctx->Driver.Clear)( ctx, mask2, !ctx->Scissor.Enabled,
|
|
x, y, width, height );
|
|
+ newMask |= GL_COLOR_BUFFER_BIT;
|
|
+ }
|
|
+ else {
|
|
+ newMask = (*ctx->Driver.Clear)( ctx, mask, !ctx->Scissor.Enabled,
|
|
+ x, y, width, height );
|
|
+ }
|
|
|
|
/* check if only clearing of alpha buffer needed */
|
|
if ( (mask & GL_COLOR_BUFFER_BIT) &&
|