summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/framebuffer.c11
-rw-r--r--src/mesa/main/framebuffer.h3
2 files changed, 14 insertions, 0 deletions
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index e1505fa9709..361ed668587 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -1005,3 +1005,14 @@ _mesa_is_multisample_enabled(const struct gl_context *ctx)
ctx->DrawBuffer &&
_mesa_geometric_nonvalidated_samples(ctx->DrawBuffer) > 1;
}
+
+/**
+ * Is alpha testing enabled and applicable to the currently bound
+ * framebuffer?
+ */
+bool
+_mesa_is_alpha_test_enabled(const struct gl_context *ctx)
+{
+ bool buffer0_is_integer = ctx->DrawBuffer->_IntegerBuffers & 0x1;
+ return (ctx->Color.AlphaEnabled && !buffer0_is_integer);
+}
diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h
index 384f7498776..a6adb1c9661 100644
--- a/src/mesa/main/framebuffer.h
+++ b/src/mesa/main/framebuffer.h
@@ -149,4 +149,7 @@ _mesa_is_front_buffer_drawing(const struct gl_framebuffer *fb);
extern bool
_mesa_is_multisample_enabled(const struct gl_context *ctx);
+extern bool
+_mesa_is_alpha_test_enabled(const struct gl_context *ctx);
+
#endif /* FRAMEBUFFER_H */