diff options
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/attrib.c | 49 | ||||
-rw-r--r-- | src/mesa/main/context.c | 5 | ||||
-rw-r--r-- | src/mesa/main/dispatch.c | 4 | ||||
-rw-r--r-- | src/mesa/main/enums.c | 465 | ||||
-rw-r--r-- | src/mesa/main/get.c | 24 | ||||
-rw-r--r-- | src/mesa/main/get_gen.py | 2 | ||||
-rw-r--r-- | src/mesa/main/getstring.c | 81 | ||||
-rw-r--r-- | src/mesa/main/image.c | 6 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 10 | ||||
-rw-r--r-- | src/mesa/main/texobj.c | 8 | ||||
-rw-r--r-- | src/mesa/main/texparam.c | 188 | ||||
-rw-r--r-- | src/mesa/main/texparam.h | 12 | ||||
-rw-r--r-- | src/mesa/main/version.c | 130 | ||||
-rw-r--r-- | src/mesa/main/version.h | 7 |
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 */ |