Currently not supported by any driver implementation; this only adds the API framework.
Signed-off-by: Oliver McFadden <[email protected]> --- src/mesa/main/APIspec.xml | 7 +++---- src/mesa/main/extensions.c | 1 + src/mesa/main/glheader.h | 5 +++++ src/mesa/main/mtypes.h | 1 + src/mesa/main/varray.c | 14 +++++++++++++- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml index f23857a..71cc47e 100644 --- a/src/mesa/main/APIspec.xml +++ b/src/mesa/main/APIspec.xml @@ -2691,15 +2691,13 @@ <value name="GL_FLOAT"/> <value name="GL_FIXED"/> <value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/> - <value name="GL_UNSIGNED_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/> - <value name="GL_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/> </desc> - <desc name="type" category="OES_vertex_type_10_10_10_2"> + <desc name="type" error="GL_INVALID_VALUE" category="OES_vertex_type_10_10_10_2"> <value name="GL_UNSIGNED_INT_10_10_10_2_OES"/> <value name="GL_INT_10_10_10_2_OES"/> - <desc name="size"> + <desc name="size" error="GL_INVALID_VALUE"> <value name="3"/> <value name="4"/> </desc> @@ -4122,6 +4120,7 @@ <api name="GLES2.0"> <category name="GLES2.0"/> + <category name="OES_vertex_type_10_10_10_2"/> <category name="OES_compressed_paletted_texture"/> <category name="OES_compressed_ETC1_RGB8_texture"/> <category name="OES_depth24"/> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index a843a40..9b74f1c 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -258,6 +258,7 @@ static const struct extension extension_table[] = { { "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1, 2005 }, { "GL_OES_texture_mirrored_repeat", o(dummy_true), ES1, 2005 }, { "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2, 2005 }, + { "GL_OES_vertex_type_10_10_10_2", o(OES_vertex_type_10_10_10_2), ES2, 2008 }, /* Vendor extensions */ { "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 }, diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 3152323..30ce34d 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -143,6 +143,11 @@ typedef void *GLeglImageOES; #define GL_ETC1_RGB8_OES 0x8D64 #endif +/* GL_OES_vertex_type_10_10_10_2 */ +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 +#endif /** * Internal token to represent a GLSL shader program (a collection of diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index eefe5e7..51ebc00 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2964,6 +2964,7 @@ struct gl_extensions GLboolean EXT_timer_query; GLboolean EXT_vertex_array_bgra; GLboolean OES_standard_derivatives; + GLboolean OES_vertex_type_10_10_10_2; /* vendor extensions */ GLboolean AMD_seamless_cubemap_per_texture; GLboolean APPLE_packed_pixels; diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index efa63b0..376e62f 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -61,6 +61,8 @@ #define FIXED_GL_BIT 0x800 #define UNSIGNED_INT_2_10_10_10_REV_BIT 0x1000 #define INT_2_10_10_10_REV_BIT 0x2000 +#define UNSIGNED_INT_10_10_10_2_OES_BIT 0x8000 +#define INT_10_10_10_2_OES_BIT 0x10000 /** Convert GL datatype enum into a <type>_BIT value seen above */ @@ -97,6 +99,10 @@ type_to_bit(const struct gl_context *ctx, GLenum type) return UNSIGNED_INT_2_10_10_10_REV_BIT; case GL_INT_2_10_10_10_REV: return INT_2_10_10_10_REV_BIT; + case GL_UNSIGNED_INT_10_10_10_2_OES: + return UNSIGNED_INT_10_10_10_2_OES_BIT; + case GL_INT_10_10_10_2_OES: + return INT_10_10_10_2_OES_BIT; default: return 0; } @@ -144,6 +150,10 @@ update_array(struct gl_context *ctx, legalTypesMask &= ~(UNSIGNED_INT_2_10_10_10_REV_BIT | INT_2_10_10_10_REV_BIT); } + if (!ctx->Extensions.OES_vertex_type_10_10_10_2) { + legalTypesMask &= ~(UNSIGNED_INT_10_10_10_2_OES_BIT | + INT_10_10_10_2_OES_BIT); + } typeBit = type_to_bit(ctx, type); if (typeBit == 0x0 || (typeBit & legalTypesMask) == 0x0) { @@ -434,7 +444,9 @@ _mesa_VertexAttribPointerARB(GLuint index, GLint size, GLenum type, HALF_BIT | FLOAT_BIT | DOUBLE_BIT | FIXED_ES_BIT | FIXED_GL_BIT | UNSIGNED_INT_2_10_10_10_REV_BIT | - INT_2_10_10_10_REV_BIT); + INT_2_10_10_10_REV_BIT | + UNSIGNED_INT_10_10_10_2_OES_BIT | + INT_10_10_10_2_OES_BIT); GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); -- 1.7.8 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
