diff options
author | Ian Romanick <[email protected]> | 2012-07-27 07:24:37 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2012-08-29 15:09:34 -0700 |
commit | 5b44a77428863292d49aeed2960afbde5ee8f509 (patch) | |
tree | 70a94149b2e36bae7f97d6c96a0a7cf15baef59b /src/mesa | |
parent | 7f991d26ad189bc3c08c04dc248a5b2df5ce9f68 (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]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/APIspec.xml | 7 | ||||
-rw-r--r-- | src/mesa/main/fbobject.c | 11 |
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; |