mesa/es: Validate EGLImageTargetTexture2DOES target in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
Ian Romanick 2012-07-25 16:13:33 -07:00
parent a0595cb450
commit ea9b212fca
2 changed files with 15 additions and 10 deletions

View file

@ -3114,11 +3114,6 @@
<param name="target" type="GLenum"/>
<param name="image" type="GLeglImageOES"/>
</proto>
<desc name="target">
<value name="GL_TEXTURE_2D"/>
<value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
</desc>
</template>
<template name="EGLImageTargetRenderbufferStorage">

View file

@ -28,7 +28,7 @@
* Texture image-related functions.
*/
#include <stdbool.h>
#include "glheader.h"
#include "bufferobj.h"
#include "context.h"
@ -2670,13 +2670,23 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image)
{
struct gl_texture_object *texObj;
struct gl_texture_image *texImage;
bool valid_target;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
if ((target == GL_TEXTURE_2D &&
!ctx->Extensions.OES_EGL_image) ||
(target == GL_TEXTURE_EXTERNAL_OES &&
!ctx->Extensions.OES_EGL_image_external)) {
switch (target) {
case GL_TEXTURE_2D:
valid_target = ctx->Extensions.OES_EGL_image;
break;
case GL_TEXTURE_EXTERNAL_OES:
valid_target = ctx->Extensions.OES_EGL_image_external;
break;
default:
valid_target = false;
break;
}
if (!valid_target) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glEGLImageTargetTexture2D(target=%d)", target);
return;