summaryrefslogtreecommitdiff
path: root/src/mesa/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/attrib.c49
-rw-r--r--src/mesa/main/context.c5
-rw-r--r--src/mesa/main/dispatch.c4
-rw-r--r--src/mesa/main/enums.c465
-rw-r--r--src/mesa/main/get.c24
-rw-r--r--src/mesa/main/get_gen.py2
-rw-r--r--src/mesa/main/getstring.c81
-rw-r--r--src/mesa/main/image.c6
-rw-r--r--src/mesa/main/mtypes.h10
-rw-r--r--src/mesa/main/texobj.c8
-rw-r--r--src/mesa/main/texparam.c188
-rw-r--r--src/mesa/main/texparam.h12
-rw-r--r--src/mesa/main/version.c130
-rw-r--r--src/mesa/main/version.h7
14 files changed, 604 insertions, 387 deletions
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index f5b77e82a9..0641b98b3b 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -835,7 +835,7 @@ pop_texture_group(GLcontext *ctx, struct texture_state *texstate)
_mesa_BindTexture(target, obj->Name);
- _mesa_TexParameterfv(target, GL_TEXTURE_BORDER_COLOR, obj->BorderColor);
+ _mesa_TexParameterfv(target, GL_TEXTURE_BORDER_COLOR, obj->BorderColor.f);
_mesa_TexParameterf(target, GL_TEXTURE_PRIORITY, obj->Priority);
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, obj->WrapS);
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, obj->WrapT);
@@ -1077,22 +1077,39 @@ _mesa_PopAttrib(void)
_math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
for (i = 0; i < ctx->Const.MaxLights; i++) {
- const struct gl_light *l = &light->Light[i];
+ const struct gl_light *l = &light->Light[i];
_mesa_set_enable(ctx, GL_LIGHT0 + i, l->Enabled);
- _mesa_light(ctx, i, GL_AMBIENT, l->Ambient);
- _mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse);
- _mesa_light(ctx, i, GL_SPECULAR, l->Specular );
- _mesa_light(ctx, i, GL_POSITION, l->EyePosition);
- _mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection);
- _mesa_light(ctx, i, GL_SPOT_EXPONENT, &l->SpotExponent);
- _mesa_light(ctx, i, GL_SPOT_CUTOFF, &l->SpotCutoff);
- _mesa_light(ctx, i, GL_CONSTANT_ATTENUATION,
- &l->ConstantAttenuation);
- _mesa_light(ctx, i, GL_LINEAR_ATTENUATION,
- &l->LinearAttenuation);
- _mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION,
- &l->QuadraticAttenuation);
- }
+ _mesa_light(ctx, i, GL_AMBIENT, l->Ambient);
+ _mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse);
+ _mesa_light(ctx, i, GL_SPECULAR, l->Specular );
+ _mesa_light(ctx, i, GL_POSITION, l->EyePosition);
+ _mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection);
+ {
+ GLfloat p[4] = { 0 };
+ p[0] = l->SpotExponent;
+ _mesa_light(ctx, i, GL_SPOT_EXPONENT, p);
+ }
+ {
+ GLfloat p[4] = { 0 };
+ p[0] = l->SpotCutoff;
+ _mesa_light(ctx, i, GL_SPOT_CUTOFF, p);
+ }
+ {
+ GLfloat p[4] = { 0 };
+ p[0] = l->ConstantAttenuation;
+ _mesa_light(ctx, i, GL_CONSTANT_ATTENUATION, p);
+ }
+ {
+ GLfloat p[4] = { 0 };
+ p[0] = l->LinearAttenuation;
+ _mesa_light(ctx, i, GL_LINEAR_ATTENUATION, p);
+ }
+ {
+ GLfloat p[4] = { 0 };
+ p[0] = l->QuadraticAttenuation;
+ _mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION, p);
+ }
+ }
/* light model */
_mesa_LightModelfv(GL_LIGHT_MODEL_AMBIENT,
light->Model.Ambient);
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 5c20ce017f..320c59068c 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1015,6 +1015,9 @@ _mesa_free_context_data( GLcontext *ctx )
if (ctx->Extensions.String)
_mesa_free((void *) ctx->Extensions.String);
+ if (ctx->VersionString)
+ _mesa_free(ctx->VersionString);
+
/* unbind the context if it's currently bound */
if (ctx == _mesa_get_current_context()) {
_mesa_make_current(NULL, NULL, NULL);
@@ -1374,6 +1377,8 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
}
if (newCtx->FirstTimeCurrent) {
+ _mesa_compute_version(newCtx);
+
check_context_limits(newCtx);
/* We can use this to help debug user's problems. Tell them to set
diff --git a/src/mesa/main/dispatch.c b/src/mesa/main/dispatch.c
index 97d213e8e1..eb0d1ff8a7 100644
--- a/src/mesa/main/dispatch.c
+++ b/src/mesa/main/dispatch.c
@@ -37,8 +37,6 @@
* \author Brian Paul <brian@precisioninsight.com>
*/
-#ifndef GLX_USE_APPLEGL
-
#include "main/glheader.h"
#include "main/compiler.h"
#include "glapi/glapi.h"
@@ -92,5 +90,3 @@
#include "glapi/glapitemp.h"
#endif /* USE_X86_ASM */
-
-#endif /* !GLX_USE_APPLEGL */
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index 73d6e6af3e..2273138d23 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -1791,7 +1791,6 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_WRAP_S\0"
"GL_TEXTURE_WRAP_T\0"
"GL_TIMEOUT_EXPIRED\0"
- "GL_TIMEOUT_IGNORED\0"
"GL_TIME_ELAPSED_EXT\0"
"GL_TRACK_MATRIX_NV\0"
"GL_TRACK_MATRIX_TRANSFORM_NV\0"
@@ -1923,7 +1922,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[1885] =
+static const enum_elt all_enums[1884] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -3680,147 +3679,146 @@ static const enum_elt all_enums[1885] =
{ 37780, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
{ 37798, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
{ 37816, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
- { 37835, 0xFFFFFFFF }, /* GL_TIMEOUT_IGNORED */
- { 37854, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 37874, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 37893, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 37922, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 37939, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 37965, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 37995, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 38027, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 38057, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 38091, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 38107, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 38138, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 38173, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 38201, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 38233, 0x00000004 }, /* GL_TRIANGLES */
- { 38246, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 38262, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 38283, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 38301, 0x00000001 }, /* GL_TRUE */
- { 38309, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 38329, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 38352, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 38372, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 38393, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 38415, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 38437, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 38457, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 38478, 0x00009118 }, /* GL_UNSIGNALED */
- { 38492, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 38509, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 38536, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 38559, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 38575, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 38602, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
- { 38623, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
- { 38648, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 38672, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 38703, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 38727, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 38755, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
- { 38778, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 38796, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 38826, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 38852, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 38882, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 38908, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 38932, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 38960, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 38988, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 39015, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 39047, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 39078, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 39092, 0x00002A20 }, /* GL_V2F */
- { 39099, 0x00002A21 }, /* GL_V3F */
- { 39106, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 39125, 0x00001F00 }, /* GL_VENDOR */
- { 39135, 0x00001F02 }, /* GL_VERSION */
- { 39146, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 39162, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
- { 39186, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 39216, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 39247, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 39282, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 39306, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 39327, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 39350, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 39371, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 39398, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 39426, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 39454, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 39482, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 39510, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 39538, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 39566, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 39593, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 39620, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 39647, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 39674, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 39701, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 39728, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 39755, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 39782, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 39809, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 39847, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 39889, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 39920, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 39955, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 39989, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 40027, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 40058, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 40093, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 40121, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 40153, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 40183, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 40217, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 40245, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 40277, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 40297, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 40319, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 40348, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 40369, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 40398, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 40431, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 40463, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 40490, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 40521, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 40551, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 40568, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 40589, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 40616, 0x00000BA2 }, /* GL_VIEWPORT */
- { 40628, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 40644, 0x0000911D }, /* GL_WAIT_FAILED */
- { 40659, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 40679, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 40710, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 40745, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 40773, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 40798, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 40825, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 40850, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 40874, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 40893, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 40907, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 40925, 0x00001506 }, /* GL_XOR */
- { 40932, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 40951, 0x00008757 }, /* GL_YCBCR_MESA */
- { 40965, 0x00000000 }, /* GL_ZERO */
- { 40973, 0x00000D16 }, /* GL_ZOOM_X */
- { 40983, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 37835, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
+ { 37855, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
+ { 37874, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ { 37903, 0x00001000 }, /* GL_TRANSFORM_BIT */
+ { 37920, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
+ { 37946, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
+ { 37976, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ { 38008, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ { 38038, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
+ { 38072, 0x0000862C }, /* GL_TRANSPOSE_NV */
+ { 38088, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ { 38119, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
+ { 38154, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ { 38182, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
+ { 38214, 0x00000004 }, /* GL_TRIANGLES */
+ { 38227, 0x00000006 }, /* GL_TRIANGLE_FAN */
+ { 38243, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
+ { 38264, 0x00000005 }, /* GL_TRIANGLE_STRIP */
+ { 38282, 0x00000001 }, /* GL_TRUE */
+ { 38290, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
+ { 38310, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
+ { 38333, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
+ { 38353, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
+ { 38374, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
+ { 38396, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
+ { 38418, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
+ { 38438, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
+ { 38459, 0x00009118 }, /* GL_UNSIGNALED */
+ { 38473, 0x00001401 }, /* GL_UNSIGNED_BYTE */
+ { 38490, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ { 38517, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
+ { 38540, 0x00001405 }, /* GL_UNSIGNED_INT */
+ { 38556, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
+ { 38583, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
+ { 38604, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
+ { 38629, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
+ { 38653, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ { 38684, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
+ { 38708, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ { 38736, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
+ { 38759, 0x00001403 }, /* GL_UNSIGNED_SHORT */
+ { 38777, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ { 38807, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ { 38833, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ { 38863, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ { 38889, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
+ { 38913, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ { 38941, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ { 38969, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
+ { 38996, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ { 39028, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
+ { 39059, 0x00008CA2 }, /* GL_UPPER_LEFT */
+ { 39073, 0x00002A20 }, /* GL_V2F */
+ { 39080, 0x00002A21 }, /* GL_V3F */
+ { 39087, 0x00008B83 }, /* GL_VALIDATE_STATUS */
+ { 39106, 0x00001F00 }, /* GL_VENDOR */
+ { 39116, 0x00001F02 }, /* GL_VERSION */
+ { 39127, 0x00008074 }, /* GL_VERTEX_ARRAY */
+ { 39143, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
+ { 39167, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ { 39197, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ { 39228, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
+ { 39263, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
+ { 39287, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
+ { 39308, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
+ { 39331, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
+ { 39352, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ { 39379, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ { 39407, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ { 39435, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ { 39463, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ { 39491, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ { 39519, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ { 39547, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ { 39574, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ { 39601, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ { 39628, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ { 39655, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ { 39682, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ { 39709, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ { 39736, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ { 39763, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ { 39790, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ { 39828, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
+ { 39870, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ { 39901, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
+ { 39936, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ { 39970, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
+ { 40008, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ { 40039, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
+ { 40074, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ { 40102, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
+ { 40134, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ { 40164, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
+ { 40198, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ { 40226, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
+ { 40258, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
+ { 40278, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
+ { 40300, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ { 40329, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
+ { 40350, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ { 40379, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
+ { 40412, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
+ { 40444, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ { 40471, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
+ { 40502, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
+ { 40532, 0x00008B31 }, /* GL_VERTEX_SHADER */
+ { 40549, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
+ { 40570, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
+ { 40597, 0x00000BA2 }, /* GL_VIEWPORT */
+ { 40609, 0x00000800 }, /* GL_VIEWPORT_BIT */
+ { 40625, 0x0000911D }, /* GL_WAIT_FAILED */
+ { 40640, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
+ { 40660, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ { 40691, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
+ { 40726, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ { 40754, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ { 40779, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ { 40806, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ { 40831, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
+ { 40855, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
+ { 40874, 0x000088B9 }, /* GL_WRITE_ONLY */
+ { 40888, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
+ { 40906, 0x00001506 }, /* GL_XOR */
+ { 40913, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
+ { 40932, 0x00008757 }, /* GL_YCBCR_MESA */
+ { 40946, 0x00000000 }, /* GL_ZERO */
+ { 40954, 0x00000D16 }, /* GL_ZOOM_X */
+ { 40964, 0x00000D17 }, /* GL_ZOOM_Y */
};
-static const unsigned reduced_enums[1351] =
+static const unsigned reduced_enums[1350] =
{
479, /* GL_FALSE */
701, /* GL_LINES */
703, /* GL_LINE_LOOP */
710, /* GL_LINE_STRIP */
- 1770, /* GL_TRIANGLES */
- 1773, /* GL_TRIANGLE_STRIP */
- 1771, /* GL_TRIANGLE_FAN */
+ 1769, /* GL_TRIANGLES */
+ 1772, /* GL_TRIANGLE_STRIP */
+ 1770, /* GL_TRIANGLE_FAN */
1285, /* GL_QUADS */
1289, /* GL_QUAD_STRIP */
1171, /* GL_POLYGON */
@@ -3954,7 +3952,7 @@ static const unsigned reduced_enums[1351] =
1537, /* GL_STENCIL_WRITEMASK */
853, /* GL_MATRIX_MODE */
1025, /* GL_NORMALIZE */
- 1865, /* GL_VIEWPORT */
+ 1864, /* GL_VIEWPORT */
999, /* GL_MODELVIEW_STACK_DEPTH */
1263, /* GL_PROJECTION_STACK_DEPTH */
1744, /* GL_TEXTURE_STACK_DEPTH */
@@ -4016,12 +4014,12 @@ static const unsigned reduced_enums[1351] =
1117, /* GL_PIXEL_MAP_G_TO_G_SIZE */
1115, /* GL_PIXEL_MAP_B_TO_B_SIZE */
1113, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 1782, /* GL_UNPACK_SWAP_BYTES */
- 1777, /* GL_UNPACK_LSB_FIRST */
- 1778, /* GL_UNPACK_ROW_LENGTH */
- 1781, /* GL_UNPACK_SKIP_ROWS */
- 1780, /* GL_UNPACK_SKIP_PIXELS */
- 1775, /* GL_UNPACK_ALIGNMENT */
+ 1781, /* GL_UNPACK_SWAP_BYTES */
+ 1776, /* GL_UNPACK_LSB_FIRST */
+ 1777, /* GL_UNPACK_ROW_LENGTH */
+ 1780, /* GL_UNPACK_SKIP_ROWS */
+ 1779, /* GL_UNPACK_SKIP_PIXELS */
+ 1774, /* GL_UNPACK_ALIGNMENT */
1099, /* GL_PACK_SWAP_BYTES */
1094, /* GL_PACK_LSB_FIRST */
1095, /* GL_PACK_ROW_LENGTH */
@@ -4034,8 +4032,8 @@ static const unsigned reduced_enums[1351] =
641, /* GL_INDEX_OFFSET */
1317, /* GL_RED_SCALE */
1315, /* GL_RED_BIAS */
- 1883, /* GL_ZOOM_X */
- 1884, /* GL_ZOOM_Y */
+ 1882, /* GL_ZOOM_X */
+ 1883, /* GL_ZOOM_Y */
603, /* GL_GREEN_SCALE */
601, /* GL_GREEN_BIAS */
93, /* GL_BLUE_SCALE */
@@ -4120,11 +4118,11 @@ static const unsigned reduced_enums[1351] =
244, /* GL_COMPILE */
245, /* GL_COMPILE_AND_EXECUTE */
120, /* GL_BYTE */
- 1784, /* GL_UNSIGNED_BYTE */
+ 1783, /* GL_UNSIGNED_BYTE */
1441, /* GL_SHORT */
- 1796, /* GL_UNSIGNED_SHORT */
+ 1795, /* GL_UNSIGNED_SHORT */
645, /* GL_INT */
- 1787, /* GL_UNSIGNED_INT */
+ 1786, /* GL_UNSIGNED_INT */
489, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
@@ -4136,7 +4134,7 @@ static const unsigned reduced_enums[1351] =
299, /* GL_COPY */
51, /* GL_AND_INVERTED */
1023, /* GL_NOOP */
- 1879, /* GL_XOR */
+ 1878, /* GL_XOR */
1086, /* GL_OR */
1024, /* GL_NOR */
470, /* GL_EQUIV */
@@ -4180,9 +4178,9 @@ static const unsigned reduced_enums[1351] =
1343, /* GL_REPLACE */
627, /* GL_INCR */
342, /* GL_DECR */
- 1811, /* GL_VENDOR */
+ 1810, /* GL_VENDOR */
1340, /* GL_RENDERER */
- 1812, /* GL_VERSION */
+ 1811, /* GL_VERSION */
474, /* GL_EXTENSIONS */
1391, /* GL_S */
1557, /* GL_T */
@@ -4215,8 +4213,8 @@ static const unsigned reduced_enums[1351] =
1178, /* GL_POLYGON_OFFSET_POINT */
1177, /* GL_POLYGON_OFFSET_LINE */
1301, /* GL_R3_G3_B2 */
- 1808, /* GL_V2F */
- 1809, /* GL_V3F */
+ 1807, /* GL_V2F */
+ 1808, /* GL_V3F */
123, /* GL_C4UB_V2F */
124, /* GL_C4UB_V3F */
121, /* GL_C3F_V3F */
@@ -4289,11 +4287,11 @@ static const unsigned reduced_enums[1351] =
951, /* GL_MINMAX_FORMAT */
953, /* GL_MINMAX_SINK */
1565, /* GL_TABLE_TOO_LARGE_EXT */
- 1786, /* GL_UNSIGNED_BYTE_3_3_2 */
- 1798, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 1800, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 1793, /* GL_UNSIGNED_INT_8_8_8_8 */
- 1788, /* GL_UNSIGNED_INT_10_10_10_2 */
+ 1785, /* GL_UNSIGNED_BYTE_3_3_2 */
+ 1797, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ 1799, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ 1792, /* GL_UNSIGNED_INT_8_8_8_8 */
+ 1787, /* GL_UNSIGNED_INT_10_10_10_2 */
1176, /* GL_POLYGON_OFFSET_FILL */
1175, /* GL_POLYGON_OFFSET_FACTOR */
1174, /* GL_POLYGON_OFFSET_BIAS */
@@ -4348,22 +4346,22 @@ static const unsigned reduced_enums[1351] =
1643, /* GL_TEXTURE_BINDING_3D */
1096, /* GL_PACK_SKIP_IMAGES */
1092, /* GL_PACK_IMAGE_HEIGHT */
- 1779, /* GL_UNPACK_SKIP_IMAGES */
- 1776, /* GL_UNPACK_IMAGE_HEIGHT */
+ 1778, /* GL_UNPACK_SKIP_IMAGES */
+ 1775, /* GL_UNPACK_IMAGE_HEIGHT */
1635, /* GL_TEXTURE_3D */
1277, /* GL_PROXY_TEXTURE_3D */
1698, /* GL_TEXTURE_DEPTH */
1751, /* GL_TEXTURE_WRAP_R */
856, /* GL_MAX_3D_TEXTURE_SIZE */
- 1813, /* GL_VERTEX_ARRAY */
+ 1812, /* GL_VERTEX_ARRAY */
1026, /* GL_NORMAL_ARRAY */
148, /* GL_COLOR_ARRAY */
631, /* GL_INDEX_ARRAY */
1676, /* GL_TEXTURE_COORD_ARRAY */
459, /* GL_EDGE_FLAG_ARRAY */
- 1819, /* GL_VERTEX_ARRAY_SIZE */
- 1821, /* GL_VERTEX_ARRAY_TYPE */
- 1820, /* GL_VERTEX_ARRAY_STRIDE */
+ 1818, /* GL_VERTEX_ARRAY_SIZE */
+ 1820, /* GL_VERTEX_ARRAY_TYPE */
+ 1819, /* GL_VERTEX_ARRAY_STRIDE */
1031, /* GL_NORMAL_ARRAY_TYPE */
1030, /* GL_NORMAL_ARRAY_STRIDE */
152, /* GL_COLOR_ARRAY_SIZE */
@@ -4375,7 +4373,7 @@ static const unsigned reduced_enums[1351] =
1682, /* GL_TEXTURE_COORD_ARRAY_TYPE */
1681, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
463, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- 1818, /* GL_VERTEX_ARRAY_POINTER */
+ 1817, /* GL_VERTEX_ARRAY_POINTER */
1029, /* GL_NORMAL_ARRAY_POINTER */
151, /* GL_COLOR_ARRAY_POINTER */
634, /* GL_INDEX_ARRAY_POINTER */
@@ -4475,7 +4473,7 @@ static const unsigned reduced_enums[1351] =
306, /* GL_CULL_VERTEX_EXT */
308, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
307, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- 1876, /* GL_WRAP_BORDER_SUN */
+ 1875, /* GL_WRAP_BORDER_SUN */
1660, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
690, /* GL_LIGHT_MODEL_COLOR_CONTROL */
1444, /* GL_SINGLE_COLOR */
@@ -4493,13 +4491,13 @@ static const unsigned reduced_enums[1351] =
580, /* GL_FRAMEBUFFER_UNDEFINED */
373, /* GL_DEPTH_STENCIL_ATTACHMENT */
630, /* GL_INDEX */
- 1785, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 1801, /* GL_UNSIGNED_SHORT_5_6_5 */
- 1802, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 1799, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 1797, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 1794, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 1792, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ 1784, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ 1800, /* GL_UNSIGNED_SHORT_5_6_5 */
+ 1801, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ 1798, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ 1796, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ 1793, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ 1791, /* GL_UNSIGNED_INT_2_10_10_10_REV */
1730, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
1731, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
1729, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
@@ -4570,10 +4568,10 @@ static const unsigned reduced_enums[1351] =
18, /* GL_ACTIVE_TEXTURE */
133, /* GL_CLIENT_ACTIVE_TEXTURE */
934, /* GL_MAX_TEXTURE_UNITS */
- 1763, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 1766, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 1768, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 1760, /* GL_TRANSPOSE_COLOR_MATRIX */
+ 1762, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ 1765, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ 1767, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ 1759, /* GL_TRANSPOSE_COLOR_MATRIX */
1549, /* GL_SUBTRACT */
919, /* GL_MAX_RENDERBUFFER_SIZE */
247, /* GL_COMPRESSED_ALPHA */
@@ -4588,7 +4586,7 @@ static const unsigned reduced_enums[1351] =
1281, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
917, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
372, /* GL_DEPTH_STENCIL */
- 1789, /* GL_UNSIGNED_INT_24_8 */
+ 1788, /* GL_UNSIGNED_INT_24_8 */
930, /* GL_MAX_TEXTURE_LOD_BIAS */
1728, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
931, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
@@ -4641,32 +4639,32 @@ static const unsigned reduced_enums[1351] =
1072, /* GL_OPERAND1_ALPHA */
1078, /* GL_OPERAND2_ALPHA */
1084, /* GL_OPERAND3_ALPHA_NV */
- 1814, /* GL_VERTEX_ARRAY_BINDING */
+ 1813, /* GL_VERTEX_ARRAY_BINDING */
1737, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
1738, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- 1880, /* GL_YCBCR_422_APPLE */
- 1803, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 1805, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ 1879, /* GL_YCBCR_422_APPLE */
+ 1802, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ 1804, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
1747, /* GL_TEXTURE_STORAGE_HINT_APPLE */
1540, /* GL_STORAGE_PRIVATE_APPLE */
1539, /* GL_STORAGE_CACHED_APPLE */
1541, /* GL_STORAGE_SHARED_APPLE */
1446, /* GL_SLICE_ACCUM_SUN */
1288, /* GL_QUAD_MESH_SUN */
- 1772, /* GL_TRIANGLE_MESH_SUN */
- 1853, /* GL_VERTEX_PROGRAM_ARB */
- 1864, /* GL_VERTEX_STATE_PROGRAM_NV */
- 1840, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 1846, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 1848, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 1850, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 1771, /* GL_TRIANGLE_MESH_SUN */
+ 1852, /* GL_VERTEX_PROGRAM_ARB */
+ 1863, /* GL_VERTEX_STATE_PROGRAM_NV */
+ 1839, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ 1845, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ 1847, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ 1849, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
334, /* GL_CURRENT_VERTEX_ATTRIB */
1240, /* GL_PROGRAM_LENGTH_ARB */
1254, /* GL_PROGRAM_STRING_ARB */
998, /* GL_MODELVIEW_PROJECTION_NV */
623, /* GL_IDENTITY_NV */
670, /* GL_INVERSE_NV */
- 1765, /* GL_TRANSPOSE_NV */
+ 1764, /* GL_TRANSPOSE_NV */
671, /* GL_INVERSE_TRANSPOSE_NV */
903, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
902, /* GL_MAX_PROGRAM_MATRICES_ARB */
@@ -4680,33 +4678,33 @@ static const unsigned reduced_enums[1351] =
845, /* GL_MATRIX7_NV */
318, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
315, /* GL_CURRENT_MATRIX_ARB */
- 1856, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- 1859, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ 1855, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ 1858, /* GL_VERTEX_PROGRAM_TWO_SIDE */
1252, /* GL_PROGRAM_PARAMETER_NV */
- 1844, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ 1843, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
1256, /* GL_PROGRAM_TARGET_NV */
1253, /* GL_PROGRAM_RESIDENT_NV */
- 1757, /* GL_TRACK_MATRIX_NV */
- 1758, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 1854, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ 1756, /* GL_TRACK_MATRIX_NV */
+ 1757, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ 1853, /* GL_VERTEX_PROGRAM_BINDING_NV */
1234, /* GL_PROGRAM_ERROR_POSITION_ARB */
356, /* GL_DEPTH_CLAMP */
- 1822, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 1829, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 1830, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 1831, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 1832, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 1833, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 1834, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 1835, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 1836, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 1837, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 1823, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 1824, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 1825, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 1826, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 1827, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 1828, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ 1821, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ 1828, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ 1829, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ 1830, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ 1831, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ 1832, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ 1833, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ 1834, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ 1835, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ 1836, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ 1822, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ 1823, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ 1824, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ 1825, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ 1826, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ 1827, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
757, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
764, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
765, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
@@ -4745,14 +4743,14 @@ static const unsigned reduced_enums[1351] =
269, /* GL_COMPRESSED_TEXTURE_FORMATS */
946, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 1875, /* GL_WEIGHT_SUM_UNITY_ARB */
- 1852, /* GL_VERTEX_BLEND_ARB */
+ 1874, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 1851, /* GL_VERTEX_BLEND_ARB */
336, /* GL_CURRENT_WEIGHT_ARB */
- 1874, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 1873, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 1872, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 1871, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 1868, /* GL_WEIGHT_ARRAY_ARB */
+ 1873, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ 1872, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ 1871, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ 1870, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ 1867, /* GL_WEIGHT_ARRAY_ARB */
386, /* GL_DOT3_RGB */
387, /* GL_DOT3_RGBA */
263, /* GL_COMPRESSED_RGB_FXT1_3DFX */
@@ -4797,7 +4795,7 @@ static const unsigned reduced_enums[1351] =
1001, /* GL_MODULATE_ADD_ATI */
1002, /* GL_MODULATE_SIGNED_ADD_ATI */
1003, /* GL_MODULATE_SUBTRACT_ATI */
- 1881, /* GL_YCBCR_MESA */
+ 1880, /* GL_YCBCR_MESA */
1093, /* GL_PACK_INVERT_MESA */
339, /* GL_DEBUG_OBJECT_MESA */
340, /* GL_DEBUG_PRINT_MESA */
@@ -4870,7 +4868,7 @@ static const unsigned reduced_enums[1351] =
1295, /* GL_QUERY_RESULT */
1297, /* GL_QUERY_RESULT_AVAILABLE */
940, /* GL_MAX_VERTEX_ATTRIBS */
- 1842, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 1841, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
377, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
376, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
926, /* GL_MAX_TEXTURE_COORDS */
@@ -4885,7 +4883,7 @@ static const unsigned reduced_enums[1351] =
464, /* GL_ELEMENT_ARRAY_BUFFER */
54, /* GL_ARRAY_BUFFER_BINDING */
465, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- 1816, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 1815, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
1027, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
149, /* GL_COLOR_ARRAY_BUFFER_BINDING */
632, /* GL_INDEX_ARRAY_BUFFER_BINDING */
@@ -4893,8 +4891,8 @@ static const unsigned reduced_enums[1351] =
460, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
1420, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
514, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 1869, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 1838, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ 1868, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ 1837, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
1239, /* GL_PROGRAM_INSTRUCTIONS_ARB */
898, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
1245, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
@@ -4918,14 +4916,14 @@ static const unsigned reduced_enums[1351] =
899, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
895, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
1260, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 1762, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ 1761, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
1308, /* GL_READ_ONLY */
- 1877, /* GL_WRITE_ONLY */
+ 1876, /* GL_WRITE_ONLY */
1310, /* GL_READ_WRITE */
102, /* GL_BUFFER_ACCESS */
105, /* GL_BUFFER_MAPPED */
107, /* GL_BUFFER_MAP_POINTER */
- 1756, /* GL_TIME_ELAPSED_EXT */
+ 1755, /* GL_TIME_ELAPSED_EXT */
808, /* GL_MATRIX0_ARB */
820, /* GL_MATRIX1_ARB */
832, /* GL_MATRIX2_ARB */
@@ -4986,7 +4984,7 @@ static const unsigned reduced_enums[1351] =
109, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
104, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
537, /* GL_FRAGMENT_SHADER */
- 1862, /* GL_VERTEX_SHADER */
+ 1861, /* GL_VERTEX_SHADER */
1250, /* GL_PROGRAM_OBJECT_ARB */
1433, /* GL_SHADER_OBJECT_ARB */
882, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
@@ -5024,7 +5022,7 @@ static const unsigned reduced_enums[1351] =
345, /* GL_DELETE_STATUS */
246, /* GL_COMPILE_STATUS */
715, /* GL_LINK_STATUS */
- 1810, /* GL_VALIDATE_STATUS */
+ 1809, /* GL_VALIDATE_STATUS */
644, /* GL_INFO_LOG_LENGTH */
56, /* GL_ATTACHED_SHADERS */
20, /* GL_ACTIVE_UNIFORMS */
@@ -5047,7 +5045,7 @@ static const unsigned reduced_enums[1351] =
1106, /* GL_PALETTE8_RGB5_A1_OES */
626, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
625, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- 1795, /* GL_UNSIGNED_NORMALIZED */
+ 1794, /* GL_UNSIGNED_NORMALIZED */
1632, /* GL_TEXTURE_1D_ARRAY_EXT */
1272, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
1634, /* GL_TEXTURE_2D_ARRAY_EXT */
@@ -5068,7 +5066,7 @@ static const unsigned reduced_enums[1351] =
266, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
1167, /* GL_POINT_SPRITE_COORD_ORIGIN */
723, /* GL_LOWER_LEFT */
- 1807, /* GL_UPPER_LEFT */
+ 1806, /* GL_UPPER_LEFT */
1513, /* GL_STENCIL_BACK_REF */
1514, /* GL_STENCIL_BACK_VALUE_MASK */
1515, /* GL_STENCIL_BACK_WRITEMASK */
@@ -5150,12 +5148,12 @@ static const unsigned reduced_enums[1351] =
1553, /* GL_SYNC_FLAGS */
1552, /* GL_SYNC_FENCE */
1555, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- 1783, /* GL_UNSIGNALED */
+ 1782, /* GL_UNSIGNALED */
1442, /* GL_SIGNALED */
46, /* GL_ALREADY_SIGNALED */
1754, /* GL_TIMEOUT_EXPIRED */
270, /* GL_CONDITION_SATISFIED */
- 1867, /* GL_WAIT_FAILED */
+ 1866, /* GL_WAIT_FAILED */
471, /* GL_EVAL_BIT */
1302, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
717, /* GL_LIST_BIT */
@@ -5164,7 +5162,6 @@ static const unsigned reduced_enums[1351] =
29, /* GL_ALL_ATTRIB_BITS */
1008, /* GL_MULTISAMPLE_BIT */
30, /* GL_ALL_CLIENT_ATTRIB_BITS */
- 1755, /* GL_TIMEOUT_IGNORED */
};
typedef int (*cfunc)(const void *, const void *);
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 618b5411cc..22cf75f79d 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1902,6 +1902,12 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
case GL_NUM_EXTENSIONS:
params[0] = INT_TO_BOOLEAN(_mesa_get_extension_count(ctx));
break;
+ case GL_MAJOR_VERSION:
+ params[0] = INT_TO_BOOLEAN(ctx->VersionMajor);
+ break;
+ case GL_MINOR_VERSION:
+ params[0] = INT_TO_BOOLEAN(ctx->VersionMinor);
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname);
}
@@ -3740,6 +3746,12 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
case GL_NUM_EXTENSIONS:
params[0] = (GLfloat)(_mesa_get_extension_count(ctx));
break;
+ case GL_MAJOR_VERSION:
+ params[0] = (GLfloat)(ctx->VersionMajor);
+ break;
+ case GL_MINOR_VERSION:
+ params[0] = (GLfloat)(ctx->VersionMinor);
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(pname=0x%x)", pname);
}
@@ -5578,6 +5590,12 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
case GL_NUM_EXTENSIONS:
params[0] = _mesa_get_extension_count(ctx);
break;
+ case GL_MAJOR_VERSION:
+ params[0] = ctx->VersionMajor;
+ break;
+ case GL_MINOR_VERSION:
+ params[0] = ctx->VersionMinor;
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname);
}
@@ -7417,6 +7435,12 @@ _mesa_GetInteger64v( GLenum pname, GLint64 *params )
case GL_NUM_EXTENSIONS:
params[0] = (GLint64)(_mesa_get_extension_count(ctx));
break;
+ case GL_MAJOR_VERSION:
+ params[0] = (GLint64)(ctx->VersionMajor);
+ break;
+ case GL_MINOR_VERSION:
+ params[0] = (GLint64)(ctx->VersionMinor);
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetInteger64v(pname=0x%x)", pname);
}
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index 7540661187..b0beb59207 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -1033,6 +1033,8 @@ StateVars = [
# GL3
( "GL_NUM_EXTENSIONS", GLint, ["_mesa_get_extension_count(ctx)"], "", None ),
+ ( "GL_MAJOR_VERSION", GLint, ["ctx->VersionMajor"], "", None ),
+ ( "GL_MINOR_VERSION", GLint, ["ctx->VersionMinor"], "", None )
]
diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
index cac5eef1cb..e76a790d0a 100644
--- a/src/mesa/main/getstring.c
+++ b/src/mesa/main/getstring.c
@@ -33,85 +33,6 @@
/**
- * Examine enabled GL extensions to determine GL version.
- * \return version string
- */
-static const char *
-compute_version(const GLcontext *ctx)
-{
- static const char *version_1_2 = "1.2 Mesa " MESA_VERSION_STRING;
- static const char *version_1_3 = "1.3 Mesa " MESA_VERSION_STRING;
- static const char *version_1_4 = "1.4 Mesa " MESA_VERSION_STRING;
- static const char *version_1_5 = "1.5 Mesa " MESA_VERSION_STRING;
- static const char *version_2_0 = "2.0 Mesa " MESA_VERSION_STRING;
- static const char *version_2_1 = "2.1 Mesa " MESA_VERSION_STRING;
-
- const GLboolean ver_1_3 = (ctx->Extensions.ARB_multisample &&
- ctx->Extensions.ARB_multitexture &&
- ctx->Extensions.ARB_texture_border_clamp &&
- ctx->Extensions.ARB_texture_compression &&
- ctx->Extensions.ARB_texture_cube_map &&
- ctx->Extensions.EXT_texture_env_add &&
- ctx->Extensions.ARB_texture_env_combine &&
- ctx->Extensions.ARB_texture_env_dot3);
- const GLboolean ver_1_4 = (ver_1_3 &&
- ctx->Extensions.ARB_depth_texture &&
- ctx->Extensions.ARB_shadow &&
- ctx->Extensions.ARB_texture_env_crossbar &&
- ctx->Extensions.ARB_texture_mirrored_repeat &&
- ctx->Extensions.ARB_window_pos &&
- ctx->Extensions.EXT_blend_color &&
- ctx->Extensions.EXT_blend_func_separate &&
- ctx->Extensions.EXT_blend_minmax &&
- ctx->Extensions.EXT_blend_subtract &&
- ctx->Extensions.EXT_fog_coord &&
- ctx->Extensions.EXT_multi_draw_arrays &&
- ctx->Extensions.EXT_point_parameters &&
- ctx->Extensions.EXT_secondary_color &&
- ctx->Extensions.EXT_stencil_wrap &&
- ctx->Extensions.EXT_texture_lod_bias &&
- ctx->Extensions.SGIS_generate_mipmap);
- const GLboolean ver_1_5 = (ver_1_4 &&
- ctx->Extensions.ARB_occlusion_query &&
- ctx->Extensions.ARB_vertex_buffer_object &&
- ctx->Extensions.EXT_shadow_funcs);
- const GLboolean ver_2_0 = (ver_1_5 &&
- ctx->Extensions.ARB_draw_buffers &&
- ctx->Extensions.ARB_point_sprite &&
- ctx->Extensions.ARB_shader_objects &&
- ctx->Extensions.ARB_vertex_shader &&
- ctx->Extensions.ARB_fragment_shader &&
- ctx->Extensions.ARB_texture_non_power_of_two &&
- ctx->Extensions.EXT_blend_equation_separate &&
-
- /* Technically, 2.0 requires the functionality
- * of the EXT version. Enable 2.0 if either
- * extension is available, and assume that a
- * driver that only exposes the ATI extension
- * will fallback to software when necessary.
- */
- (ctx->Extensions.EXT_stencil_two_side
- || ctx->Extensions.ATI_separate_stencil));
- const GLboolean ver_2_1 = (ver_2_0 &&
- ctx->Extensions.ARB_shading_language_120 &&
- ctx->Extensions.EXT_pixel_buffer_object &&
- ctx->Extensions.EXT_texture_sRGB);
- if (ver_2_1)
- return version_2_1;
- if (ver_2_0)
- return version_2_0;
- if (ver_1_5)
- return version_1_5;
- if (ver_1_4)
- return version_1_4;
- if (ver_1_3)
- return version_1_3;
- return version_1_2;
-}
-
-
-
-/**
* Query string-valued state. The return value should _not_ be freed by
* the caller.
*
@@ -149,7 +70,7 @@ _mesa_GetString( GLenum name )
case GL_RENDERER:
return (const GLubyte *) renderer;
case GL_VERSION:
- return (const GLubyte *) compute_version(ctx);
+ return (const GLubyte *) ctx->VersionString;
case GL_EXTENSIONS:
if (!ctx->Extensions.String)
ctx->Extensions.String = _mesa_make_extension_string(ctx);
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
index 139e56a96b..fc278bb8af 100644
--- a/src/mesa/main/image.c
+++ b/src/mesa/main/image.c
@@ -33,6 +33,7 @@
#include "glheader.h"
#include "colormac.h"
#include "context.h"
+#include "enums.h"
#include "image.h"
#include "imports.h"
#include "macros.h"
@@ -3228,6 +3229,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
srcFormat == GL_RGBA ||
srcFormat == GL_BGRA ||
srcFormat == GL_ABGR_EXT ||
+ srcFormat == GL_DU8DV8_ATI ||
srcFormat == GL_DUDV_ATI);
ASSERT(srcType == GL_UNSIGNED_BYTE ||
@@ -3343,6 +3345,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
aComp = 0;
stride = 4;
break;
+ case GL_DU8DV8_ATI:
case GL_DUDV_ATI:
redIndex = 0;
greenIndex = 1;
@@ -3351,7 +3354,8 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
stride = 2;
break;
default:
- _mesa_problem(NULL, "bad srcFormat in extract float data");
+ _mesa_problem(NULL, "bad srcFormat %s in extract float data",
+ _mesa_lookup_enum_by_nr(srcFormat));
return;
}
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index a7f70a1875..5227565f87 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1217,7 +1217,11 @@ struct gl_texture_object
GLuint Name; /**< the user-visible texture object ID */
GLenum Target; /**< GL_TEXTURE_1D, GL_TEXTURE_2D, etc. */
GLfloat Priority; /**< in [0,1] */
- GLfloat BorderColor[4]; /**< unclamped */
+ union {
+ GLfloat f[4];
+ GLuint ui[4];
+ GLint i[4];
+ } BorderColor; /**< Interpreted according to texture format */
GLenum WrapS; /**< S-axis texture image wrap mode */
GLenum WrapT; /**< T-axis texture image wrap mode */
GLenum WrapR; /**< R-axis texture image wrap mode */
@@ -2860,6 +2864,10 @@ struct __GLcontextRec
/** Extension information */
struct gl_extensions Extensions;
+ /** Version info */
+ GLuint VersionMajor, VersionMinor;
+ char *VersionString;
+
/** \name State attribute stack (for glPush/PopAttrib) */
/*@{*/
GLuint AttribStackDepth;
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 09fe7b85ba..7f0a246025 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -228,10 +228,10 @@ _mesa_copy_texture_object( struct gl_texture_object *dest,
dest->Target = src->Target;
dest->Name = src->Name;
dest->Priority = src->Priority;
- dest->BorderColor[0] = src->BorderColor[0];
- dest->BorderColor[1] = src->BorderColor[1];
- dest->BorderColor[2] = src->BorderColor[2];
- dest->BorderColor[3] = src->BorderColor[3];
+ dest->BorderColor.f[0] = src->BorderColor.f[0];
+ dest->BorderColor.f[1] = src->BorderColor.f[1];
+ dest->BorderColor.f[2] = src->BorderColor.f[2];
+ dest->BorderColor.f[3] = src->BorderColor.f[3];
dest->WrapS = src->WrapS;
dest->WrapT = src->WrapT;
dest->WrapR = src->WrapR;
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index db4c7a5eda..d917e21e74 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -78,17 +78,19 @@ validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap)
/**
* Get current texture object for given target.
- * Return NULL if any error.
+ * Return NULL if any error (and record the error).
* Note that this is different from _mesa_select_tex_object() in that proxy
* targets are not accepted.
+ * Only the glGetTexLevelParameter() functions accept proxy targets.
*/
static struct gl_texture_object *
-get_texobj(GLcontext *ctx, GLenum target)
+get_texobj(GLcontext *ctx, GLenum target, GLboolean get)
{
struct gl_texture_unit *texUnit;
if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureImageUnits) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTexParameter(current unit)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "gl%sTexParameter(current unit)", get ? "Get" : "");
return NULL;
}
@@ -125,7 +127,8 @@ get_texobj(GLcontext *ctx, GLenum target)
;
}
- _mesa_error(ctx, GL_INVALID_ENUM, "glTexParameter(target)");
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "gl%sTexParameter(target)", get ? "Get" : "");
return NULL;
}
@@ -508,10 +511,10 @@ set_tex_parameterf(GLcontext *ctx,
case GL_TEXTURE_BORDER_COLOR:
flush(ctx, texObj);
- texObj->BorderColor[RCOMP] = params[0];
- texObj->BorderColor[GCOMP] = params[1];
- texObj->BorderColor[BCOMP] = params[2];
- texObj->BorderColor[ACOMP] = params[3];
+ texObj->BorderColor.f[RCOMP] = params[0];
+ texObj->BorderColor.f[GCOMP] = params[1];
+ texObj->BorderColor.f[BCOMP] = params[2];
+ texObj->BorderColor.f[ACOMP] = params[3];
return GL_TRUE;
default:
@@ -529,7 +532,7 @@ _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param)
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- texObj = get_texobj(ctx, target);
+ texObj = get_texobj(ctx, target, GL_FALSE);
if (!texObj)
return;
@@ -577,7 +580,7 @@ _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- texObj = get_texobj(ctx, target);
+ texObj = get_texobj(ctx, target, GL_FALSE);
if (!texObj)
return;
@@ -635,7 +638,7 @@ _mesa_TexParameteri(GLenum target, GLenum pname, GLint param)
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- texObj = get_texobj(ctx, target);
+ texObj = get_texobj(ctx, target, GL_FALSE);
if (!texObj)
return;
@@ -679,7 +682,7 @@ _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint *params)
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- texObj = get_texobj(ctx, target);
+ texObj = get_texobj(ctx, target, GL_FALSE);
if (!texObj)
return;
@@ -728,6 +731,68 @@ _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint *params)
}
+/**
+ * Set tex parameter to integer value(s). Primarily intended to set
+ * integer-valued texture border color (for integer-valued textures).
+ * New in GL 3.0.
+ */
+void GLAPIENTRY
+_mesa_TexParameterIiv(GLenum target, GLenum pname, const GLint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ texObj = get_texobj(ctx, target, GL_FALSE);
+ if (!texObj)
+ return;
+
+ switch (pname) {
+ case GL_TEXTURE_BORDER_COLOR:
+ FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+ /* set the integer-valued border color */
+ COPY_4V(texObj->BorderColor.i, params);
+ break;
+ default:
+ _mesa_TexParameteriv(target, pname, params);
+ break;
+ }
+ /* XXX no driver hook for TexParameterIiv() yet */
+}
+
+
+/**
+ * Set tex parameter to unsigned integer value(s). Primarily intended to set
+ * uint-valued texture border color (for integer-valued textures).
+ * New in GL 3.0
+ */
+void GLAPIENTRY
+_mesa_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ texObj = get_texobj(ctx, target, GL_FALSE);
+ if (!texObj)
+ return;
+
+ switch (pname) {
+ case GL_TEXTURE_BORDER_COLOR:
+ FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+ /* set the unsigned integer-valued border color */
+ COPY_4V(texObj->BorderColor.ui, params);
+ break;
+ default:
+ _mesa_TexParameteriv(target, pname, (const GLint *) params);
+ break;
+ }
+ /* XXX no driver hook for TexParameterIuiv() yet */
+}
+
+
+
+
void GLAPIENTRY
_mesa_GetTexLevelParameterfv( GLenum target, GLint level,
GLenum pname, GLfloat *params )
@@ -978,25 +1043,14 @@ _mesa_GetTexLevelParameteriv( GLenum target, GLint level,
void GLAPIENTRY
_mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
{
- struct gl_texture_unit *texUnit;
struct gl_texture_object *obj;
GLboolean error = GL_FALSE;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureImageUnits) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTexParameterfv(current unit)");
- return;
- }
-
- texUnit = _mesa_get_current_tex_unit(ctx);
-
- obj = _mesa_select_tex_object(ctx, texUnit, target);
- if (!obj) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexParameterfv(target)");
+ obj = get_texobj(ctx, target, GL_TRUE);
+ if (!obj)
return;
- }
_mesa_lock_texture(ctx, obj);
switch (pname) {
@@ -1016,10 +1070,10 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
*params = ENUM_TO_FLOAT(obj->WrapR);
break;
case GL_TEXTURE_BORDER_COLOR:
- params[0] = CLAMP(obj->BorderColor[0], 0.0F, 1.0F);
- params[1] = CLAMP(obj->BorderColor[1], 0.0F, 1.0F);
- params[2] = CLAMP(obj->BorderColor[2], 0.0F, 1.0F);
- params[3] = CLAMP(obj->BorderColor[3], 0.0F, 1.0F);
+ params[0] = CLAMP(obj->BorderColor.f[0], 0.0F, 1.0F);
+ params[1] = CLAMP(obj->BorderColor.f[1], 0.0F, 1.0F);
+ params[2] = CLAMP(obj->BorderColor.f[2], 0.0F, 1.0F);
+ params[3] = CLAMP(obj->BorderColor.f[3], 0.0F, 1.0F);
break;
case GL_TEXTURE_RESIDENT:
{
@@ -1145,26 +1199,16 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
void GLAPIENTRY
_mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
{
- struct gl_texture_unit *texUnit;
struct gl_texture_object *obj;
GLboolean error = GL_FALSE;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
- if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureImageUnits) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTexParameteriv(current unit)");
- return;
- }
-
- texUnit = _mesa_get_current_tex_unit(ctx);
-
- obj = _mesa_select_tex_object(ctx, texUnit, target);
- if (!obj) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexParameteriv(target)");
- return;
- }
+ obj = get_texobj(ctx, target, GL_TRUE);
+ if (!obj)
+ return;
+ _mesa_lock_texture(ctx, obj);
switch (pname) {
case GL_TEXTURE_MAG_FILTER:
*params = (GLint) obj->MagFilter;
@@ -1184,10 +1228,10 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
case GL_TEXTURE_BORDER_COLOR:
{
GLfloat b[4];
- b[0] = CLAMP(obj->BorderColor[0], 0.0F, 1.0F);
- b[1] = CLAMP(obj->BorderColor[1], 0.0F, 1.0F);
- b[2] = CLAMP(obj->BorderColor[2], 0.0F, 1.0F);
- b[3] = CLAMP(obj->BorderColor[3], 0.0F, 1.0F);
+ b[0] = CLAMP(obj->BorderColor.f[0], 0.0F, 1.0F);
+ b[1] = CLAMP(obj->BorderColor.f[1], 0.0F, 1.0F);
+ b[2] = CLAMP(obj->BorderColor.f[2], 0.0F, 1.0F);
+ b[3] = CLAMP(obj->BorderColor.f[3], 0.0F, 1.0F);
params[0] = FLOAT_TO_INT(b[0]);
params[1] = FLOAT_TO_INT(b[1]);
params[2] = FLOAT_TO_INT(b[2]);
@@ -1315,3 +1359,53 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
_mesa_unlock_texture(ctx, obj);
}
+
+
+/** New in GL 3.0 */
+void GLAPIENTRY
+_mesa_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ texObj = get_texobj(ctx, target, GL_TRUE);
+
+ switch (pname) {
+ case GL_TEXTURE_BORDER_COLOR:
+ COPY_4V(params, texObj->BorderColor.i);
+ break;
+ default:
+ _mesa_GetTexParameteriv(target, pname, params);
+ }
+}
+
+
+/** New in GL 3.0 */
+void GLAPIENTRY
+_mesa_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ texObj = get_texobj(ctx, target, GL_TRUE);
+
+ switch (pname) {
+ case GL_TEXTURE_BORDER_COLOR:
+ COPY_4V(params, texObj->BorderColor.i);
+ break;
+ default:
+ {
+ GLint ip[4];
+ _mesa_GetTexParameteriv(target, pname, ip);
+ params[0] = ip[0];
+ if (pname == GL_TEXTURE_SWIZZLE_RGBA_EXT ||
+ pname == GL_TEXTURE_CROP_RECT_OES) {
+ params[1] = ip[1];
+ params[2] = ip[2];
+ params[3] = ip[3];
+ }
+ }
+ }
+}
diff --git a/src/mesa/main/texparam.h b/src/mesa/main/texparam.h
index 454b96350e..19b4116c0b 100644
--- a/src/mesa/main/texparam.h
+++ b/src/mesa/main/texparam.h
@@ -44,6 +44,11 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params );
extern void GLAPIENTRY
_mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params );
+extern void GLAPIENTRY
+_mesa_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
extern void GLAPIENTRY
@@ -60,4 +65,11 @@ extern void GLAPIENTRY
_mesa_TexParameteriv( GLenum target, GLenum pname, const GLint *params );
+extern void GLAPIENTRY
+_mesa_TexParameterIiv(GLenum target, GLenum pname, const GLint *params);
+
+extern void GLAPIENTRY
+_mesa_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);
+
+
#endif /* TEXPARAM_H */
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
new file mode 100644
index 0000000000..9d23c577bd
--- /dev/null
+++ b/src/mesa/main/version.c
@@ -0,0 +1,130 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2010 VMware, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#include "context.h"
+#include "version.h"
+
+
+
+/**
+ * Examine enabled GL extensions to determine GL version.
+ * Return major and minor version numbers.
+ */
+static void
+compute_version(const GLcontext *ctx, GLuint *major, GLuint *minor)
+{
+ const GLboolean ver_1_3 = (ctx->Extensions.ARB_multisample &&
+ ctx->Extensions.ARB_multitexture &&
+ ctx->Extensions.ARB_texture_border_clamp &&
+ ctx->Extensions.ARB_texture_compression &&
+ ctx->Extensions.ARB_texture_cube_map &&
+ ctx->Extensions.EXT_texture_env_add &&
+ ctx->Extensions.ARB_texture_env_combine &&
+ ctx->Extensions.ARB_texture_env_dot3);
+ const GLboolean ver_1_4 = (ver_1_3 &&
+ ctx->Extensions.ARB_depth_texture &&
+ ctx->Extensions.ARB_shadow &&
+ ctx->Extensions.ARB_texture_env_crossbar &&
+ ctx->Extensions.ARB_texture_mirrored_repeat &&
+ ctx->Extensions.ARB_window_pos &&
+ ctx->Extensions.EXT_blend_color &&
+ ctx->Extensions.EXT_blend_func_separate &&
+ ctx->Extensions.EXT_blend_minmax &&
+ ctx->Extensions.EXT_blend_subtract &&
+ ctx->Extensions.EXT_fog_coord &&
+ ctx->Extensions.EXT_multi_draw_arrays &&
+ ctx->Extensions.EXT_point_parameters &&
+ ctx->Extensions.EXT_secondary_color &&
+ ctx->Extensions.EXT_stencil_wrap &&
+ ctx->Extensions.EXT_texture_lod_bias &&
+ ctx->Extensions.SGIS_generate_mipmap);
+ const GLboolean ver_1_5 = (ver_1_4 &&
+ ctx->Extensions.ARB_occlusion_query &&
+ ctx->Extensions.ARB_vertex_buffer_object &&
+ ctx->Extensions.EXT_shadow_funcs);
+ const GLboolean ver_2_0 = (ver_1_5 &&
+ ctx->Extensions.ARB_draw_buffers &&
+ ctx->Extensions.ARB_point_sprite &&
+ ctx->Extensions.ARB_shader_objects &&
+ ctx->Extensions.ARB_vertex_shader &&
+ ctx->Extensions.ARB_fragment_shader &&
+ ctx->Extensions.ARB_texture_non_power_of_two &&
+ ctx->Extensions.EXT_blend_equation_separate &&
+
+ /* Technically, 2.0 requires the functionality
+ * of the EXT version. Enable 2.0 if either
+ * extension is available, and assume that a
+ * driver that only exposes the ATI extension
+ * will fallback to software when necessary.
+ */
+ (ctx->Extensions.EXT_stencil_two_side
+ || ctx->Extensions.ATI_separate_stencil));
+ const GLboolean ver_2_1 = (ver_2_0 &&
+ ctx->Extensions.ARB_shading_language_120 &&
+ ctx->Extensions.EXT_pixel_buffer_object &&
+ ctx->Extensions.EXT_texture_sRGB);
+ if (ver_2_1) {
+ *major = 2;
+ *minor = 1;
+ }
+ else if (ver_2_0) {
+ *major = 2;
+ *minor = 0;
+ }
+ else if (ver_1_5) {
+ *major = 1;
+ *minor = 5;
+ }
+ else if (ver_1_4) {
+ *major = 1;
+ *minor = 4;
+ }
+ else if (ver_1_3) {
+ *major = 1;
+ *minor = 3;
+ }
+ else {
+ *major = 1;
+ *minor = 2;
+ }
+}
+
+
+/**
+ * Set the context's VersionMajor, VersionMinor, VersionString fields.
+ * This should only be called once as part of context initialization.
+ */
+void
+_mesa_compute_version(GLcontext *ctx)
+{
+ static const int max = 100;
+
+ compute_version(ctx, &ctx->VersionMajor, &ctx->VersionMinor);
+
+ ctx->VersionString = (char *) _mesa_malloc(max);
+ if (ctx->VersionString) {
+ _mesa_snprintf(ctx->VersionString, max, "%u.%u Mesa " MESA_VERSION_STRING,
+ ctx->VersionMajor, ctx->VersionMinor);
+ }
+}
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index dc55cb7ccc..d521569f8d 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
@@ -28,6 +28,9 @@
#define VERSION_H
+#include "mtypes.h"
+
+
/* Mesa version */
#define MESA_MAJOR 7
#define MESA_MINOR 8
@@ -50,4 +53,8 @@
#define OPENGL_VERSION_CODE OPENGL_VERSION(OPENGL_MAJOR, OPENGL_MINOR, OPENGL_PATCH)
+extern void
+_mesa_compute_version(GLcontext *ctx);
+
+
#endif /* VERSION_H */