From: Chia-I Wu Date: Tue, 6 Apr 2010 09:46:17 +0000 (+0800) Subject: mesa: Add OES_EGL_image to extension list. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2002e4d06e2627241cd4af88f65b54d2101ef151;p=mesa.git mesa: Add OES_EGL_image to extension list. --- diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c index a1aac699c91..9c2083873a1 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions.c +++ b/src/mesa/drivers/dri/intel/intel_extensions.c @@ -63,6 +63,7 @@ #define need_GL_ATI_envmap_bumpmap #define need_GL_NV_point_sprite #define need_GL_NV_vertex_program +#define need_GL_OES_EGL_image #define need_GL_VERSION_2_0 #define need_GL_VERSION_2_1 @@ -130,6 +131,9 @@ static const struct dri_extension card_extensions[] = { { "GL_NV_vertex_program", GL_NV_vertex_program_functions }, { "GL_NV_vertex_program1_1", NULL }, { "GL_SGIS_generate_mipmap", NULL }, +#if FEATURE_OES_EGL_image + { "GL_OES_EGL_image", GL_OES_EGL_image_functions }, +#endif { NULL, NULL } }; diff --git a/src/mesa/es/main/specials_es1.c b/src/mesa/es/main/specials_es1.c index c842007c22e..92e24a03fe5 100644 --- a/src/mesa/es/main/specials_es1.c +++ b/src/mesa/es/main/specials_es1.c @@ -153,6 +153,11 @@ make_extension_string(const GLcontext *ctx, char *str) if (ctx->Extensions.EXT_multi_draw_arrays) len += append_extension(&str, "GL_EXT_multi_draw_arrays"); +#if FEATURE_OES_EGL_image + if (ctx->Extensions.OES_EGL_image) + len += append_extension(&str, "GL_OES_EGL_image"); +#endif + return len; } diff --git a/src/mesa/es/main/specials_es2.c b/src/mesa/es/main/specials_es2.c index 10b4f25e0f0..046cda6fc18 100644 --- a/src/mesa/es/main/specials_es2.c +++ b/src/mesa/es/main/specials_es2.c @@ -124,6 +124,11 @@ make_extension_string(const GLcontext *ctx, char *str) if (ctx->Extensions.EXT_multi_draw_arrays) len += append_extension(&str, "GL_EXT_multi_draw_arrays"); +#if FEATURE_OES_EGL_image + if (ctx->Extensions.OES_EGL_image) + len += append_extension(&str, "GL_OES_EGL_image"); +#endif + return len; } diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 5fa3f3b00b0..208069c1db5 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -197,6 +197,9 @@ static const struct { { ON, "GL_SGIS_texture_lod", F(SGIS_texture_lod) }, { ON, "GL_SUN_multi_draw_arrays", F(EXT_multi_draw_arrays) }, { OFF, "GL_S3_s3tc", F(S3_s3tc) }, +#if FEATURE_OES_EGL_image + { OFF, "GL_OES_EGL_image", F(OES_EGL_image) }, +#endif #if FEATURE_OES_draw_texture { OFF, "GL_OES_draw_texture", F(OES_draw_texture) }, #endif /* FEATURE_OES_draw_texture */ diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index e3e006bb948..8d442466187 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -1020,6 +1020,12 @@ _mesa_EGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image) GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); + if (!ctx->Extensions.OES_EGL_image) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glEGLImageTargetRenderbufferStorageOES(unsupported)"); + return; + } + if (target != GL_RENDERBUFFER) { _mesa_error(ctx, GL_INVALID_ENUM, "EGLImageTargetRenderbufferStorageOES"); return; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 889c4801af2..688172a2c01 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2573,6 +2573,9 @@ struct gl_extensions GLboolean SGIS_texture_lod; GLboolean TDFX_texture_compression_FXT1; GLboolean S3_s3tc; +#if FEATURE_OES_EGL_image + GLboolean OES_EGL_image; +#endif #if FEATURE_OES_draw_texture GLboolean OES_draw_texture; #endif /* FEATURE_OES_draw_texture */ diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index d72e91b3a3b..edb80b18e98 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2457,6 +2457,12 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image) GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); + if (!ctx->Extensions.OES_EGL_image) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glEGLImageTargetTexture2DOES(unsupported)"); + return; + } + if (target != GL_TEXTURE_2D) { _mesa_error(ctx, GL_INVALID_ENUM, "glEGLImageTargetTexture2D(target=%d)", target); diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index ae5e62bd6c6..affb054866a 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -210,6 +210,9 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.NV_vertex_program1_1 = GL_TRUE; #endif +#if FEATURE_OES_EGL_image + ctx->Extensions.OES_EGL_image = GL_TRUE; +#endif #if FEATURE_OES_draw_texture ctx->Extensions.OES_draw_texture = GL_TRUE; #endif