Commit b0b6b76d authored by Ian Romanick's avatar Ian Romanick

mesa/es: Validate buffer object targets in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.
Signed-off-by: 's avatarIan Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
parent e2cf14d7
......@@ -1806,11 +1806,6 @@
<param name="pname" type="GLenum"/>
<vector name="params" type="GLvoid **" size="dynamic"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
</template>
<template name="MapBuffer" direction="get">
......@@ -1820,11 +1815,6 @@
<param name="access" type="GLenum"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
<desc name="access">
<value name="GL_WRITE_ONLY_OES"/>
</desc>
......@@ -1835,11 +1825,6 @@
<return type="GLboolean"/>
<param name="target" type="GLenum"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
</template>
<template name="BindBuffer">
......@@ -1848,11 +1833,6 @@
<param name="target" type="GLenum"/>
<param name="buffer" type="GLuint"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
</template>
<template name="BufferData">
......@@ -1864,11 +1844,6 @@
<param name="usage" type="GLenum"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
<desc name="usage">
<value name="GL_STATIC_DRAW"/>
<value name="GL_DYNAMIC_DRAW"/>
......@@ -1884,11 +1859,6 @@
<param name="size" type="GLsizeiptr"/>
<param name="data" type="const GLvoid *"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
</template>
<template name="DeleteBuffers">
......@@ -1915,11 +1885,6 @@
<vector name="params" type="GLtype *" size="dynamic"/>
</proto>
<desc name="target">
<value name="GL_ARRAY_BUFFER"/>
<value name="GL_ELEMENT_ARRAY_BUFFER"/>
</desc>
<desc name="pname">
<value name="GL_BUFFER_SIZE"/>
<value name="GL_BUFFER_USAGE"/>
......
......@@ -68,6 +68,12 @@ static struct gl_buffer_object DummyBufferObject;
static inline struct gl_buffer_object **
get_buffer_target(struct gl_context *ctx, GLenum target)
{
/* Other targets are only supported in desktop OpenGL and OpenGL ES 3.0.
*/
if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)
&& target != GL_ARRAY_BUFFER && target != GL_ELEMENT_ARRAY_BUFFER)
return NULL;
switch (target) {
case GL_ARRAY_BUFFER_ARB:
return &ctx->Array.ArrayBufferObj;
......@@ -89,7 +95,8 @@ get_buffer_target(struct gl_context *ctx, GLenum target)
break;
#endif
case GL_TEXTURE_BUFFER:
if (ctx->Extensions.ARB_texture_buffer_object) {
if (_mesa_is_desktop_gl(ctx)
&& ctx->Extensions.ARB_texture_buffer_object) {
return &ctx->Texture.BufferObject;
}
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment