summaryrefslogtreecommitdiff
path: root/xc/extras/Mesa/src/span.c
diff options
context:
space:
mode:
Diffstat (limited to 'xc/extras/Mesa/src/span.c')
-rw-r--r--xc/extras/Mesa/src/span.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/xc/extras/Mesa/src/span.c b/xc/extras/Mesa/src/span.c
index 38f4449f1..fd07810f2 100644
--- a/xc/extras/Mesa/src/span.c
+++ b/xc/extras/Mesa/src/span.c
@@ -227,6 +227,9 @@ void gl_write_index_span( GLcontext *ctx,
if (_mesa_depth_test_span( ctx, n, x, y, z, mask )==0) return;
}
+ /* if we get here, something passed the depth test */
+ ctx->OcclusionResult = GL_TRUE;
+
if (ctx->RasterMask & MULTI_DRAW_BIT) {
/* draw to zero or two or more buffers */
multi_write_index_span( ctx, n, x, y, index, mask );
@@ -287,6 +290,9 @@ void gl_write_monoindex_span( GLcontext *ctx,
if (_mesa_depth_test_span( ctx, n, x, y, z, mask )==0) return;
}
+ /* if we get here, something passed the depth test */
+ ctx->OcclusionResult = GL_TRUE;
+
if (ctx->Color.DrawBuffer == GL_NONE) {
/* write no pixels */
return;
@@ -486,6 +492,9 @@ void gl_write_rgba_span( GLcontext *ctx,
}
}
+ /* if we get here, something passed the depth test */
+ ctx->OcclusionResult = GL_TRUE;
+
if (ctx->RasterMask & MULTI_DRAW_BIT) {
multi_write_rgba_span( ctx, n, x, y,
(const GLubyte (*)[4]) rgba,
@@ -596,6 +605,9 @@ void gl_write_monocolor_span( GLcontext *ctx,
}
}
+ /* if we get here, something passed the depth test */
+ ctx->OcclusionResult = GL_TRUE;
+
if (ctx->Color.DrawBuffer == GL_NONE) {
/* write no pixels */
return;
@@ -785,6 +797,9 @@ void gl_write_texture_span( GLcontext *ctx,
}
}
+ /* if we get here, something passed the depth test */
+ ctx->OcclusionResult = GL_TRUE;
+
if (ctx->RasterMask & MULTI_DRAW_BIT) {
multi_write_rgba_span( ctx, n, x, y, (const GLubyte (*)[4])rgba,
write_all ? Null : mask );
@@ -912,8 +927,12 @@ gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
}
}
+ /* if we get here, something passed the depth test */
+ ctx->OcclusionResult = GL_TRUE;
+
if (ctx->RasterMask & MULTI_DRAW_BIT) {
- multi_write_rgba_span( ctx, n, x, y, (const GLubyte (*)[4]) rgba, write_all ? Null : mask );
+ multi_write_rgba_span( ctx, n, x, y, (const GLubyte (*)[4]) rgba,
+ write_all ? Null : mask );
}
else {
/* normal: write to exactly one buffer */