summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2012-08-08 11:56:33 -0700
committerIan Romanick <[email protected]>2012-08-29 15:09:36 -0700
commitd638da23d2ec2e9c52655b1ea138249e7f8bcccb (patch)
tree7b211b191fe6615fa1cf85e6ba022067ef23e1ff /src/mesa/main
parent8e7b6a69e9cb00345e0c08966036b305cbda46c9 (diff)
meta: Don't stray outside the confines of the API specified in the context
Signed-off-by: Paul Berry <[email protected]> Signed-off-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/enable.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 214f84d6f70..b713f5f2c44 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -38,6 +38,7 @@
#include "enums.h"
#include "api_arrayelt.h"
#include "texstate.h"
+#include "drivers/common/meta.h"
@@ -764,8 +765,13 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
/* GL_ARB_multisample */
case GL_MULTISAMPLE_ARB:
- if (!_mesa_is_desktop_gl(ctx) && ctx->API != API_OPENGLES)
+ /* Technically speaking, this should not be allowed for OpenGL ES 2.0
+ * or 3.0. However, meta really needs it.
+ */
+ if (!_mesa_meta_in_progress(ctx) && !_mesa_is_desktop_gl(ctx)
+ && ctx->API != API_OPENGLES)
goto invalid_enum_error;
+
if (ctx->Multisample.Enabled == state)
return;
FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);