Mesa (master): mesa/es: Validate EGLImageTargetTexture2DOES target in Mesa code rather than the ES wrapper
Ian Romanick
idr at kemper.freedesktop.org
Thu Aug 23 17:20:49 UTC 2012
Module: Mesa
Branch: master
Commit: ea9b212fca78eada7cc7c4449de3f31d2ceea1c3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea9b212fca78eada7cc7c4449de3f31d2ceea1c3
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Wed Jul 25 16:13:33 2012 -0700
mesa/es: Validate EGLImageTargetTexture2DOES target in Mesa code rather than the ES wrapper
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
---
src/mesa/main/APIspec.xml | 5 -----
src/mesa/main/teximage.c | 20 +++++++++++++++-----
2 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
index 7acade2..1306ac7 100644
--- a/src/mesa/main/APIspec.xml
+++ b/src/mesa/main/APIspec.xml
@@ -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">
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 27294ba..095db4f 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -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;
More information about the mesa-commit
mailing list