diff options
author | Ian Romanick <[email protected]> | 2012-07-25 07:15:29 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2012-08-29 15:09:34 -0700 |
commit | 6a9b8f897a8b59fae03c73e05203bc708fb17793 (patch) | |
tree | ba0dfc7ae0dac051796d720885efc61fcad313b0 | |
parent | 72e076cb17e47c608fa6534641653cdc6133fb27 (diff) |
mesa/es: Validate primitive modes in Mesa code rather than the ES wrapper
v2: Add proper core-profile filtering.
Signed-off-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/mesa/main/APIspec.xml | 40 | ||||
-rw-r--r-- | src/mesa/main/api_validate.c | 7 |
2 files changed, 5 insertions, 42 deletions
diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml index 34e41b49e17..6df4b921d00 100644 --- a/src/mesa/main/APIspec.xml +++ b/src/mesa/main/APIspec.xml @@ -1196,16 +1196,6 @@ <param name="first" type="GLint"/> <param name="count" type="GLsizei"/> </proto> - - <desc name="mode"> - <value name="GL_POINTS"/> - <value name="GL_LINES"/> - <value name="GL_LINE_LOOP"/> - <value name="GL_LINE_STRIP"/> - <value name="GL_TRIANGLES"/> - <value name="GL_TRIANGLE_STRIP"/> - <value name="GL_TRIANGLE_FAN"/> - </desc> </template> <template name="DrawElements"> @@ -1216,16 +1206,6 @@ <param name="type" type="GLenum"/> <param name="indices" type="const GLvoid *"/> </proto> - - <desc name="mode"> - <value name="GL_POINTS"/> - <value name="GL_LINES"/> - <value name="GL_LINE_LOOP"/> - <value name="GL_LINE_STRIP"/> - <value name="GL_TRIANGLES"/> - <value name="GL_TRIANGLE_STRIP"/> - <value name="GL_TRIANGLE_FAN"/> - </desc> </template> <template name="EnableClientState"> @@ -2179,16 +2159,6 @@ <param name="count" type="const GLsizei *"/> <param name="primcount" type="GLsizei"/> </proto> - - <desc name="mode"> - <value name="GL_POINTS"/> - <value name="GL_LINES"/> - <value name="GL_LINE_LOOP"/> - <value name="GL_LINE_STRIP"/> - <value name="GL_TRIANGLES"/> - <value name="GL_TRIANGLE_STRIP"/> - <value name="GL_TRIANGLE_FAN"/> - </desc> </template> <template name="MultiDrawElements"> @@ -2200,16 +2170,6 @@ <param name="indices" type="const GLvoid **"/> <param name="primcount" type="GLsizei"/> </proto> - - <desc name="mode"> - <value name="GL_POINTS"/> - <value name="GL_LINES"/> - <value name="GL_LINE_LOOP"/> - <value name="GL_LINE_STRIP"/> - <value name="GL_TRIANGLES"/> - <value name="GL_TRIANGLE_STRIP"/> - <value name="GL_TRIANGLE_FAN"/> - </desc> </template> <template name="EGLImageTargetTexture2D"> diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index 362cdf50e7e..d0d2ca4d451 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -220,16 +220,19 @@ _mesa_valid_prim_mode(struct gl_context *ctx, GLenum mode, const char *name) case GL_TRIANGLES: case GL_TRIANGLE_STRIP: case GL_TRIANGLE_FAN: + valid_enum = true; + break; case GL_QUADS: case GL_QUAD_STRIP: case GL_POLYGON: - valid_enum = true; + valid_enum = (ctx->API == API_OPENGL); break; case GL_LINES_ADJACENCY: case GL_LINE_STRIP_ADJACENCY: case GL_TRIANGLES_ADJACENCY: case GL_TRIANGLE_STRIP_ADJACENCY: - valid_enum = (ctx->Extensions.ARB_geometry_shader4); + valid_enum = _mesa_is_desktop_gl(ctx) + && ctx->Extensions.ARB_geometry_shader4; break; default: valid_enum = false; |