mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 11:10:10 +01:00
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: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
e2cf14d7b2
commit
b0b6b76d52
2 changed files with 8 additions and 36 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue