summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2012-07-27 07:24:37 -0700
committerIan Romanick <[email protected]>2012-08-29 15:09:34 -0700
commit5b44a77428863292d49aeed2960afbde5ee8f509 (patch)
tree70a94149b2e36bae7f97d6c96a0a7cf15baef59b
parent7f991d26ad189bc3c08c04dc248a5b2df5ce9f68 (diff)
mesa/es: Validate glGenerateMipmap target in Mesa code rather than the ES wrapper
v2: Add proper core-profile and GLES3 filtering. v3: Fix a typo in GL_TEXTURE_2D_ARRAY checking. v4: Change !_mesa_is_desktop_gl tests to _mesa_is_gles test. The test around GL_TEXTURE_2D_ARRAY got some other changes because that enum is also available with GLES3 (which uses API_OPENGLES2). Based on review feedback from Eric Anholt. Signed-off-by: Ian Romanick <[email protected]>
-rw-r--r--src/mesa/main/APIspec.xml7
-rw-r--r--src/mesa/main/fbobject.c11
2 files changed, 9 insertions, 9 deletions
diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
index 9aa38187e59..2b06367282b 100644
--- a/src/mesa/main/APIspec.xml
+++ b/src/mesa/main/APIspec.xml
@@ -2061,13 +2061,6 @@
<return type="void"/>
<param name="target" type="GLenum"/>
</proto>
-
- <desc name="target">
- <value name="GL_TEXTURE_2D"/>
- <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
- <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
- <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
- </desc>
</template>
<template name="BindFramebuffer">
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 5fba3a16387..27bc39e6b3d 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -2526,16 +2526,23 @@ _mesa_GenerateMipmapEXT(GLenum target)
switch (target) {
case GL_TEXTURE_1D:
+ error = _mesa_is_gles(ctx);
+ break;
case GL_TEXTURE_2D:
- case GL_TEXTURE_3D:
error = GL_FALSE;
break;
+ case GL_TEXTURE_3D:
+ error = ctx->API == API_OPENGLES;
+ break;
case GL_TEXTURE_CUBE_MAP:
error = !ctx->Extensions.ARB_texture_cube_map;
break;
case GL_TEXTURE_1D_ARRAY:
+ error = _mesa_is_gles(ctx) || !ctx->Extensions.EXT_texture_array;
+ break;
case GL_TEXTURE_2D_ARRAY:
- error = !ctx->Extensions.EXT_texture_array;
+ error = (_mesa_is_gles(ctx) && ctx->Version < 30)
+ || !ctx->Extensions.EXT_texture_array;
break;
default:
error = GL_TRUE;