[PATCH 1/5] wined3d: Sort our GL extension definitions.

Henri Verbeet hverbeet at codeweavers.com
Thu Jan 21 03:38:27 CST 2010


This makes some of the problems in there a bit more obvious.
---
 dlls/wined3d/directx.c    |   44 +-
 dlls/wined3d/wined3d_gl.h | 4846 ++++++++++++++++++++++++---------------------
 2 files changed, 2632 insertions(+), 2258 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 0267443..366651f 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -43,17 +43,10 @@ static const struct {
     /* APPLE */
     {"GL_APPLE_client_storage",             APPLE_CLIENT_STORAGE,           0                           },
     {"GL_APPLE_fence",                      APPLE_FENCE,                    0                           },
-    {"GL_APPLE_flush_render",               APPLE_FLUSH_RENDER,             0                           },
-    {"GL_APPLE_ycbcr_422",                  APPLE_YCBCR_422,                0                           },
     {"GL_APPLE_float_pixels",               APPLE_FLOAT_PIXELS,             0                           },
     {"GL_APPLE_flush_buffer_range",         APPLE_FLUSH_BUFFER_RANGE,       0                           },
-
-    /* ATI */
-    {"GL_ATI_separate_stencil",             ATI_SEPARATE_STENCIL,           0                           },
-    {"GL_ATI_texture_env_combine3",         ATI_TEXTURE_ENV_COMBINE3,       0                           },
-    {"GL_ATI_texture_mirror_once",          ATI_TEXTURE_MIRROR_ONCE,        0                           },
-    {"GL_ATI_fragment_shader",              ATI_FRAGMENT_SHADER,            0                           },
-    {"GL_ATI_texture_compression_3dc",      ATI_TEXTURE_COMPRESSION_3DC,    0                           },
+    {"GL_APPLE_flush_render",               APPLE_FLUSH_RENDER,             0                           },
+    {"GL_APPLE_ycbcr_422",                  APPLE_YCBCR_422,                0                           },
 
     /* ARB */
     {"GL_ARB_color_buffer_float",           ARB_COLOR_BUFFER_FLOAT,         0                           },
@@ -66,6 +59,7 @@ static const struct {
     {"GL_ARB_framebuffer_object",           ARB_FRAMEBUFFER_OBJECT,         0                           },
     {"GL_ARB_geometry_shader4",             ARB_GEOMETRY_SHADER4,           0                           },
     {"GL_ARB_half_float_pixel",             ARB_HALF_FLOAT_PIXEL,           0                           },
+    {"GL_ARB_half_float_vertex",            ARB_HALF_FLOAT_VERTEX,          0                           },
     {"GL_ARB_imaging",                      ARB_IMAGING,                    0                           },
     {"GL_ARB_multisample",                  ARB_MULTISAMPLE,                0                           }, /* needs GLX_ARB_MULTISAMPLE as well */
     {"GL_ARB_multitexture",                 ARB_MULTITEXTURE,               0                           },
@@ -74,6 +68,8 @@ static const struct {
     {"GL_ARB_point_parameters",             ARB_POINT_PARAMETERS,           0                           },
     {"GL_ARB_point_sprite",                 ARB_POINT_SPRITE,               0                           },
     {"GL_ARB_provoking_vertex",             ARB_PROVOKING_VERTEX,           0                           },
+    {"GL_ARB_shader_objects",               ARB_SHADER_OBJECTS,             0                           },
+    {"GL_ARB_shader_texture_lod",           ARB_SHADER_TEXTURE_LOD,         0                           },
     {"GL_ARB_texture_border_clamp",         ARB_TEXTURE_BORDER_CLAMP,       0                           },
     {"GL_ARB_texture_compression",          ARB_TEXTURE_COMPRESSION,        0                           },
     {"GL_ARB_texture_cube_map",             ARB_TEXTURE_CUBE_MAP,           0                           },
@@ -89,19 +85,24 @@ static const struct {
     {"GL_ARB_vertex_buffer_object",         ARB_VERTEX_BUFFER_OBJECT,       0                           },
     {"GL_ARB_vertex_program",               ARB_VERTEX_PROGRAM,             0                           },
     {"GL_ARB_vertex_shader",                ARB_VERTEX_SHADER,              0                           },
-    {"GL_ARB_shader_objects",               ARB_SHADER_OBJECTS,             0                           },
-    {"GL_ARB_shader_texture_lod",           ARB_SHADER_TEXTURE_LOD,         0                           },
-    {"GL_ARB_half_float_vertex",            ARB_HALF_FLOAT_VERTEX,          0                           },
+
+    /* ATI */
+    {"GL_ATI_fragment_shader",              ATI_FRAGMENT_SHADER,            0                           },
+    {"GL_ATI_separate_stencil",             ATI_SEPARATE_STENCIL,           0                           },
+    {"GL_ATI_texture_compression_3dc",      ATI_TEXTURE_COMPRESSION_3DC,    0                           },
+    {"GL_ATI_texture_env_combine3",         ATI_TEXTURE_ENV_COMBINE3,       0                           },
+    {"GL_ATI_texture_mirror_once",          ATI_TEXTURE_MIRROR_ONCE,        0                           },
 
     /* EXT */
     {"GL_EXT_blend_color",                  EXT_BLEND_COLOR,                0                           },
-    {"GL_EXT_blend_minmax",                 EXT_BLEND_MINMAX,               0                           },
     {"GL_EXT_blend_equation_separate",      EXT_BLEND_EQUATION_SEPARATE,    0                           },
     {"GL_EXT_blend_func_separate",          EXT_BLEND_FUNC_SEPARATE,        0                           },
+    {"GL_EXT_blend_minmax",                 EXT_BLEND_MINMAX,               0                           },
     {"GL_EXT_fog_coord",                    EXT_FOG_COORD,                  0                           },
     {"GL_EXT_framebuffer_blit",             EXT_FRAMEBUFFER_BLIT,           0                           },
     {"GL_EXT_framebuffer_multisample",      EXT_FRAMEBUFFER_MULTISAMPLE,    0                           },
     {"GL_EXT_framebuffer_object",           EXT_FRAMEBUFFER_OBJECT,         0                           },
+    {"GL_EXT_gpu_program_parameters",       EXT_GPU_PROGRAM_PARAMETERS,     0                           },
     {"GL_EXT_packed_depth_stencil",         EXT_PACKED_DEPTH_STENCIL,       0                           },
     {"GL_EXT_paletted_texture",             EXT_PALETTED_TEXTURE,           0                           },
     {"GL_EXT_point_parameters",             EXT_POINT_PARAMETERS,           0                           },
@@ -110,26 +111,29 @@ static const struct {
     {"GL_EXT_stencil_two_side",             EXT_STENCIL_TWO_SIDE,           0                           },
     {"GL_EXT_stencil_wrap",                 EXT_STENCIL_WRAP,               0                           },
     {"GL_EXT_texture3D",                    EXT_TEXTURE3D,                  MAKEDWORD_VERSION(1, 2)     },
-    {"GL_EXT_texture_compression_s3tc",     EXT_TEXTURE_COMPRESSION_S3TC,   0                           },
     {"GL_EXT_texture_compression_rgtc",     EXT_TEXTURE_COMPRESSION_RGTC,   0                           },
+    {"GL_EXT_texture_compression_s3tc",     EXT_TEXTURE_COMPRESSION_S3TC,   0                           },
     {"GL_EXT_texture_env_add",              EXT_TEXTURE_ENV_ADD,            0                           },
     {"GL_EXT_texture_env_combine",          EXT_TEXTURE_ENV_COMBINE,        0                           },
     {"GL_EXT_texture_env_dot3",             EXT_TEXTURE_ENV_DOT3,           0                           },
-    {"GL_EXT_texture_sRGB",                 EXT_TEXTURE_SRGB,               0                           },
-    {"GL_EXT_texture_swizzle",              EXT_TEXTURE_SWIZZLE,            0                           },
     {"GL_EXT_texture_filter_anisotropic",   EXT_TEXTURE_FILTER_ANISOTROPIC, 0                           },
     {"GL_EXT_texture_lod",                  EXT_TEXTURE_LOD,                0                           },
     {"GL_EXT_texture_lod_bias",             EXT_TEXTURE_LOD_BIAS,           0                           },
+    {"GL_EXT_texture_sRGB",                 EXT_TEXTURE_SRGB,               0                           },
+    {"GL_EXT_texture_swizzle",              EXT_TEXTURE_SWIZZLE,            0                           },
     {"GL_EXT_vertex_array_bgra",            EXT_VERTEX_ARRAY_BGRA,          0                           },
     {"GL_EXT_vertex_shader",                EXT_VERTEX_SHADER,              0                           },
-    {"GL_EXT_gpu_program_parameters",       EXT_GPU_PROGRAM_PARAMETERS,     0                           },
 
     /* NV */
-    {"GL_NV_half_float",                    NV_HALF_FLOAT,                  0                           },
+    {"GL_NV_depth_clamp",                   NV_DEPTH_CLAMP,                 0                           },
     {"GL_NV_fence",                         NV_FENCE,                       0                           },
     {"GL_NV_fog_distance",                  NV_FOG_DISTANCE,                0                           },
     {"GL_NV_fragment_program",              NV_FRAGMENT_PROGRAM,            0                           },
     {"GL_NV_fragment_program2",             NV_FRAGMENT_PROGRAM2,           0                           },
+    {"GL_NV_fragment_program_option",       NV_FRAGMENT_PROGRAM_OPTION,     0                           },
+    {"GL_NV_half_float",                    NV_HALF_FLOAT,                  0                           },
+    {"GL_NV_light_max_exponent",            NV_LIGHT_MAX_EXPONENT,          0                           },
+    {"GL_NV_occlusion_query",               NV_OCCLUSION_QUERY,             0                           },
     {"GL_NV_register_combiners",            NV_REGISTER_COMBINERS,          0                           },
     {"GL_NV_register_combiners2",           NV_REGISTER_COMBINERS2,         0                           },
     {"GL_NV_texgen_reflection",             NV_TEXGEN_REFLECTION,           0                           },
@@ -137,15 +141,11 @@ static const struct {
     {"GL_NV_texture_shader",                NV_TEXTURE_SHADER,              0                           },
     {"GL_NV_texture_shader2",               NV_TEXTURE_SHADER2,             0                           },
     {"GL_NV_texture_shader3",               NV_TEXTURE_SHADER3,             0                           },
-    {"GL_NV_occlusion_query",               NV_OCCLUSION_QUERY,             0                           },
     {"GL_NV_vertex_program",                NV_VERTEX_PROGRAM,              0                           },
     {"GL_NV_vertex_program1_1",             NV_VERTEX_PROGRAM1_1,           0                           },
     {"GL_NV_vertex_program2",               NV_VERTEX_PROGRAM2,             0                           },
     {"GL_NV_vertex_program2_option",        NV_VERTEX_PROGRAM2_OPTION,      0                           },
     {"GL_NV_vertex_program3",               NV_VERTEX_PROGRAM3,             0                           },
-    {"GL_NV_fragment_program_option",       NV_FRAGMENT_PROGRAM_OPTION,     0                           },
-    {"GL_NV_depth_clamp",                   NV_DEPTH_CLAMP,                 0                           },
-    {"GL_NV_light_max_exponent",            NV_LIGHT_MAX_EXPONENT,          0                           },
 
     /* SGI */
     {"GL_SGIS_generate_mipmap",             SGIS_GENERATE_MIPMAP,           0                           },
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index d6d9794..da1596b 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -804,6 +804,197 @@ typedef ptrdiff_t       GLsizeiptr;
 #define GL_SAMPLE_COVERAGE_INVERT         0x80AB
 #define GL_MULTISAMPLE_BIT                0x20000000
 
+/* GL_VERSION_2_0 */
+#ifndef GL_VERSION_2_0
+#define GL_VERSION_2_0 1
+#define GL_BLEND_EQUATION_RGB                               GL_BLEND_EQUATION
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED                      0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE                         0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE                       0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE                         0x8625
+#define GL_CURRENT_VERTEX_ATTRIB                            0x8626
+#define GL_VERTEX_PROGRAM_POINT_SIZE                        0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE                          0x8643
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER                      0x8645
+#define GL_STENCIL_BACK_FUNC                                0x8800
+#define GL_STENCIL_BACK_FAIL                                0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL                     0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS                     0x8803
+#define GL_MAX_DRAW_BUFFERS                                 0x8824
+#define GL_DRAW_BUFFER0                                     0x8825
+#define GL_DRAW_BUFFER1                                     0x8826
+#define GL_DRAW_BUFFER2                                     0x8827
+#define GL_DRAW_BUFFER3                                     0x8828
+#define GL_DRAW_BUFFER4                                     0x8829
+#define GL_DRAW_BUFFER5                                     0x882a
+#define GL_DRAW_BUFFER6                                     0x882b
+#define GL_DRAW_BUFFER7                                     0x882c
+#define GL_DRAW_BUFFER8                                     0x882d
+#define GL_DRAW_BUFFER9                                     0x882e
+#define GL_DRAW_BUFFER10                                    0x882f
+#define GL_DRAW_BUFFER11                                    0x8830
+#define GL_DRAW_BUFFER12                                    0x8831
+#define GL_DRAW_BUFFER13                                    0x8832
+#define GL_DRAW_BUFFER14                                    0x8833
+#define GL_DRAW_BUFFER15                                    0x8834
+#define GL_BLEND_EQUATION_ALPHA                             0x883d
+#define GL_POINT_SPRITE                                     0x8861
+#define GL_COORD_REPLACE                                    0x8862
+#define GL_MAX_VERTEX_ATTRIBS                               0x8869
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED                   0x886a
+#define GL_MAX_TEXTURE_COORDS                               0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS                          0x8872
+#define GL_FRAGMENT_SHADER                                  0x8b30
+#define GL_VERTEX_SHADER                                    0x8b31
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS                  0x8b49
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS                    0x8b4a
+#define GL_MAX_VARYING_FLOATS                               0x8b4b
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS                   0x8b4c
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS                 0x8b4d
+#define GL_SHADER_TYPE                                      0x8b4f
+#define GL_FLOAT_VEC2                                       0x8b50
+#define GL_FLOAT_VEC3                                       0x8b51
+#define GL_FLOAT_VEC4                                       0x8b52
+#define GL_INT_VEC2                                         0x8b53
+#define GL_INT_VEC3                                         0x8b54
+#define GL_INT_VEC4                                         0x8b55
+#define GL_BOOL                                             0x8b56
+#define GL_BOOL_VEC2                                        0x8b57
+#define GL_BOOL_VEC3                                        0x8b58
+#define GL_BOOL_VEC4                                        0x8b59
+#define GL_FLOAT_MAT2                                       0x8b5a
+#define GL_FLOAT_MAT3                                       0x8b5b
+#define GL_FLOAT_MAT4                                       0x8b5c
+#define GL_SAMPLER_1D                                       0x8b5d
+#define GL_SAMPLER_2D                                       0x8b5e
+#define GL_SAMPLER_3D                                       0x8b5f
+#define GL_SAMPLER_CUBE                                     0x8b60
+#define GL_SAMPLER_1D_SHADOW                                0x8b61
+#define GL_SAMPLER_2D_SHADOW                                0x8b62
+#define GL_DELETE_STATUS                                    0x8b80
+#define GL_COMPILE_STATUS                                   0x8b81
+#define GL_LINK_STATUS                                      0x8b82
+#define GL_VALIDATE_STATUS                                  0x8b83
+#define GL_INFO_LOG_LENGTH                                  0x8b84
+#define GL_ATTACHED_SHADERS                                 0x8b85
+#define GL_ACTIVE_UNIFORMS                                  0x8b86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH                        0x8b87
+#define GL_SHADER_SOURCE_LENGTH                             0x8b88
+#define GL_ACTIVE_ATTRIBUTES                                0x8b89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH                      0x8b8a
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT                  0x8b8b
+#define GL_SHADING_LANGUAGE_VERSION                         0x8b8c
+#define GL_CURRENT_PROGRAM                                  0x8b8d
+#define GL_POINT_SPRITE_COORD_ORIGIN                        0x8ca0
+#define GL_LOWER_LEFT                                       0x8ca1
+#define GL_UPPER_LEFT                                       0x8ca2
+#define GL_STENCIL_BACK_REF                                 0x8ca3
+#define GL_STENCIL_BACK_VALUE_MASK                          0x8ca4
+#define GL_STENCIL_BACK_WRITEMASK                           0x8ca5
+typedef char GLchar;
+#endif
+typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void (WINE_GLAPI *PGLFNDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs);
+typedef void (WINE_GLAPI *PGLFNSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (WINE_GLAPI *PGLFNSTENCILFUNCSEPARATEPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+typedef void (WINE_GLAPI *PGLFNSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
+typedef void (WINE_GLAPI *PGLFNATTACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (WINE_GLAPI *PGLFNBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name);
+typedef void (WINE_GLAPI *PGLFNCOMPILESHADERPROC)(GLuint shader);
+typedef GLuint (WINE_GLAPI *PGLFNCREATEPROGRAMPROC)(void);
+typedef GLuint (WINE_GLAPI *PGLFNCREATESHADERPROC)(GLenum type);
+typedef void (WINE_GLAPI *PGLFNDELETEPROGRAMPROC)(GLuint program);
+typedef void (WINE_GLAPI *PGLFNDELETESHADERPROC)(GLuint shader);
+typedef void (WINE_GLAPI *PGLFNDETACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (WINE_GLAPI *PGLFNDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (WINE_GLAPI *PGLFNENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (WINE_GLAPI *PGLFNGETACTIVEATTRIBPROC)(GLuint program,
+        GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (WINE_GLAPI *PGLFNGETACTIVEUNIFORMPROC)(GLuint program,
+        GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (WINE_GLAPI *PGLFNGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
+typedef GLint (WINE_GLAPI *PGLFNGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMINFOLOGPROC)(GLuint program,
+        GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (WINE_GLAPI *PGLFNGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (WINE_GLAPI *PGLFNGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+typedef GLint (WINE_GLAPI *PGLFNGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name);
+typedef void (WINE_GLAPI *PGLFNGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, GLvoid* *pointer);
+typedef GLboolean (WINE_GLAPI *PGLFNISPROGRAMPROC)(GLuint program);
+typedef GLboolean (WINE_GLAPI *PGLFNISSHADERPROC)(GLuint shader);
+typedef void (WINE_GLAPI *PGLFNLINKPROGRAMPROC)(GLuint program);
+typedef void (WINE_GLAPI *PGLFNSHADERSOURCEPROC)(GLuint shader,
+        GLsizei count, const GLchar* *string, const GLint *length);
+typedef void (WINE_GLAPI *PGLFNUSEPROGRAMPROC)(GLuint program);
+typedef void (WINE_GLAPI *PGLFNUNIFORM1FPROC)(GLint location, GLfloat v0);
+typedef void (WINE_GLAPI *PGLFNUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (WINE_GLAPI *PGLFNUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (WINE_GLAPI *PGLFNUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (WINE_GLAPI *PGLFNUNIFORM1IPROC)(GLint location, GLint v0);
+typedef void (WINE_GLAPI *PGLFNUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
+typedef void (WINE_GLAPI *PGLFNUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (WINE_GLAPI *PGLFNUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (WINE_GLAPI *PGLFNUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORMMATRIX2FVPROC)(GLint location,
+        GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORMMATRIX3FVPROC)(GLint location,
+        GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNUNIFORMMATRIX4FVPROC)(GLint location,
+        GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (WINE_GLAPI *PGLFNVALIDATEPROGRAMPROC)(GLuint program);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIBPOINTERPROC)(GLuint index,
+        GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+
 void (WINE_GLAPI *glAccum)(GLenum op, GLfloat value) DECLSPEC_HIDDEN;
 void (WINE_GLAPI *glAlphaFunc)(GLenum func, GLclampf ref) DECLSPEC_HIDDEN;
 GLboolean (WINE_GLAPI *glAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences) DECLSPEC_HIDDEN;
@@ -1524,68 +1715,274 @@ BOOL (WINAPI *pwglShareLists)(HGLRC, HGLRC) DECLSPEC_HIDDEN;
     USE_WGL_FUNC(wglMakeCurrent) \
     USE_WGL_FUNC(wglShareLists)
 
+/* OpenGL extensions. */
+typedef enum wined3d_gl_extension
+{
+    WINED3D_GL_EXT_NONE,
 
-/****************************************************
- * OpenGL Extensions (EXT and ARB)
- *     #defines and functions pointer
- ****************************************************/
+    /* APPLE */
+    APPLE_CLIENT_STORAGE,
+    APPLE_FENCE,
+    APPLE_FLOAT_PIXELS,
+    APPLE_FLUSH_BUFFER_RANGE,
+    APPLE_FLUSH_RENDER,
+    APPLE_YCBCR_422,
+    /* ARB */
+    ARB_COLOR_BUFFER_FLOAT,
+    ARB_DEPTH_BUFFER_FLOAT,
+    ARB_DEPTH_CLAMP,
+    ARB_DEPTH_TEXTURE,
+    ARB_DRAW_BUFFERS,
+    ARB_FRAGMENT_PROGRAM,
+    ARB_FRAGMENT_SHADER,
+    ARB_FRAMEBUFFER_OBJECT,
+    ARB_GEOMETRY_SHADER4,
+    ARB_HALF_FLOAT_PIXEL,
+    ARB_HALF_FLOAT_VERTEX,
+    ARB_IMAGING,
+    ARB_MULTISAMPLE,
+    ARB_MULTITEXTURE,
+    ARB_OCCLUSION_QUERY,
+    ARB_PIXEL_BUFFER_OBJECT,
+    ARB_POINT_PARAMETERS,
+    ARB_POINT_SPRITE,
+    ARB_PROVOKING_VERTEX,
+    ARB_SHADER_OBJECTS,
+    ARB_SHADER_TEXTURE_LOD,
+    ARB_TEXTURE_BORDER_CLAMP,
+    ARB_TEXTURE_COMPRESSION,
+    ARB_TEXTURE_CUBE_MAP,
+    ARB_TEXTURE_ENV_ADD,
+    ARB_TEXTURE_ENV_COMBINE,
+    ARB_TEXTURE_ENV_DOT3,
+    ARB_TEXTURE_FLOAT,
+    ARB_TEXTURE_MIRRORED_REPEAT,
+    ARB_TEXTURE_NON_POWER_OF_TWO,
+    ARB_TEXTURE_RECTANGLE,
+    ARB_TEXTURE_RG,
+    ARB_VERTEX_BLEND,
+    ARB_VERTEX_BUFFER_OBJECT,
+    ARB_VERTEX_PROGRAM,
+    ARB_VERTEX_SHADER,
+    /* ATI */
+    ATI_FRAGMENT_SHADER,
+    ATI_SEPARATE_STENCIL,
+    ATI_TEXTURE_COMPRESSION_3DC,
+    ATI_TEXTURE_ENV_COMBINE3,
+    ATI_TEXTURE_MIRROR_ONCE,
+    /* EXT */
+    EXT_BLEND_COLOR,
+    EXT_BLEND_EQUATION_SEPARATE,
+    EXT_BLEND_FUNC_SEPARATE,
+    EXT_BLEND_MINMAX,
+    EXT_FOG_COORD,
+    EXT_FRAMEBUFFER_BLIT,
+    EXT_FRAMEBUFFER_MULTISAMPLE,
+    EXT_FRAMEBUFFER_OBJECT,
+    EXT_GPU_PROGRAM_PARAMETERS,
+    EXT_PACKED_DEPTH_STENCIL,
+    EXT_PALETTED_TEXTURE,
+    EXT_PIXEL_BUFFER_OBJECT,
+    EXT_POINT_PARAMETERS,
+    EXT_PROVOKING_VERTEX,
+    EXT_SECONDARY_COLOR,
+    EXT_STENCIL_TWO_SIDE,
+    EXT_STENCIL_WRAP,
+    EXT_TEXTURE3D,
+    EXT_TEXTURE_COMPRESSION_RGTC,
+    EXT_TEXTURE_COMPRESSION_S3TC,
+    EXT_TEXTURE_ENV_ADD,
+    EXT_TEXTURE_ENV_COMBINE,
+    EXT_TEXTURE_ENV_DOT3,
+    EXT_TEXTURE_FILTER_ANISOTROPIC,
+    EXT_TEXTURE_LOD,
+    EXT_TEXTURE_LOD_BIAS,
+    EXT_TEXTURE_SRGB,
+    EXT_TEXTURE_SWIZZLE,
+    EXT_VERTEX_ARRAY_BGRA,
+    EXT_VERTEX_SHADER,
+    /* NVIDIA */
+    NV_DEPTH_CLAMP,
+    NV_FENCE,
+    NV_FOG_DISTANCE,
+    NV_FRAGMENT_PROGRAM,
+    NV_FRAGMENT_PROGRAM2,
+    NV_FRAGMENT_PROGRAM_OPTION,
+    NV_HALF_FLOAT,
+    NV_LIGHT_MAX_EXPONENT,
+    NV_OCCLUSION_QUERY,
+    NV_REGISTER_COMBINERS,
+    NV_REGISTER_COMBINERS2,
+    NV_TEXGEN_REFLECTION,
+    NV_TEXTURE_ENV_COMBINE4,
+    NV_TEXTURE_SHADER,
+    NV_TEXTURE_SHADER2,
+    NV_TEXTURE_SHADER3,
+    NV_VERTEX_PROGRAM,
+    NV_VERTEX_PROGRAM1_1,
+    NV_VERTEX_PROGRAM2,
+    NV_VERTEX_PROGRAM2_OPTION,
+    NV_VERTEX_PROGRAM3,
+    /* SGI */
+    SGIS_GENERATE_MIPMAP,
+    SGI_VIDEO_SYNC,
+    /* WGL extensions */
+    WGL_ARB_PBUFFER,
+    WGL_ARB_PIXEL_FORMAT,
+    WGL_WINE_PIXEL_FORMAT_PASSTHROUGH,
+    /* Internally used */
+    WINE_NORMALIZED_TEXRECT,
+
+    WINED3D_GL_EXT_COUNT,
+} GL_SupportedExt;
+
+/* GL_APPLE_client_storage */
+#ifndef GL_APPLE_client_storage
+#define GL_APPLE_client_storage 1
+#define GL_UNPACK_CLIENT_STORAGE_APPLE                      0x85b2
+#endif
+
+/* GL_APPLE_fence */
+#ifndef GL_APPLE_fence
+#define GL_APPLE_fence 1
+#define GL_DRAW_PIXELS_APPLE                                0x8a0a
+#define GL_FENCE_APPLE                                      0x8a0b
+#endif
+typedef void (WINE_GLAPI *PGLFNGENFENCESAPPLEPROC)(GLsizei, GLuint *);
+typedef void (WINE_GLAPI *PGLFNDELETEFENCESAPPLEPROC)(GLuint, const GLuint *);
+typedef void (WINE_GLAPI *PGLFNSETFENCEAPPLEPROC)(GLuint);
+typedef GLboolean (WINE_GLAPI *PGLFNTESTFENCEAPPLEPROC)(GLuint);
+typedef void (WINE_GLAPI *PGLFNFINISHFENCEAPPLEPROC)(GLuint);
+typedef GLboolean (WINE_GLAPI *PGLFNISFENCEAPPLEPROC)(GLuint);
+typedef GLboolean (WINE_GLAPI *PGLFNTESTOBJECTAPPLEPROC)(GLenum, GLuint);
+typedef void (WINE_GLAPI *PGLFNFINISHOBJECTAPPLEPROC)(GLenum, GLuint);
+
+/* GL_APPLE_float_pixels */
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#define GL_HALF_APPLE                                       0x140b
+#define GL_COLOR_FLOAT_APPLE                                0x8a0f
+#define GL_RGBA_FLOAT32_APPLE                               0x8814
+#define GL_RGB_FLOAT32_APPLE                                0x8815
+#define GL_ALPHA_FLOAT32_APPLE                              0x8816
+#define GL_INTENSITY_FLOAT32_APPLE                          0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE                          0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE                    0x8819
+#define GL_RGBA_FLOAT16_APPLE                               0x881a
+#define GL_RGB_FLOAT16_APPLE                                0x881b
+#define GL_ALPHA_FLOAT16_APPLE                              0x881c
+#define GL_INTENSITY_FLOAT16_APPLE                          0x881d
+#define GL_LUMINANCE_FLOAT16_APPLE                          0x881e
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE                    0x881f
+#endif
+
+/* GL_APPLE_flush_buffer_range */
+#ifndef GL_APPLE_flush_buffer_range
+#define GL_APPLE_flush_buffer_range 1
+#define GL_BUFFER_SERIALIZED_MODIFY_APPLE                   0x8a12
+#define GL_BUFFER_FLUSHING_UNMAP_APPLE                      0x8a13
+typedef void (WINE_GLAPI *PGLFNBUFFERPARAMETERIAPPLE)(GLenum target, GLenum pname, GLint param);
+typedef void (WINE_GLAPI *PGLFNFLUSHMAPPEDBUFFERRANGEAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size);
+#endif
+
+/* GL_APPLE_flush_render */
+typedef void (WINE_GLAPI *PGLFNFLUSHRENDERAPPLEPROC)(void);
+typedef void (WINE_GLAPI *PGLFNFINISHRENDERAPPLEPROC)(void);
+
+/* GL_APPLE_ycbcr_422 */
+#ifndef GL_APPLE_ycbcr_422
+#define GL_APPLE_ycbcr_422 1
+#define GL_YCBCR_422_APPLE                                  0x85b9
+#define UNSIGNED_SHORT_8_8_APPLE                            0x85ba
+#define UNSIGNED_SHORT_8_8_REV_APPLE                        0x85bb
+#endif
 
 /* GL_ARB_color_buffer_float */
 #ifndef GL_ARB_color_buffer_float
-#define GL_RGBA_FLOAT_MODE_ARB            0x8820
-#define GL_CLAMP_VERTEX_COLOR_ARB         0x891A
-#define GL_CLAMP_FRAGMENT_COLOR_ARB       0x891B
-#define GL_CLAMP_READ_COLOR_ARB           0x891C
-#define GL_FIXED_ONLY_ARB                 0x891D
+#define GL_ARB_color_buffer_float 1
+#define GL_RGBA_FLOAT_MODE_ARB                              0x8820
+#define GL_CLAMP_VERTEX_COLOR_ARB                           0x891a
+#define GL_CLAMP_FRAGMENT_COLOR_ARB                         0x891b
+#define GL_CLAMP_READ_COLOR_ARB                             0x891c
+#define GL_FIXED_ONLY_ARB                                   0x891d
 #endif
-typedef void (WINE_GLAPI *PGLFNCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
+typedef void (WINE_GLAPI *PGLFNCLAMPCOLORARBPROC)(GLenum target, GLenum clamp);
 
 /* GL_ARB_depth_buffer_float */
 #ifndef GL_ARB_depth_buffer_float
 #define GL_ARB_depth_buffer_float 1
-#define GL_DEPTH_COMPONENT32F             0x8cac
-#define GL_DEPTH32F_STENCIL8              0x8cad
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8dad
+#define GL_DEPTH_COMPONENT32F                               0x8cac
+#define GL_DEPTH32F_STENCIL8                                0x8cad
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV                   0x8dad
 #endif
 
 /* GL_ARB_depth_clamp */
 #ifndef GL_ARB_depth_clamp
 #define GL_ARB_depth_clamp 1
-#define GL_DEPTH_CLAMP                    0x864f
+#define GL_DEPTH_CLAMP                                      0x864f
 #endif
 
 /* GL_ARB_depth_texture */
 #ifndef GL_ARB_depth_texture
 #define GL_ARB_depth_texture 1
-#define GL_DEPTH_COMPONENT16_ARB          0x81A5
-#define GL_DEPTH_COMPONENT24_ARB          0x81A6
-#define GL_DEPTH_COMPONENT32_ARB          0x81A7
-#define GL_TEXTURE_DEPTH_SIZE_ARB         0x884A
-#define GL_DEPTH_TEXTURE_MODE_ARB         0x884B
+#define GL_DEPTH_COMPONENT16_ARB                            0x81a5
+#define GL_DEPTH_COMPONENT24_ARB                            0x81a6
+#define GL_DEPTH_COMPONENT32_ARB                            0x81a7
+#define GL_TEXTURE_DEPTH_SIZE_ARB                           0x884a
+#define GL_DEPTH_TEXTURE_MODE_ARB                           0x884b
 #endif
 
 /* GL_ARB_draw_buffers */
 #ifndef GL_ARB_draw_buffers
 #define GL_ARB_draw_buffers 1
-#define GL_MAX_DRAW_BUFFERS_ARB           0x8824
-#define GL_DRAW_BUFFER0_ARB               0x8825
-#define GL_DRAW_BUFFER1_ARB               0x8826
-#define GL_DRAW_BUFFER2_ARB               0x8827
-#define GL_DRAW_BUFFER3_ARB               0x8828
-#define GL_DRAW_BUFFER4_ARB               0x8829
-#define GL_DRAW_BUFFER5_ARB               0x882A
-#define GL_DRAW_BUFFER6_ARB               0x882B
-#define GL_DRAW_BUFFER7_ARB               0x882C
-#define GL_DRAW_BUFFER8_ARB               0x882D
-#define GL_DRAW_BUFFER9_ARB               0x882E
-#define GL_DRAW_BUFFER10_ARB              0x882F
-#define GL_DRAW_BUFFER11_ARB              0x8830
-#define GL_DRAW_BUFFER12_ARB              0x8831
-#define GL_DRAW_BUFFER13_ARB              0x8832
-#define GL_DRAW_BUFFER14_ARB              0x8833
-#define GL_DRAW_BUFFER15_ARB              0x8834
+#define GL_MAX_DRAW_BUFFERS_ARB                             0x8824
+#define GL_DRAW_BUFFER0_ARB                                 0x8825
+#define GL_DRAW_BUFFER1_ARB                                 0x8826
+#define GL_DRAW_BUFFER2_ARB                                 0x8827
+#define GL_DRAW_BUFFER3_ARB                                 0x8828
+#define GL_DRAW_BUFFER4_ARB                                 0x8829
+#define GL_DRAW_BUFFER5_ARB                                 0x882a
+#define GL_DRAW_BUFFER6_ARB                                 0x882b
+#define GL_DRAW_BUFFER7_ARB                                 0x882c
+#define GL_DRAW_BUFFER8_ARB                                 0x882d
+#define GL_DRAW_BUFFER9_ARB                                 0x882e
+#define GL_DRAW_BUFFER10_ARB                                0x882f
+#define GL_DRAW_BUFFER11_ARB                                0x8830
+#define GL_DRAW_BUFFER12_ARB                                0x8831
+#define GL_DRAW_BUFFER13_ARB                                0x8832
+#define GL_DRAW_BUFFER14_ARB                                0x8833
+#define GL_DRAW_BUFFER15_ARB                                0x8834
+#endif
+typedef void (WINE_GLAPI *PGLFNDRAWBUFFERSARBPROC)(GLsizei n, const GLenum *bufs);
+
+/* GL_ARB_fragment_program */
+#ifndef GL_ARB_fragment_program
+#define GL_ARB_fragment_program 1
+#define GL_FRAGMENT_PROGRAM_ARB                             0x8804
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB                     0x8805
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB                     0x8806
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB                     0x8807
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB              0x8808
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB              0x8809
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB              0x880a
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB                 0x880b
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB                 0x880c
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB                 0x880d
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB          0x880e
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB          0x880f
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB          0x8810
+#define GL_MAX_TEXTURE_COORDS_ARB                           0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB                      0x8872
+/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */
+#endif
+
+/* GL_ARB_fragment_shader */
+#ifndef GL_ARB_fragment_shader
+#define GL_ARB_fragment_shader 1
+#define GL_FRAGMENT_SHADER_ARB                              0x8b30
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB              0x8b49
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB              0x8b8b
 #endif
-typedef void (WINE_GLAPI *PGLFNDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
 
 /* GL_ARB_framebuffer_object */
 #ifndef GL_ARB_framebuffer_object
@@ -1665,58 +2062,59 @@ typedef void (WINE_GLAPI *PGLFNDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *buf
 #define GL_DEPTH24_STENCIL8                                 0x88f0
 #define GL_TEXTURE_STENCIL_SIZE                             0x88f1
 #endif
-typedef GLboolean (WINE_GLAPI * PGLFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
-typedef void (WINE_GLAPI * PGLFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
-typedef void (WINE_GLAPI * PGLFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers);
-typedef void (WINE_GLAPI * PGLFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
-typedef void (WINE_GLAPI * PGLFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat,
+typedef GLboolean (WINE_GLAPI *PGLFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
+typedef void (WINE_GLAPI *PGLFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
+typedef void (WINE_GLAPI *PGLFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers);
+typedef void (WINE_GLAPI *PGLFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void (WINE_GLAPI *PGLFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat,
         GLsizei width, GLsizei height);
-typedef void (WINE_GLAPI * PGLFNRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples,
+typedef void (WINE_GLAPI *PGLFNRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples,
         GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (WINE_GLAPI * PGLFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
-typedef GLboolean (WINE_GLAPI * PGLFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
-typedef void (WINE_GLAPI * PGLFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
-typedef void (WINE_GLAPI * PGLFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers);
-typedef void (WINE_GLAPI * PGLFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
-typedef GLenum (WINE_GLAPI * PGLFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment,
+typedef void (WINE_GLAPI *PGLFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (WINE_GLAPI *PGLFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
+typedef void (WINE_GLAPI *PGLFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
+typedef void (WINE_GLAPI *PGLFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers);
+typedef void (WINE_GLAPI *PGLFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
+typedef GLenum (WINE_GLAPI *PGLFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment,
         GLenum textarget, GLuint texture, GLint level);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment,
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment,
         GLenum textarget, GLuint texture, GLint level);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment,
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment,
         GLenum textarget, GLuint texture, GLint level, GLint layer);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment,
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment,
         GLuint texture, GLint level, GLint layer);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment,
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment,
         GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (WINE_GLAPI * PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment,
+typedef void (WINE_GLAPI *PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment,
         GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+typedef void (WINE_GLAPI *PGLFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
         GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef void (WINE_GLAPI * PGLFNGLGENERATEMIPMAPPROC)(GLenum target);
+typedef void (WINE_GLAPI *PGLFNGLGENERATEMIPMAPPROC)(GLenum target);
 
 /* GL_ARB_geometry_shader4 */
 #ifndef GL_ARB_geometry_shader4
-#define GL_GEOMETRY_SHADER_ARB                      0x8dd9
-#define GL_GEOMETRY_VERTICES_OUT_ARB                0x8dda
-#define GL_GEOMETRY_INPUT_TYPE_ARB                  0x8ddb
-#define GL_GEOMETRY_OUTPUT_TYPE_ARB                 0x8ddc
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB     0x8c29
-#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB      0x8ddd
-#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB        0x8dde
-#define GL_MAX_VARYING_COMPONENTS_ARB               0x8b4b
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB      0x8ddf
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB         0x8de0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8de1
-#define GL_LINES_ADJACENCY_ARB                      0x000a
-#define GL_LINE_STRIP_ADJACENCY_ARB                 0x000b
-#define GL_TRIANGLES_ADJACENCY_ARB                  0x000c
-#define GL_TRIANGLE_STRIP_ADJACENCY_ARB             0x000d
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8da8
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB   0x8da9
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB       0x8da7
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER     0x8cd4
-#define GL_PROGRAM_POINT_SIZE_ARB                   0x8642
+#define GL_ARB_geometry_shader4 1
+#define GL_GEOMETRY_SHADER_ARB                              0x8dd9
+#define GL_GEOMETRY_VERTICES_OUT_ARB                        0x8dda
+#define GL_GEOMETRY_INPUT_TYPE_ARB                          0x8ddb
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB                         0x8ddc
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB             0x8c29
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB              0x8ddd
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB                0x8dde
+#define GL_MAX_VARYING_COMPONENTS_ARB                       0x8b4b
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB              0x8ddf
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB                 0x8de0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB         0x8de1
+#define GL_LINES_ADJACENCY_ARB                              0x000a
+#define GL_LINE_STRIP_ADJACENCY_ARB                         0x000b
+#define GL_TRIANGLES_ADJACENCY_ARB                          0x000c
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB                     0x000d
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB         0x8da8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB           0x8da9
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB               0x8da7
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER             0x8cd4
+#define GL_PROGRAM_POINT_SIZE_ARB                           0x8642
 #endif
 typedef void (WINE_GLAPI *PGLFNPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value);
 typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment,
@@ -1726,380 +2124,967 @@ typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GL
 typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment,
         GLuint texture, GLint level, GLenum face);
 
+/* GL_ARB_half_float_pixel */
+#ifndef GL_ARB_half_float_pixel
+#define GL_ARB_half_float_pixel 1
+#define GL_HALF_FLOAT_ARB                                   0x140b
+#endif
+
+/* GL_ARB_half_float_vertex */
+#ifndef GL_ARB_half_float_vertex
+#define GL_ARB_half_float_vertex 1
+/* No _ARB, see extension spec */
+#define GL_HALF_FLOAT                                       0x140b
+#endif
+
 /* GL_ARB_imaging */
 #ifndef GL_ARB_imaging
 #define GL_ARB_imaging 1
-#define GL_CONSTANT_COLOR                 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
-#define GL_CONSTANT_ALPHA                 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
-#define GL_BLEND_COLOR                    0x8005
-#define GL_FUNC_ADD                       0x8006
-#define GL_MIN                            0x8007
-#define GL_MAX                            0x8008
-#define GL_BLEND_EQUATION                 0x8009
-#define GL_FUNC_SUBTRACT                  0x800A
-#define GL_FUNC_REVERSE_SUBTRACT          0x800B
-#define GL_CONVOLUTION_1D                 0x8010
-#define GL_CONVOLUTION_2D                 0x8011
-#define GL_SEPARABLE_2D                   0x8012
-#define GL_CONVOLUTION_BORDER_MODE        0x8013
-#define GL_CONVOLUTION_FILTER_SCALE       0x8014
-#define GL_CONVOLUTION_FILTER_BIAS        0x8015
-#define GL_REDUCE                         0x8016
-#define GL_CONVOLUTION_FORMAT             0x8017
-#define GL_CONVOLUTION_WIDTH              0x8018
-#define GL_CONVOLUTION_HEIGHT             0x8019
-#define GL_MAX_CONVOLUTION_WIDTH          0x801A
-#define GL_MAX_CONVOLUTION_HEIGHT         0x801B
-#define GL_POST_CONVOLUTION_RED_SCALE     0x801C
-#define GL_POST_CONVOLUTION_GREEN_SCALE   0x801D
-#define GL_POST_CONVOLUTION_BLUE_SCALE    0x801E
-#define GL_POST_CONVOLUTION_ALPHA_SCALE   0x801F
-#define GL_POST_CONVOLUTION_RED_BIAS      0x8020
-#define GL_POST_CONVOLUTION_GREEN_BIAS    0x8021
-#define GL_POST_CONVOLUTION_BLUE_BIAS     0x8022
-#define GL_POST_CONVOLUTION_ALPHA_BIAS    0x8023
-#define GL_HISTOGRAM                      0x8024
-#define GL_PROXY_HISTOGRAM                0x8025
-#define GL_HISTOGRAM_WIDTH                0x8026
-#define GL_HISTOGRAM_FORMAT               0x8027
-#define GL_HISTOGRAM_RED_SIZE             0x8028
-#define GL_HISTOGRAM_GREEN_SIZE           0x8029
-#define GL_HISTOGRAM_BLUE_SIZE            0x802A
-#define GL_HISTOGRAM_ALPHA_SIZE           0x802B
-#define GL_HISTOGRAM_LUMINANCE_SIZE       0x802C
-#define GL_HISTOGRAM_SINK                 0x802D
-#define GL_MINMAX                         0x802E
-#define GL_MINMAX_FORMAT                  0x802F
-#define GL_MINMAX_SINK                    0x8030
-#define GL_TABLE_TOO_LARGE                0x8031
-#define GL_COLOR_MATRIX                   0x80B1
-#define GL_COLOR_MATRIX_STACK_DEPTH       0x80B2
-#define GL_MAX_COLOR_MATRIX_STACK_DEPTH   0x80B3
-#define GL_POST_COLOR_MATRIX_RED_SCALE    0x80B4
-#define GL_POST_COLOR_MATRIX_GREEN_SCALE  0x80B5
-#define GL_POST_COLOR_MATRIX_BLUE_SCALE   0x80B6
-#define GL_POST_COLOR_MATRIX_ALPHA_SCALE  0x80B7
-#define GL_POST_COLOR_MATRIX_RED_BIAS     0x80B8
-#define GL_POST_COLOR_MATRIX_GREEN_BIAS   0x80B9
-#define GL_POST_COLOR_MATRIX_BLUE_BIAS    0x80BA
-#define GL_POST_COLOR_MATRIX_ALPHA_BIAS   0x80BB
-#define GL_COLOR_TABLE                    0x80D0
-#define GL_POST_CONVOLUTION_COLOR_TABLE   0x80D1
-#define GL_POST_COLOR_MATRIX_COLOR_TABLE  0x80D2
-#define GL_PROXY_COLOR_TABLE              0x80D3
-#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
-#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
-#define GL_COLOR_TABLE_SCALE              0x80D6
-#define GL_COLOR_TABLE_BIAS               0x80D7
-#define GL_COLOR_TABLE_FORMAT             0x80D8
-#define GL_COLOR_TABLE_WIDTH              0x80D9
-#define GL_COLOR_TABLE_RED_SIZE           0x80DA
-#define GL_COLOR_TABLE_GREEN_SIZE         0x80DB
-#define GL_COLOR_TABLE_BLUE_SIZE          0x80DC
-#define GL_COLOR_TABLE_ALPHA_SIZE         0x80DD
-#define GL_COLOR_TABLE_LUMINANCE_SIZE     0x80DE
-#define GL_COLOR_TABLE_INTENSITY_SIZE     0x80DF
-#define GL_CONSTANT_BORDER                0x8151
-#define GL_REPLICATE_BORDER               0x8153
-#define GL_CONVOLUTION_BORDER_COLOR       0x8154
+#define GL_CONSTANT_COLOR                                   0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR                         0x8002
+#define GL_CONSTANT_ALPHA                                   0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA                         0x8004
+#define GL_BLEND_COLOR                                      0x8005
+#define GL_FUNC_ADD                                         0x8006
+#define GL_MIN                                              0x8007
+#define GL_MAX                                              0x8008
+#define GL_BLEND_EQUATION                                   0x8009
+#define GL_FUNC_SUBTRACT                                    0x800a
+#define GL_FUNC_REVERSE_SUBTRACT                            0x800b
+#define GL_CONVOLUTION_1D                                   0x8010
+#define GL_CONVOLUTION_2D                                   0x8011
+#define GL_SEPARABLE_2D                                     0x8012
+#define GL_CONVOLUTION_BORDER_MODE                          0x8013
+#define GL_CONVOLUTION_FILTER_SCALE                         0x8014
+#define GL_CONVOLUTION_FILTER_BIAS                          0x8015
+#define GL_REDUCE                                           0x8016
+#define GL_CONVOLUTION_FORMAT                               0x8017
+#define GL_CONVOLUTION_WIDTH                                0x8018
+#define GL_CONVOLUTION_HEIGHT                               0x8019
+#define GL_MAX_CONVOLUTION_WIDTH                            0x801a
+#define GL_MAX_CONVOLUTION_HEIGHT                           0x801b
+#define GL_POST_CONVOLUTION_RED_SCALE                       0x801d
+#define GL_POST_CONVOLUTION_GREEN_SCALE                     0x801f
+#define GL_POST_CONVOLUTION_BLUE_SCALE                      0x801e
+#define GL_POST_CONVOLUTION_ALPHA_SCALE                     0x801f
+#define GL_POST_CONVOLUTION_RED_BIAS                        0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS                      0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS                       0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS                      0x8023
+#define GL_HISTOGRAM                                        0x8024
+#define GL_PROXY_HISTOGRAM                                  0x8025
+#define GL_HISTOGRAM_WIDTH                                  0x8026
+#define GL_HISTOGRAM_FORMAT                                 0x8027
+#define GL_HISTOGRAM_RED_SIZE                               0x8028
+#define GL_HISTOGRAM_GREEN_SIZE                             0x8029
+#define GL_HISTOGRAM_BLUE_SIZE                              0x802a
+#define GL_HISTOGRAM_ALPHA_SIZE                             0x802b
+#define GL_HISTOGRAM_LUMINANCE_SIZE                         0x802c
+#define GL_HISTOGRAM_SINK                                   0x802d
+#define GL_MINMAX                                           0x802e
+#define GL_MINMAX_FORMAT                                    0x802f
+#define GL_MINMAX_SINK                                      0x8030
+#define GL_TABLE_TOO_LARGE                                  0x8031
+#define GL_COLOR_MATRIX                                     0x80b1
+#define GL_COLOR_MATRIX_STACK_DEPTH                         0x80b2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH                     0x80b3
+#define GL_POST_COLOR_MATRIX_RED_SCALE                      0x80b4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE                    0x80b5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE                     0x80b6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE                    0x80b7
+#define GL_POST_COLOR_MATRIX_RED_BIAS                       0x80b8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS                     0x80b9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS                      0x80ba
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS                     0x80bb
+#define GL_COLOR_TABLE                                      0x80d0
+#define GL_POST_CONVOLUTION_COLOR_TABLE                     0x80d1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE                    0x80d2
+#define GL_PROXY_COLOR_TABLE                                0x80d3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE               0x80d4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE              0x80d5
+#define GL_COLOR_TABLE_SCALE                                0x80d6
+#define GL_COLOR_TABLE_BIAS                                 0x80d7
+#define GL_COLOR_TABLE_FORMAT                               0x80d8
+#define GL_COLOR_TABLE_WIDTH                                0x80d9
+#define GL_COLOR_TABLE_RED_SIZE                             0x80da
+#define GL_COLOR_TABLE_GREEN_SIZE                           0x80db
+#define GL_COLOR_TABLE_BLUE_SIZE                            0x80dc
+#define GL_COLOR_TABLE_ALPHA_SIZE                           0x80dd
+#define GL_COLOR_TABLE_LUMINANCE_SIZE                       0x80de
+#define GL_COLOR_TABLE_INTENSITY_SIZE                       0x80df
+#define GL_CONSTANT_BORDER                                  0x8151
+#define GL_REPLICATE_BORDER                                 0x8153
+#define GL_CONVOLUTION_BORDER_COLOR                         0x8154
+#endif
+typedef void (WINE_GLAPI *PGLFNBLENDCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONPROC)(GLenum mode);
+
+/* GL_ARB_multisample */
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+#define GL_MULTISAMPLE_ARB                                  0x809d
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB                     0x809e
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB                          0x809f
+#define GL_SAMPLE_COVERAGE_ARB                              0x80a0
+#define GL_SAMPLE_BUFFERS_ARB                               0x80a8
+#define GL_SAMPLES_ARB                                      0x80a9
+#define GL_SAMPLE_COVERAGE_VALUE_ARB                        0x80aa
+#define GL_SAMPLE_COVERAGE_INVERT_ARB                       0x80ab
+#define GL_MULTISAMPLE_BIT_ARB                              0x20000000
 #endif
-typedef void (WINE_GLAPI *PGLFNBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONPROC) (GLenum mode);
+typedef void (WINE_GLAPI *WINED3D_PFNGLSAMPLECOVERAGEARBPROC)(GLclampf value, GLboolean invert);
+
 /* GL_ARB_multitexture */
 #ifndef GL_ARB_multitexture
 #define GL_ARB_multitexture 1
-#define GL_TEXTURE0_ARB                   0x84C0
-#define GL_TEXTURE1_ARB                   0x84C1
-#define GL_TEXTURE2_ARB                   0x84C2
-#define GL_TEXTURE3_ARB                   0x84C3
-#define GL_TEXTURE4_ARB                   0x84C4
-#define GL_TEXTURE5_ARB                   0x84C5
-#define GL_TEXTURE6_ARB                   0x84C6
-#define GL_TEXTURE7_ARB                   0x84C7
-#define GL_TEXTURE8_ARB                   0x84C8
-#define GL_TEXTURE9_ARB                   0x84C9
-#define GL_TEXTURE10_ARB                  0x84CA
-#define GL_TEXTURE11_ARB                  0x84CB
-#define GL_TEXTURE12_ARB                  0x84CC
-#define GL_TEXTURE13_ARB                  0x84CD
-#define GL_TEXTURE14_ARB                  0x84CE
-#define GL_TEXTURE15_ARB                  0x84CF
-#define GL_TEXTURE16_ARB                  0x84D0
-#define GL_TEXTURE17_ARB                  0x84D1
-#define GL_TEXTURE18_ARB                  0x84D2
-#define GL_TEXTURE19_ARB                  0x84D3
-#define GL_TEXTURE20_ARB                  0x84D4
-#define GL_TEXTURE21_ARB                  0x84D5
-#define GL_TEXTURE22_ARB                  0x84D6
-#define GL_TEXTURE23_ARB                  0x84D7
-#define GL_TEXTURE24_ARB                  0x84D8
-#define GL_TEXTURE25_ARB                  0x84D9
-#define GL_TEXTURE26_ARB                  0x84DA
-#define GL_TEXTURE27_ARB                  0x84DB
-#define GL_TEXTURE28_ARB                  0x84DC
-#define GL_TEXTURE29_ARB                  0x84DD
-#define GL_TEXTURE30_ARB                  0x84DE
-#define GL_TEXTURE31_ARB                  0x84DF
-#define GL_ACTIVE_TEXTURE_ARB             0x84E0
-#define GL_CLIENT_ACTIVE_TEXTURE_ARB      0x84E1
-#define GL_MAX_TEXTURE_UNITS_ARB          0x84E2
+#define GL_TEXTURE0_ARB                                     0x84c0
+#define GL_TEXTURE1_ARB                                     0x84c1
+#define GL_TEXTURE2_ARB                                     0x84c2
+#define GL_TEXTURE3_ARB                                     0x84c3
+#define GL_TEXTURE4_ARB                                     0x84c4
+#define GL_TEXTURE5_ARB                                     0x84c5
+#define GL_TEXTURE6_ARB                                     0x84c6
+#define GL_TEXTURE7_ARB                                     0x84c7
+#define GL_TEXTURE8_ARB                                     0x84c8
+#define GL_TEXTURE9_ARB                                     0x84c9
+#define GL_TEXTURE10_ARB                                    0x84ca
+#define GL_TEXTURE11_ARB                                    0x84cb
+#define GL_TEXTURE12_ARB                                    0x84cc
+#define GL_TEXTURE13_ARB                                    0x84cd
+#define GL_TEXTURE14_ARB                                    0x84ce
+#define GL_TEXTURE15_ARB                                    0x84cf
+#define GL_TEXTURE16_ARB                                    0x84d0
+#define GL_TEXTURE17_ARB                                    0x84d1
+#define GL_TEXTURE18_ARB                                    0x84d2
+#define GL_TEXTURE19_ARB                                    0x84d3
+#define GL_TEXTURE20_ARB                                    0x84d4
+#define GL_TEXTURE21_ARB                                    0x84d5
+#define GL_TEXTURE22_ARB                                    0x84d6
+#define GL_TEXTURE23_ARB                                    0x84d7
+#define GL_TEXTURE24_ARB                                    0x84d8
+#define GL_TEXTURE25_ARB                                    0x84d9
+#define GL_TEXTURE26_ARB                                    0x84da
+#define GL_TEXTURE27_ARB                                    0x84db
+#define GL_TEXTURE28_ARB                                    0x84dc
+#define GL_TEXTURE29_ARB                                    0x84dd
+#define GL_TEXTURE30_ARB                                    0x84de
+#define GL_TEXTURE31_ARB                                    0x84df
+#define GL_ACTIVE_TEXTURE_ARB                               0x84e0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB                        0x84e1
+#define GL_MAX_TEXTURE_UNITS_ARB                            0x84e2
 #endif
-typedef void (WINE_GLAPI *WINED3D_PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (WINE_GLAPI *WINED3D_PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (WINE_GLAPI *WINED3D_PFNGLACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void (WINE_GLAPI *WINED3D_PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4FARBPROC)(GLenum target,
+        GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat *v);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort *v);
+typedef void (WINE_GLAPI *WINED3D_PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort *v);
 
-/* GL_ARB_texture_cube_map */
-#ifndef GL_ARB_texture_cube_map
-#define GL_ARB_texture_cube_map 1
-#define GL_NORMAL_MAP_ARB                   0x8511
-#define GL_REFLECTION_MAP_ARB               0x8512
-#define GL_TEXTURE_CUBE_MAP_ARB             0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARB     0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB  0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB  0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB  0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB  0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB  0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB  0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARB       0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB    0x851C
+/* GL_ARB_occlusion_query */
+#ifndef GL_ARB_occlusion_query
+#define GL_ARB_occlusion_query 1
+#define GL_SAMPLES_PASSED_ARB                               0x8914
+#define GL_QUERY_COUNTER_BITS_ARB                           0x8864
+#define GL_CURRENT_QUERY_ARB                                0x8865
+#define GL_QUERY_RESULT_ARB                                 0x8866
+#define GL_QUERY_RESULT_AVAILABLE_ARB                       0x8867
+#endif
+typedef void (WINE_GLAPI *PGLFNGENQUERIESARBPROC)(GLsizei n, GLuint *queries);
+typedef void (WINE_GLAPI *PGLFNDELETEQUERIESARBPROC)(GLsizei n, const GLuint *queries);
+typedef GLboolean (WINE_GLAPI *PGLFNISQUERYARBPROC)(GLuint query);
+typedef void (WINE_GLAPI *PGLFNBEGINQUERYARBPROC)(GLenum target, GLuint query);
+typedef void (WINE_GLAPI *PGLFNENDQUERYARBPROC)(GLenum target);
+typedef void (WINE_GLAPI *PGLFNGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETQUERYOBJECTIVARBPROC)(GLuint query, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETQUERYOBJECTUIVARBPROC)(GLuint query, GLenum pname, GLuint *params);
+
+/* GL_ARB_pixel_buffer_object */
+#ifndef GL_ARB_pixel_buffer_object
+#define GL_ARB_pixel_buffer_object 1
+#endif
+#define GL_PIXEL_PACK_BUFFER_ARB                            0x88eb
+#define GL_PIXEL_UNPACK_BUFFER_ARB                          0x88ec
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB                    0x88ed
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB                  0x88ef
+
+/* GL_ARB_pixel_buffer_object */
+#ifndef GL_ARB_pixel_buffer_object
+#define GL_PIXEL_PACK_BUFFER_ARB                            0x88eb
+#define GL_PIXEL_UNPACK_BUFFER_ARB                          0x88ec
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB                    0x88ed
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB                  0x88ef
 #endif
 
 /* GL_ARB_point_parameters */
 #ifndef GL_ARB_point_parameters
 #define GL_ARB_point_parameters 1
-#define GL_POINT_SIZE_MIN_ARB             0x8126
-#define GL_POINT_SIZE_MAX_ARB             0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_ARB  0x8128
-#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+#define GL_POINT_SIZE_MIN_ARB                               0x8126
+#define GL_POINT_SIZE_MAX_ARB                               0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB                    0x8128
+#define GL_POINT_DISTANCE_ATTENUATION_ARB                   0x8129
+#endif
+typedef void (WINE_GLAPI *PGLFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param);
+typedef void (WINE_GLAPI *PGLFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat *params);
+
+/* GL_ARB_point_sprite */
+#ifndef GL_ARB_point_sprite
+#define GL_ARB_point_sprite 1
+#define GL_POINT_SPRITE_ARB                                 0x8861
+#define GL_COORD_REPLACE_ARB                                0x8862
 #endif
-typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
-typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
 
 /* GL_ARB_provoking_vertex */
 #ifndef GL_ARB_provoking_vertex
 #define GL_ARB_provoking_vertex 1
-#define GL_FIRST_VERTEX_CONVENTION                      0x8e4d
-#define GL_LAST_VERTEX_CONVENTION                       0x8e4e
-#define GL_PROVOKING_VERTEX                             0x8e4f
-#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION     0x8e4c
+#define GL_FIRST_VERTEX_CONVENTION                          0x8e4d
+#define GL_LAST_VERTEX_CONVENTION                           0x8e4e
+#define GL_PROVOKING_VERTEX                                 0x8e4f
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION         0x8e4c
+#endif
+typedef void (WINE_GLAPI *PGLFNGLPROVOKINGVERTEXPROC)(GLenum mode);
+
+/* GL_ARB_shader_objects */
+#ifndef GL_ARB_shader_objects
+#define GL_ARB_shader_objects 1
+typedef char GLcharARB;
+typedef unsigned int GLhandleARB;
+#define GL_PROGRAM_OBJECT_ARB                               0x8b40
+#define GL_OBJECT_TYPE_ARB                                  0x8b4e
+#define GL_OBJECT_SUBTYPE_ARB                               0x8b4f
+#define GL_OBJECT_DELETE_STATUS_ARB                         0x8b80
+#define GL_OBJECT_COMPILE_STATUS_ARB                        0x8b81
+#define GL_OBJECT_LINK_STATUS_ARB                           0x8b82
+#define GL_OBJECT_VALIDATE_STATUS_ARB                       0x8b83
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB                       0x8b84
+#define GL_OBJECT_ATTACHED_OBJECTS_ARB                      0x8b85
+#define GL_OBJECT_ACTIVE_UNIFORMS_ARB                       0x8b86
+#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB             0x8b87
+#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB                  0x8b88
+#define GL_SHADER_OBJECT_ARB                                0x8b48
+#define GL_FLOAT_VEC2_ARB                                   0x8b50
+#define GL_FLOAT_VEC3_ARB                                   0x8b51
+#define GL_FLOAT_VEC4_ARB                                   0x8b52
+#define GL_INT_VEC2_ARB                                     0x8b53
+#define GL_INT_VEC3_ARB                                     0x8b54
+#define GL_INT_VEC4_ARB                                     0x8b55
+#define GL_BOOL_ARB                                         0x8b56
+#define GL_BOOL_VEC2_ARB                                    0x8b57
+#define GL_BOOL_VEC3_ARB                                    0x8b58
+#define GL_BOOL_VEC4_ARB                                    0x8b59
+#define GL_FLOAT_MAT2_ARB                                   0x8b5a
+#define GL_FLOAT_MAT3_ARB                                   0x8b5b
+#define GL_FLOAT_MAT4_ARB                                   0x8b5c
+#define GL_SAMPLER_1D_ARB                                   0x8b5d
+#define GL_SAMPLER_2D_ARB                                   0x8b5e
+#define GL_SAMPLER_3D_ARB                                   0x8b5f
+#define GL_SAMPLER_CUBE_ARB                                 0x8b60
+#define GL_SAMPLER_1D_SHADOW_ARB                            0x8b61
+#define GL_SAMPLER_2D_SHADOW_ARB                            0x8b62
+#define GL_SAMPLER_2D_RECT_ARB                              0x8b63
+#define GL_SAMPELR_2D_RECT_SHADOW_ARB                       0x8b64
+#endif
+
+/* GL_ARB_shading_language_100 */
+#ifndef GL_ARB_shading_language_100
+#define GL_ARB_shading_language_100 1
+#define GL_SHADING_LANGUAGE_VERSION_ARB                     0x8b8c
+#endif
+
+/* GL_ARB_texture_border_clamp */
+#ifndef GL_ARB_texture_border_clamp
+#define GL_ARB_texture_border_clamp 1
+#define GL_CLAMP_TO_BORDER_ARB                              0x812d
+#endif
+
+/* GL_ARB_texture_cube_map */
+#ifndef GL_ARB_texture_cube_map
+#define GL_ARB_texture_cube_map 1
+#define GL_NORMAL_MAP_ARB                                   0x8511
+#define GL_REFLECTION_MAP_ARB                               0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB                             0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB                     0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                  0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                  0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                  0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                  0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                  0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                  0x851a
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB                       0x851b
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB                    0x851c
+#endif
+
+/* GL_ARB_texture_env_dot3 */
+#ifndef GL_ARB_texture_env_dot3
+#define GL_ARB_texture_env_dot3 1
+#define GL_DOT3_RGB_ARB                                     0x86ae
+#define GL_DOT3_RGBA_ARB                                    0x86af
+#endif
+
+/* GL_ARB_texture_float */
+#ifndef GL_ARB_texture_float
+#define GL_ARB_texture_float 1
+#define GL_RGBA32F_ARB                                      0x8814
+#define GL_RGB32F_ARB                                       0x8815
+#define GL_RGBA16F_ARB                                      0x881a
+#define GL_RGB16F_ARB                                       0x881b
+#endif
+
+/* GL_ARB_texture_mirrored_repeat */
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_ARB_texture_mirrored_repeat 1
+#define GL_MIRRORED_REPEAT_ARB                              0x8370
+#endif
+
+/* GL_ARB_texture_rectangle */
+#ifndef GL_ARB_texture_rectangle
+#define GL_ARB_texture_rectangle 1
+#define GL_TEXTURE_RECTANGLE_ARB                            0x84f5
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB                    0x84f6
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB                      0x84f7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB                   0x84f8
+#define GL_SAMPLER_2D_RECT_ARB                              0x8b63
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB                       0x8b64
+#endif
+
+/* GL_ARB_texture_rg */
+#ifndef GL_ARB_texture_rg
+#define GL_ARB_texture_rg 1
+#define GL_RG                                               0x8227
+#define GL_RG_INTEGER                                       0x8228
+#define GL_R8                                               0x8229
+#define GL_R16                                              0x822a
+#define GL_RG8                                              0x822b
+#define GL_RG16                                             0x822c
+#define GL_R16F                                             0x822d
+#define GL_R32F                                             0x822e
+#define GL_RG16F                                            0x822f
+#define GL_RG32F                                            0x8230
+#define GL_R8I                                              0x8231
+#define GL_R8UI                                             0x8232
+#define GL_R16I                                             0x8233
+#define GL_R16UI                                            0x8234
+#define GL_R32I                                             0x8235
+#define GL_R32UI                                            0x8236
+#define GL_RG8I                                             0x8237
+#define GL_RG8UI                                            0x8238
+#define GL_RG16I                                            0x8239
+#define GL_RG16UI                                           0x823a
+#define GL_RG32I                                            0x823b
+#define GL_RG32UI                                           0x823c
 #endif
-typedef void (WINE_GLAPI * PGLFNGLPROVOKINGVERTEXPROC)(GLenum mode);
 
 /* GL_ARB_vertex_blend */
 #ifndef GL_ARB_vertex_blend
 #define GL_ARB_vertex_blend 1
-#define GL_MAX_VERTEX_UNITS_ARB           0x86A4
-#define GL_ACTIVE_VERTEX_UNITS_ARB        0x86A5
-#define GL_WEIGHT_SUM_UNITY_ARB           0x86A6
-#define GL_VERTEX_BLEND_ARB               0x86A7
-#define GL_CURRENT_WEIGHT_ARB             0x86A8
-#define GL_WEIGHT_ARRAY_TYPE_ARB          0x86A9
-#define GL_WEIGHT_ARRAY_STRIDE_ARB        0x86AA
-#define GL_WEIGHT_ARRAY_SIZE_ARB          0x86AB
-#define GL_WEIGHT_ARRAY_POINTER_ARB       0x86AC
-#define GL_WEIGHT_ARRAY_ARB               0x86AD
-#define GL_MODELVIEW0_ARB                 0x1700
-#define GL_MODELVIEW1_ARB                 0x850A
-#define GL_MODELVIEW2_ARB                 0x8722
-#define GL_MODELVIEW3_ARB                 0x8723
-#define GL_MODELVIEW4_ARB                 0x8724
-#define GL_MODELVIEW5_ARB                 0x8725
-#define GL_MODELVIEW6_ARB                 0x8726
-#define GL_MODELVIEW7_ARB                 0x8727
-#define GL_MODELVIEW8_ARB                 0x8728
-#define GL_MODELVIEW9_ARB                 0x8729
-#define GL_MODELVIEW10_ARB                0x872A
-#define GL_MODELVIEW11_ARB                0x872B
-#define GL_MODELVIEW12_ARB                0x872C
-#define GL_MODELVIEW13_ARB                0x872D
-#define GL_MODELVIEW14_ARB                0x872E
-#define GL_MODELVIEW15_ARB                0x872F
-#define GL_MODELVIEW16_ARB                0x8730
-#define GL_MODELVIEW17_ARB                0x8731
-#define GL_MODELVIEW18_ARB                0x8732
-#define GL_MODELVIEW19_ARB                0x8733
-#define GL_MODELVIEW20_ARB                0x8734
-#define GL_MODELVIEW21_ARB                0x8735
-#define GL_MODELVIEW22_ARB                0x8736
-#define GL_MODELVIEW23_ARB                0x8737
-#define GL_MODELVIEW24_ARB                0x8738
-#define GL_MODELVIEW25_ARB                0x8739
-#define GL_MODELVIEW26_ARB                0x873A
-#define GL_MODELVIEW27_ARB                0x873B
-#define GL_MODELVIEW28_ARB                0x873C
-#define GL_MODELVIEW29_ARB                0x873D
-#define GL_MODELVIEW30_ARB                0x873E
-#define GL_MODELVIEW31_ARB                0x873F
+#define GL_MAX_VERTEX_UNITS_ARB                             0x86a4
+#define GL_ACTIVE_VERTEX_UNITS_ARB                          0x86a5
+#define GL_WEIGHT_SUM_UNITY_ARB                             0x86a6
+#define GL_VERTEX_BLEND_ARB                                 0x86a7
+#define GL_CURRENT_WEIGHT_ARB                               0x86a8
+#define GL_WEIGHT_ARRAY_TYPE_ARB                            0x86a9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB                          0x86aa
+#define GL_WEIGHT_ARRAY_SIZE_ARB                            0x86ab
+#define GL_WEIGHT_ARRAY_POINTER_ARB                         0x86ac
+#define GL_WEIGHT_ARRAY_ARB                                 0x86ad
+#define GL_MODELVIEW0_ARB                                   0x1700
+#define GL_MODELVIEW1_ARB                                   0x850a
+#define GL_MODELVIEW2_ARB                                   0x8722
+#define GL_MODELVIEW3_ARB                                   0x8723
+#define GL_MODELVIEW4_ARB                                   0x8724
+#define GL_MODELVIEW5_ARB                                   0x8725
+#define GL_MODELVIEW6_ARB                                   0x8726
+#define GL_MODELVIEW7_ARB                                   0x8727
+#define GL_MODELVIEW8_ARB                                   0x8728
+#define GL_MODELVIEW9_ARB                                   0x8729
+#define GL_MODELVIEW10_ARB                                  0x872a
+#define GL_MODELVIEW11_ARB                                  0x872b
+#define GL_MODELVIEW12_ARB                                  0x872c
+#define GL_MODELVIEW13_ARB                                  0x872d
+#define GL_MODELVIEW14_ARB                                  0x872e
+#define GL_MODELVIEW15_ARB                                  0x872f
+#define GL_MODELVIEW16_ARB                                  0x8730
+#define GL_MODELVIEW17_ARB                                  0x8731
+#define GL_MODELVIEW18_ARB                                  0x8732
+#define GL_MODELVIEW19_ARB                                  0x8733
+#define GL_MODELVIEW20_ARB                                  0x8734
+#define GL_MODELVIEW21_ARB                                  0x8735
+#define GL_MODELVIEW22_ARB                                  0x8736
+#define GL_MODELVIEW23_ARB                                  0x8737
+#define GL_MODELVIEW24_ARB                                  0x8738
+#define GL_MODELVIEW25_ARB                                  0x8739
+#define GL_MODELVIEW26_ARB                                  0x873a
+#define GL_MODELVIEW27_ARB                                  0x873b
+#define GL_MODELVIEW28_ARB                                  0x873c
+#define GL_MODELVIEW29_ARB                                  0x873d
+#define GL_MODELVIEW30_ARB                                  0x873e
+#define GL_MODELVIEW31_ARB                                  0x873f
 #endif
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTPOINTERARB) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTBV) (GLint size, const GLbyte *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTSV) (GLint size, const GLshort *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTIV) (GLint size, const GLint *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTFV) (GLint size, const GLfloat *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTDV) (GLint size, const GLdouble *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTUBV) (GLint size, const GLubyte *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTUSV) (GLint size, const GLushort *weights);
-typedef void (WINE_GLAPI * PGLFNGLWEIGHTUIV) (GLint size, const GLuint *weights);
-typedef void (WINE_GLAPI * PGLFNGLVERTEXBLENDARB) (GLint count);
-/* GL_ARB_pixel_buffer_object */
-#ifndef GL_ARB_pixel_buffer_object
-#define GL_ARB_pixel_buffer_object 1
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTPOINTERARB)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTBV)(GLint size, const GLbyte *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTSV)(GLint size, const GLshort *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTIV)(GLint size, const GLint *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTFV)(GLint size, const GLfloat *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTDV)(GLint size, const GLdouble *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTUBV)(GLint size, const GLubyte *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTUSV)(GLint size, const GLushort *weights);
+typedef void (WINE_GLAPI *PGLFNGLWEIGHTUIV)(GLint size, const GLuint *weights);
+typedef void (WINE_GLAPI *PGLFNGLVERTEXBLENDARB)(GLint count);
+
+/* GL_ARB_vertex_buffer_object */
+#ifndef GL_ARB_vertex_buffer_object
+#define GL_ARB_vertex_buffer_object 1
+#define GL_BUFFER_SIZE_ARB                                  0x8764
+#define GL_BUFFER_USAGE_ARB                                 0x8765
+#define GL_ARRAY_BUFFER_ARB                                 0x8892
+#define GL_ELEMENT_ARRAY_BUFFER_ARB                         0x8893
+#define GL_ARRAY_BUFFER_BINDING_ARB                         0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB                 0x8895
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB                  0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB                  0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB                   0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB                   0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB           0x889a
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB               0x889b
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB         0x889c
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB          0x889d
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB                  0x889e
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB           0x889f
+#define GL_READ_ONLY_ARB                                    0x88b8
+#define GL_WRITE_ONLY_ARB                                   0x88b9
+#define GL_READ_WRITE_ARB                                   0x88ba
+#define GL_BUFFER_ACCESS_ARB                                0x88bb
+#define GL_BUFFER_MAPPED_ARB                                0x88bc
+#define GL_BUFFER_MAP_POINTER_ARB                           0x88bd
+#define GL_STREAM_DRAW_ARB                                  0x88e0
+#define GL_STREAM_READ_ARB                                  0x88e1
+#define GL_STREAM_COPY_ARB                                  0x88e2
+#define GL_STATIC_DRAW_ARB                                  0x88e4
+#define GL_STATIC_READ_ARB                                  0x88e5
+#define GL_STATIC_COPY_ARB                                  0x88e6
+#define GL_DYNAMIC_DRAW_ARB                                 0x88e8
+#define GL_DYNAMIC_READ_ARB                                 0x88e9
+#define GL_DYNAMIC_COPY_ARB                                 0x88ea
 #endif
-#define GL_PIXEL_PACK_BUFFER_ARB               0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_ARB             0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_ARB       0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB     0x88EF
-/* GL_EXT_framebuffer_object */
-#ifndef GL_EXT_framebuffer_object
-#define GL_EXT_framebuffer_object 1
-#define GL_FRAMEBUFFER_EXT                     0x8D40
-#define GL_RENDERBUFFER_EXT                    0x8D41
-#define GL_STENCIL_INDEX1_EXT                  0x8D46
-#define GL_STENCIL_INDEX4_EXT                  0x8D47
-#define GL_STENCIL_INDEX8_EXT                  0x8D48
-#define GL_STENCIL_INDEX16_EXT                 0x8D49
-#define GL_RENDERBUFFER_WIDTH_EXT              0x8D42
-#define GL_RENDERBUFFER_HEIGHT_EXT             0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT    0x8D44
-#define GL_RENDERBUFFER_RED_SIZE_EXT           0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE_EXT         0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE_EXT          0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE_EXT         0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE_EXT         0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE_EXT       0x8D55
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT            0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT            0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT          0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT  0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT     0x8CD4
-#define GL_COLOR_ATTACHMENT0_EXT                0x8CE0
-#define GL_COLOR_ATTACHMENT1_EXT                0x8CE1
-#define GL_COLOR_ATTACHMENT2_EXT                0x8CE2
-#define GL_COLOR_ATTACHMENT3_EXT                0x8CE3
-#define GL_COLOR_ATTACHMENT4_EXT                0x8CE4
-#define GL_COLOR_ATTACHMENT5_EXT                0x8CE5
-#define GL_COLOR_ATTACHMENT6_EXT                0x8CE6
-#define GL_COLOR_ATTACHMENT7_EXT                0x8CE7
-#define GL_COLOR_ATTACHMENT8_EXT                0x8CE8
-#define GL_COLOR_ATTACHMENT9_EXT                0x8CE9
-#define GL_COLOR_ATTACHMENT10_EXT               0x8CEA
-#define GL_COLOR_ATTACHMENT11_EXT               0x8CEB
-#define GL_COLOR_ATTACHMENT12_EXT               0x8CEC
-#define GL_COLOR_ATTACHMENT13_EXT               0x8CED
-#define GL_COLOR_ATTACHMENT14_EXT               0x8CEE
-#define GL_COLOR_ATTACHMENT15_EXT               0x8CEF
-#define GL_DEPTH_ATTACHMENT_EXT                 0x8D00
-#define GL_STENCIL_ATTACHMENT_EXT               0x8D20
-#define GL_FRAMEBUFFER_COMPLETE_EXT                          0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT             0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT     0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT             0x8CD9
-#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT                0x8CDA
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT            0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT            0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED_EXT                       0x8CDD
-#define GL_FRAMEBUFFER_BINDING_EXT             0x8CA6
-#define GL_RENDERBUFFER_BINDING_EXT            0x8CA7
-#define GL_MAX_COLOR_ATTACHMENTS_EXT           0x8CDF
-#define GL_MAX_RENDERBUFFER_SIZE_EXT           0x84E8
-#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT   0x0506
+typedef void (WINE_GLAPI *PGLFNBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
+typedef void (WINE_GLAPI *PGLFNDELETEBUFFERSARBPROC)(GLsizei n, const GLuint *buffers);
+typedef void (WINE_GLAPI *PGLFNGENBUFFERSARBPROC)(GLsizei n, GLuint *buffers);
+typedef GLboolean (WINE_GLAPI *PGLFNISBUFFERARBPROC)(GLuint buffer);
+typedef void (WINE_GLAPI *PGLFNBUFFERDATAARBPROC)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
+typedef void (WINE_GLAPI *PGLFNBUFFERSUBDATAARBPROC)(GLenum target,
+        GLintptr offset, GLsizeiptr size, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
+typedef GLvoid* (WINE_GLAPI *PGLFNMAPBUFFERARBPROC)(GLenum  target, GLenum access);
+typedef GLboolean (WINE_GLAPI *PGLFNUNMAPBUFFERARBPROC)(GLenum target);
+typedef void (WINE_GLAPI *PGLFNGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, GLvoid* *params);
 
+/* GL_ARB_vertex_program */
+#ifndef GL_ARB_vertex_program
+#define GL_ARB_vertex_program 1
+#define GL_VERTEX_PROGRAM_ARB                               0x8620
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB                    0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB                      0x8643
+#define GL_COLOR_SUM_ARB                                    0x8458
+#define GL_PROGRAM_FORMAT_ASCII_ARB                         0x8875
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB                  0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB                     0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB                   0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB                     0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB               0x886a
+#define GL_CURRENT_VERTEX_ATTRIB_ARB                        0x8626
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB                  0x8645
+#define GL_PROGRAM_LENGTH_ARB                               0x8627
+#define GL_PROGRAM_FORMAT_ARB                               0x8876
+#define GL_PROGRAM_BINDING_ARB                              0x8677
+#define GL_PROGRAM_INSTRUCTIONS_ARB                         0x88a0
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB                     0x88a1
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB                  0x88a2
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB              0x88a3
+#define GL_PROGRAM_TEMPORARIES_ARB                          0x88a4
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB                      0x88a5
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB                   0x88a6
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB               0x88a7
+#define GL_PROGRAM_PARAMETERS_ARB                           0x88a8
+#define GL_MAX_PROGRAM_PARAMETERS_ARB                       0x88a9
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB                    0x88aa
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB                0x88ab
+#define GL_PROGRAM_ATTRIBS_ARB                              0x88ac
+#define GL_MAX_PROGRAM_ATTRIBS_ARB                          0x88ad
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB                       0x88ae
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB                   0x88af
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB                    0x88b0
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB                0x88b1
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB             0x88b2
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB         0x88b3
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB                 0x88b4
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB                   0x88b5
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB                  0x88b6
+#define GL_PROGRAM_STRING_ARB                               0x8628
+#define GL_PROGRAM_ERROR_POSITION_ARB                       0x864b
+#define GL_CURRENT_MATRIX_ARB                               0x8641
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB                     0x88b7
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB                   0x8640
+#define GL_MAX_VERTEX_ATTRIBS_ARB                           0x8869
+#define GL_MAX_PROGRAM_MATRICES_ARB                         0x862f
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB               0x862e
+#define GL_PROGRAM_ERROR_STRING_ARB                         0x8874
+#define GL_MATRIX0_ARB                                      0x88c0
+#define GL_MATRIX1_ARB                                      0x88c1
+#define GL_MATRIX2_ARB                                      0x88c2
+#define GL_MATRIX3_ARB                                      0x88c3
+#define GL_MATRIX4_ARB                                      0x88c4
+#define GL_MATRIX5_ARB                                      0x88c5
+#define GL_MATRIX6_ARB                                      0x88c6
+#define GL_MATRIX7_ARB                                      0x88c7
+#define GL_MATRIX8_ARB                                      0x88c8
+#define GL_MATRIX9_ARB                                      0x88c9
+#define GL_MATRIX10_ARB                                     0x88ca
+#define GL_MATRIX11_ARB                                     0x88cb
+#define GL_MATRIX12_ARB                                     0x88cc
+#define GL_MATRIX13_ARB                                     0x88cd
+#define GL_MATRIX14_ARB                                     0x88ce
+#define GL_MATRIX15_ARB                                     0x88cf
+#define GL_MATRIX16_ARB                                     0x88d0
+#define GL_MATRIX17_ARB                                     0x88d1
+#define GL_MATRIX18_ARB                                     0x88d2
+#define GL_MATRIX19_ARB                                     0x88d3
+#define GL_MATRIX20_ARB                                     0x88d4
+#define GL_MATRIX21_ARB                                     0x88d5
+#define GL_MATRIX22_ARB                                     0x88d6
+#define GL_MATRIX23_ARB                                     0x88d7
+#define GL_MATRIX24_ARB                                     0x88d8
+#define GL_MATRIX25_ARB                                     0x88d9
+#define GL_MATRIX26_ARB                                     0x88da
+#define GL_MATRIX27_ARB                                     0x88db
+#define GL_MATRIX28_ARB                                     0x88dc
+#define GL_MATRIX29_ARB                                     0x88dd
+#define GL_MATRIX30_ARB                                     0x88de
+#define GL_MATRIX31_ARB                                     0x88df
 #endif
-typedef GLboolean (WINE_GLAPI * PGLFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
-typedef void (WINE_GLAPI * PGLFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
-typedef void (WINE_GLAPI * PGLFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers);
-typedef void (WINE_GLAPI * PGLFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers);
-typedef void (WINE_GLAPI * PGLFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (WINE_GLAPI * PGLFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
-typedef GLboolean (WINE_GLAPI * PGLFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
-typedef void (WINE_GLAPI * PGLFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
-typedef void (WINE_GLAPI * PGLFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers);
-typedef void (WINE_GLAPI * PGLFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers);
-typedef GLenum (WINE_GLAPI * PGLFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-typedef void (WINE_GLAPI * PGLFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (WINE_GLAPI * PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size,
+        GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+typedef void (WINE_GLAPI *PGLFNENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void (WINE_GLAPI *PGLFNDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void (WINE_GLAPI *PGLFNPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const GLvoid *string);
+typedef void (WINE_GLAPI *PGLFNBINDPROGRAMARBPROC)(GLenum target, GLuint program);
+typedef void (WINE_GLAPI *PGLFNDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs);
+typedef void (WINE_GLAPI *PGLFNGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs);
+typedef void (WINE_GLAPI *PGLFNPROGRAMENVPARAMETER4DARBPROC)(GLenum target,
+        GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (WINE_GLAPI *PGLFNPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params);
+typedef void (WINE_GLAPI *PGLFNPROGRAMENVPARAMETER4FARBPROC)(GLenum target,
+        GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (WINE_GLAPI *PGLFNPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target,
+        GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (WINE_GLAPI *PGLFNPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params);
+typedef void (WINE_GLAPI *PGLFNPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target,
+        GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (WINE_GLAPI *PGLFNPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, GLvoid *string);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, GLvoid* *pointer);
+typedef GLboolean (WINE_GLAPI *PGLFNISPROGRAMARBPROC)(GLuint program);
+
+/* GL_ARB_vertex_shader */
+#ifndef GL_ARB_vertex_shader
+#define GL_ARB_vertex_shader 1
+#define GL_VERTEX_SHADER_ARB                                0x8b31
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB                0x8b4a
+#define GL_MAX_VARYING_FLOATS_ARB                           0x8b4b
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB               0x8b4c
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB             0x8b4d
+#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB                     0x8b89
+#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB           0x8b8a
+#endif
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat *params);
+typedef GLint (WINE_GLAPI *WINED3D_PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index,
+        GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM4FARBPROC)(GLint location,
+        GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, const GLint *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location,
+        GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location,
+        GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location,
+        GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat *params);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint *params);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETINFOLOGARBPROC)(GLhandleARB obj,
+        GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
+typedef void (WINE_GLAPI *WINED3D_PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
+typedef GLhandleARB (WINE_GLAPI *WINED3D_PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
+typedef void (WINE_GLAPI *WINED3D_PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj,
+        GLsizei count, const GLcharARB* *string, const GLint *length);
+typedef void (WINE_GLAPI *WINED3D_PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
+typedef GLhandleARB (WINE_GLAPI *WINED3D_PFNGLCREATEPROGRAMOBJECTARBPROC)(void);
+typedef void (WINE_GLAPI *WINED3D_PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
+typedef void (WINE_GLAPI *WINED3D_PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void (WINE_GLAPI *WINED3D_PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj);
+typedef void (WINE_GLAPI *WINED3D_PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
+typedef void (WINE_GLAPI *WINED3D_PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj,
+        GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
+typedef GLhandleARB (WINE_GLAPI *WINED3D_PFNGLGETHANDLEARBPROC)(GLenum pname);
+typedef void (WINE_GLAPI *WINED3D_PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj,
+        GLsizei maxLength, GLsizei *length, GLcharARB *source);
+typedef void (WINE_GLAPI *WINED3D_PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj,
+        GLuint index, const GLcharARB *name);
+typedef GLint (WINE_GLAPI *WINED3D_PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name);
+
+/* GL_ATI_fragment_shader */
+#ifndef GL_ATI_fragment_shader
+#define GL_ATI_fragment_shader 1
+#define GL_FRAGMENT_SHADER_ATI                              0x8920
+#define GL_REG_0_ATI                                        0x8921
+#define GL_REG_1_ATI                                        0x8922
+#define GL_REG_2_ATI                                        0x8923
+#define GL_REG_3_ATI                                        0x8924
+#define GL_REG_4_ATI                                        0x8925
+#define GL_REG_5_ATI                                        0x8926
+#define GL_CON_0_ATI                                        0x8941
+#define GL_CON_1_ATI                                        0x8942
+#define GL_CON_2_ATI                                        0x8943
+#define GL_CON_3_ATI                                        0x8944
+#define GL_CON_4_ATI                                        0x8945
+#define GL_CON_5_ATI                                        0x8946
+#define GL_CON_6_ATI                                        0x8947
+#define GL_CON_7_ATI                                        0x8948
+#define GL_MOV_ATI                                          0x8961
+#define GL_ADD_ATI                                          0x8963
+#define GL_MUL_ATI                                          0x8964
+#define GL_SUB_ATI                                          0x8965
+#define GL_DOT3_ATI                                         0x8966
+#define GL_DOT4_ATI                                         0x8967
+#define GL_MAD_ATI                                          0x8968
+#define GL_LERP_ATI                                         0x8969
+#define GL_CND_ATI                                          0x896a
+#define GL_CND0_ATI                                         0x896b
+#define GL_DOT2_ADD_ATI                                     0x896c
+#define GL_SECONDARY_INTERPOLATOR_ATI                       0x896d
+#define GL_SWIZZLE_STR_ATI                                  0x8976
+#define GL_SWIZZLE_STQ_ATI                                  0x8977
+#define GL_SWIZZLE_STR_DR_ATI                               0x8978
+#define GL_SWIZZLE_STQ_DQ_ATI                               0x8979
+#define GL_RED_BIT_ATI                                      0x00000001
+#define GL_GREEN_BIT_ATI                                    0x00000002
+#define GL_BLUE_BIT_ATI                                     0x00000004
+#define GL_2X_BIT_ATI                                       0x00000001
+#define GL_4X_BIT_ATI                                       0x00000002
+#define GL_8X_BIT_ATI                                       0x00000004
+#define GL_HALF_BIT_ATI                                     0x00000008
+#define GL_QUARTER_BIT_ATI                                  0x00000010
+#define GL_EIGHTH_BIT_ATI                                   0x00000020
+#define GL_SATURATE_BIT_ATI                                 0x00000040
+#define GL_2X_BIT_ATI                                       0x00000001
+#define GL_COMP_BIT_ATI                                     0x00000002
+#define GL_NEGATE_BIT_ATI                                   0x00000004
+#define GL_BIAS_BIT_ATI                                     0x00000008
+#endif
+typedef GLuint (WINE_GLAPI *PGLFNGENFRAGMENTSHADERSATI)(GLuint range);
+typedef void (WINE_GLAPI *PGLFNBINDFRAGMENTSHADERATI)(GLuint id);
+typedef void (WINE_GLAPI *PGLFNDELETEFRAGMENTSHADERATI)(GLuint id);
+typedef void (WINE_GLAPI *PGLFNBEGINFRAGMENTSHADERATI)(void);
+typedef void (WINE_GLAPI *PGLFNENDFRAGMENTSHADERATI)(void);
+typedef void (WINE_GLAPI *PGLFNPASSTEXCOORDATI)(GLuint dst, GLuint coord, GLenum swizzle);
+typedef void (WINE_GLAPI *PGLFNSAMPLEMAPATI)(GLuint dst, GLuint interp, GLenum swizzle);
+typedef void (WINE_GLAPI *PGLFNCOLORFRAGMENTOP1ATI)(GLenum op, GLuint dst, GLuint dstMask,
+        GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (WINE_GLAPI *PGLFNCOLORFRAGMENTOP2ATI)(GLenum op, GLuint dst, GLuint dstMask,
+        GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+        GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
+        GLuint arg2Mod);
+typedef void (WINE_GLAPI *PGLFNCOLORFRAGMENTOP3ATI)(GLenum op, GLuint dst, GLuint dstMask,
+        GLuint dstMod, GLuint arg1, GLuint arg1Rep,
+        GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
+        GLuint arg2Mod, GLuint arg3, GLuint arg3Rep,
+        GLuint arg3Mod);
+typedef void (WINE_GLAPI *PGLFNALPHAFRAGMENTOP1ATI)(GLenum op, GLuint dst, GLuint dstMod,
+        GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (WINE_GLAPI *PGLFNALPHAFRAGMENTOP2ATI)(GLenum op, GLuint dst, GLuint dstMod,
+        GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
+        GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (WINE_GLAPI *PGLFNALPHAFRAGMENTOP3ATI)(GLenum op, GLuint dst, GLuint dstMod,
+        GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
+        GLuint arg2, GLuint arg2Rep, GLuint arg2Mod,
+        GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (WINE_GLAPI *PGLFNSETFRAGMENTSHADERCONSTANTATI)(GLuint dst, const GLfloat *value);
+
+/* GL_ATI_separate_stencil */
+#ifndef GL_ATI_separate_stencil
+#define GL_ATI_separate_stencil 1
+#define GL_STENCIL_BACK_FUNC_ATI                            0x8800
+#define GL_STENCIL_BACK_FAIL_ATI                            0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI                 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI                 0x8803
+#endif
+typedef void (WINE_GLAPI *PGLFNSTENCILOPSEPARATEATIPROC)(GLenum, GLenum, GLenum, GLenum);
+typedef void (WINE_GLAPI *PGLFNSTENCILFUNCSEPARATEATIPROC)(GLenum, GLenum, GLint, GLuint);
+
+/* GL_ATI_texture_compression_3dc */
+#ifndef GL_ATI_texture_compression_3dc
+#define GL_ATI_texture_compression_3dc 1
+#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI               0x8837
+#endif
+
+/* GL_ATI_texture_env_combine3 */
+#ifndef GL_ATI_texture_env_combine3
+#define GL_ATI_texture_env_combine3 1
+#define GL_MODULATE_ADD_ATI                                 0x8744
+#define GL_MODULATE_SIGNED_ADD_ATI                          0x8745
+#define GL_MODULATE_SUBTRACT_ATI                            0x8746
+/* #define ONE */
+/* #define ZERO */
+#endif
+
+/* GL_ATI_texture_mirror_once */
+#ifndef GL_ATI_texture_mirror_once
+#define GL_ATI_texture_mirror_once 1
+#define GL_MIRROR_CLAMP_ATI                                 0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI                         0x8743
+#endif
+
+/* GL_EXT_blend_equation_separate */
+typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha);
+
+/* GL_EXT_blend_func_separate */
+#ifndef GL_EXT_blend_func_separate
+#define GL_EXT_blend_func_separate 1
+#define GL_BLEND_DST_RGB_EXT                                0x80c8
+#define GL_BLEND_SRC_RGB_EXT                                0x80c9
+#define GL_BLEND_DST_ALPHA_EXT                              0x80ca
+#define GL_BLEND_SRC_ALPHA_EXT                              0x80cb
+#endif
+typedef void (WINE_GLAPI *PGLFNBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB,
+        GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+/* GL_EXT_fog_coord */
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+#define GL_FOG_COORDINATE_SOURCE_EXT                        0x8450
+#define GL_FOG_COORDINATE_EXT                               0x8451
+#define GL_FRAGMENT_DEPTH_EXT                               0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT                       0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT                    0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT                  0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT                 0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT                         0x8457
+#endif
+typedef void (WINE_GLAPI *PGLFNGLFOGCOORDFEXTPROC)(GLfloat coord);
+typedef void (WINE_GLAPI *PGLFNGLFOGCOORDFVEXTPROC)(const GLfloat *coord);
+typedef void (WINE_GLAPI *PGLFNGLFOGCOORDDEXTPROC)(GLdouble coord);
+typedef void (WINE_GLAPI *PGLFNGLFOGCOORDDVEXTPROC)(const GLdouble *coord);
+typedef void (WINE_GLAPI *PGLFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, GLvoid *data);
+
 /* GL_EXT_framebuffer_blit */
 #ifndef GL_EXT_framebuffer_blit
 #define GL_EXT_framebuffer_blit 1
-#define GL_READ_FRAMEBUFFER_EXT                0x8CA8
-#define GL_DRAW_FRAMEBUFFER_EXT                0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_EXT        0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_EXT        0x8CAA
+#define GL_READ_FRAMEBUFFER_EXT                             0x8ca8
+#define GL_DRAW_FRAMEBUFFER_EXT                             0x8ca9
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT                     0x8ca6
+#define GL_READ_FRAMEBUFFER_BINDING_EXT                     0x8caa
 #endif
-typedef void (WINE_GLAPI * PGLFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (WINE_GLAPI *PGLFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+        GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
 
 /* GL_EXT_framebuffer_multisample */
 #ifndef GL_EXT_framebuffer_multisample
 #define GL_EXT_framebuffer_multisample 1
-#define GL_RENDERBUFFER_SAMPLES_EXT                 0x8cab
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT   0x8d56
-#define GL_MAX_SAMPLES_EXT                          0x8d57
+#define GL_RENDERBUFFER_SAMPLES_EXT                         0x8cab
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT           0x8d56
+#define GL_MAX_SAMPLES_EXT                                  0x8d57
+#endif
+typedef void (WINE_GLAPI *PGLFNRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples,
+        GLenum internalformat, GLsizei width, GLsizei height);
+
+/* GL_EXT_framebuffer_object */
+#ifndef GL_EXT_framebuffer_object
+#define GL_EXT_framebuffer_object 1
+#define GL_FRAMEBUFFER_EXT                                  0x8d40
+#define GL_RENDERBUFFER_EXT                                 0x8d41
+#define GL_STENCIL_INDEX1_EXT                               0x8d46
+#define GL_STENCIL_INDEX4_EXT                               0x8d47
+#define GL_STENCIL_INDEX8_EXT                               0x8d48
+#define GL_STENCIL_INDEX16_EXT                              0x8d49
+#define GL_RENDERBUFFER_WIDTH_EXT                           0x8d42
+#define GL_RENDERBUFFER_HEIGHT_EXT                          0x8d43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT                 0x8d44
+#define GL_RENDERBUFFER_RED_SIZE_EXT                        0x8d50
+#define GL_RENDERBUFFER_GREEN_SIZE_EXT                      0x8d51
+#define GL_RENDERBUFFER_BLUE_SIZE_EXT                       0x8d52
+#define GL_RENDERBUFFER_ALPHA_SIZE_EXT                      0x8d53
+#define GL_RENDERBUFFER_DEPTH_SIZE_EXT                      0x8d54
+#define GL_RENDERBUFFER_STENCIL_SIZE_EXT                    0x8d55
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT           0x8cd0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT           0x8cd1
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT         0x8cd2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8cd3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT    0x8cd4
+#define GL_COLOR_ATTACHMENT0_EXT                            0x8ce0
+#define GL_COLOR_ATTACHMENT1_EXT                            0x8ce1
+#define GL_COLOR_ATTACHMENT2_EXT                            0x8ce2
+#define GL_COLOR_ATTACHMENT3_EXT                            0x8ce3
+#define GL_COLOR_ATTACHMENT4_EXT                            0x8ce4
+#define GL_COLOR_ATTACHMENT5_EXT                            0x8ce5
+#define GL_COLOR_ATTACHMENT6_EXT                            0x8ce6
+#define GL_COLOR_ATTACHMENT7_EXT                            0x8ce7
+#define GL_COLOR_ATTACHMENT8_EXT                            0x8ce8
+#define GL_COLOR_ATTACHMENT9_EXT                            0x8ce9
+#define GL_COLOR_ATTACHMENT10_EXT                           0x8cea
+#define GL_COLOR_ATTACHMENT11_EXT                           0x8ceb
+#define GL_COLOR_ATTACHMENT12_EXT                           0x8cec
+#define GL_COLOR_ATTACHMENT13_EXT                           0x8ced
+#define GL_COLOR_ATTACHMENT14_EXT                           0x8cee
+#define GL_COLOR_ATTACHMENT15_EXT                           0x8cef
+#define GL_DEPTH_ATTACHMENT_EXT                             0x8d00
+#define GL_STENCIL_ATTACHMENT_EXT                           0x8d20
+#define GL_FRAMEBUFFER_COMPLETE_EXT                         0x8cd5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT            0x8cd6
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT    0x8cd7
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT            0x8cd9
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT               0x8cda
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT           0x8cdb
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT           0x8cdc
+#define GL_FRAMEBUFFER_UNSUPPORTED_EXT                      0x8cdd
+#define GL_FRAMEBUFFER_BINDING_EXT                          0x8ca6
+#define GL_RENDERBUFFER_BINDING_EXT                         0x8ca7
+#define GL_MAX_COLOR_ATTACHMENTS_EXT                        0x8cdF
+#define GL_MAX_RENDERBUFFER_SIZE_EXT                        0x84e8
+#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT                0x0506
+#endif
+typedef GLboolean (WINE_GLAPI *PGLFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
+typedef void (WINE_GLAPI *PGLFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
+typedef void (WINE_GLAPI *PGLFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers);
+typedef void (WINE_GLAPI *PGLFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers);
+typedef void (WINE_GLAPI *PGLFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target,
+        GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (WINE_GLAPI *PGLFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (WINE_GLAPI *PGLFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
+typedef void (WINE_GLAPI *PGLFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
+typedef void (WINE_GLAPI *PGLFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers);
+typedef void (WINE_GLAPI *PGLFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers);
+typedef GLenum (WINE_GLAPI *PGLFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment,
+        GLenum textarget, GLuint texture, GLint level);
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment,
+        GLenum textarget, GLuint texture, GLint level);
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment,
+        GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment,
+        GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (WINE_GLAPI *PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target,
+        GLenum attachment, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
+
+/* GL_EXT_gpu_program_parameters */
+#ifndef GL_EXT_gpu_program_parameters
+#define GL_EXT_gpu_program_parameters 1
+typedef void (WINE_GLAPI *PGLFNPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target,
+        GLuint index, GLsizei count, const float *params);
+typedef void (WINE_GLAPI *PGLFNPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target,
+        GLuint index, GLsizei count, const float *params);
 #endif
-typedef void (WINE_GLAPI * PGLFNRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 
 /* GL_EXT_packed_depth_stencil */
 #ifndef GL_EXT_packed_depth_stencil
 #define GL_EXT_packed_depth_stencil 1
-#define GL_DEPTH_STENCIL_EXT                0x84f9
-#define GL_UNSIGNED_INT_24_8_EXT            0x84fa
-#define GL_DEPTH24_STENCIL8_EXT             0x88f0
-#define GL_TEXTURE_STENCIL_SIZE_EXT         0x88f1
+#define GL_DEPTH_STENCIL_EXT                                0x84f9
+#define GL_UNSIGNED_INT_24_8_EXT                            0x84fa
+#define GL_DEPTH24_STENCIL8_EXT                             0x88f0
+#define GL_TEXTURE_STENCIL_SIZE_EXT                         0x88f1
 #endif
 
-/* GL_EXT_secondary_color */
-#ifndef GL_EXT_secondary_color
-#define GL_EXT_secondary_color 1
-#define GL_COLOR_SUM_EXT                     0x8458
-#define GL_CURRENT_SECONDARY_COLOR_EXT       0x8459
-#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT    0x845A
-#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT    0x845B
-#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT  0x845C
-#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
-#define GL_SECONDARY_COLOR_ARRAY_EXT         0x845E
-#endif
-typedef void (WINE_GLAPI * PGLFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
-typedef void (WINE_GLAPI * PGLFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
-typedef void (WINE_GLAPI * PGLFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
-typedef void (WINE_GLAPI * PGLFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
 /* GL_EXT_paletted_texture */
 #ifndef GL_EXT_paletted_texture
 #define GL_EXT_paletted_texture 1
-#define GL_COLOR_INDEX1_EXT               0x80E2
-#define GL_COLOR_INDEX2_EXT               0x80E3
-#define GL_COLOR_INDEX4_EXT               0x80E4
-#define GL_COLOR_INDEX8_EXT               0x80E5
-#define GL_COLOR_INDEX12_EXT              0x80E6
-#define GL_COLOR_INDEX16_EXT              0x80E7
-#define GL_TEXTURE_INDEX_SIZE_EXT         0x80ED
+#define GL_COLOR_INDEX1_EXT                                 0x80e2
+#define GL_COLOR_INDEX2_EXT                                 0x80e3
+#define GL_COLOR_INDEX4_EXT                                 0x80e4
+#define GL_COLOR_INDEX8_EXT                                 0x80e5
+#define GL_COLOR_INDEX12_EXT                                0x80e6
+#define GL_COLOR_INDEX16_EXT                                0x80e7
+#define GL_TEXTURE_INDEX_SIZE_EXT                           0x80ed
 #endif
-typedef void (WINE_GLAPI * PGLFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (WINE_GLAPI *PGLFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat,
+        GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+
 /* GL_EXT_point_parameters */
 #ifndef GL_EXT_point_parameters
 #define GL_EXT_point_parameters 1
-#define GL_POINT_SIZE_MIN_EXT             0x8126
-#define GL_POINT_SIZE_MAX_EXT             0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_EXT  0x8128
-#define GL_DISTANCE_ATTENUATION_EXT       0x8129
+#define GL_POINT_SIZE_MIN_EXT                               0x8126
+#define GL_POINT_SIZE_MAX_EXT                               0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT                    0x8128
+#define GL_DISTANCE_ATTENUATION_EXT                         0x8129
 #endif
-typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
-typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param);
+typedef void (WINE_GLAPI *PGLFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat *params);
 
 /* GL_EXT_provoking_vertex */
 #ifndef GL_EXT_provoking_vertex
@@ -2109,1946 +3094,1335 @@ typedef void (WINE_GLAPI * PGLFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const
 #define GL_PROVOKING_VERTEX_EXT                             0x8e4f
 #define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT     0x8e4c
 #endif
-typedef void (WINE_GLAPI * PGLFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode);
+typedef void (WINE_GLAPI *PGLFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode);
+
+/* GL_EXT_secondary_color */
+#ifndef GL_EXT_secondary_color
+#define GL_EXT_secondary_color 1
+#define GL_COLOR_SUM_EXT                                    0x8458
+#define GL_CURRENT_SECONDARY_COLOR_EXT                      0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT                   0x845a
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT                   0x845b
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT                 0x845c
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT                0x845d
+#define GL_SECONDARY_COLOR_ARRAY_EXT                        0x845e
+#endif
+typedef void (WINE_GLAPI *PGLFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue);
+typedef void (WINE_GLAPI *PGLFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat *v);
+typedef void (WINE_GLAPI *PGLFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue);
+typedef void (WINE_GLAPI *PGLFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte *v);
+typedef void (WINE_GLAPI *PGLFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type,
+        GLsizei stride, const GLvoid *pointer);
+
+/* GL_EXT_stencil_two_side */
+#ifndef GL_EXT_stencil_two_side
+#define GL_EXT_stencil_two_side 1
+#define GL_STENCIL_TEST_TWO_SIDE_EXT                        0x8910
+#define GL_ACTIVE_STENCIL_FACE_EXT                          0x8911
+#endif
+typedef void (WINE_GLAPI *PGLFNACTIVESTENCILFACEEXTPROC)(GLenum face);
+
+/* GL_EXT_stencil_wrap */
+#ifndef GL_EXT_stencil_wrap
+#define GL_EXT_stencil_wrap 1
+#define GL_INCR_WRAP_EXT                                    0x8507
+#define GL_DECR_WRAP_EXT                                    0x8508
+#endif
+
+/* GL_EXT_texture */
+#ifndef GL_EXT_texture
+#define GL_EXT_texture 1
+#define GL_ALPHA4_EXT                                       0x803b
+#define GL_ALPHA8_EXT                                       0x803c
+#define GL_ALPHA12_EXT                                      0x803d
+#define GL_ALPHA16_EXT                                      0x803e
+#define GL_LUMINANCE4_EXT                                   0x803f
+#define GL_LUMINANCE8_EXT                                   0x8040
+#define GL_LUMINANCE12_EXT                                  0x8041
+#define GL_LUMINANCE16_EXT                                  0x8042
+#define GL_LUMINANCE4_ALPHA4_EXT                            0x8043
+#define GL_LUMINANCE6_ALPHA2_EXT                            0x8044
+#define GL_LUMINANCE8_ALPHA8_EXT                            0x8045
+#define GL_LUMINANCE12_ALPHA4_EXT                           0x8046
+#define GL_LUMINANCE12_ALPHA12_EXT                          0x8047
+#define GL_LUMINANCE16_ALPHA16_EXT                          0x8048
+#define GL_INTENSITY_EXT                                    0x8049
+#define GL_INTENSITY4_EXT                                   0x804a
+#define GL_INTENSITY8_EXT                                   0x804b
+#define GL_INTENSITY12_EXT                                  0x804c
+#define GL_INTENSITY16_EXT                                  0x804d
+#define GL_RGB2_EXT                                         0x804e
+#define GL_RGB4_EXT                                         0x804f
+#define GL_RGB5_EXT                                         0x8050
+#define GL_RGB8_EXT                                         0x8051
+#define GL_RGB10_EXT                                        0x8052
+#define GL_RGB12_EXT                                        0x8053
+#define GL_RGB16_EXT                                        0x8054
+#define GL_RGBA2_EXT                                        0x8055
+#define GL_RGBA4_EXT                                        0x8056
+#define GL_RGB5_A1_EXT                                      0x8057
+#define GL_RGBA8_EXT                                        0x8058
+#define GL_RGB10_A2_EXT                                     0x8059
+#define GL_RGBA12_EXT                                       0x805a
+#define GL_RGBA16_EXT                                       0x805b
+#define GL_TEXTURE_RED_SIZE_EXT                             0x805c
+#define GL_TEXTURE_GREEN_SIZE_EXT                           0x805d
+#define GL_TEXTURE_BLUE_SIZE_EXT                            0x805e
+#define GL_TEXTURE_ALPHA_SIZE_EXT                           0x805f
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT                       0x8060
+#define GL_TEXTURE_INTENSITY_SIZE_EXT                       0x8061
+#define GL_REPLACE_EXT                                      0x8062
+#define GL_PROXY_TEXTURE_1D_EXT                             0x8063
+#define GL_PROXY_TEXTURE_2D_EXT                             0x8064
+#define GL_TEXTURE_TOO_LARGE_EXT                            0x8065
+#endif
 
 /* GL_EXT_texture3D */
 #ifndef GL_EXT_texture3D
 #define GL_EXT_texture3D 1
-#define GL_PACK_SKIP_IMAGES_EXT           0x806B
-#define GL_PACK_IMAGE_HEIGHT_EXT          0x806C
-#define GL_UNPACK_SKIP_IMAGES_EXT         0x806D
-#define GL_UNPACK_IMAGE_HEIGHT_EXT        0x806E
-#define GL_TEXTURE_3D_EXT                 0x806F
-#define GL_PROXY_TEXTURE_3D_EXT           0x8070
-#define GL_TEXTURE_DEPTH_EXT              0x8071
-#define GL_TEXTURE_WRAP_R_EXT             0x8072
-#define GL_MAX_3D_TEXTURE_SIZE_EXT        0x8073
+#define GL_PACK_SKIP_IMAGES_EXT                             0x806b
+#define GL_PACK_IMAGE_HEIGHT_EXT                            0x806c
+#define GL_UNPACK_SKIP_IMAGES_EXT                           0x806d
+#define GL_UNPACK_IMAGE_HEIGHT_EXT                          0x806e
+#define GL_TEXTURE_3D_EXT                                   0x806f
+#define GL_PROXY_TEXTURE_3D_EXT                             0x8070
+#define GL_TEXTURE_DEPTH_EXT                                0x8071
+#define GL_TEXTURE_WRAP_R_EXT                               0x8072
+#define GL_MAX_3D_TEXTURE_SIZE_EXT                          0x8073
 #endif
-typedef void (WINE_GLAPI * PGLFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (WINE_GLAPI * PGLFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (WINE_GLAPI *PGLFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level, GLenum internalformat,
+        GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (WINE_GLAPI *PGLFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+
+/* GL_EXT_texture_compression_rgtc */
+#ifndef GL_EXT_texture_compression_rgtc
+#define GL_EXT_texture_compression_rgtc 1
+#define GL_COMPRESSED_RED_RGTC1_EXT                         0x8dbb
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT                  0x8dbc
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT                   0x8dbd
+#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT            0x8dbe
+#endif
+
+/* GL_EXT_texture_compression_s3tc */
+#ifndef GL_EXT_texture_compression_s3tc
+#define GL_EXT_texture_compression_s3tc 1
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                     0x83f0
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                    0x83f1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT                    0x83f2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT                    0x83f3
+#endif
+typedef void (WINE_GLAPI *PGLFNCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat,
+        GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat,
+        GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat,
+        GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level,
+        GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
+        GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset,
+        GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (WINE_GLAPI *PGLFNGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img);
+
 /* GL_EXT_texture_env_combine */
 #ifndef GL_EXT_texture_env_combine
 #define GL_EXT_texture_env_combine 1
-#define GL_COMBINE_EXT                    0x8570
-#define GL_COMBINE_RGB_EXT                0x8571
-#define GL_COMBINE_ALPHA_EXT              0x8572
-#define GL_RGB_SCALE_EXT                  0x8573
-#define GL_ADD_SIGNED_EXT                 0x8574
-#define GL_INTERPOLATE_EXT                0x8575
-#define GL_SUBTRACT_EXT                   0x84E7
-#define GL_CONSTANT_EXT                   0x8576
-#define GL_PRIMARY_COLOR_EXT              0x8577
-#define GL_PREVIOUS_EXT                   0x8578
-#define GL_SOURCE0_RGB_EXT                0x8580
-#define GL_SOURCE1_RGB_EXT                0x8581
-#define GL_SOURCE2_RGB_EXT                0x8582
-#define GL_SOURCE3_RGB_EXT                0x8583
-#define GL_SOURCE4_RGB_EXT                0x8584
-#define GL_SOURCE5_RGB_EXT                0x8585
-#define GL_SOURCE6_RGB_EXT                0x8586
-#define GL_SOURCE7_RGB_EXT                0x8587
-#define GL_SOURCE0_ALPHA_EXT              0x8588
-#define GL_SOURCE1_ALPHA_EXT              0x8589
-#define GL_SOURCE2_ALPHA_EXT              0x858A
-#define GL_SOURCE3_ALPHA_EXT              0x858B
-#define GL_SOURCE4_ALPHA_EXT              0x858C
-#define GL_SOURCE5_ALPHA_EXT              0x858D
-#define GL_SOURCE6_ALPHA_EXT              0x858E
-#define GL_SOURCE7_ALPHA_EXT              0x858F
-#define GL_OPERAND0_RGB_EXT               0x8590
-#define GL_OPERAND1_RGB_EXT               0x8591
-#define GL_OPERAND2_RGB_EXT               0x8592
-#define GL_OPERAND3_RGB_EXT               0x8593
-#define GL_OPERAND4_RGB_EXT               0x8594
-#define GL_OPERAND5_RGB_EXT               0x8595
-#define GL_OPERAND6_RGB_EXT               0x8596
-#define GL_OPERAND7_RGB_EXT               0x8597
-#define GL_OPERAND0_ALPHA_EXT             0x8598
-#define GL_OPERAND1_ALPHA_EXT             0x8599
-#define GL_OPERAND2_ALPHA_EXT             0x859A
-#define GL_OPERAND3_ALPHA_EXT             0x859B
-#define GL_OPERAND4_ALPHA_EXT             0x859C
-#define GL_OPERAND5_ALPHA_EXT             0x859D
-#define GL_OPERAND6_ALPHA_EXT             0x859E
-#define GL_OPERAND7_ALPHA_EXT             0x859F
+#define GL_COMBINE_EXT                                      0x8570
+#define GL_COMBINE_RGB_EXT                                  0x8571
+#define GL_COMBINE_ALPHA_EXT                                0x8572
+#define GL_RGB_SCALE_EXT                                    0x8573
+#define GL_ADD_SIGNED_EXT                                   0x8574
+#define GL_INTERPOLATE_EXT                                  0x8575
+#define GL_SUBTRACT_EXT                                     0x84e7
+#define GL_CONSTANT_EXT                                     0x8576
+#define GL_PRIMARY_COLOR_EXT                                0x8577
+#define GL_PREVIOUS_EXT                                     0x8578
+#define GL_SOURCE0_RGB_EXT                                  0x8580
+#define GL_SOURCE1_RGB_EXT                                  0x8581
+#define GL_SOURCE2_RGB_EXT                                  0x8582
+#define GL_SOURCE3_RGB_EXT                                  0x8583
+#define GL_SOURCE4_RGB_EXT                                  0x8584
+#define GL_SOURCE5_RGB_EXT                                  0x8585
+#define GL_SOURCE6_RGB_EXT                                  0x8586
+#define GL_SOURCE7_RGB_EXT                                  0x8587
+#define GL_SOURCE0_ALPHA_EXT                                0x8588
+#define GL_SOURCE1_ALPHA_EXT                                0x8589
+#define GL_SOURCE2_ALPHA_EXT                                0x858a
+#define GL_SOURCE3_ALPHA_EXT                                0x858b
+#define GL_SOURCE4_ALPHA_EXT                                0x858c
+#define GL_SOURCE5_ALPHA_EXT                                0x858d
+#define GL_SOURCE6_ALPHA_EXT                                0x858e
+#define GL_SOURCE7_ALPHA_EXT                                0x858f
+#define GL_OPERAND0_RGB_EXT                                 0x8590
+#define GL_OPERAND1_RGB_EXT                                 0x8591
+#define GL_OPERAND2_RGB_EXT                                 0x8592
+#define GL_OPERAND3_RGB_EXT                                 0x8593
+#define GL_OPERAND4_RGB_EXT                                 0x8594
+#define GL_OPERAND5_RGB_EXT                                 0x8595
+#define GL_OPERAND6_RGB_EXT                                 0x8596
+#define GL_OPERAND7_RGB_EXT                                 0x8597
+#define GL_OPERAND0_ALPHA_EXT                               0x8598
+#define GL_OPERAND1_ALPHA_EXT                               0x8599
+#define GL_OPERAND2_ALPHA_EXT                               0x859a
+#define GL_OPERAND3_ALPHA_EXT                               0x859b
+#define GL_OPERAND4_ALPHA_EXT                               0x859c
+#define GL_OPERAND5_ALPHA_EXT                               0x859d
+#define GL_OPERAND6_ALPHA_EXT                               0x859e
+#define GL_OPERAND7_ALPHA_EXT                               0x859f
 #endif
+
 /* GL_EXT_texture_env_dot3 */
 #ifndef GL_EXT_texture_env_dot3
 #define GL_EXT_texture_env_dot3 1
-#define GL_DOT3_RGB_EXT                   0x8740
-#define GL_DOT3_RGBA_EXT                  0x8741
+#define GL_DOT3_RGB_EXT                                     0x8740
+#define GL_DOT3_RGBA_EXT                                    0x8741
 #endif
-/* GL_EXT_texture_lod_bias */
-#ifndef GL_EXT_texture_lod_bias
-#define GL_EXT_texture_lod_bias 1
-#define GL_MAX_TEXTURE_LOD_BIAS_EXT       0x84FD
-#define GL_TEXTURE_FILTER_CONTROL_EXT     0x8500
-#define GL_TEXTURE_LOD_BIAS_EXT           0x8501
-#endif
-/* GL_ARB_texture_border_clamp */
-#ifndef GL_ARB_texture_border_clamp
-#define GL_ARB_texture_border_clamp 1
-#define GL_CLAMP_TO_BORDER_ARB            0x812D
+
+/* GL_EXT_texture_env_dot3 */
+#ifndef GL_EXT_texture_env_dot3
+#define GL_EXT_texture_env_dot3 1
+#define GL_DOT3_RGB_EXT                                     0x8740
+#define GL_DOT3_RGBA_EXT                                    0x8741
 #endif
+
 /* GL_EXT_texture_filter_anisotropic */
 #ifndef GL_EXT_texture_filter_anisotropic
 #define GL_EXT_texture_filter_anisotropic 1
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT                       0x84fe
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                   0x84ff
 #endif
-/* GL_ARB_texture_mirrored_repeat (full support GL1.4) */
-#ifndef GL_ARB_texture_mirrored_repeat
-#define GL_ARB_texture_mirrored_repeat 1
-#define GL_MIRRORED_REPEAT_ARB            0x8370
-#endif
-/* GL_ATI_texture_mirror_once */
-#ifndef GL_ATI_texture_mirror_once
-#define GL_ATI_texture_mirror_once 1
-#define GL_MIRROR_CLAMP_ATI               0x8742
-#define GL_MIRROR_CLAMP_TO_EDGE_ATI       0x8743
-#endif
-/* GL_ARB_texture_env_dot3 */
-#ifndef GL_ARB_texture_env_dot3
-#define GL_ARB_texture_env_dot3 1
-#define GL_DOT3_RGB_ARB                   0x86AE
-#define GL_DOT3_RGBA_ARB                  0x86AF
-#endif
-/* GL_EXT_texture_env_dot3 */
-#ifndef GL_EXT_texture_env_dot3
-#define GL_EXT_texture_env_dot3 1
-#define GL_DOT3_RGB_EXT                   0x8740
-#define GL_DOT3_RGBA_EXT                  0x8741
+
+/* GL_EXT_texture_lod_bias */
+#ifndef GL_EXT_texture_lod_bias
+#define GL_EXT_texture_lod_bias 1
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT                         0x84fd
+#define GL_TEXTURE_FILTER_CONTROL_EXT                       0x8500
+#define GL_TEXTURE_LOD_BIAS_EXT                             0x8501
 #endif
+
 /* GL_EXT_texture_sRGB */
 #ifndef GL_EXT_texture_sRGB
 #define GL_EXT_texture_sRGB 1
-#define GL_SRGB_EXT                            0x8C40
-#define GL_SRGB8_EXT                           0x8C41
-#define GL_SRGB_ALPHA_EXT                      0x8C42
-#define GL_SRGB8_ALPHA8_EXT                    0x8C43
-#define GL_SLUMINANCE_ALPHA_EXT                0x8C44
-#define GL_SLUMINANCE8_ALPHA8_EXT              0x8C45
-#define GL_SLUMINANCE_EXT                      0x8C46
-#define GL_SLUMINANCE8_EXT                     0x8C47
-#define GL_COMPRESSED_SRGB_EXT                 0x8C48
-#define GL_COMPRESSED_SRGB_ALPHA_EXT           0x8C49
-#define GL_COMPRESSED_SLUMINANCE_EXT           0x8C4A
-#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT     0x8C4B
-#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT       0x8C4C
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
-#endif
-/* GL_ARB_texture_float */
-#ifndef GL_ARB_texture_float
-#define GL_ARB_texture_float 1
-#define GL_RGBA32F_ARB                    0x8814
-#define GL_RGB32F_ARB                     0x8815
-#define GL_RGBA16F_ARB                    0x881A
-#define GL_RGB16F_ARB                     0x881B
-#endif
-/* GL_ARB_texture_rg */
-#ifndef GL_ARB_texture_rg
-#define GL_RG                             0x8227
-#define GL_RG_INTEGER                     0x8228
-#define GL_R8                             0x8229
-#define GL_R16                            0x822A
-#define GL_RG8                            0x822B
-#define GL_RG16                           0x822C
-#define GL_R16F                           0x822D
-#define GL_R32F                           0x822E
-#define GL_RG16F                          0x822F
-#define GL_RG32F                          0x8230
-#define GL_R8I                            0x8231
-#define GL_R8UI                           0x8232
-#define GL_R16I                           0x8233
-#define GL_R16UI                          0x8234
-#define GL_R32I                           0x8235
-#define GL_R32UI                          0x8236
-#define GL_RG8I                           0x8237
-#define GL_RG8UI                          0x8238
-#define GL_RG16I                          0x8239
-#define GL_RG16UI                         0x823A
-#define GL_RG32I                          0x823B
-#define GL_RG32UI                         0x823C
+#define GL_SRGB_EXT                                         0x8c40
+#define GL_SRGB8_EXT                                        0x8c41
+#define GL_SRGB_ALPHA_EXT                                   0x8c42
+#define GL_SRGB8_ALPHA8_EXT                                 0x8c43
+#define GL_SLUMINANCE_ALPHA_EXT                             0x8c44
+#define GL_SLUMINANCE8_ALPHA8_EXT                           0x8c45
+#define GL_SLUMINANCE_EXT                                   0x8c46
+#define GL_SLUMINANCE8_EXT                                  0x8c47
+#define GL_COMPRESSED_SRGB_EXT                              0x8c48
+#define GL_COMPRESSED_SRGB_ALPHA_EXT                        0x8c49
+#define GL_COMPRESSED_SLUMINANCE_EXT                        0x8c4a
+#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT                  0x8c4b
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT                    0x8c4c
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT              0x8c4d
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT              0x8c4e
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT              0x8c4f
 #endif
+
 /* GL_EXT_texture_swizzle */
 #ifndef GL_EXT_texture_swizzle
-#define GL_TEXTURE_SWIZZLE_R_EXT          0x8E42
-#define GL_TEXTURE_SWIZZLE_G_EXT          0x8E43
-#define GL_TEXTURE_SWIZZLE_B_EXT          0x8E44
-#define GL_TEXTURE_SWIZZLE_A_EXT          0x8E45
-#define GL_TEXTURE_SWIZZLE_RGBA_EXT       0x8E46
+#define GL_EXT_texture_swizzle 1
+#define GL_TEXTURE_SWIZZLE_R_EXT                            0x8e42
+#define GL_TEXTURE_SWIZZLE_G_EXT                            0x8e43
+#define GL_TEXTURE_SWIZZLE_B_EXT                            0x8e44
+#define GL_TEXTURE_SWIZZLE_A_EXT                            0x8e45
+#define GL_TEXTURE_SWIZZLE_RGBA_EXT                         0x8e46
 #endif
-/* GL_ARB_half_float_pixel */
-#ifndef GL_ARB_half_float_pixel
-#define GL_ARB_half_float_pixel
-#define GL_HALF_FLOAT_ARB                 0x140B
-#endif
-/* GL_ARB_vertex_program */
-#ifndef GL_ARB_vertex_program
-#define GL_ARB_vertex_program 1
-#define GL_VERTEX_PROGRAM_ARB             0x8620
-#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB  0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB    0x8643
-#define GL_COLOR_SUM_ARB                  0x8458
-#define GL_PROGRAM_FORMAT_ASCII_ARB       0x8875
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB   0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB   0x8625
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
-#define GL_CURRENT_VERTEX_ATTRIB_ARB      0x8626
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
-#define GL_PROGRAM_LENGTH_ARB             0x8627
-#define GL_PROGRAM_FORMAT_ARB             0x8876
-#define GL_PROGRAM_BINDING_ARB            0x8677
-#define GL_PROGRAM_INSTRUCTIONS_ARB       0x88A0
-#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB   0x88A1
-#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
-#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
-#define GL_PROGRAM_TEMPORARIES_ARB        0x88A4
-#define GL_MAX_PROGRAM_TEMPORARIES_ARB    0x88A5
-#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
-#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
-#define GL_PROGRAM_PARAMETERS_ARB         0x88A8
-#define GL_MAX_PROGRAM_PARAMETERS_ARB     0x88A9
-#define GL_PROGRAM_NATIVE_PARAMETERS_ARB  0x88AA
-#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
-#define GL_PROGRAM_ATTRIBS_ARB            0x88AC
-#define GL_MAX_PROGRAM_ATTRIBS_ARB        0x88AD
-#define GL_PROGRAM_NATIVE_ATTRIBS_ARB     0x88AE
-#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
-#define GL_PROGRAM_ADDRESS_REGISTERS_ARB  0x88B0
-#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
-#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
-#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
-#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
-#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
-#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
-#define GL_PROGRAM_STRING_ARB             0x8628
-#define GL_PROGRAM_ERROR_POSITION_ARB     0x864B
-#define GL_CURRENT_MATRIX_ARB             0x8641
-#define GL_TRANSPOSE_CURRENT_MATRIX_ARB   0x88B7
-#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
-#define GL_MAX_VERTEX_ATTRIBS_ARB         0x8869
-#define GL_MAX_PROGRAM_MATRICES_ARB       0x862F
-#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
-#define GL_PROGRAM_ERROR_STRING_ARB       0x8874
-#define GL_MATRIX0_ARB                    0x88C0
-#define GL_MATRIX1_ARB                    0x88C1
-#define GL_MATRIX2_ARB                    0x88C2
-#define GL_MATRIX3_ARB                    0x88C3
-#define GL_MATRIX4_ARB                    0x88C4
-#define GL_MATRIX5_ARB                    0x88C5
-#define GL_MATRIX6_ARB                    0x88C6
-#define GL_MATRIX7_ARB                    0x88C7
-#define GL_MATRIX8_ARB                    0x88C8
-#define GL_MATRIX9_ARB                    0x88C9
-#define GL_MATRIX10_ARB                   0x88CA
-#define GL_MATRIX11_ARB                   0x88CB
-#define GL_MATRIX12_ARB                   0x88CC
-#define GL_MATRIX13_ARB                   0x88CD
-#define GL_MATRIX14_ARB                   0x88CE
-#define GL_MATRIX15_ARB                   0x88CF
-#define GL_MATRIX16_ARB                   0x88D0
-#define GL_MATRIX17_ARB                   0x88D1
-#define GL_MATRIX18_ARB                   0x88D2
-#define GL_MATRIX19_ARB                   0x88D3
-#define GL_MATRIX20_ARB                   0x88D4
-#define GL_MATRIX21_ARB                   0x88D5
-#define GL_MATRIX22_ARB                   0x88D6
-#define GL_MATRIX23_ARB                   0x88D7
-#define GL_MATRIX24_ARB                   0x88D8
-#define GL_MATRIX25_ARB                   0x88D9
-#define GL_MATRIX26_ARB                   0x88DA
-#define GL_MATRIX27_ARB                   0x88DB
-#define GL_MATRIX28_ARB                   0x88DC
-#define GL_MATRIX29_ARB                   0x88DD
-#define GL_MATRIX30_ARB                   0x88DE
-#define GL_MATRIX31_ARB                   0x88DF
-#endif
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
-typedef void (WINE_GLAPI * PGLFNENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
-typedef void (WINE_GLAPI * PGLFNDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
-typedef void (WINE_GLAPI * PGLFNPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
-typedef void (WINE_GLAPI * PGLFNBINDPROGRAMARBPROC) (GLenum target, GLuint program);
-typedef void (WINE_GLAPI * PGLFNDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
-typedef void (WINE_GLAPI * PGLFNGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
-typedef void (WINE_GLAPI * PGLFNPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (WINE_GLAPI * PGLFNPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
-typedef void (WINE_GLAPI * PGLFNPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (WINE_GLAPI * PGLFNPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (WINE_GLAPI * PGLFNPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
-typedef void (WINE_GLAPI * PGLFNPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (WINE_GLAPI * PGLFNPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (WINE_GLAPI * PGLFNISPROGRAMARBPROC) (GLuint program);
-#ifndef GL_ARB_fragment_program
-#define GL_ARB_fragment_program 1
-#define GL_FRAGMENT_PROGRAM_ARB           0x8804
-#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB   0x8805
-#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB   0x8806
-#define GL_PROGRAM_TEX_INDIRECTIONS_ARB   0x8807
-#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
-#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
-#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
-#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
-#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
-#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
-#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
-#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
-#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
-#define GL_MAX_TEXTURE_COORDS_ARB         0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB    0x8872
-/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */
-#endif
-/* GL_ARB_multisample */
-#ifndef GL_ARB_multisample
-#define GL_ARB_multisample 1
-#define GL_MULTISAMPLE_ARB                0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB   0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_ARB        0x809F
-#define GL_SAMPLE_COVERAGE_ARB            0x80A0
-#define GL_SAMPLE_BUFFERS_ARB             0x80A8
-#define GL_SAMPLES_ARB                    0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE_ARB      0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT_ARB     0x80AB
-#define GL_MULTISAMPLE_BIT_ARB            0x20000000
-#endif
-typedef void (WINE_GLAPI * WINED3D_PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
-/* GL_ARB_vertex_buffer_object */
-#ifndef GL_ARB_vertex_buffer_object
-#define GL_ARB_vertex_buffer_object 1
-#define GL_BUFFER_SIZE_ARB                0x8764
-#define GL_BUFFER_USAGE_ARB               0x8765
-#define GL_ARRAY_BUFFER_ARB               0x8892
-#define GL_ELEMENT_ARRAY_BUFFER_ARB       0x8893
-#define GL_ARRAY_BUFFER_BINDING_ARB       0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB  0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB  0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB   0x8898
-#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB   0x8899
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB   0x889A
-#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB       0x889B
-#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
-#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB  0x889D
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB          0x889E
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB   0x889F
-#define GL_READ_ONLY_ARB                  0x88B8
-#define GL_WRITE_ONLY_ARB                 0x88B9
-#define GL_READ_WRITE_ARB                 0x88BA
-#define GL_BUFFER_ACCESS_ARB              0x88BB
-#define GL_BUFFER_MAPPED_ARB              0x88BC
-#define GL_BUFFER_MAP_POINTER_ARB         0x88BD
-#define GL_STREAM_DRAW_ARB                0x88E0
-#define GL_STREAM_READ_ARB                0x88E1
-#define GL_STREAM_COPY_ARB                0x88E2
-#define GL_STATIC_DRAW_ARB                0x88E4
-#define GL_STATIC_READ_ARB                0x88E5
-#define GL_STATIC_COPY_ARB                0x88E6
-#define GL_DYNAMIC_DRAW_ARB               0x88E8
-#define GL_DYNAMIC_READ_ARB               0x88E9
-#define GL_DYNAMIC_COPY_ARB               0x88EA
-#endif
-typedef void (WINE_GLAPI * PGLFNBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
-typedef void (WINE_GLAPI * PGLFNDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
-typedef void (WINE_GLAPI * PGLFNGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
-typedef GLboolean (WINE_GLAPI * PGLFNISBUFFERARBPROC) (GLuint buffer);
-typedef void (WINE_GLAPI * PGLFNBUFFERDATAARBPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-typedef void (WINE_GLAPI * PGLFNBUFFERSUBDATAARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
-typedef GLvoid* (WINE_GLAPI * PGLFNMAPBUFFERARBPROC) (GLenum target, GLenum access);
-typedef GLboolean (WINE_GLAPI * PGLFNUNMAPBUFFERARBPROC) (GLenum target);
-typedef void (WINE_GLAPI * PGLFNGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
-/* GL_EXT_blend_equation_separate */
-typedef void (WINE_GLAPI * PGLFNBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-/* GL_EXT_blend_func_separate */
-#ifndef GL_EXT_blend_func_separate
-#define GL_BLEND_DST_RGB_EXT              0x80C8
-#define GL_BLEND_SRC_RGB_EXT              0x80C9
-#define GL_BLEND_DST_ALPHA_EXT            0x80CA
-#define GL_BLEND_SRC_ALPHA_EXT            0x80CB
-#endif
-typedef void (WINE_GLAPI * PGLFNBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
-/* GL_EXT_fog_coord */
-#ifndef GL_EXT_fog_coord
-#define GL_EXT_fog_coord 1
-#define GL_FOG_COORDINATE_SOURCE_EXT            0x8450
-#define GL_FOG_COORDINATE_EXT                   0x8451
-#define GL_FRAGMENT_DEPTH_EXT                   0x8452
-#define GL_CURRENT_FOG_COORDINATE_EXT           0x8453
-#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT        0x8454
-#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT      0x8455
-#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT     0x8456
-#define GL_FOG_COORDINATE_ARRAY_EXT             0x8457
-#endif /* GL_EXT_fog_coord */
-typedef void (WINE_GLAPI * PGLFNGLFOGCOORDFEXTPROC) (GLfloat coord);
-typedef void (WINE_GLAPI * PGLFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
-typedef void (WINE_GLAPI * PGLFNGLFOGCOORDDEXTPROC) (GLdouble coord);
-typedef void (WINE_GLAPI * PGLFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
-typedef void (WINE_GLAPI * PGLFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, GLvoid *data);
-/* GL_ARB_shader_objects (GLSL) */
-#ifndef GL_ARB_shader_objects
-#define GL_ARB_shader_objects 1
-typedef char GLcharARB;
-typedef unsigned int GLhandleARB;
-#define GL_PROGRAM_OBJECT_ARB                   0x8B40
-#define GL_OBJECT_TYPE_ARB                      0x8B4E
-#define GL_OBJECT_SUBTYPE_ARB                   0x8B4F
-#define GL_OBJECT_DELETE_STATUS_ARB             0x8B80
-#define GL_OBJECT_COMPILE_STATUS_ARB            0x8B81
-#define GL_OBJECT_LINK_STATUS_ARB               0x8B82
-#define GL_OBJECT_VALIDATE_STATUS_ARB           0x8B83
-#define GL_OBJECT_INFO_LOG_LENGTH_ARB           0x8B84
-#define GL_OBJECT_ATTACHED_OBJECTS_ARB          0x8B85
-#define GL_OBJECT_ACTIVE_UNIFORMS_ARB           0x8B86
-#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
-#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB      0x8B88
-#define GL_SHADER_OBJECT_ARB                    0x8B48
-#define GL_FLOAT_VEC2_ARB                       0x8B50
-#define GL_FLOAT_VEC3_ARB                       0x8B51
-#define GL_FLOAT_VEC4_ARB                       0x8B52
-#define GL_INT_VEC2_ARB                         0x8B53
-#define GL_INT_VEC3_ARB                         0x8B54
-#define GL_INT_VEC4_ARB                         0x8B55
-#define GL_BOOL_ARB                             0x8B56
-#define GL_BOOL_VEC2_ARB                        0x8B57
-#define GL_BOOL_VEC3_ARB                        0x8B58
-#define GL_BOOL_VEC4_ARB                        0x8B59
-#define GL_FLOAT_MAT2_ARB                       0x8B5A
-#define GL_FLOAT_MAT3_ARB                       0x8B5B
-#define GL_FLOAT_MAT4_ARB                       0x8B5C
-#define GL_SAMPLER_1D_ARB                       0x8B5D
-#define GL_SAMPLER_2D_ARB                       0x8B5E
-#define GL_SAMPLER_3D_ARB                       0x8B5F
-#define GL_SAMPLER_CUBE_ARB                     0x8B60
-#define GL_SAMPLER_1D_SHADOW_ARB                0x8B61
-#define GL_SAMPLER_2D_SHADOW_ARB                0x8B62
-#define GL_SAMPLER_2D_RECT_ARB                  0x8B63
-#define GL_SAMPELR_2D_RECT_SHADOW_ARB           0x8B64
-#endif
-#ifndef GL_ARB_shading_language_100
-#define GL_ARB_shading_language_100         1
-#define GL_SHADING_LANGUAGE_VERSION_ARB     0x8B8C
-#endif
-#ifndef GL_ARB_fragment_shader
-#define GL_ARB_fragment_shader 1
-#define GL_FRAGMENT_SHADER_ARB                  0x8B30
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB  0x8B49
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB  0x8B8B
-#endif
-#ifndef GL_ARB_vertex_shader
-#define GL_ARB_vertex_shader 1
-#define GL_VERTEX_SHADER_ARB                        0x8B31
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB        0x8B4A
-#define GL_MAX_VARYING_FLOATS_ARB                   0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB       0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB     0x8B4D
-#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB             0x8B89
-#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB   0x8B8A
-#endif
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
-typedef GLint (WINE_GLAPI * WINED3D_PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
-typedef void (WINE_GLAPI * WINED3D_PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
-typedef GLhandleARB (WINE_GLAPI * WINED3D_PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
-typedef void (WINE_GLAPI * WINED3D_PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
-typedef void (WINE_GLAPI * WINED3D_PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
-typedef GLhandleARB (WINE_GLAPI * WINED3D_PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
-typedef void (WINE_GLAPI * WINED3D_PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
-typedef void (WINE_GLAPI * WINED3D_PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
-typedef void (WINE_GLAPI * WINED3D_PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
-typedef void (WINE_GLAPI * WINED3D_PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
-typedef void (WINE_GLAPI * WINED3D_PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
-typedef GLhandleARB (WINE_GLAPI * WINED3D_PFNGLGETHANDLEARBPROC) (GLenum pname);
-typedef void (WINE_GLAPI * WINED3D_PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
-typedef void (WINE_GLAPI * WINED3D_PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
-typedef GLint (WINE_GLAPI * WINED3D_PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
-/* GL_ARB_pixel_buffer_object */
-#ifndef GL_ARB_pixel_buffer_object
-#define GL_PIXEL_PACK_BUFFER_ARB          0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_ARB        0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_ARB  0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
-#endif
-/* GL_EXT_texture */
-#ifndef GL_EXT_texture
-#define GL_EXT_texture 1
-#define GL_ALPHA4_EXT                     0x803B
-#define GL_ALPHA8_EXT                     0x803C
-#define GL_ALPHA12_EXT                    0x803D
-#define GL_ALPHA16_EXT                    0x803E
-#define GL_LUMINANCE4_EXT                 0x803F
-#define GL_LUMINANCE8_EXT                 0x8040
-#define GL_LUMINANCE12_EXT                0x8041
-#define GL_LUMINANCE16_EXT                0x8042
-#define GL_LUMINANCE4_ALPHA4_EXT          0x8043
-#define GL_LUMINANCE6_ALPHA2_EXT          0x8044
-#define GL_LUMINANCE8_ALPHA8_EXT          0x8045
-#define GL_LUMINANCE12_ALPHA4_EXT         0x8046
-#define GL_LUMINANCE12_ALPHA12_EXT        0x8047
-#define GL_LUMINANCE16_ALPHA16_EXT        0x8048
-#define GL_INTENSITY_EXT                  0x8049
-#define GL_INTENSITY4_EXT                 0x804A
-#define GL_INTENSITY8_EXT                 0x804B
-#define GL_INTENSITY12_EXT                0x804C
-#define GL_INTENSITY16_EXT                0x804D
-#define GL_RGB2_EXT                       0x804E
-#define GL_RGB4_EXT                       0x804F
-#define GL_RGB5_EXT                       0x8050
-#define GL_RGB8_EXT                       0x8051
-#define GL_RGB10_EXT                      0x8052
-#define GL_RGB12_EXT                      0x8053
-#define GL_RGB16_EXT                      0x8054
-#define GL_RGBA2_EXT                      0x8055
-#define GL_RGBA4_EXT                      0x8056
-#define GL_RGB5_A1_EXT                    0x8057
-#define GL_RGBA8_EXT                      0x8058
-#define GL_RGB10_A2_EXT                   0x8059
-#define GL_RGBA12_EXT                     0x805A
-#define GL_RGBA16_EXT                     0x805B
-#define GL_TEXTURE_RED_SIZE_EXT           0x805C
-#define GL_TEXTURE_GREEN_SIZE_EXT         0x805D
-#define GL_TEXTURE_BLUE_SIZE_EXT          0x805E
-#define GL_TEXTURE_ALPHA_SIZE_EXT         0x805F
-#define GL_TEXTURE_LUMINANCE_SIZE_EXT     0x8060
-#define GL_TEXTURE_INTENSITY_SIZE_EXT     0x8061
-#define GL_REPLACE_EXT                    0x8062
-#define GL_PROXY_TEXTURE_1D_EXT           0x8063
-#define GL_PROXY_TEXTURE_2D_EXT           0x8064
-#define GL_TEXTURE_TOO_LARGE_EXT          0x8065
+
+/* GL_HP_occlusion_test */
+#ifndef GL_HP_occlusion_test
+#define GL_HP_occlusion_test 1
+#define GL_OCCLUSION_TEST_HP                                0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP                         0x8165
 #endif
-/* GL_EXT_texture_compression_s3tc */
-#ifndef GL_EXT_texture_compression_s3tc
-#define GL_EXT_texture_compression_s3tc 1
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT   0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  0x83F3
+
+/* GL_NV_depth_clamp */
+#ifndef GL_NV_depth_clamp
+#define GL_NV_depth_clamp 1
+#define GL_DEPTH_CLAMP_NV                                   0x864f
 #endif
-typedef void (WINE_GLAPI * PGLFNCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
-typedef void (WINE_GLAPI * PGLFNGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img);
-/* GL_EXT_stencil_wrap */
-#ifndef GL_EXT_stencil_wrap
-#define GL_EXT_stencil_wrap 1
-#define GL_INCR_WRAP_EXT                  0x8507
-#define GL_DECR_WRAP_EXT                  0x8508
+
+/* GL_NV_fence */
+#ifndef GL_NV_fence
+#define GL_NV_fence 1
+#define GL_ALL_COMPLETED_NV                                 0x84f2
+#define GL_FENCE_STATUS_NV                                  0x84f3
+#define GL_FENCE_CONDITION_NV                               0x84f4
 #endif
+typedef void (WINE_GLAPI *PGLFNGENFENCESNVPROC)(GLsizei, GLuint *);
+typedef void (WINE_GLAPI *PGLFNDELETEFENCESNVPROC)(GLuint, const GLuint *);
+typedef void (WINE_GLAPI *PGLFNSETFENCENVPROC)(GLuint, GLenum);
+typedef GLboolean (WINE_GLAPI *PGLFNTESTFENCENVPROC)(GLuint);
+typedef void (WINE_GLAPI *PGLFNFINISHFENCENVPROC)(GLuint);
+typedef GLboolean (WINE_GLAPI *PGLFNISFENCENVPROC)(GLuint);
+typedef void (WINE_GLAPI *PGLFNGETFENCEIVNVPROC)(GLuint, GLenum, GLint *);
 
-/* GL_ARB_half_float_vertex */
-#ifndef GL_ARB_half_float_vertex
-#define GL_ARB_half_float_vertex
-/* No _ARB, see extension spec */
-#define GL_HALF_FLOAT                     0x140B
+/* GL_NV_fog_distance */
+#ifndef GL_NV_fog_distance
+#define GL_NV_fog_distance 1
+#define GL_FOG_DISTANCE_MODE_NV                             0x855a
+#define GL_EYE_RADIAL_NV                                    0x855b
+#define GL_EYE_PLANE_ABSOLUTE_NV                            0x855c
+/* reuse GL_EYE_PLANE */
 #endif
+
 /* GL_NV_half_float */
 #ifndef GL_NV_half_float
 #define GL_NV_half_float 1
 typedef unsigned short GLhalfNV;
-#define GL_HALF_FLOAT_NV                  0x140B
+#define GL_HALF_FLOAT_NV                                    0x140b
 #endif
-typedef void (WINE_GLAPI * PGLFNVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
-typedef void (WINE_GLAPI * PGLFNVERTEX2HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
-typedef void (WINE_GLAPI * PGLFNVERTEX3HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
-typedef void (WINE_GLAPI * PGLFNVERTEX4HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
-typedef void (WINE_GLAPI * PGLFNNORMAL3HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
-typedef void (WINE_GLAPI * PGLFNCOLOR3HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
-typedef void (WINE_GLAPI * PGLFNCOLOR4HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD1HNVPROC) (GLhalfNV s);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD1HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD2HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD3HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
-typedef void (WINE_GLAPI * PGLFNTEXCOORD4HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
-typedef void (WINE_GLAPI * PGLFNMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNFOGCOORDHNVPROC) (GLhalfNV fog);
-typedef void (WINE_GLAPI * PGLFNFOGCOORDHVNVPROC) (const GLhalfNV *fog);
-typedef void (WINE_GLAPI * PGLFNSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
-typedef void (WINE_GLAPI * PGLFNSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
-typedef void (WINE_GLAPI * PGLFNVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEX2HNVPROC)(GLhalfNV x, GLhalfNV y);
+typedef void (WINE_GLAPI *PGLFNVERTEX2HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEX3HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (WINE_GLAPI *PGLFNVERTEX3HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEX4HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (WINE_GLAPI *PGLFNVERTEX4HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNNORMAL3HNVPROC)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void (WINE_GLAPI *PGLFNNORMAL3HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (WINE_GLAPI *PGLFNCOLOR3HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNCOLOR4HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+typedef void (WINE_GLAPI *PGLFNCOLOR4HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD1HNVPROC)(GLhalfNV s);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD1HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD2HNVPROC)(GLhalfNV s, GLhalfNV t);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD2HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD3HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD3HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD4HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (WINE_GLAPI *PGLFNTEXCOORD4HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD1HNVPROC)(GLenum target, GLhalfNV s);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD2HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD3HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD4HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (WINE_GLAPI *PGLFNMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNFOGCOORDHNVPROC)(GLhalfNV fog);
+typedef void (WINE_GLAPI *PGLFNFOGCOORDHVNVPROC)(const GLhalfNV *fog);
+typedef void (WINE_GLAPI *PGLFNSECONDARYCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (WINE_GLAPI *PGLFNSECONDARYCOLOR3HVNVPROC)(const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXWEIGHTHNVPROC)(GLhalfNV weight);
+typedef void (WINE_GLAPI *PGLFNVERTEXWEIGHTHVNVPROC)(const GLhalfNV *weight);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1HNVPROC)(GLuint index, GLhalfNV x);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (WINE_GLAPI *PGLFNVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v);
 
-/* GL_NV_fog_distance */
-#ifndef GL_NV_fog_distance
-#define GL_NV_fog_distance 1
-#define GL_FOG_DISTANCE_MODE_NV           0x855A
-#define GL_EYE_RADIAL_NV                  0x855B
-#define GL_EYE_PLANE_ABSOLUTE_NV          0x855C
-/* reuse GL_EYE_PLANE */
-#endif
-/* GL_NV_texgen_reflection */
-#ifndef GL_NV_texgen_reflection
-#define GL_NV_texgen_reflection 1
-#define GL_NORMAL_MAP_NV                  0x8511
-#define GL_REFLECTION_MAP_NV              0x8512
+/* GL_NV_light_max_exponent */
+#ifndef GL_NV_light_max_exponent
+#define GL_NV_light_max_exponent 1
+#define GL_MAX_SHININESS_NV                                 0x8504
+#define GL_MAX_SPOT_EXPONENT_NV                             0x8505
 #endif
-/* GL_NV_texture_env_combine4 */
-#ifndef GL_NV_texture_env_combine4
-#define GL_NV_texture_env_combine4 1
-#define GL_COMBINE4_NV                    0x8503
-#define GL_SOURCE3_RGB_NV                 0x8583
-#define GL_SOURCE3_ALPHA_NV               0x858B
-#define GL_OPERAND3_RGB_NV                0x8593
-#define GL_OPERAND3_ALPHA_NV              0x859B
+
+/* GL_NV_occlusion_query */
+#ifndef GL_NV_occlusion_query
+#define GL_NV_occlusion_query 1
+#define GL_PIXEL_COUNTER_BITS_NV                            0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV                    0x8865
+#define GL_PIXEL_COUNT_NV                                   0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV                         0x8867
 #endif
+typedef void (WINE_GLAPI *PGLFNGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint *ids);
+typedef void (WINE_GLAPI *PGLFNDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint *ids);
+typedef GLboolean (WINE_GLAPI *PGLFNISOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef void (WINE_GLAPI *PGLFNBEGINOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef void (WINE_GLAPI *PGLFNENDOCCLUSIONQUERYNVPROC)(void);
+typedef void (WINE_GLAPI *PGLFNGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname, GLuint *params);
+
 /* GL_NV_register_combiners */
 #ifndef GL_NV_register_combiners
 #define GL_NV_register_combiners 1
-#define GL_REGISTER_COMBINERS_NV          0x8522
-#define GL_VARIABLE_A_NV                  0x8523
-#define GL_VARIABLE_B_NV                  0x8524
-#define GL_VARIABLE_C_NV                  0x8525
-#define GL_VARIABLE_D_NV                  0x8526
-#define GL_VARIABLE_E_NV                  0x8527
-#define GL_VARIABLE_F_NV                  0x8528
-#define GL_VARIABLE_G_NV                  0x8529
-#define GL_CONSTANT_COLOR0_NV             0x852A
-#define GL_CONSTANT_COLOR1_NV             0x852B
-#define GL_PRIMARY_COLOR_NV               0x852C
-#define GL_SECONDARY_COLOR_NV             0x852D
-#define GL_SPARE0_NV                      0x852E
-#define GL_SPARE1_NV                      0x852F
-#define GL_DISCARD_NV                     0x8530
-#define GL_E_TIMES_F_NV                   0x8531
-#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
-#define GL_UNSIGNED_IDENTITY_NV           0x8536
-#define GL_UNSIGNED_INVERT_NV             0x8537
-#define GL_EXPAND_NORMAL_NV               0x8538
-#define GL_EXPAND_NEGATE_NV               0x8539
-#define GL_HALF_BIAS_NORMAL_NV            0x853A
-#define GL_HALF_BIAS_NEGATE_NV            0x853B
-#define GL_SIGNED_IDENTITY_NV             0x853C
-#define GL_SIGNED_NEGATE_NV               0x853D
-#define GL_SCALE_BY_TWO_NV                0x853E
-#define GL_SCALE_BY_FOUR_NV               0x853F
-#define GL_SCALE_BY_ONE_HALF_NV           0x8540
-#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV   0x8541
-#define GL_COMBINER_INPUT_NV              0x8542
-#define GL_COMBINER_MAPPING_NV            0x8543
-#define GL_COMBINER_COMPONENT_USAGE_NV    0x8544
-#define GL_COMBINER_AB_DOT_PRODUCT_NV     0x8545
-#define GL_COMBINER_CD_DOT_PRODUCT_NV     0x8546
-#define GL_COMBINER_MUX_SUM_NV            0x8547
-#define GL_COMBINER_SCALE_NV              0x8548
-#define GL_COMBINER_BIAS_NV               0x8549
-#define GL_COMBINER_AB_OUTPUT_NV          0x854A
-#define GL_COMBINER_CD_OUTPUT_NV          0x854B
-#define GL_COMBINER_SUM_OUTPUT_NV         0x854C
-#define GL_MAX_GENERAL_COMBINERS_NV       0x854D
-#define GL_NUM_GENERAL_COMBINERS_NV       0x854E
-#define GL_COLOR_SUM_CLAMP_NV             0x854F
-#define GL_COMBINER0_NV                   0x8550
-#define GL_COMBINER1_NV                   0x8551
-#define GL_COMBINER2_NV                   0x8552
-#define GL_COMBINER3_NV                   0x8553
-#define GL_COMBINER4_NV                   0x8554
-#define GL_COMBINER5_NV                   0x8555
-#define GL_COMBINER6_NV                   0x8556
-#define GL_COMBINER7_NV                   0x8557
+#define GL_REGISTER_COMBINERS_NV                            0x8522
+#define GL_VARIABLE_A_NV                                    0x8523
+#define GL_VARIABLE_B_NV                                    0x8524
+#define GL_VARIABLE_C_NV                                    0x8525
+#define GL_VARIABLE_D_NV                                    0x8526
+#define GL_VARIABLE_E_NV                                    0x8527
+#define GL_VARIABLE_F_NV                                    0x8528
+#define GL_VARIABLE_G_NV                                    0x8529
+#define GL_CONSTANT_COLOR0_NV                               0x852a
+#define GL_CONSTANT_COLOR1_NV                               0x852b
+#define GL_PRIMARY_COLOR_NV                                 0x852c
+#define GL_SECONDARY_COLOR_NV                               0x852d
+#define GL_SPARE0_NV                                        0x852e
+#define GL_SPARE1_NV                                        0x852f
+#define GL_DISCARD_NV                                       0x8530
+#define GL_E_TIMES_F_NV                                     0x8531
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV                   0x8532
+#define GL_UNSIGNED_IDENTITY_NV                             0x8536
+#define GL_UNSIGNED_INVERT_NV                               0x8537
+#define GL_EXPAND_NORMAL_NV                                 0x8538
+#define GL_EXPAND_NEGATE_NV                                 0x8539
+#define GL_HALF_BIAS_NORMAL_NV                              0x853a
+#define GL_HALF_BIAS_NEGATE_NV                              0x853b
+#define GL_SIGNED_IDENTITY_NV                               0x853c
+#define GL_SIGNED_NEGATE_NV                                 0x853d
+#define GL_SCALE_BY_TWO_NV                                  0x853e
+#define GL_SCALE_BY_FOUR_NV                                 0x853f
+#define GL_SCALE_BY_ONE_HALF_NV                             0x8540
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV                     0x8541
+#define GL_COMBINER_INPUT_NV                                0x8542
+#define GL_COMBINER_MAPPING_NV                              0x8543
+#define GL_COMBINER_COMPONENT_USAGE_NV                      0x8544
+#define GL_COMBINER_AB_DOT_PRODUCT_NV                       0x8545
+#define GL_COMBINER_CD_DOT_PRODUCT_NV                       0x8546
+#define GL_COMBINER_MUX_SUM_NV                              0x8547
+#define GL_COMBINER_SCALE_NV                                0x8548
+#define GL_COMBINER_BIAS_NV                                 0x8549
+#define GL_COMBINER_AB_OUTPUT_NV                            0x854a
+#define GL_COMBINER_CD_OUTPUT_NV                            0x854b
+#define GL_COMBINER_SUM_OUTPUT_NV                           0x854c
+#define GL_MAX_GENERAL_COMBINERS_NV                         0x854d
+#define GL_NUM_GENERAL_COMBINERS_NV                         0x854e
+#define GL_COLOR_SUM_CLAMP_NV                               0x854f
+#define GL_COMBINER0_NV                                     0x8550
+#define GL_COMBINER1_NV                                     0x8551
+#define GL_COMBINER2_NV                                     0x8552
+#define GL_COMBINER3_NV                                     0x8553
+#define GL_COMBINER4_NV                                     0x8554
+#define GL_COMBINER5_NV                                     0x8555
+#define GL_COMBINER6_NV                                     0x8556
+#define GL_COMBINER7_NV                                     0x8557
 /* reuse GL_TEXTURE0_ARB */
 /* reuse GL_TEXTURE1_ARB */
 /* reuse GL_ZERO */
 /* reuse GL_NONE */
 /* reuse GL_FOG */
 #endif
-typedef void (WINE_GLAPI * PGLFNCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
-typedef void (WINE_GLAPI * PGLFNCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
-typedef void (WINE_GLAPI * PGLFNCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
-typedef void (WINE_GLAPI * PGLFNCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
-typedef void (WINE_GLAPI * PGLFNCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
-typedef void (WINE_GLAPI * PGLFNFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
-typedef void (WINE_GLAPI * PGLFNGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param);
+typedef void (WINE_GLAPI *PGLFNCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
+typedef void (WINE_GLAPI *PGLFNCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void (WINE_GLAPI *PGLFNCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion,
+        GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (WINE_GLAPI *PGLFNCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion,
+        GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias,
+        GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (WINE_GLAPI *PGLFNFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input,
+        GLenum mapping, GLenum componentUsage);
+typedef void (WINE_GLAPI *PGLFNGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion,
+        GLenum variable, GLenum pname, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion,
+        GLenum variable, GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion,
+        GLenum pname, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion,
+        GLenum pname, GLint *params);
+typedef void (WINE_GLAPI *PGLFNGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable, GLenum pname, GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable, GLenum pname, GLint *params);
+
 /* GL_NV_register_combiners2 */
 #ifndef GL_NV_register_combiners2
 #define GL_NV_register_combiners2 1
-#define GL_PER_STAGE_CONSTANTS_NV         0x8535
+#define GL_PER_STAGE_CONSTANTS_NV                           0x8535
+#endif
+typedef void (WINE_GLAPI *PGLFNCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, const GLfloat *params);
+typedef void (WINE_GLAPI *PGLFNGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, GLfloat *params);
+
+/* GL_NV_texgen_reflection */
+#ifndef GL_NV_texgen_reflection
+#define GL_NV_texgen_reflection 1
+#define GL_NORMAL_MAP_NV                                    0x8511
+#define GL_REFLECTION_MAP_NV                                0x8512
+#endif
+
+/* GL_NV_texture_env_combine4 */
+#ifndef GL_NV_texture_env_combine4
+#define GL_NV_texture_env_combine4 1
+#define GL_COMBINE4_NV                                      0x8503
+#define GL_SOURCE3_RGB_NV                                   0x8583
+#define GL_SOURCE3_ALPHA_NV                                 0x858b
+#define GL_OPERAND3_RGB_NV                                  0x8593
+#define GL_OPERAND3_ALPHA_NV                                0x859b
 #endif
-typedef void (WINE_GLAPI * PGLFNCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
+
 /* GL_NV_texture_shader */
 #ifndef GL_NV_texture_shader
 #define GL_NV_texture_shader 1
-#define GL_OFFSET_TEXTURE_RECTANGLE_NV    0x864C
-#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
-#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
-#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
-#define GL_UNSIGNED_INT_S8_S8_8_8_NV      0x86DA
-#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  0x86DB
-#define GL_DSDT_MAG_INTENSITY_NV          0x86DC
-#define GL_SHADER_CONSISTENT_NV           0x86DD
-#define GL_TEXTURE_SHADER_NV              0x86DE
-#define GL_SHADER_OPERATION_NV            0x86DF
-#define GL_CULL_MODES_NV                  0x86E0
-#define GL_OFFSET_TEXTURE_MATRIX_NV       0x86E1
-#define GL_OFFSET_TEXTURE_SCALE_NV        0x86E2
-#define GL_OFFSET_TEXTURE_BIAS_NV         0x86E3
-#define GL_OFFSET_TEXTURE_2D_MATRIX_NV    GL_OFFSET_TEXTURE_MATRIX_NV
-#define GL_OFFSET_TEXTURE_2D_SCALE_NV     GL_OFFSET_TEXTURE_SCALE_NV
-#define GL_OFFSET_TEXTURE_2D_BIAS_NV      GL_OFFSET_TEXTURE_BIAS_NV
-#define GL_PREVIOUS_TEXTURE_INPUT_NV      0x86E4
-#define GL_CONST_EYE_NV                   0x86E5
-#define GL_PASS_THROUGH_NV                0x86E6
-#define GL_CULL_FRAGMENT_NV               0x86E7
-#define GL_OFFSET_TEXTURE_2D_NV           0x86E8
-#define GL_DEPENDENT_AR_TEXTURE_2D_NV     0x86E9
-#define GL_DEPENDENT_GB_TEXTURE_2D_NV     0x86EA
-#define GL_DOT_PRODUCT_NV                 0x86EC
-#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV   0x86ED
-#define GL_DOT_PRODUCT_TEXTURE_2D_NV      0x86EE
-#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
-#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
-#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
-#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
-#define GL_HILO_NV                        0x86F4
-#define GL_DSDT_NV                        0x86F5
-#define GL_DSDT_MAG_NV                    0x86F6
-#define GL_DSDT_MAG_VIB_NV                0x86F7
-#define GL_HILO16_NV                      0x86F8
-#define GL_SIGNED_HILO_NV                 0x86F9
-#define GL_SIGNED_HILO16_NV               0x86FA
-#define GL_SIGNED_RGBA_NV                 0x86FB
-#define GL_SIGNED_RGBA8_NV                0x86FC
-#define GL_SIGNED_RGB_NV                  0x86FE
-#define GL_SIGNED_RGB8_NV                 0x86FF
-#define GL_SIGNED_LUMINANCE_NV            0x8701
-#define GL_SIGNED_LUMINANCE8_NV           0x8702
-#define GL_SIGNED_LUMINANCE_ALPHA_NV      0x8703
-#define GL_SIGNED_LUMINANCE8_ALPHA8_NV    0x8704
-#define GL_SIGNED_ALPHA_NV                0x8705
-#define GL_SIGNED_ALPHA8_NV               0x8706
-#define GL_SIGNED_INTENSITY_NV            0x8707
-#define GL_SIGNED_INTENSITY8_NV           0x8708
-#define GL_DSDT8_NV                       0x8709
-#define GL_DSDT8_MAG8_NV                  0x870A
-#define GL_DSDT8_MAG8_INTENSITY8_NV       0x870B
-#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV   0x870C
-#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
-#define GL_HI_SCALE_NV                    0x870E
-#define GL_LO_SCALE_NV                    0x870F
-#define GL_DS_SCALE_NV                    0x8710
-#define GL_DT_SCALE_NV                    0x8711
-#define GL_MAGNITUDE_SCALE_NV             0x8712
-#define GL_VIBRANCE_SCALE_NV              0x8713
-#define GL_HI_BIAS_NV                     0x8714
-#define GL_LO_BIAS_NV                     0x8715
-#define GL_DS_BIAS_NV                     0x8716
-#define GL_DT_BIAS_NV                     0x8717
-#define GL_MAGNITUDE_BIAS_NV              0x8718
-#define GL_VIBRANCE_BIAS_NV               0x8719
-#define GL_TEXTURE_BORDER_VALUES_NV       0x871A
-#define GL_TEXTURE_HI_SIZE_NV             0x871B
-#define GL_TEXTURE_LO_SIZE_NV             0x871C
-#define GL_TEXTURE_DS_SIZE_NV             0x871D
-#define GL_TEXTURE_DT_SIZE_NV             0x871E
-#define GL_TEXTURE_MAG_SIZE_NV            0x871F
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV                      0x864c
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV                0x864d
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV                 0x864e
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV             0x86d9
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV                        0x86da
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                    0x86db
+#define GL_DSDT_MAG_INTENSITY_NV                            0x86dc
+#define GL_SHADER_CONSISTENT_NV                             0x86dd
+#define GL_TEXTURE_SHADER_NV                                0x86de
+#define GL_SHADER_OPERATION_NV                              0x86df
+#define GL_CULL_MODES_NV                                    0x86e0
+#define GL_OFFSET_TEXTURE_MATRIX_NV                         0x86e1
+#define GL_OFFSET_TEXTURE_SCALE_NV                          0x86e2
+#define GL_OFFSET_TEXTURE_BIAS_NV                           0x86e3
+#define GL_OFFSET_TEXTURE_2D_MATRIX_NV                      GL_OFFSET_TEXTURE_MATRIX_NV
+#define GL_OFFSET_TEXTURE_2D_SCALE_NV                       GL_OFFSET_TEXTURE_SCALE_NV
+#define GL_OFFSET_TEXTURE_2D_BIAS_NV                        GL_OFFSET_TEXTURE_BIAS_NV
+#define GL_PREVIOUS_TEXTURE_INPUT_NV                        0x86e4
+#define GL_CONST_EYE_NV                                     0x86e5
+#define GL_PASS_THROUGH_NV                                  0x86e6
+#define GL_CULL_FRAGMENT_NV                                 0x86e7
+#define GL_OFFSET_TEXTURE_2D_NV                             0x86e8
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV                       0x86e9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV                       0x86ea
+#define GL_DOT_PRODUCT_NV                                   0x86ec
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV                     0x86ed
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV                        0x86ee
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV                  0x86f0
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV                  0x86f1
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV                  0x86f2
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV        0x86f3
+#define GL_HILO_NV                                          0x86f4
+#define GL_DSDT_NV                                          0x86f5
+#define GL_DSDT_MAG_NV                                      0x86f6
+#define GL_DSDT_MAG_VIB_NV                                  0x86f7
+#define GL_HILO16_NV                                        0x86f8
+#define GL_SIGNED_HILO_NV                                   0x86f9
+#define GL_SIGNED_HILO16_NV                                 0x86fa
+#define GL_SIGNED_RGBA_NV                                   0x86fb
+#define GL_SIGNED_RGBA8_NV                                  0x86fc
+#define GL_SIGNED_RGB_NV                                    0x86fe
+#define GL_SIGNED_RGB8_NV                                   0x86ff
+#define GL_SIGNED_LUMINANCE_NV                              0x8701
+#define GL_SIGNED_LUMINANCE8_NV                             0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV                        0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV                      0x8704
+#define GL_SIGNED_ALPHA_NV                                  0x8705
+#define GL_SIGNED_ALPHA8_NV                                 0x8706
+#define GL_SIGNED_INTENSITY_NV                              0x8707
+#define GL_SIGNED_INTENSITY8_NV                             0x8708
+#define GL_DSDT8_NV                                         0x8709
+#define GL_DSDT8_MAG8_NV                                    0x870a
+#define GL_DSDT8_MAG8_INTENSITY8_NV                         0x870b
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                     0x870c
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                   0x870d
+#define GL_HI_SCALE_NV                                      0x870e
+#define GL_LO_SCALE_NV                                      0x870f
+#define GL_DS_SCALE_NV                                      0x8710
+#define GL_DT_SCALE_NV                                      0x8711
+#define GL_MAGNITUDE_SCALE_NV                               0x8712
+#define GL_VIBRANCE_SCALE_NV                                0x8713
+#define GL_HI_BIAS_NV                                       0x8714
+#define GL_LO_BIAS_NV                                       0x8715
+#define GL_DS_BIAS_NV                                       0x8716
+#define GL_DT_BIAS_NV                                       0x8717
+#define GL_MAGNITUDE_BIAS_NV                                0x8718
+#define GL_VIBRANCE_BIAS_NV                                 0x8719
+#define GL_TEXTURE_BORDER_VALUES_NV                         0x871a
+#define GL_TEXTURE_HI_SIZE_NV                               0x871b
+#define GL_TEXTURE_LO_SIZE_NV                               0x871c
+#define GL_TEXTURE_DS_SIZE_NV                               0x871d
+#define GL_TEXTURE_DT_SIZE_NV                               0x871e
+#define GL_TEXTURE_MAG_SIZE_NV                              0x871f
 #endif
+
 /* GL_NV_texture_shader2 */
 #ifndef GL_NV_texture_shader2
 #define GL_NV_texture_shader2 1
-#define GL_DOT_PRODUCT_TEXTURE_3D_NV      0x86EF
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV                        0x86ef
 #endif
+
 /* GL_NV_texture_shader3 */
 #ifndef GL_NV_texture_shader3
 #define GL_NV_texture_shader3 1
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
-#define GL_OFFSET_HILO_TEXTURE_2D_NV      0x8854
-#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
-#define GL_DEPENDENT_HILO_TEXTURE_2D_NV   0x8858
-#define GL_DEPENDENT_RGB_TEXTURE_3D_NV    0x8859
-#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
-#define GL_DOT_PRODUCT_PASS_THROUGH_NV    0x885B
-#define GL_DOT_PRODUCT_TEXTURE_1D_NV      0x885C
-#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
-#define GL_HILO8_NV                       0x885E
-#define GL_SIGNED_HILO8_NV                0x885F
-#define GL_FORCE_BLUE_TO_ONE_NV           0x8860
-#endif
-/* GL_ATI_texture_env_combine3 */
-#ifndef GL_ATI_texture_env_combine3
-#define GL_ATI_texture_env_combine3 1
-#define GL_MODULATE_ADD_ATI               0x8744
-#define GL_MODULATE_SIGNED_ADD_ATI        0x8745
-#define GL_MODULATE_SUBTRACT_ATI          0x8746
-/* #define ONE */
-/* #define ZERO */
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV                  0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV            0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV           0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV     0x8853
+#define GL_OFFSET_HILO_TEXTURE_2D_NV                        0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV                 0x8855
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV             0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV      0x8857
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV                     0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV                      0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV                0x885a
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV                      0x885b
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV                        0x885c
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV              0x885d
+#define GL_HILO8_NV                                         0x885e
+#define GL_SIGNED_HILO8_NV                                  0x885f
+#define GL_FORCE_BLUE_TO_ONE_NV                             0x8860
 #endif
 
-/**
- * Point sprites
- */
-/* GL_ARB_point_sprite */
-#ifndef GL_ARB_point_sprite
-#define GL_ARB_point_sprite 1
-#define GL_POINT_SPRITE_ARB               0x8861
-#define GL_COORD_REPLACE_ARB              0x8862
-#endif
-/**
- * @TODO: GL_NV_point_sprite
- */
-
-/**
- * Occlusion Queries
- */
-/* GL_ARB_occlusion_query */
-#ifndef GL_ARB_occlusion_query
-#define GL_ARB_occlusion_query 1
-#define GL_SAMPLES_PASSED_ARB                             0x8914
-#define GL_QUERY_COUNTER_BITS_ARB                         0x8864
-#define GL_CURRENT_QUERY_ARB                              0x8865
-#define GL_QUERY_RESULT_ARB                               0x8866
-#define GL_QUERY_RESULT_AVAILABLE_ARB                     0x8867
-#endif
-typedef void (WINE_GLAPI * PGLFNGENQUERIESARBPROC) (GLsizei n, GLuint *queries);
-typedef void (WINE_GLAPI * PGLFNDELETEQUERIESARBPROC) (GLsizei n, const GLuint *queries);
-typedef GLboolean (WINE_GLAPI * PGLFNISQUERYARBPROC) (GLuint query);
-typedef void (WINE_GLAPI * PGLFNBEGINQUERYARBPROC) (GLenum target, GLuint query);
-typedef void (WINE_GLAPI * PGLFNENDQUERYARBPROC) (GLenum target);
-typedef void (WINE_GLAPI * PGLFNGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETQUERYOBJECTIVARBPROC) (GLuint query, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETQUERYOBJECTUIVARBPROC) (GLuint query, GLenum pname, GLuint *params);
-/* GL_HP_occlusion_test isn't complete, but it's constants are used by GL_NV_occlusion_query */
-#ifndef GL_HP_occlusion_test
-#define GL_HP_occlusion_test 1
-#define GL_OCCLUSION_TEST_HP                 0x8165
-#define GL_OCCLUSION_TEST_RESULT_HP          0x8165
-#endif
-/*  GL_NV_occlusion_query */
-#ifndef GL_NV_occlusion_query
-#define GL_NV_occlusion_query 1
-#define GL_PIXEL_COUNTER_BITS_NV          0x8864
-#define GL_CURRENT_OCCLUSION_QUERY_ID_NV  0x8865
-#define GL_PIXEL_COUNT_NV                 0x8866
-#define GL_PIXEL_COUNT_AVAILABLE_NV       0x8867
-#endif
-typedef void (WINE_GLAPI * PGLFNGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
-typedef void (WINE_GLAPI * PGLFNDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (WINE_GLAPI * PGLFNISOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef void (WINE_GLAPI * PGLFNBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef void (WINE_GLAPI * PGLFNENDOCCLUSIONQUERYNVPROC) (void);
-typedef void (WINE_GLAPI * PGLFNGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
-/* GL_EXT_stencil_two_side */
-#ifndef GL_EXT_stencil_two_side
-#define GL_EXT_stencil_two_side 1
-#define GL_STENCIL_TEST_TWO_SIDE_EXT      0x8910
-#define GL_ACTIVE_STENCIL_FACE_EXT        0x8911
-#endif
-typedef void (WINE_GLAPI * PGLFNACTIVESTENCILFACEEXTPROC) (GLenum face);
-/* GL_ATI_separate_stencil */
-#ifndef GL_ATI_separate_stencil
-#define GL_ATI_separate_stencil 1
-#define GL_STENCIL_BACK_FUNC_ATI          0x8800
-#define GL_STENCIL_BACK_FAIL_ATI          0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
-#endif
-typedef void (WINE_GLAPI * PGLFNSTENCILOPSEPARATEATIPROC) (GLenum, GLenum, GLenum, GLenum);
-typedef void (WINE_GLAPI * PGLFNSTENCILFUNCSEPARATEATIPROC) (GLenum, GLenum, GLint, GLuint);
-/* GL_NV_fence */
-#ifndef GL_NV_fence
-#define GL_NV_fence 1
-#define GL_ALL_COMPLETED_NV                 0x84F2
-#define GL_FENCE_STATUS_NV                  0x84F3
-#define GL_FENCE_CONDITION_NV               0x84F4
-#endif
-typedef void (WINE_GLAPI * PGLFNGENFENCESNVPROC) (GLsizei, GLuint *);
-typedef void (WINE_GLAPI * PGLFNDELETEFENCESNVPROC) (GLuint, const GLuint *);
-typedef void (WINE_GLAPI * PGLFNSETFENCENVPROC) (GLuint, GLenum);
-typedef GLboolean (WINE_GLAPI * PGLFNTESTFENCENVPROC) (GLuint);
-typedef void (WINE_GLAPI * PGLFNFINISHFENCENVPROC) (GLuint);
-typedef GLboolean (WINE_GLAPI * PGLFNISFENCENVPROC) (GLuint);
-typedef void (WINE_GLAPI * PGLFNGETFENCEIVNVPROC) (GLuint, GLenum, GLint *);
-/* GL_APPLE_fence */
-#ifndef GL_APPLE_fence
-#define GL_APPLE_fence 1
-#define GL_DRAW_PIXELS_APPLE                0x8A0A
-#define GL_FENCE_APPLE                      0x8A0B
-#endif
-typedef void (WINE_GLAPI * PGLFNGENFENCESAPPLEPROC) (GLsizei, GLuint *);
-typedef void (WINE_GLAPI * PGLFNDELETEFENCESAPPLEPROC) (GLuint, const GLuint *);
-typedef void (WINE_GLAPI * PGLFNSETFENCEAPPLEPROC) (GLuint);
-typedef GLboolean (WINE_GLAPI * PGLFNTESTFENCEAPPLEPROC) (GLuint);
-typedef void (WINE_GLAPI * PGLFNFINISHFENCEAPPLEPROC) (GLuint);
-typedef GLboolean (WINE_GLAPI * PGLFNISFENCEAPPLEPROC) (GLuint);
-typedef GLboolean (WINE_GLAPI * PGLFNTESTOBJECTAPPLEPROC) (GLenum, GLuint);
-typedef void (WINE_GLAPI * PGLFNFINISHOBJECTAPPLEPROC) (GLenum, GLuint);
-/* GL_APPLE_client_storage */
-#ifndef GL_APPLE_client_storage
-#define GL_APPLE_client_storage 1
-#define GL_UNPACK_CLIENT_STORAGE_APPLE      0x85B2
+/* GL_NV_vertex_program2_option */
+#ifndef GL_NV_vertex_program2_option
+#define GL_NV_vertex_program2_option 1
+#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV                 0x88f4
+#define GL_MAX_PROGRAM_CALL_DEPTH_NV                        0x88f5
 #endif
-/* GLX_SGI_video_sync */
-typedef int (WINE_GLAPI * PGLXFNGETVIDEOSYNCSGIPROC) (unsigned int *);
-typedef int (WINE_GLAPI * PGLXFNWAITVIDEOSYNCSGIPROC) (int, int, unsigned int *);
 
 /* GL_SGIS_generate_mipmap */
 #ifndef GLX_SGIS_generate_mipmap
-#define GL_GENERATE_MIPMAP_SGIS             0x8191
-#define GL_GENERATE_MIPMAP_HINT_SGIS        0x8192
-#define GLX_SGIS_generate_mipmap
-#endif
-
-/* GL_NV_depth_clamp */
-#ifndef GL_NV_depth_clamp
-#define GL_DEPTH_CLAMP_NV                   0x864F
-#endif
-
-/* GL_APPLE_flush_render */
-typedef void (WINE_GLAPI * PGLFNFLUSHRENDERAPPLEPROC) (void);
-typedef void (WINE_GLAPI * PGLFNFINISHRENDERAPPLEPROC) (void);
-
-/* GL_APPLE_ycbcr_422 */
-#ifndef GL_APPLE_ycbcr_422
-#define GL_APPLE_ycbcr_422
-#define GL_YCBCR_422_APPLE                  0x85B9
-#define UNSIGNED_SHORT_8_8_APPLE            0x85BA
-#define UNSIGNED_SHORT_8_8_REV_APPLE        0x85BB
-#endif
-
-/* GL_ARB_texture_rectangle */
-#ifndef GL_ARB_texture_rectangle
-#define GL_ARB_texture_rectangle
-#define GL_TEXTURE_RECTANGLE_ARB            0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_ARB    0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_ARB      0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB   0x84F8
-#define GL_SAMPLER_2D_RECT_ARB              0x8B63
-#define GL_SAMPLER_2D_RECT_SHADOW_ARB       0x8B64
+#define GLX_SGIS_generate_mipmap 1
+#define GL_GENERATE_MIPMAP_SGIS                             0x8191
+#define GL_GENERATE_MIPMAP_HINT_SGIS                        0x8192
 #endif
 
-/* GL_APPLE_float_pixels */
-#ifndef GL_APPLE_float_pixels
-#define GL_APPLE_float_pixels
-#define GL_HALF_APPLE                       0x140B
-#define GL_COLOR_FLOAT_APPLE                0x8A0F
-#define GL_RGBA_FLOAT32_APPLE               0x8814
-#define GL_RGB_FLOAT32_APPLE                0x8815
-#define GL_ALPHA_FLOAT32_APPLE              0x8816
-#define GL_INTENSITY_FLOAT32_APPLE          0x8817
-#define GL_LUMINANCE_FLOAT32_APPLE          0x8818
-#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE    0x8819
-#define GL_RGBA_FLOAT16_APPLE               0x881A
-#define GL_RGB_FLOAT16_APPLE                0x881B
-#define GL_ALPHA_FLOAT16_APPLE              0x881C
-#define GL_INTENSITY_FLOAT16_APPLE          0x881D
-#define GL_LUMINANCE_FLOAT16_APPLE          0x881E
-#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE    0x881F
-#endif
-
-/* GL_EXT_gpu_program_parameters */
-#ifndef GL_EXT_gpu_program_parameters
-#define GL_EXT_gpu_program_parameters
-typedef void (WINE_GLAPI * PGLFNPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const float *params);
-typedef void (WINE_GLAPI * PGLFNPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const float *params);
-#endif
+/* GLX_SGI_video_sync */
+typedef int (WINE_GLAPI *PGLXFNGETVIDEOSYNCSGIPROC)(unsigned int *);
+typedef int (WINE_GLAPI *PGLXFNWAITVIDEOSYNCSGIPROC)(int, int, unsigned int *);
 
-/* GL_NV_light_max_exponent */
-#ifndef GL_NV_light_max_exponent
-#define GL_NV_light_max_exponent
-#define GL_MAX_SHININESS_NV                 0x8504
-#define GL_MAX_SPOT_EXPONENT_NV             0x8505
-#endif
+/* WGL_ARB_extensions_string */
+typedef const char *(WINAPI *WINED3D_PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
 
-/* GL_ATI_fragment_shader */
-#ifndef GL_ATI_fragment_shader
-#define GL_ATI_fragment_shader
-typedef GLuint (WINE_GLAPI *PGLFNGENFRAGMENTSHADERSATI) (GLuint range);
-typedef void (WINE_GLAPI *PGLFNBINDFRAGMENTSHADERATI) (GLuint id);
-typedef void (WINE_GLAPI *PGLFNDELETEFRAGMENTSHADERATI) (GLuint id);
-typedef void (WINE_GLAPI *PGLFNBEGINFRAGMENTSHADERATI) (void);
-typedef void (WINE_GLAPI *PGLFNENDFRAGMENTSHADERATI) (void);
-typedef void (WINE_GLAPI *PGLFNPASSTEXCOORDATI) (GLuint dst, GLuint coord, GLenum swizzle);
-typedef void (WINE_GLAPI *PGLFNSAMPLEMAPATI) (GLuint dst, GLuint interp, GLenum swizzle);
-typedef void (WINE_GLAPI *PGLFNCOLORFRAGMENTOP1ATI) (GLenum op, GLuint dst, GLuint dstMask,
-                                                     GLuint dstMod, GLuint arg1, GLuint arg1Rep,
-                                                     GLuint arg1Mod);
-typedef void (WINE_GLAPI *PGLFNCOLORFRAGMENTOP2ATI) (GLenum op, GLuint dst, GLuint dstMask,
-                                                     GLuint dstMod, GLuint arg1, GLuint arg1Rep,
-                                                     GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
-                                                     GLuint arg2Mod);
-typedef void (WINE_GLAPI *PGLFNCOLORFRAGMENTOP3ATI) (GLenum op, GLuint dst, GLuint dstMask,
-                                                     GLuint dstMod, GLuint arg1, GLuint arg1Rep,
-                                                     GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
-                                                     GLuint arg2Mod, GLuint arg3, GLuint arg3Rep,
-                                                     GLuint arg3Mod);
-typedef void (WINE_GLAPI *PGLFNALPHAFRAGMENTOP1ATI) (GLenum op, GLuint dst, GLuint dstMod,
-                                                     GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-typedef void (WINE_GLAPI *PGLFNALPHAFRAGMENTOP2ATI) (GLenum op, GLuint dst, GLuint dstMod,
-                                                     GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
-                                                     GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-typedef void (WINE_GLAPI *PGLFNALPHAFRAGMENTOP3ATI) (GLenum op, GLuint dst, GLuint dstMod,
-                                                     GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
-                                                     GLuint arg2, GLuint arg2Rep, GLuint arg2Mod,
-                                                     GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-typedef void (WINE_GLAPI *PGLFNSETFRAGMENTSHADERCONSTANTATI) (GLuint dst, const GLfloat *value);
-#define GL_FRAGMENT_SHADER_ATI              0x8920
-#define GL_REG_0_ATI                        0x8921
-#define GL_REG_1_ATI                        0x8922
-#define GL_REG_2_ATI                        0x8923
-#define GL_REG_3_ATI                        0x8924
-#define GL_REG_4_ATI                        0x8925
-#define GL_REG_5_ATI                        0x8926
-#define GL_CON_0_ATI                        0x8941
-#define GL_CON_1_ATI                        0x8942
-#define GL_CON_2_ATI                        0x8943
-#define GL_CON_3_ATI                        0x8944
-#define GL_CON_4_ATI                        0x8945
-#define GL_CON_5_ATI                        0x8946
-#define GL_CON_6_ATI                        0x8947
-#define GL_CON_7_ATI                        0x8948
-#define GL_MOV_ATI                          0x8961
-#define GL_ADD_ATI                          0x8963
-#define GL_MUL_ATI                          0x8964
-#define GL_SUB_ATI                          0x8965
-#define GL_DOT3_ATI                         0x8966
-#define GL_DOT4_ATI                         0x8967
-#define GL_MAD_ATI                          0x8968
-#define GL_LERP_ATI                         0x8969
-#define GL_CND_ATI                          0x896A
-#define GL_CND0_ATI                         0x896B
-#define GL_DOT2_ADD_ATI                     0x896C
-#define GL_SECONDARY_INTERPOLATOR_ATI       0x896D
-#define GL_SWIZZLE_STR_ATI                  0x8976
-#define GL_SWIZZLE_STQ_ATI                  0x8977
-#define GL_SWIZZLE_STR_DR_ATI               0x8978
-#define GL_SWIZZLE_STQ_DQ_ATI               0x8979
-#define GL_RED_BIT_ATI                      0x00000001
-#define GL_GREEN_BIT_ATI                    0x00000002
-#define GL_BLUE_BIT_ATI                     0x00000004
-#define GL_2X_BIT_ATI                       0x00000001
-#define GL_4X_BIT_ATI                       0x00000002
-#define GL_8X_BIT_ATI                       0x00000004
-#define GL_HALF_BIT_ATI                     0x00000008
-#define GL_QUARTER_BIT_ATI                  0x00000010
-#define GL_EIGHTH_BIT_ATI                   0x00000020
-#define GL_SATURATE_BIT_ATI                 0x00000040
-#define GL_2X_BIT_ATI                       0x00000001
-#define GL_COMP_BIT_ATI                     0x00000002
-#define GL_NEGATE_BIT_ATI                   0x00000004
-#define GL_BIAS_BIT_ATI                     0x00000008
-#endif
-/* GL_ATI_texture_compression_3dc */
-#ifndef GL_ATI_texture_compression_3dc
-#define GL_ATI_texture_compression_3dc
-#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837
-#endif
-/* GL_EXT_texture_compression_rgtc */
-#ifndef GL_EXT_texture_compression_rgtc
-#define GL_EXT_texture_compression_rgtc
-#define GL_COMPRESSED_RED_RGTC1_EXT                       0x8DBB
-#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT                0x8DBC
-#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT                 0x8DBD
-#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT          0x8DBE
-#endif
+/* WGL_ARB_make_current_read */
+typedef BOOL (WINAPI *WINED3D_PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI *WINED3D_PFNWGLGETCURRENTREADDCARBPROC)(void);
 
-/* GL_NV_vertex_program2_option */
-#ifndef GL_NV_vertex_program2_option
-#define GL_NV_vertex_program2_option
-#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV               0x88F4
-#define GL_MAX_PROGRAM_CALL_DEPTH_NV                      0x88F5
+/* WGL_ARB_multisample */
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+#define WGL_SAMPLE_BUFFERS_ARB                              0x2041
+#define WGL_SAMPLES_ARB                                     0x2042
 #endif
 
-/* GL_APPLE_flush_buffer_range */
-#ifndef GL_APPLE_flush_buffer_range
-#define GL_APPLE_flush_buffer_range
-#define GL_BUFFER_SERIALIZED_MODIFY_APPLE                 0x8A12
-#define GL_BUFFER_FLUSHING_UNMAP_APPLE                    0x8A13
-typedef void (WINE_GLAPI *PGLFNBUFFERPARAMETERIAPPLE) (GLenum target, GLenum pname, GLint param);
-typedef void (WINE_GLAPI *PGLFNFLUSHMAPPEDBUFFERRANGEAPPLE) (GLenum target, GLintptr offset, GLsizeiptr size);
+/* WGL_ARB_pbuffer */
+#ifndef WGL_ARB_pbuffer
+#define WGL_ARB_pbuffer 1
+#define WGL_DRAW_TO_PBUFFER_ARB                             0x202d
+#define WGL_MAX_PBUFFER_PIXELS_ARB                          0x202e
+#define WGL_MAX_PBUFFER_WIDTH_ARB                           0x202f
+#define WGL_MAX_PBUFFER_HEIGHT_ARB                          0x2030
+#define WGL_PBUFFER_LARGEST_ARB                             0x2033
+#define WGL_PBUFFER_WIDTH_ARB                               0x2034
+#define WGL_PBUFFER_HEIGHT_ARB                              0x2035
+#define WGL_PBUFFER_LOST_ARB                                0x2036
 #endif
+DECLARE_HANDLE(HPBUFFERARB);
+typedef HPBUFFERARB (WINAPI *WINED3D_PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPixelFormat,
+        int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (WINAPI *WINED3D_PFNWGLGETPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer);
+typedef int (WINAPI *WINED3D_PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer, HDC hDC);
+typedef BOOL (WINAPI *WINED3D_PFNWGLDESTROYPBUFFERARBPROC)(HPBUFFERARB hPbuffer);
+typedef BOOL (WINAPI *WINED3D_PFNWGLQUERYPBUFFERARBPROC)(HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
 
-/* GL_VERSION_2_0 */
-#ifndef GL_VERSION_2_0
-#define GL_VERSION_2_0 1
-#define GL_BLEND_EQUATION_RGB             GL_BLEND_EQUATION
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED    0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE       0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE     0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE       0x8625
-#define GL_CURRENT_VERTEX_ATTRIB          0x8626
-#define GL_VERTEX_PROGRAM_POINT_SIZE      0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE        0x8643
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER    0x8645
-#define GL_STENCIL_BACK_FUNC              0x8800
-#define GL_STENCIL_BACK_FAIL              0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL   0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS   0x8803
-#define GL_MAX_DRAW_BUFFERS               0x8824
-#define GL_DRAW_BUFFER0                   0x8825
-#define GL_DRAW_BUFFER1                   0x8826
-#define GL_DRAW_BUFFER2                   0x8827
-#define GL_DRAW_BUFFER3                   0x8828
-#define GL_DRAW_BUFFER4                   0x8829
-#define GL_DRAW_BUFFER5                   0x882A
-#define GL_DRAW_BUFFER6                   0x882B
-#define GL_DRAW_BUFFER7                   0x882C
-#define GL_DRAW_BUFFER8                   0x882D
-#define GL_DRAW_BUFFER9                   0x882E
-#define GL_DRAW_BUFFER10                  0x882F
-#define GL_DRAW_BUFFER11                  0x8830
-#define GL_DRAW_BUFFER12                  0x8831
-#define GL_DRAW_BUFFER13                  0x8832
-#define GL_DRAW_BUFFER14                  0x8833
-#define GL_DRAW_BUFFER15                  0x8834
-#define GL_BLEND_EQUATION_ALPHA           0x883D
-#define GL_POINT_SPRITE                   0x8861
-#define GL_COORD_REPLACE                  0x8862
-#define GL_MAX_VERTEX_ATTRIBS             0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
-#define GL_MAX_TEXTURE_COORDS             0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS        0x8872
-#define GL_FRAGMENT_SHADER                0x8B30
-#define GL_VERTEX_SHADER                  0x8B31
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS  0x8B4A
-#define GL_MAX_VARYING_FLOATS             0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_SHADER_TYPE                    0x8B4F
-#define GL_FLOAT_VEC2                     0x8B50
-#define GL_FLOAT_VEC3                     0x8B51
-#define GL_FLOAT_VEC4                     0x8B52
-#define GL_INT_VEC2                       0x8B53
-#define GL_INT_VEC3                       0x8B54
-#define GL_INT_VEC4                       0x8B55
-#define GL_BOOL                           0x8B56
-#define GL_BOOL_VEC2                      0x8B57
-#define GL_BOOL_VEC3                      0x8B58
-#define GL_BOOL_VEC4                      0x8B59
-#define GL_FLOAT_MAT2                     0x8B5A
-#define GL_FLOAT_MAT3                     0x8B5B
-#define GL_FLOAT_MAT4                     0x8B5C
-#define GL_SAMPLER_1D                     0x8B5D
-#define GL_SAMPLER_2D                     0x8B5E
-#define GL_SAMPLER_3D                     0x8B5F
-#define GL_SAMPLER_CUBE                   0x8B60
-#define GL_SAMPLER_1D_SHADOW              0x8B61
-#define GL_SAMPLER_2D_SHADOW              0x8B62
-#define GL_DELETE_STATUS                  0x8B80
-#define GL_COMPILE_STATUS                 0x8B81
-#define GL_LINK_STATUS                    0x8B82
-#define GL_VALIDATE_STATUS                0x8B83
-#define GL_INFO_LOG_LENGTH                0x8B84
-#define GL_ATTACHED_SHADERS               0x8B85
-#define GL_ACTIVE_UNIFORMS                0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH      0x8B87
-#define GL_SHADER_SOURCE_LENGTH           0x8B88
-#define GL_ACTIVE_ATTRIBUTES              0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH    0x8B8A
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
-#define GL_SHADING_LANGUAGE_VERSION       0x8B8C
-#define GL_CURRENT_PROGRAM                0x8B8D
-#define GL_POINT_SPRITE_COORD_ORIGIN      0x8CA0
-#define GL_LOWER_LEFT                     0x8CA1
-#define GL_UPPER_LEFT                     0x8CA2
-#define GL_STENCIL_BACK_REF               0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK        0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK         0x8CA5
-typedef char GLchar;
+/* WGL_ARB_pixel_format */
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+#define WGL_NUMBER_PIXEL_FORMATS_ARB                        0x2000
+#define WGL_DRAW_TO_WINDOW_ARB                              0x2001
+#define WGL_DRAW_TO_BITMAP_ARB                              0x2002
+#define WGL_ACCELERATION_ARB                                0x2003
+#define WGL_NEED_PALETTE_ARB                                0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB                         0x2005
+#define WGL_SWAP_LAYER_BUFFERS_ARB                          0x2006
+#define WGL_SWAP_METHOD_ARB                                 0x2007
+#define WGL_NUMBER_OVERLAYS_ARB                             0x2008
+#define WGL_NUMBER_UNDERLAYS_ARB                            0x2009
+#define WGL_TRANSPARENT_ARB                                 0x200a
+#define WGL_TRANSPARENT_RED_VALUE_ARB                       0x2037
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB                     0x2038
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB                      0x2039
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB                     0x203a
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB                     0x203b
+#define WGL_SHARE_DEPTH_ARB                                 0x200c
+#define WGL_SHARE_STENCIL_ARB                               0x200d
+#define WGL_SHARE_ACCUM_ARB                                 0x200e
+#define WGL_SUPPORT_GDI_ARB                                 0x200f
+#define WGL_SUPPORT_OPENGL_ARB                              0x2010
+#define WGL_DOUBLE_BUFFER_ARB                               0x2011
+#define WGL_STEREO_ARB                                      0x2012
+#define WGL_PIXEL_TYPE_ARB                                  0x2013
+#define WGL_COLOR_BITS_ARB                                  0x2014
+#define WGL_RED_BITS_ARB                                    0x2015
+#define WGL_RED_SHIFT_ARB                                   0x2016
+#define WGL_GREEN_BITS_ARB                                  0x2017
+#define WGL_GREEN_SHIFT_ARB                                 0x2018
+#define WGL_BLUE_BITS_ARB                                   0x2019
+#define WGL_BLUE_SHIFT_ARB                                  0x201a
+#define WGL_ALPHA_BITS_ARB                                  0x201b
+#define WGL_ALPHA_SHIFT_ARB                                 0x201c
+#define WGL_ACCUM_BITS_ARB                                  0x201d
+#define WGL_ACCUM_RED_BITS_ARB                              0x201e
+#define WGL_ACCUM_GREEN_BITS_ARB                            0x201f
+#define WGL_ACCUM_BLUE_BITS_ARB                             0x2020
+#define WGL_ACCUM_ALPHA_BITS_ARB                            0x2021
+#define WGL_DEPTH_BITS_ARB                                  0x2022
+#define WGL_STENCIL_BITS_ARB                                0x2023
+#define WGL_AUX_BUFFERS_ARB                                 0x2024
+#define WGL_NO_ACCELERATION_ARB                             0x2025
+#define WGL_GENERIC_ACCELERATION_ARB                        0x2026
+#define WGL_FULL_ACCELERATION_ARB                           0x2027
+#define WGL_SWAP_EXCHANGE_ARB                               0x2028
+#define WGL_SWAP_COPY_ARB                                   0x2029
+#define WGL_SWAP_UNDEFINED_ARB                              0x202a
+#define WGL_TYPE_RGBA_ARB                                   0x202b
+#define WGL_TYPE_COLORINDEX_ARB                             0x202c
 #endif
-typedef void (WINE_GLAPI * PGLFNBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
-typedef void (WINE_GLAPI * PGLFNDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
-typedef void (WINE_GLAPI * PGLFNSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-typedef void (WINE_GLAPI * PGLFNSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-typedef void (WINE_GLAPI * PGLFNSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
-typedef void (WINE_GLAPI * PGLFNATTACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (WINE_GLAPI * PGLFNBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
-typedef void (WINE_GLAPI * PGLFNCOMPILESHADERPROC) (GLuint shader);
-typedef GLuint (WINE_GLAPI * PGLFNCREATEPROGRAMPROC) (void);
-typedef GLuint (WINE_GLAPI * PGLFNCREATESHADERPROC) (GLenum type);
-typedef void (WINE_GLAPI * PGLFNDELETEPROGRAMPROC) (GLuint program);
-typedef void (WINE_GLAPI * PGLFNDELETESHADERPROC) (GLuint shader);
-typedef void (WINE_GLAPI * PGLFNDETACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (WINE_GLAPI * PGLFNDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (WINE_GLAPI * PGLFNENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (WINE_GLAPI * PGLFNGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
-typedef void (WINE_GLAPI * PGLFNGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
-typedef void (WINE_GLAPI * PGLFNGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
-typedef GLint (WINE_GLAPI * PGLFNGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-typedef void (WINE_GLAPI * PGLFNGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-typedef void (WINE_GLAPI * PGLFNGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
-typedef GLint (WINE_GLAPI * PGLFNGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
-typedef void (WINE_GLAPI * PGLFNGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (WINE_GLAPI * PGLFNGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
-typedef GLboolean (WINE_GLAPI * PGLFNISPROGRAMPROC) (GLuint program);
-typedef GLboolean (WINE_GLAPI * PGLFNISSHADERPROC) (GLuint shader);
-typedef void (WINE_GLAPI * PGLFNLINKPROGRAMPROC) (GLuint program);
-typedef void (WINE_GLAPI * PGLFNSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
-typedef void (WINE_GLAPI * PGLFNUSEPROGRAMPROC) (GLuint program);
-typedef void (WINE_GLAPI * PGLFNUNIFORM1FPROC) (GLint location, GLfloat v0);
-typedef void (WINE_GLAPI * PGLFNUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (WINE_GLAPI * PGLFNUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (WINE_GLAPI * PGLFNUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (WINE_GLAPI * PGLFNUNIFORM1IPROC) (GLint location, GLint v0);
-typedef void (WINE_GLAPI * PGLFNUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
-typedef void (WINE_GLAPI * PGLFNUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (WINE_GLAPI * PGLFNUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (WINE_GLAPI * PGLFNUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (WINE_GLAPI * PGLFNVALIDATEPROGRAMPROC) (GLuint program);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
-typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+typedef BOOL (WINAPI *WINED3D_PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hdc, int iPixelFormat,
+        int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+typedef BOOL (WINAPI *WINED3D_PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hdc, int iPixelFormat,
+        int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+typedef BOOL (WINAPI *WINED3D_PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int *piAttribIList,
+        const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
 
-
-/****************************************************
- * OpenGL Official Version
- *  defines
- ****************************************************/
-/* GL_VERSION_1_3 */
-#if !defined(GL_DOT3_RGBA)
-# define GL_DOT3_RGBA                     0x8741
-#endif
-#if !defined(GL_SUBTRACT)
-# define GL_SUBTRACT                      0x84E7
+/* WGL_ARB_pixel_format_float */
+#ifndef WGL_ARB_pixel_format_float
+#define WGL_ARB_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ARB                             0x21a0
 #endif
 
+/* WGL_WINE_pixel_format_passthrough */
+typedef BOOL (WINAPI *WINED3D_PFNWGLSETPIXELFORMATWINE)(HDC hdc, int iPixelFormat,
+        const PIXELFORMATDESCRIPTOR *ppfd);
 
-/****************************************************
- * Enumerated types
- ****************************************************/
-#define WINE_DEFAULT_VIDMEM 64*1024*1024
-
-#define MAKEDWORD_VERSION(maj, min)  ((maj & 0x0000FFFF) << 16) | (min & 0x0000FFFF)
-
-/* OpenGL Supported Extensions (ARB and EXT) */
-typedef enum _GL_SupportedExt {
-  WINED3D_GL_EXT_NONE,
-  /* ARB */
-  ARB_COLOR_BUFFER_FLOAT,
-  ARB_DEPTH_BUFFER_FLOAT,
-  ARB_DEPTH_CLAMP,
-  ARB_DEPTH_TEXTURE,
-  ARB_DRAW_BUFFERS,
-  ARB_FRAGMENT_PROGRAM,
-  ARB_FRAGMENT_SHADER,
-  ARB_FRAMEBUFFER_OBJECT,
-  ARB_GEOMETRY_SHADER4,
-  ARB_IMAGING,
-  ARB_MULTISAMPLE,
-  ARB_MULTITEXTURE,
-  ARB_OCCLUSION_QUERY,
-  ARB_POINT_PARAMETERS,
-  ARB_PROVOKING_VERTEX,
-  ARB_PIXEL_BUFFER_OBJECT,
-  ARB_POINT_SPRITE,
-  ARB_TEXTURE_COMPRESSION,
-  ARB_TEXTURE_CUBE_MAP,
-  ARB_TEXTURE_ENV_ADD,
-  ARB_TEXTURE_ENV_COMBINE,
-  ARB_TEXTURE_ENV_DOT3,
-  ARB_TEXTURE_FLOAT,
-  ARB_HALF_FLOAT_PIXEL,
-  ARB_TEXTURE_BORDER_CLAMP,
-  ARB_TEXTURE_MIRRORED_REPEAT,
-  ARB_TEXTURE_NON_POWER_OF_TWO,
-  ARB_TEXTURE_RECTANGLE,
-  ARB_TEXTURE_RG,
-  ARB_VERTEX_PROGRAM,
-  ARB_VERTEX_BLEND,
-  ARB_VERTEX_BUFFER_OBJECT,
-  ARB_VERTEX_SHADER,
-  ARB_SHADER_OBJECTS,
-  ARB_SHADER_TEXTURE_LOD,
-  ARB_HALF_FLOAT_VERTEX,
-  /* EXT */
-  EXT_BLEND_COLOR,
-  EXT_BLEND_MINMAX,
-  EXT_BLEND_EQUATION_SEPARATE,
-  EXT_BLEND_FUNC_SEPARATE,
-  EXT_FOG_COORD,
-  EXT_FRAMEBUFFER_OBJECT,
-  EXT_FRAMEBUFFER_BLIT,
-  EXT_FRAMEBUFFER_MULTISAMPLE,
-  EXT_PACKED_DEPTH_STENCIL,
-  EXT_PALETTED_TEXTURE,
-  EXT_PIXEL_BUFFER_OBJECT,
-  EXT_POINT_PARAMETERS,
-  EXT_PROVOKING_VERTEX,
-  EXT_SECONDARY_COLOR,
-  EXT_STENCIL_TWO_SIDE,
-  EXT_STENCIL_WRAP,
-  EXT_TEXTURE3D,
-  EXT_TEXTURE_COMPRESSION_S3TC,
-  EXT_TEXTURE_COMPRESSION_RGTC,
-  EXT_TEXTURE_FILTER_ANISOTROPIC,
-  EXT_TEXTURE_LOD,
-  EXT_TEXTURE_LOD_BIAS,
-  EXT_TEXTURE_ENV_ADD,
-  EXT_TEXTURE_ENV_COMBINE,
-  EXT_TEXTURE_ENV_DOT3,
-  EXT_TEXTURE_SRGB,
-  EXT_TEXTURE_SWIZZLE,
-  EXT_GPU_PROGRAM_PARAMETERS,
-  EXT_VERTEX_ARRAY_BGRA,
-  /* NVIDIA */
-  NV_HALF_FLOAT,
-  NV_FOG_DISTANCE,
-  NV_FRAGMENT_PROGRAM,
-  NV_FRAGMENT_PROGRAM2,
-  NV_OCCLUSION_QUERY,
-  NV_REGISTER_COMBINERS,
-  NV_REGISTER_COMBINERS2,
-  NV_TEXGEN_REFLECTION,
-  NV_TEXTURE_ENV_COMBINE4,
-  NV_TEXTURE_SHADER,
-  NV_TEXTURE_SHADER2,
-  NV_TEXTURE_SHADER3,
-  NV_VERTEX_PROGRAM,
-  NV_VERTEX_PROGRAM1_1,
-  NV_VERTEX_PROGRAM2,
-  NV_VERTEX_PROGRAM2_OPTION,
-  NV_VERTEX_PROGRAM3,
-  NV_FRAGMENT_PROGRAM_OPTION,
-  NV_FENCE,
-  NV_DEPTH_CLAMP,
-  NV_LIGHT_MAX_EXPONENT,
-  /* ATI */
-  ATI_SEPARATE_STENCIL,
-  ATI_TEXTURE_ENV_COMBINE3,
-  ATI_TEXTURE_MIRROR_ONCE,
-  EXT_VERTEX_SHADER,
-  ATI_FRAGMENT_SHADER,
-  ATI_TEXTURE_COMPRESSION_3DC,
-  /* APPLE */
-  APPLE_FENCE,
-  APPLE_CLIENT_STORAGE,
-  APPLE_FLUSH_RENDER,
-  APPLE_YCBCR_422,
-  APPLE_FLOAT_PIXELS,
-  APPLE_FLUSH_BUFFER_RANGE,
-  /* SGI */
-  SGI_VIDEO_SYNC,
-  SGIS_GENERATE_MIPMAP,
-
-  /* Internally used */
-  WINE_NORMALIZED_TEXRECT,
-
-  /* WGL extensions */
-  WGL_ARB_PBUFFER,
-  WGL_ARB_PIXEL_FORMAT,
-  WGL_WINE_PIXEL_FORMAT_PASSTHROUGH,
-
-  WINED3D_GL_EXT_COUNT,
-} GL_SupportedExt;
-
-
-/****************************************************
- * #Defines
- ****************************************************/
 #define GL_EXT_FUNCS_GEN \
-    /** ARB Extensions **/ \
+    /* GL_APPLE_fence */ \
+    USE_GL_FUNC(PGLFNGENFENCESAPPLEPROC, \
+            glGenFencesAPPLE,                           APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNDELETEFENCESAPPLEPROC, \
+            glDeleteFencesAPPLE,                        APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNSETFENCEAPPLEPROC, \
+            glSetFenceAPPLE,                            APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNTESTFENCEAPPLEPROC, \
+            glTestFenceAPPLE,                           APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNFINISHFENCEAPPLEPROC, \
+            glFinishFenceAPPLE,                         APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNISFENCEAPPLEPROC, \
+            glIsFenceAPPLE,                             APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNTESTOBJECTAPPLEPROC, \
+            glTestObjectAPPLE,                          APPLE_FENCE,                    NULL) \
+    USE_GL_FUNC(PGLFNFINISHOBJECTAPPLEPROC, \
+            glFinishObjectAPPLE,                        APPLE_FENCE,                    NULL) \
+    /* GL_APPLE_flush_buffer_range */ \
+    USE_GL_FUNC(PGLFNBUFFERPARAMETERIAPPLE, \
+            glBufferParameteriAPPLE,                    APPLE_FLUSH_BUFFER_RANGE,       NULL) \
+    USE_GL_FUNC(PGLFNFLUSHMAPPEDBUFFERRANGEAPPLE, \
+            glFlushMappedBufferRangeAPPLE,              APPLE_FLUSH_BUFFER_RANGE,       NULL) \
+    /* GL_APPLE_flush_render */ \
+    USE_GL_FUNC(PGLFNFLUSHRENDERAPPLEPROC, \
+            glFlushRenderAPPLE,                         APPLE_FLUSH_RENDER,             NULL) \
+    USE_GL_FUNC(PGLFNFINISHRENDERAPPLEPROC, \
+            glFinishRenderAPPLE,                        APPLE_FLUSH_RENDER,             NULL) \
     /* GL_ARB_color_buffer_float */ \
-    USE_GL_FUNC(PGLFNCLAMPCOLORARBPROC,                             glClampColorARB,                            ARB_COLOR_BUFFER_FLOAT, NULL )\
+    USE_GL_FUNC(PGLFNCLAMPCOLORARBPROC, \
+            glClampColorARB,                            ARB_COLOR_BUFFER_FLOAT,         NULL) \
     /* GL_ARB_draw_buffers */ \
-    USE_GL_FUNC(PGLFNDRAWBUFFERSARBPROC,                            glDrawBuffersARB,                           ARB_DRAW_BUFFERS,       NULL )\
+    USE_GL_FUNC(PGLFNDRAWBUFFERSARBPROC, \
+            glDrawBuffersARB,                           ARB_DRAW_BUFFERS,               NULL) \
     /* GL_ARB_framebuffer_object */ \
-    USE_GL_FUNC(PGLFNGLISRENDERBUFFERPROC,                          glIsRenderbuffer,                           ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLBINDRENDERBUFFERPROC,                        glBindRenderbuffer,                         ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLDELETERENDERBUFFERSPROC,                     glDeleteRenderbuffers,                      ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGENRENDERBUFFERSPROC,                        glGenRenderbuffers,                         ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLRENDERBUFFERSTORAGEPROC,                     glRenderbufferStorage,                      ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNRENDERBUFFERSTORAGEMULTISAMPLEPROC,            glRenderbufferStorageMultisample,           ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGETRENDERBUFFERPARAMETERIVPROC,              glGetRenderbufferParameteriv,               ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLISFRAMEBUFFERPROC,                           glIsFramebuffer,                            ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLBINDFRAMEBUFFERPROC,                         glBindFramebuffer,                          ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLDELETEFRAMEBUFFERSPROC,                      glDeleteFramebuffers,                       ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGENFRAMEBUFFERSPROC,                         glGenFramebuffers,                          ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLCHECKFRAMEBUFFERSTATUSPROC,                  glCheckFramebufferStatus,                   ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE1DPROC,                    glFramebufferTexture1D,                     ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE2DPROC,                    glFramebufferTexture2D,                     ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE3DPROC,                    glFramebufferTexture3D,                     ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURELAYERPROC,                 glFramebufferTextureLayer,                  ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERRENDERBUFFERPROC,                 glFramebufferRenderbuffer,                  ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC,     glGetFramebufferAttachmentParameteriv,      ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLBLITFRAMEBUFFERPROC,                         glBlitFramebuffer,                          ARB_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGENERATEMIPMAPPROC,                          glGenerateMipmap,                           ARB_FRAMEBUFFER_OBJECT, NULL )\
+    USE_GL_FUNC(PGLFNGLISRENDERBUFFERPROC, \
+            glIsRenderbuffer,                           ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLBINDRENDERBUFFERPROC, \
+            glBindRenderbuffer,                         ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLDELETERENDERBUFFERSPROC, \
+            glDeleteRenderbuffers,                      ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGENRENDERBUFFERSPROC, \
+            glGenRenderbuffers,                         ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLRENDERBUFFERSTORAGEPROC, \
+            glRenderbufferStorage,                      ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNRENDERBUFFERSTORAGEMULTISAMPLEPROC, \
+            glRenderbufferStorageMultisample,           ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGETRENDERBUFFERPARAMETERIVPROC, \
+            glGetRenderbufferParameteriv,               ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLISFRAMEBUFFERPROC, \
+            glIsFramebuffer,                            ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLBINDFRAMEBUFFERPROC, \
+            glBindFramebuffer,                          ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLDELETEFRAMEBUFFERSPROC, \
+            glDeleteFramebuffers,                       ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGENFRAMEBUFFERSPROC, \
+            glGenFramebuffers,                          ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLCHECKFRAMEBUFFERSTATUSPROC, \
+            glCheckFramebufferStatus,                   ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE1DPROC, \
+            glFramebufferTexture1D,                     ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE2DPROC, \
+            glFramebufferTexture2D,                     ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE3DPROC, \
+            glFramebufferTexture3D,                     ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURELAYERPROC,     \
+            glFramebufferTextureLayer,                  ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERRENDERBUFFERPROC, \
+            glFramebufferRenderbuffer,                  ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, \
+            glGetFramebufferAttachmentParameteriv,      ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLBLITFRAMEBUFFERPROC, \
+            glBlitFramebuffer,                          ARB_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGENERATEMIPMAPPROC, \
+            glGenerateMipmap,                           ARB_FRAMEBUFFER_OBJECT,         NULL) \
     /* GL_ARB_geometry_shader4 */ \
-    USE_GL_FUNC(PGLFNPROGRAMPARAMETERIARBPROC,                      glProgramParameteriARB,                     ARB_GEOMETRY_SHADER4,   NULL ) \
-    USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTUREARBPROC,                     glFramebufferTextureARB,                    ARB_GEOMETRY_SHADER4,   NULL ) \
-    USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTURELAYERARBPROC,                glFramebufferTextureLayerARB,               ARB_GEOMETRY_SHADER4,   NULL ) \
-    USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTUREFACEARBPROC,                 glFramebufferTextureFaceARB,                ARB_GEOMETRY_SHADER4,   NULL ) \
+    USE_GL_FUNC(PGLFNPROGRAMPARAMETERIARBPROC, \
+            glProgramParameteriARB,                     ARB_GEOMETRY_SHADER4,           NULL) \
+    USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTUREARBPROC, \
+            glFramebufferTextureARB,                    ARB_GEOMETRY_SHADER4,           NULL) \
+    USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTURELAYERARBPROC, \
+            glFramebufferTextureLayerARB,               ARB_GEOMETRY_SHADER4,           NULL) \
+    USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTUREFACEARBPROC, \
+            glFramebufferTextureFaceARB,                ARB_GEOMETRY_SHADER4,           NULL) \
     /* GL_ARB_imaging, GL_EXT_blend_minmax */ \
-    USE_GL_FUNC(PGLFNBLENDCOLORPROC,                                glBlendColorEXT,                            EXT_BLEND_COLOR,        NULL )\
-    USE_GL_FUNC(PGLFNBLENDEQUATIONPROC,                             glBlendEquationEXT,                         EXT_BLEND_MINMAX,       NULL )\
+    USE_GL_FUNC(PGLFNBLENDCOLORPROC, \
+            glBlendColorEXT,                            EXT_BLEND_COLOR,                NULL) \
+    USE_GL_FUNC(PGLFNBLENDEQUATIONPROC, \
+            glBlendEquationEXT,                         EXT_BLEND_MINMAX,               NULL) \
     /* GL_ARB_multisample */ \
-    USE_GL_FUNC(WINED3D_PFNGLSAMPLECOVERAGEARBPROC,                 glSampleCoverageARB,                        ARB_MULTISAMPLE,        NULL )\
+    USE_GL_FUNC(WINED3D_PFNGLSAMPLECOVERAGEARBPROC, \
+            glSampleCoverageARB,                        ARB_MULTISAMPLE,                NULL) \
     /* GL_ARB_multitexture */ \
-    USE_GL_FUNC(WINED3D_PFNGLACTIVETEXTUREARBPROC,                  glActiveTextureARB,                         ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLCLIENTACTIVETEXTUREARBPROC,            glClientActiveTextureARB,                   ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD1FARBPROC,                glMultiTexCoord1fARB,                       ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD1FVARBPROC,               glMultiTexCoord1fvARB,                      ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD2FARBPROC,                glMultiTexCoord2fARB,                       ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD2FVARBPROC,               glMultiTexCoord2fvARB,                      ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD3FARBPROC,                glMultiTexCoord3fARB,                       ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD3FVARBPROC,               glMultiTexCoord3fvARB,                      ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD4FARBPROC,                glMultiTexCoord4fARB,                       ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD4FVARBPROC,               glMultiTexCoord4fvARB,                      ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD2SVARBPROC,               glMultiTexCoord2svARB,                      ARB_MULTITEXTURE,       NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD4SVARBPROC,               glMultiTexCoord4svARB,                      ARB_MULTITEXTURE,       NULL )\
+    USE_GL_FUNC(WINED3D_PFNGLACTIVETEXTUREARBPROC, \
+            glActiveTextureARB,                         ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLCLIENTACTIVETEXTUREARBPROC, \
+            glClientActiveTextureARB,                   ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD1FARBPROC, \
+            glMultiTexCoord1fARB,                       ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD1FVARBPROC, \
+            glMultiTexCoord1fvARB,                      ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD2FARBPROC, \
+            glMultiTexCoord2fARB,                       ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD2FVARBPROC, \
+            glMultiTexCoord2fvARB,                      ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD3FARBPROC, \
+            glMultiTexCoord3fARB,                       ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD3FVARBPROC, \
+            glMultiTexCoord3fvARB,                      ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD4FARBPROC, \
+            glMultiTexCoord4fARB,                       ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD4FVARBPROC, \
+            glMultiTexCoord4fvARB,                      ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD2SVARBPROC, \
+            glMultiTexCoord2svARB,                      ARB_MULTITEXTURE,               NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLMULTITEXCOORD4SVARBPROC, \
+            glMultiTexCoord4svARB,                      ARB_MULTITEXTURE,               NULL) \
     /* GL_ARB_occlusion_query */ \
-    USE_GL_FUNC(PGLFNGENQUERIESARBPROC,                             glGenQueriesARB,                            ARB_OCCLUSION_QUERY,    NULL )\
-    USE_GL_FUNC(PGLFNDELETEQUERIESARBPROC,                          glDeleteQueriesARB,                         ARB_OCCLUSION_QUERY,    NULL )\
-    USE_GL_FUNC(PGLFNBEGINQUERYARBPROC,                             glBeginQueryARB,                            ARB_OCCLUSION_QUERY,    NULL )\
-    USE_GL_FUNC(PGLFNENDQUERYARBPROC,                               glEndQueryARB,                              ARB_OCCLUSION_QUERY,    NULL )\
-    USE_GL_FUNC(PGLFNGETQUERYOBJECTIVARBPROC,                       glGetQueryObjectivARB,                      ARB_OCCLUSION_QUERY,    NULL )\
-    USE_GL_FUNC(PGLFNGETQUERYOBJECTUIVARBPROC,                      glGetQueryObjectuivARB,                     ARB_OCCLUSION_QUERY,    NULL )\
+    USE_GL_FUNC(PGLFNGENQUERIESARBPROC, \
+            glGenQueriesARB,                            ARB_OCCLUSION_QUERY,            NULL) \
+    USE_GL_FUNC(PGLFNDELETEQUERIESARBPROC, \
+            glDeleteQueriesARB,                         ARB_OCCLUSION_QUERY,            NULL) \
+    USE_GL_FUNC(PGLFNBEGINQUERYARBPROC, \
+            glBeginQueryARB,                            ARB_OCCLUSION_QUERY,            NULL) \
+    USE_GL_FUNC(PGLFNENDQUERYARBPROC, \
+            glEndQueryARB,                              ARB_OCCLUSION_QUERY,            NULL) \
+    USE_GL_FUNC(PGLFNGETQUERYOBJECTIVARBPROC, \
+            glGetQueryObjectivARB,                      ARB_OCCLUSION_QUERY,            NULL) \
+    USE_GL_FUNC(PGLFNGETQUERYOBJECTUIVARBPROC, \
+            glGetQueryObjectuivARB,                     ARB_OCCLUSION_QUERY,            NULL) \
     /* GL_ARB_point_parameters */ \
-    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFARBPROC,                      glPointParameterfARB,                       ARB_POINT_PARAMETERS,   NULL )\
-    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFVARBPROC,                     glPointParameterfvARB,                      ARB_POINT_PARAMETERS,   NULL )\
+    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFARBPROC, \
+            glPointParameterfARB,                       ARB_POINT_PARAMETERS,           NULL) \
+    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFVARBPROC, \
+            glPointParameterfvARB,                      ARB_POINT_PARAMETERS,           NULL) \
     /* GL_ARB_provoking_vertex */ \
-    USE_GL_FUNC(PGLFNGLPROVOKINGVERTEXPROC,                         glProvokingVertex,                          ARB_PROVOKING_VERTEX,   NULL)\
+    USE_GL_FUNC(PGLFNGLPROVOKINGVERTEXPROC, \
+            glProvokingVertex,                          ARB_PROVOKING_VERTEX,           NULL) \
+    /* GL_ARB_shader_objects */ \
+    USE_GL_FUNC(WINED3D_PFNGLGETOBJECTPARAMETERIVARBPROC, \
+            glGetObjectParameterivARB,                  ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETOBJECTPARAMETERFVARBPROC, \
+            glGetObjectParameterfvARB,                  ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETUNIFORMLOCATIONARBPROC, \
+            glGetUniformLocationARB,                    ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETACTIVEUNIFORMARBPROC, \
+            glGetActiveUniformARB,                      ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1IARBPROC, \
+            glUniform1iARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2IARBPROC, \
+            glUniform2iARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3IARBPROC, \
+            glUniform3iARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4IARBPROC, \
+            glUniform4iARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1IARBPROC, \
+            glUniform1fARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2FARBPROC, \
+            glUniform2fARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3FARBPROC, \
+            glUniform3fARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4FARBPROC, \
+            glUniform4fARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1FVARBPROC, \
+            glUniform1fvARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2FVARBPROC, \
+            glUniform2fvARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3FVARBPROC, \
+            glUniform3fvARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4FVARBPROC, \
+            glUniform4fvARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1IVARBPROC, \
+            glUniform1ivARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2IVARBPROC, \
+            glUniform2ivARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3IVARBPROC, \
+            glUniform3ivARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4IVARBPROC, \
+            glUniform4ivARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORMMATRIX2FVARBPROC, \
+            glUniformMatrix2fvARB,                      ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORMMATRIX3FVARBPROC, \
+            glUniformMatrix3fvARB,                      ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUNIFORMMATRIX4FVARBPROC, \
+            glUniformMatrix4fvARB,                      ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETUNIFORMFVARBPROC, \
+            glGetUniformfvARB,                          ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETUNIFORMIVARBPROC, \
+            glGetUniformivARB,                          ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETINFOLOGARBPROC, \
+            glGetInfoLogARB,                            ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLUSEPROGRAMOBJECTARBPROC, \
+            glUseProgramObjectARB,                      ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLCREATESHADEROBJECTARBPROC, \
+            glCreateShaderObjectARB,                    ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLSHADERSOURCEARBPROC, \
+            glShaderSourceARB,                          ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLCOMPILESHADERARBPROC, \
+            glCompileShaderARB,                         ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLCREATEPROGRAMOBJECTARBPROC, \
+            glCreateProgramObjectARB,                   ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLATTACHOBJECTARBPROC, \
+            glAttachObjectARB,                          ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLLINKPROGRAMARBPROC, \
+            glLinkProgramARB,                           ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLDETACHOBJECTARBPROC, \
+            glDetachObjectARB,                          ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLDELETEOBJECTARBPROC, \
+            glDeleteObjectARB,                          ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLVALIDATEPROGRAMARBPROC, \
+            glValidateProgramARB,                       ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETATTACHEDOBJECTSARBPROC, \
+            glGetAttachedObjectsARB,                    ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETHANDLEARBPROC, \
+            glGetHandleARB,                             ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETSHADERSOURCEARBPROC, \
+            glGetShaderSourceARB,                       ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLBINDATTRIBLOCATIONARBPROC, \
+            glBindAttribLocationARB,                    ARB_SHADER_OBJECTS,             NULL) \
+    USE_GL_FUNC(WINED3D_PFNGLGETATTRIBLOCATIONARBPROC, \
+            glGetAttribLocationARB,                     ARB_SHADER_OBJECTS,             NULL) \
     /* GL_ARB_texture_compression */ \
-    USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE2DPROC,                      glCompressedTexImage2DARB,                  ARB_TEXTURE_COMPRESSION,NULL )\
-    USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE3DPROC,                      glCompressedTexImage3DARB,                  ARB_TEXTURE_COMPRESSION,NULL )\
-    USE_GL_FUNC(PGLFNCOMPRESSEDTEXSUBIMAGE2DPROC,                   glCompressedTexSubImage2DARB,               ARB_TEXTURE_COMPRESSION,NULL )\
-    USE_GL_FUNC(PGLFNCOMPRESSEDTEXSUBIMAGE3DPROC,                   glCompressedTexSubImage3DARB,               ARB_TEXTURE_COMPRESSION,NULL )\
-    USE_GL_FUNC(PGLFNGETCOMPRESSEDTEXIMAGEPROC,                     glGetCompressedTexImageARB,                 ARB_TEXTURE_COMPRESSION,NULL )\
+    USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE2DPROC, \
+            glCompressedTexImage2DARB,                  ARB_TEXTURE_COMPRESSION,        NULL) \
+    USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE3DPROC, \
+            glCompressedTexImage3DARB,                  ARB_TEXTURE_COMPRESSION,        NULL) \
+    USE_GL_FUNC(PGLFNCOMPRESSEDTEXSUBIMAGE2DPROC, \
+            glCompressedTexSubImage2DARB,               ARB_TEXTURE_COMPRESSION,        NULL) \
+    USE_GL_FUNC(PGLFNCOMPRESSEDTEXSUBIMAGE3DPROC, \
+            glCompressedTexSubImage3DARB,               ARB_TEXTURE_COMPRESSION,        NULL) \
+    USE_GL_FUNC(PGLFNGETCOMPRESSEDTEXIMAGEPROC, \
+            glGetCompressedTexImageARB,                 ARB_TEXTURE_COMPRESSION,        NULL) \
     /* GL_ARB_vertex_blend */ \
-    USE_GL_FUNC(PGLFNGLWEIGHTPOINTERARB,                            glWeightPointerARB,                         ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTBV,                                    glWeightbvARB,                              ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTSV,                                    glWeightsvARB,                              ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTIV,                                    glWeightivARB,                              ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTFV,                                    glWeightfvARB,                              ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTDV,                                    glWeightdvARB,                              ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTUBV,                                   glWeightubvARB,                             ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTUSV,                                   glWeightusvARB,                             ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLWEIGHTUIV,                                   glWeightuivARB,                             ARB_VERTEX_BLEND,       NULL )\
-    USE_GL_FUNC(PGLFNGLVERTEXBLENDARB,                              glVertexBlendARB,                           ARB_VERTEX_BLEND,       NULL )\
+    USE_GL_FUNC(PGLFNGLWEIGHTPOINTERARB, \
+            glWeightPointerARB,                         ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTBV, \
+            glWeightbvARB,                              ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTSV, \
+            glWeightsvARB,                              ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTIV, \
+            glWeightivARB,                              ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTFV, \
+            glWeightfvARB,                              ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTDV, \
+            glWeightdvARB,                              ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTUBV, \
+            glWeightubvARB,                             ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTUSV, \
+            glWeightusvARB,                             ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLWEIGHTUIV, \
+            glWeightuivARB,                             ARB_VERTEX_BLEND,               NULL) \
+    USE_GL_FUNC(PGLFNGLVERTEXBLENDARB, \
+            glVertexBlendARB,                           ARB_VERTEX_BLEND,               NULL) \
     /* GL_ARB_vertex_buffer_object */ \
-    USE_GL_FUNC(PGLFNBINDBUFFERARBPROC,                             glBindBufferARB,                            ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNDELETEBUFFERSARBPROC,                          glDeleteBuffersARB,                         ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNGENBUFFERSARBPROC,                             glGenBuffersARB,                            ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNISBUFFERARBPROC,                               glIsBufferARB,                              ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNBUFFERDATAARBPROC,                             glBufferDataARB,                            ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNBUFFERSUBDATAARBPROC,                          glBufferSubDataARB,                         ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNGETBUFFERSUBDATAARBPROC,                       glGetBufferSubDataARB,                      ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNMAPBUFFERARBPROC,                              glMapBufferARB,                             ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNUNMAPBUFFERARBPROC,                            glUnmapBufferARB,                           ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNGETBUFFERPARAMETERIVARBPROC,                   glGetBufferParameterivARB,                  ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    USE_GL_FUNC(PGLFNGETBUFFERPOINTERVARBPROC,                      glGetBufferPointervARB,                     ARB_VERTEX_BUFFER_OBJECT,NULL)\
-    /** EXT Extensions **/ \
+    USE_GL_FUNC(PGLFNBINDBUFFERARBPROC, \
+            glBindBufferARB,                            ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNDELETEBUFFERSARBPROC, \
+            glDeleteBuffersARB,                         ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNGENBUFFERSARBPROC, \
+            glGenBuffersARB,                            ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNISBUFFERARBPROC, \
+            glIsBufferARB,                              ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNBUFFERDATAARBPROC, \
+            glBufferDataARB,                            ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNBUFFERSUBDATAARBPROC, \
+            glBufferSubDataARB,                         ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNGETBUFFERSUBDATAARBPROC, \
+            glGetBufferSubDataARB,                      ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNMAPBUFFERARBPROC, \
+            glMapBufferARB,                             ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNUNMAPBUFFERARBPROC, \
+            glUnmapBufferARB,                           ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNGETBUFFERPARAMETERIVARBPROC, \
+            glGetBufferParameterivARB,                  ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    USE_GL_FUNC(PGLFNGETBUFFERPOINTERVARBPROC, \
+            glGetBufferPointervARB,                     ARB_VERTEX_BUFFER_OBJECT,       NULL) \
+    /* GL_ARB_vertex_program */ \
+    USE_GL_FUNC(PGLFNGENPROGRAMSARBPROC, \
+            glGenProgramsARB,                           ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNBINDPROGRAMARBPROC, \
+            glBindProgramARB,                           ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNPROGRAMSTRINGARBPROC, \
+            glProgramStringARB,                         ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNDELETEPROGRAMSARBPROC, \
+            glDeleteProgramsARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNPROGRAMENVPARAMETER4FVARBPROC, \
+            glProgramEnvParameter4fvARB,                ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNPROGRAMLOCALPARAMETER4FVARBPROC, \
+            glProgramLocalParameter4fvARB,              ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIBPOINTERARBPROC, \
+            glVertexAttribPointerARB,                   ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNENABLEVERTEXATTRIBARRAYARBPROC, \
+            glEnableVertexAttribArrayARB,               ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNDISABLEVERTEXATTRIBARRAYARBPROC, \
+            glDisableVertexAttribArrayARB,              ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1DARBPROC, \
+            glVertexAttrib1dARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1DVARBPROC, \
+            glVertexAttrib1dvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1FARBPROC, \
+            glVertexAttrib1fARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1FVARBPROC, \
+            glVertexAttrib1fvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1SARBPROC, \
+            glVertexAttrib1sARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1SVARBPROC, \
+            glVertexAttrib1svARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2DARBPROC, \
+            glVertexAttrib2dARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2DVARBPROC, \
+            glVertexAttrib2dvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2FARBPROC, \
+            glVertexAttrib2fARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2FVARBPROC, \
+            glVertexAttrib2fvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2SARBPROC, \
+            glVertexAttrib2sARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2SVARBPROC, \
+            glVertexAttrib2svARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3DARBPROC, \
+            glVertexAttrib3dARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3DVARBPROC, \
+            glVertexAttrib3dvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3FARBPROC, \
+            glVertexAttrib3fARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3FVARBPROC, \
+            glVertexAttrib3fvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3SARBPROC, \
+            glVertexAttrib3sARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3SVARBPROC, \
+            glVertexAttrib3svARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NBVARBPROC, \
+            glVertexAttrib4NbvARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NIVARBPROC, \
+            glVertexAttrib4NivARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NSVARBPROC, \
+            glVertexAttrib4NsvARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUBARBPROC, \
+            glVertexAttrib4NubARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUBVARBPROC, \
+            glVertexAttrib4NubvARB,                     ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUIVARBPROC, \
+            glVertexAttrib4NuivARB,                     ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUSVARBPROC, \
+            glVertexAttrib4NusvARB,                     ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4BVARBPROC, \
+            glVertexAttrib4bvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4DARBPROC, \
+            glVertexAttrib4dARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4DVARBPROC, \
+            glVertexAttrib4dvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4FARBPROC, \
+            glVertexAttrib4fARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4FVARBPROC, \
+            glVertexAttrib4fvARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4IVARBPROC, \
+            glVertexAttrib4ivARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4SARBPROC, \
+            glVertexAttrib4sARB,                        ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4SVARBPROC, \
+            glVertexAttrib4svARB,                       ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4UBVARBPROC, \
+            glVertexAttrib4ubvARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4UIVARBPROC, \
+            glVertexAttrib4uivARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4USVARBPROC, \
+            glVertexAttrib4usvARB,                      ARB_VERTEX_PROGRAM,             NULL) \
+    USE_GL_FUNC(PGLFNGETPROGRAMIVARBPROC, \
+            glGetProgramivARB,                          ARB_VERTEX_PROGRAM,             NULL) \
+    /* GL_ATI_fragment_shader */ \
+    USE_GL_FUNC(PGLFNGENFRAGMENTSHADERSATI, \
+            glGenFragmentShadersATI,                    ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNBINDFRAGMENTSHADERATI, \
+            glBindFragmentShaderATI,                    ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNDELETEFRAGMENTSHADERATI, \
+            glDeleteFragmentShaderATI,                  ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNBEGINFRAGMENTSHADERATI, \
+            glBeginFragmentShaderATI,                   ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNENDFRAGMENTSHADERATI, \
+            glEndFragmentShaderATI,                     ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNPASSTEXCOORDATI, \
+            glPassTexCoordATI,                          ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNSAMPLEMAPATI, \
+            glSampleMapATI,                             ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNCOLORFRAGMENTOP1ATI, \
+            glColorFragmentOp1ATI,                      ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNCOLORFRAGMENTOP2ATI, \
+            glColorFragmentOp2ATI,                      ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNCOLORFRAGMENTOP3ATI, \
+            glColorFragmentOp3ATI,                      ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNALPHAFRAGMENTOP1ATI, \
+            glAlphaFragmentOp1ATI,                      ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNALPHAFRAGMENTOP2ATI, \
+            glAlphaFragmentOp2ATI,                      ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNALPHAFRAGMENTOP3ATI, \
+            glAlphaFragmentOp3ATI,                      ATI_FRAGMENT_SHADER,            NULL) \
+    USE_GL_FUNC(PGLFNSETFRAGMENTSHADERCONSTANTATI, \
+            glSetFragmentShaderConstantATI,             ATI_FRAGMENT_SHADER,            NULL) \
+    /* GL_ATI_separate_stencil */ \
+    USE_GL_FUNC(PGLFNSTENCILOPSEPARATEATIPROC, \
+            glStencilOpSeparateATI,                     ATI_SEPARATE_STENCIL,           NULL) \
+    USE_GL_FUNC(PGLFNSTENCILFUNCSEPARATEATIPROC, \
+            glStencilFuncSeparateATI,                   ATI_SEPARATE_STENCIL,           NULL) \
     /* GL_EXT_blend_equation_separate */ \
-    USE_GL_FUNC(PGLFNBLENDFUNCSEPARATEEXTPROC,                      glBlendFuncSeparateEXT,                     EXT_BLEND_FUNC_SEPARATE, NULL)\
+    USE_GL_FUNC(PGLFNBLENDFUNCSEPARATEEXTPROC, \
+            glBlendFuncSeparateEXT,                     EXT_BLEND_FUNC_SEPARATE,        NULL) \
     /* GL_EXT_blend_func_separate */ \
-    USE_GL_FUNC(PGLFNBLENDEQUATIONSEPARATEEXTPROC,                  glBlendEquationSeparateEXT,                 EXT_BLEND_EQUATION_SEPARATE, NULL)\
+    USE_GL_FUNC(PGLFNBLENDEQUATIONSEPARATEEXTPROC, \
+            glBlendEquationSeparateEXT,                 EXT_BLEND_EQUATION_SEPARATE,    NULL) \
     /* GL_EXT_fog_coord */ \
-    USE_GL_FUNC(PGLFNGLFOGCOORDFEXTPROC,                            glFogCoordfEXT,                             EXT_FOG_COORD,          NULL )\
-    USE_GL_FUNC(PGLFNGLFOGCOORDFVEXTPROC,                           glFogCoordfvEXT,                            EXT_FOG_COORD,          NULL )\
-    USE_GL_FUNC(PGLFNGLFOGCOORDDEXTPROC,                            glFogCoorddEXT,                             EXT_FOG_COORD,          NULL )\
-    USE_GL_FUNC(PGLFNGLFOGCOORDDVEXTPROC,                           glFogCoorddvEXT,                            EXT_FOG_COORD,          NULL )\
-    USE_GL_FUNC(PGLFNGLFOGCOORDPOINTEREXTPROC,                      glFogCoordPointerEXT,                       EXT_FOG_COORD,          NULL )\
-    /* GL_EXT_framebuffer_object */ \
-    USE_GL_FUNC(PGLFNGLISRENDERBUFFEREXTPROC,                       glIsRenderbufferEXT,                        EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLBINDRENDERBUFFEREXTPROC,                     glBindRenderbufferEXT,                      EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLDELETERENDERBUFFERSEXTPROC,                  glDeleteRenderbuffersEXT,                   EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGENRENDERBUFFERSEXTPROC,                     glGenRenderbuffersEXT,                      EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLRENDERBUFFERSTORAGEEXTPROC,                  glRenderbufferStorageEXT,                   EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLISFRAMEBUFFEREXTPROC,                        glIsFramebufferEXT,                         EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLBINDFRAMEBUFFEREXTPROC,                      glBindFramebufferEXT,                       EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLDELETEFRAMEBUFFERSEXTPROC,                   glDeleteFramebuffersEXT,                    EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGENFRAMEBUFFERSEXTPROC,                      glGenFramebuffersEXT,                       EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLCHECKFRAMEBUFFERSTATUSEXTPROC,               glCheckFramebufferStatusEXT,                EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE1DEXTPROC,                 glFramebufferTexture1DEXT,                  EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE2DEXTPROC,                 glFramebufferTexture2DEXT,                  EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE3DEXTPROC,                 glFramebufferTexture3DEXT,                  EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLFRAMEBUFFERRENDERBUFFEREXTPROC,              glFramebufferRenderbufferEXT,               EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGENERATEMIPMAPEXTPROC,                       glGenerateMipmapEXT,                        EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGETRENDERBUFFERPARAMETERIVEXTPROC,           glGetRenderbufferParameterivEXT,            EXT_FRAMEBUFFER_OBJECT, NULL )\
-    USE_GL_FUNC(PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC,  glGetFramebufferAttachmentParameterivEXT,   EXT_FRAMEBUFFER_OBJECT, NULL )\
+    USE_GL_FUNC(PGLFNGLFOGCOORDFEXTPROC, \
+            glFogCoordfEXT,                             EXT_FOG_COORD,                  NULL) \
+    USE_GL_FUNC(PGLFNGLFOGCOORDFVEXTPROC, \
+            glFogCoordfvEXT,                            EXT_FOG_COORD,                  NULL) \
+    USE_GL_FUNC(PGLFNGLFOGCOORDDEXTPROC, \
+            glFogCoorddEXT,                             EXT_FOG_COORD,                  NULL) \
+    USE_GL_FUNC(PGLFNGLFOGCOORDDVEXTPROC, \
+            glFogCoorddvEXT,                            EXT_FOG_COORD,                  NULL) \
+    USE_GL_FUNC(PGLFNGLFOGCOORDPOINTEREXTPROC, \
+            glFogCoordPointerEXT,                       EXT_FOG_COORD,                  NULL) \
     /* GL_EXT_framebuffer_blit */ \
-    USE_GL_FUNC(PGLFNGLBLITFRAMEBUFFEREXTPROC,                      glBlitFramebufferEXT,                       EXT_FRAMEBUFFER_BLIT,   NULL )\
+    USE_GL_FUNC(PGLFNGLBLITFRAMEBUFFEREXTPROC, \
+            glBlitFramebufferEXT,                       EXT_FRAMEBUFFER_BLIT,           NULL) \
     /* GL_EXT_framebuffer_multisample */ \
-    USE_GL_FUNC(PGLFNRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC,         glRenderbufferStorageMultisampleEXT,        EXT_FRAMEBUFFER_MULTISAMPLE, NULL )\
+    USE_GL_FUNC(PGLFNRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, \
+            glRenderbufferStorageMultisampleEXT,        EXT_FRAMEBUFFER_MULTISAMPLE,    NULL) \
+    /* GL_EXT_framebuffer_object */ \
+    USE_GL_FUNC(PGLFNGLISRENDERBUFFEREXTPROC, \
+            glIsRenderbufferEXT,                        EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLBINDRENDERBUFFEREXTPROC, \
+            glBindRenderbufferEXT,                      EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLDELETERENDERBUFFERSEXTPROC, \
+            glDeleteRenderbuffersEXT,                   EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGENRENDERBUFFERSEXTPROC, \
+            glGenRenderbuffersEXT,                      EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLRENDERBUFFERSTORAGEEXTPROC, \
+            glRenderbufferStorageEXT,                   EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLISFRAMEBUFFEREXTPROC, \
+            glIsFramebufferEXT,                         EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLBINDFRAMEBUFFEREXTPROC, \
+            glBindFramebufferEXT,                       EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLDELETEFRAMEBUFFERSEXTPROC, \
+            glDeleteFramebuffersEXT,                    EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGENFRAMEBUFFERSEXTPROC, \
+            glGenFramebuffersEXT,                       EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, \
+            glCheckFramebufferStatusEXT,                EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE1DEXTPROC, \
+            glFramebufferTexture1DEXT,                  EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE2DEXTPROC, \
+            glFramebufferTexture2DEXT,                  EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERTEXTURE3DEXTPROC, \
+            glFramebufferTexture3DEXT,                  EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLFRAMEBUFFERRENDERBUFFEREXTPROC, \
+            glFramebufferRenderbufferEXT,               EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGENERATEMIPMAPEXTPROC, \
+            glGenerateMipmapEXT,                        EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGETRENDERBUFFERPARAMETERIVEXTPROC, \
+            glGetRenderbufferParameterivEXT,            EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    USE_GL_FUNC(PGLFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC, \
+            glGetFramebufferAttachmentParameterivEXT,   EXT_FRAMEBUFFER_OBJECT,         NULL) \
+    /* GL_EXT_gpu_program_parameters */ \
+    USE_GL_FUNC(PGLFNPROGRAMENVPARAMETERS4FVEXTPROC, \
+            glProgramEnvParameters4fvEXT,               EXT_GPU_PROGRAM_PARAMETERS,     NULL) \
+    USE_GL_FUNC(PGLFNPROGRAMLOCALPARAMETERS4FVEXTPROC, \
+            glProgramLocalParameters4fvEXT,             EXT_GPU_PROGRAM_PARAMETERS,     NULL) \
     /* GL_EXT_paletted_texture */ \
-    USE_GL_FUNC(PGLFNGLCOLORTABLEEXTPROC,                           glColorTableEXT,                            EXT_PALETTED_TEXTURE,   NULL )\
+    USE_GL_FUNC(PGLFNGLCOLORTABLEEXTPROC, \
+            glColorTableEXT,                            EXT_PALETTED_TEXTURE,           NULL) \
     /* GL_EXT_point_parameters */ \
-    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFEXTPROC,                      glPointParameterfEXT,                       EXT_POINT_PARAMETERS,   NULL )\
-    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFVEXTPROC,                     glPointParameterfvEXT,                      EXT_POINT_PARAMETERS,   NULL )\
+    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFEXTPROC, \
+            glPointParameterfEXT,                       EXT_POINT_PARAMETERS,           NULL) \
+    USE_GL_FUNC(PGLFNGLPOINTPARAMETERFVEXTPROC, \
+            glPointParameterfvEXT,                      EXT_POINT_PARAMETERS,           NULL) \
     /* GL_EXT_provoking_vertex */ \
-    USE_GL_FUNC(PGLFNGLPROVOKINGVERTEXEXTPROC,                      glProvokingVertexEXT,                       EXT_PROVOKING_VERTEX,   NULL)\
+    USE_GL_FUNC(PGLFNGLPROVOKINGVERTEXEXTPROC, \
+            glProvokingVertexEXT,                       EXT_PROVOKING_VERTEX,           NULL) \
     /* GL_EXT_secondary_color */ \
-    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3UBEXTPROC,                    glSecondaryColor3ubEXT,                     EXT_SECONDARY_COLOR,    NULL )\
-    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3UBVEXTPROC,                   glSecondaryColor3ubvEXT,                    EXT_SECONDARY_COLOR,    NULL )\
-    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3FEXTPROC,                     glSecondaryColor3fEXT,                      EXT_SECONDARY_COLOR,    NULL )\
-    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3FVEXTPROC,                    glSecondaryColor3fvEXT,                     EXT_SECONDARY_COLOR,    NULL )\
-    USE_GL_FUNC(PGLFNGLSECONDARYCOLORPOINTEREXTPROC,                glSecondaryColorPointerEXT,                 EXT_SECONDARY_COLOR,    NULL )\
-    /* GL_EXT_texture3D */ \
-    USE_GL_FUNC(PGLFNGLTEXIMAGE3DEXTPROC,                           glTexImage3DEXT,                            EXT_TEXTURE3D,          glTexImage3D)\
-    USE_GL_FUNC(PGLFNGLTEXSUBIMAGE3DEXTPROC,                        glTexSubImage3DEXT,                         EXT_TEXTURE3D,          glTexSubImage3D)\
-    /* GL_ARB_vertex_program */ \
-    USE_GL_FUNC(PGLFNGENPROGRAMSARBPROC,                            glGenProgramsARB,                           ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNBINDPROGRAMARBPROC,                            glBindProgramARB,                           ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNPROGRAMSTRINGARBPROC,                          glProgramStringARB,                         ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNDELETEPROGRAMSARBPROC,                         glDeleteProgramsARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNPROGRAMENVPARAMETER4FVARBPROC,                 glProgramEnvParameter4fvARB,                ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNPROGRAMLOCALPARAMETER4FVARBPROC,               glProgramLocalParameter4fvARB,                ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIBPOINTERARBPROC,                    glVertexAttribPointerARB,                   ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNENABLEVERTEXATTRIBARRAYARBPROC,                glEnableVertexAttribArrayARB,               ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNDISABLEVERTEXATTRIBARRAYARBPROC,               glDisableVertexAttribArrayARB,              ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1DARBPROC,                         glVertexAttrib1dARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1DVARBPROC,                        glVertexAttrib1dvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1FARBPROC,                         glVertexAttrib1fARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1FVARBPROC,                        glVertexAttrib1fvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1SARBPROC,                         glVertexAttrib1sARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1SVARBPROC,                        glVertexAttrib1svARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2DARBPROC,                         glVertexAttrib2dARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2DVARBPROC,                        glVertexAttrib2dvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2FARBPROC,                         glVertexAttrib2fARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2FVARBPROC,                        glVertexAttrib2fvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2SARBPROC,                         glVertexAttrib2sARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2SVARBPROC,                        glVertexAttrib2svARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3DARBPROC,                         glVertexAttrib3dARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3DVARBPROC,                        glVertexAttrib3dvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3FARBPROC,                         glVertexAttrib3fARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3FVARBPROC,                        glVertexAttrib3fvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3SARBPROC,                         glVertexAttrib3sARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3SVARBPROC,                        glVertexAttrib3svARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NBVARBPROC,                       glVertexAttrib4NbvARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NIVARBPROC,                       glVertexAttrib4NivARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NSVARBPROC,                       glVertexAttrib4NsvARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUBARBPROC,                       glVertexAttrib4NubARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUBVARBPROC,                      glVertexAttrib4NubvARB,                     ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUIVARBPROC,                      glVertexAttrib4NuivARB,                     ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4NUSVARBPROC,                      glVertexAttrib4NusvARB,                     ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4BVARBPROC,                        glVertexAttrib4bvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4DARBPROC,                         glVertexAttrib4dARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4DVARBPROC,                        glVertexAttrib4dvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4FARBPROC,                         glVertexAttrib4fARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4FVARBPROC,                        glVertexAttrib4fvARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4IVARBPROC,                        glVertexAttrib4ivARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4SARBPROC,                         glVertexAttrib4sARB,                        ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4SVARBPROC,                        glVertexAttrib4svARB,                       ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4UBVARBPROC,                       glVertexAttrib4ubvARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4UIVARBPROC,                       glVertexAttrib4uivARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4USVARBPROC,                       glVertexAttrib4usvARB,                      ARB_VERTEX_PROGRAM,     NULL )\
-    USE_GL_FUNC(PGLFNGETPROGRAMIVARBPROC,                           glGetProgramivARB,                          ARB_VERTEX_PROGRAM,     NULL )\
-    /* GL_ARB_shader_objects */ \
-    USE_GL_FUNC(WINED3D_PFNGLGETOBJECTPARAMETERIVARBPROC,           glGetObjectParameterivARB,                  ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETOBJECTPARAMETERFVARBPROC,           glGetObjectParameterfvARB,                  ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETUNIFORMLOCATIONARBPROC,             glGetUniformLocationARB,                    ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETACTIVEUNIFORMARBPROC,               glGetActiveUniformARB,                      ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1IARBPROC,                      glUniform1iARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2IARBPROC,                      glUniform2iARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3IARBPROC,                      glUniform3iARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4IARBPROC,                      glUniform4iARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1IARBPROC,                      glUniform1fARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2FARBPROC,                      glUniform2fARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3FARBPROC,                      glUniform3fARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4FARBPROC,                      glUniform4fARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1FVARBPROC,                     glUniform1fvARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2FVARBPROC,                     glUniform2fvARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3FVARBPROC,                     glUniform3fvARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4FVARBPROC,                     glUniform4fvARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM1IVARBPROC,                     glUniform1ivARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM2IVARBPROC,                     glUniform2ivARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM3IVARBPROC,                     glUniform3ivARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORM4IVARBPROC,                     glUniform4ivARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORMMATRIX2FVARBPROC,               glUniformMatrix2fvARB,                      ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORMMATRIX3FVARBPROC,               glUniformMatrix3fvARB,                      ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUNIFORMMATRIX4FVARBPROC,               glUniformMatrix4fvARB,                      ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETUNIFORMFVARBPROC,                   glGetUniformfvARB,                          ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETUNIFORMIVARBPROC,                   glGetUniformivARB,                          ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETINFOLOGARBPROC,                     glGetInfoLogARB,                            ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLUSEPROGRAMOBJECTARBPROC,               glUseProgramObjectARB,                      ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLCREATESHADEROBJECTARBPROC,             glCreateShaderObjectARB,                    ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLSHADERSOURCEARBPROC,                   glShaderSourceARB,                          ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLCOMPILESHADERARBPROC,                  glCompileShaderARB,                         ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLCREATEPROGRAMOBJECTARBPROC,            glCreateProgramObjectARB,                   ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLATTACHOBJECTARBPROC,                   glAttachObjectARB,                          ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLLINKPROGRAMARBPROC,                    glLinkProgramARB,                           ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLDETACHOBJECTARBPROC,                   glDetachObjectARB,                          ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLDELETEOBJECTARBPROC,                   glDeleteObjectARB,                          ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLVALIDATEPROGRAMARBPROC,                glValidateProgramARB,                       ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETATTACHEDOBJECTSARBPROC,             glGetAttachedObjectsARB,                    ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETHANDLEARBPROC,                      glGetHandleARB,                             ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETSHADERSOURCEARBPROC,                glGetShaderSourceARB,                       ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLBINDATTRIBLOCATIONARBPROC,             glBindAttribLocationARB,                    ARB_SHADER_OBJECTS,     NULL )\
-    USE_GL_FUNC(WINED3D_PFNGLGETATTRIBLOCATIONARBPROC,              glGetAttribLocationARB,                     ARB_SHADER_OBJECTS,     NULL )\
+    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3UBEXTPROC, \
+            glSecondaryColor3ubEXT,                     EXT_SECONDARY_COLOR,            NULL) \
+    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3UBVEXTPROC, \
+            glSecondaryColor3ubvEXT,                    EXT_SECONDARY_COLOR,            NULL) \
+    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3FEXTPROC, \
+            glSecondaryColor3fEXT,                      EXT_SECONDARY_COLOR,            NULL) \
+    USE_GL_FUNC(PGLFNGLSECONDARYCOLOR3FVEXTPROC, \
+            glSecondaryColor3fvEXT,                     EXT_SECONDARY_COLOR,            NULL) \
+    USE_GL_FUNC(PGLFNGLSECONDARYCOLORPOINTEREXTPROC, \
+            glSecondaryColorPointerEXT,                 EXT_SECONDARY_COLOR,            NULL) \
     /* GL_EXT_stencil_two_side */ \
-    USE_GL_FUNC(PGLFNACTIVESTENCILFACEEXTPROC,                      glActiveStencilFaceEXT,                     EXT_STENCIL_TWO_SIDE,   NULL )\
-    /* GL_ATI_separate_stencil */ \
-    USE_GL_FUNC(PGLFNSTENCILOPSEPARATEATIPROC,                      glStencilOpSeparateATI,                     ATI_SEPARATE_STENCIL,   NULL )\
-    USE_GL_FUNC(PGLFNSTENCILFUNCSEPARATEATIPROC,                    glStencilFuncSeparateATI,                   ATI_SEPARATE_STENCIL,   NULL )\
+    USE_GL_FUNC(PGLFNACTIVESTENCILFACEEXTPROC, \
+            glActiveStencilFaceEXT,                     EXT_STENCIL_TWO_SIDE,           NULL) \
+    /* GL_EXT_texture3D */ \
+    USE_GL_FUNC(PGLFNGLTEXIMAGE3DEXTPROC, \
+            glTexImage3DEXT,                            EXT_TEXTURE3D,                  glTexImage3D) \
+    USE_GL_FUNC(PGLFNGLTEXSUBIMAGE3DEXTPROC, \
+            glTexSubImage3DEXT,                         EXT_TEXTURE3D,                  glTexSubImage3D) \
+    /* GL_NV_fence */ \
+    USE_GL_FUNC(PGLFNGENFENCESNVPROC, \
+            glGenFencesNV,                              NV_FENCE,                       NULL) \
+    USE_GL_FUNC(PGLFNDELETEFENCESNVPROC, \
+            glDeleteFencesNV,                           NV_FENCE,                       NULL) \
+    USE_GL_FUNC(PGLFNSETFENCENVPROC,    \
+            glSetFenceNV,                               NV_FENCE,                       NULL) \
+    USE_GL_FUNC(PGLFNTESTFENCENVPROC, \
+            glTestFenceNV,                              NV_FENCE,                       NULL) \
+    USE_GL_FUNC(PGLFNFINISHFENCENVPROC, \
+            glFinishFenceNV,                            NV_FENCE,                       NULL) \
+    USE_GL_FUNC(PGLFNISFENCENVPROC, \
+            glIsFenceNV,                                NV_FENCE,                       NULL) \
+    USE_GL_FUNC(PGLFNGETFENCEIVNVPROC, \
+            glGetFenceivNV,                             NV_FENCE,                       NULL) \
     /* GL_NV_half_float */ \
-    USE_GL_FUNC(PGLFNVERTEX2HNVPROC,                                glVertex2hNV,                               NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEX2HVNVPROC,                               glVertex2hvNV,                              NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEX3HNVPROC,                                glVertex3hNV,                               NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEX3HVNVPROC,                               glVertex3hvNV,                              NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEX4HNVPROC,                                glVertex4hNV,                               NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEX4HVNVPROC,                               glVertex4hvNV,                              NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNNORMAL3HNVPROC,                                glNormal3hNV,                               NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNNORMAL3HVNVPROC,                               glNormal3hvNV,                              NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNCOLOR3HNVPROC,                                 glColor3hNV,                                NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNCOLOR3HVNVPROC,                                glColor3hvNV,                               NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNCOLOR4HNVPROC,                                 glColor4hNV,                                NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNCOLOR4HVNVPROC,                                glColor4hvNV,                               NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD1HNVPROC,                              glTexCoord1hNV,                             NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD1HVNVPROC,                             glTexCoord1hvNV,                            NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD2HNVPROC,                              glTexCoord2hNV,                             NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD2HVNVPROC,                             glTexCoord2hvNV,                            NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD3HNVPROC,                              glTexCoord3hNV,                             NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD3HVNVPROC,                             glTexCoord3hvNV,                            NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD4HNVPROC,                              glTexCoord4hNV,                             NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNTEXCOORD4HVNVPROC,                             glTexCoord4hvNV,                            NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD1HNVPROC,                         glMultiTexCoord1hNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD1HVNVPROC,                        glMultiTexCoord1hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD2HNVPROC,                         glMultiTexCoord2hNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD2HVNVPROC,                        glMultiTexCoord2hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD3HNVPROC,                         glMultiTexCoord3hNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD3HVNVPROC,                        glMultiTexCoord3hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD4HNVPROC,                         glMultiTexCoord4hNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNMULTITEXCOORD4HVNVPROC,                        glMultiTexCoord4hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNFOGCOORDHNVPROC,                               glFogCoordhNV,                              NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNFOGCOORDHVNVPROC,                              glFogCoordhvNV,                             NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNSECONDARYCOLOR3HNVPROC,                        glSecondaryColor3hNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNSECONDARYCOLOR3HVNVPROC,                       glSecondaryColor3hvNV,                      NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXWEIGHTHNVPROC,                           glVertexWeighthNV,                          NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXWEIGHTHVNVPROC,                          glVertexWeighthvNV,                         NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1HNVPROC,                          glVertexAttrib1hNV,                         NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB1HVNVPROC,                         glVertexAttrib1hvNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2HNVPROC,                          glVertexAttrib2hNV,                         NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB2HVNVPROC,                         glVertexAttrib2hvNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3HNVPROC,                          glVertexAttrib3hNV,                         NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB3HVNVPROC,                         glVertexAttrib3hvNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4HNVPROC,                          glVertexAttrib4hNV,                         NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIB4HVNVPROC,                         glVertexAttrib4hvNV,                        NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIBS1HVNVPROC,                        glVertexAttribs1hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIBS2HVNVPROC,                        glVertexAttribs2hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIBS3HVNVPROC,                        glVertexAttribs3hvNV,                       NV_HALF_FLOAT,          NULL )\
-    USE_GL_FUNC(PGLFNVERTEXATTRIBS4HVNVPROC,                        glVertexAttribs4hvNV,                       NV_HALF_FLOAT,          NULL )\
+    USE_GL_FUNC(PGLFNVERTEX2HNVPROC, \
+            glVertex2hNV,                               NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEX2HVNVPROC, \
+            glVertex2hvNV,                              NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEX3HNVPROC, \
+            glVertex3hNV,                               NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEX3HVNVPROC, \
+            glVertex3hvNV,                              NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEX4HNVPROC, \
+            glVertex4hNV,                               NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEX4HVNVPROC, \
+            glVertex4hvNV,                              NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNNORMAL3HNVPROC, \
+            glNormal3hNV,                               NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNNORMAL3HVNVPROC, \
+            glNormal3hvNV,                              NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNCOLOR3HNVPROC, \
+            glColor3hNV,                                NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNCOLOR3HVNVPROC, \
+            glColor3hvNV,                               NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNCOLOR4HNVPROC, \
+            glColor4hNV,                                NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNCOLOR4HVNVPROC, \
+            glColor4hvNV,                               NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD1HNVPROC, \
+            glTexCoord1hNV,                             NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD1HVNVPROC, \
+            glTexCoord1hvNV,                            NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD2HNVPROC, \
+            glTexCoord2hNV,                             NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD2HVNVPROC, \
+            glTexCoord2hvNV,                            NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD3HNVPROC, \
+            glTexCoord3hNV,                             NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD3HVNVPROC, \
+            glTexCoord3hvNV,                            NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD4HNVPROC, \
+            glTexCoord4hNV,                             NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNTEXCOORD4HVNVPROC, \
+            glTexCoord4hvNV,                            NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD1HNVPROC, \
+            glMultiTexCoord1hNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD1HVNVPROC, \
+            glMultiTexCoord1hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD2HNVPROC, \
+            glMultiTexCoord2hNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD2HVNVPROC, \
+            glMultiTexCoord2hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD3HNVPROC, \
+            glMultiTexCoord3hNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD3HVNVPROC, \
+            glMultiTexCoord3hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD4HNVPROC, \
+            glMultiTexCoord4hNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNMULTITEXCOORD4HVNVPROC, \
+            glMultiTexCoord4hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNFOGCOORDHNVPROC, \
+            glFogCoordhNV,                              NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNFOGCOORDHVNVPROC, \
+            glFogCoordhvNV,                             NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNSECONDARYCOLOR3HNVPROC, \
+            glSecondaryColor3hNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNSECONDARYCOLOR3HVNVPROC, \
+            glSecondaryColor3hvNV,                      NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXWEIGHTHNVPROC, \
+            glVertexWeighthNV,                          NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXWEIGHTHVNVPROC, \
+            glVertexWeighthvNV,                         NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1HNVPROC, \
+            glVertexAttrib1hNV,                         NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB1HVNVPROC, \
+            glVertexAttrib1hvNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2HNVPROC, \
+            glVertexAttrib2hNV,                         NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB2HVNVPROC, \
+            glVertexAttrib2hvNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3HNVPROC, \
+            glVertexAttrib3hNV,                         NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB3HVNVPROC, \
+            glVertexAttrib3hvNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4HNVPROC, \
+            glVertexAttrib4hNV,                         NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIB4HVNVPROC, \
+            glVertexAttrib4hvNV,                        NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIBS1HVNVPROC, \
+            glVertexAttribs1hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIBS2HVNVPROC, \
+            glVertexAttribs2hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIBS3HVNVPROC, \
+            glVertexAttribs3hvNV,                       NV_HALF_FLOAT,                  NULL) \
+    USE_GL_FUNC(PGLFNVERTEXATTRIBS4HVNVPROC, \
+            glVertexAttribs4hvNV,                       NV_HALF_FLOAT,                  NULL) \
     /* GL_NV_register_combiners */ \
-    USE_GL_FUNC(PGLFNCOMBINERINPUTNVPROC,                           glCombinerInputNV,                          NV_REGISTER_COMBINERS,  NULL )\
-    USE_GL_FUNC(PGLFNCOMBINEROUTPUTNVPROC,                          glCombinerOutputNV,                         NV_REGISTER_COMBINERS,  NULL )\
-    USE_GL_FUNC(PGLFNCOMBINERPARAMETERFNVPROC,                      glCombinerParameterfNV,                     NV_REGISTER_COMBINERS,  NULL )\
-    USE_GL_FUNC(PGLFNCOMBINERPARAMETERFVNVPROC,                     glCombinerParameterfvNV,                    NV_REGISTER_COMBINERS,  NULL )\
-    USE_GL_FUNC(PGLFNCOMBINERPARAMETERINVPROC,                      glCombinerParameteriNV,                     NV_REGISTER_COMBINERS,  NULL )\
-    USE_GL_FUNC(PGLFNCOMBINERPARAMETERIVNVPROC,                     glCombinerParameterivNV,                    NV_REGISTER_COMBINERS,  NULL )\
-    USE_GL_FUNC(PGLFNFINALCOMBINERINPUTNVPROC,                      glFinalCombinerInputNV,                     NV_REGISTER_COMBINERS,  NULL )\
-    /* GL_NV_fence */ \
-    USE_GL_FUNC(PGLFNGENFENCESNVPROC,                               glGenFencesNV,                              NV_FENCE,               NULL )\
-    USE_GL_FUNC(PGLFNDELETEFENCESNVPROC,                            glDeleteFencesNV,                           NV_FENCE,               NULL )\
-    USE_GL_FUNC(PGLFNSETFENCENVPROC,                                glSetFenceNV,                               NV_FENCE,               NULL )\
-    USE_GL_FUNC(PGLFNTESTFENCENVPROC,                               glTestFenceNV,                              NV_FENCE,               NULL )\
-    USE_GL_FUNC(PGLFNFINISHFENCENVPROC,                             glFinishFenceNV,                            NV_FENCE,               NULL )\
-    USE_GL_FUNC(PGLFNISFENCENVPROC,                                 glIsFenceNV,                                NV_FENCE,               NULL )\
-    USE_GL_FUNC(PGLFNGETFENCEIVNVPROC,                              glGetFenceivNV,                             NV_FENCE,               NULL )\
-    /* GL_APPLE_fence */ \
-    USE_GL_FUNC(PGLFNGENFENCESAPPLEPROC,                            glGenFencesAPPLE,                           APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNDELETEFENCESAPPLEPROC,                         glDeleteFencesAPPLE,                        APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNSETFENCEAPPLEPROC,                             glSetFenceAPPLE,                            APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNTESTFENCEAPPLEPROC,                            glTestFenceAPPLE,                           APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNFINISHFENCEAPPLEPROC,                          glFinishFenceAPPLE,                         APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNISFENCEAPPLEPROC,                              glIsFenceAPPLE,                             APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNTESTOBJECTAPPLEPROC,                           glTestObjectAPPLE,                          APPLE_FENCE,            NULL )\
-    USE_GL_FUNC(PGLFNFINISHOBJECTAPPLEPROC,                         glFinishObjectAPPLE,                        APPLE_FENCE,            NULL )\
+    USE_GL_FUNC(PGLFNCOMBINERINPUTNVPROC, \
+            glCombinerInputNV,                          NV_REGISTER_COMBINERS,          NULL) \
+    USE_GL_FUNC(PGLFNCOMBINEROUTPUTNVPROC, \
+            glCombinerOutputNV,                         NV_REGISTER_COMBINERS,          NULL) \
+    USE_GL_FUNC(PGLFNCOMBINERPARAMETERFNVPROC, \
+            glCombinerParameterfNV,                     NV_REGISTER_COMBINERS,          NULL) \
+    USE_GL_FUNC(PGLFNCOMBINERPARAMETERFVNVPROC, \
+            glCombinerParameterfvNV,                    NV_REGISTER_COMBINERS,          NULL) \
+    USE_GL_FUNC(PGLFNCOMBINERPARAMETERINVPROC, \
+            glCombinerParameteriNV,                     NV_REGISTER_COMBINERS,          NULL) \
+    USE_GL_FUNC(PGLFNCOMBINERPARAMETERIVNVPROC, \
+            glCombinerParameterivNV,                    NV_REGISTER_COMBINERS,          NULL) \
+    USE_GL_FUNC(PGLFNFINALCOMBINERINPUTNVPROC, \
+            glFinalCombinerInputNV,                     NV_REGISTER_COMBINERS,          NULL) \
     /* GLX_SGI_video_sync */ \
-    USE_GL_FUNC(PGLXFNGETVIDEOSYNCSGIPROC,                          glXGetVideoSyncSGI,                         SGI_VIDEO_SYNC,         NULL )\
-    USE_GL_FUNC(PGLXFNWAITVIDEOSYNCSGIPROC,                         glXWaitVideoSyncSGI,                        SGI_VIDEO_SYNC,         NULL )\
-    /* GL_APPLE_flush_render */ \
-    USE_GL_FUNC(PGLFNFLUSHRENDERAPPLEPROC,                          glFlushRenderAPPLE,                         APPLE_FLUSH_RENDER,     NULL )\
-    USE_GL_FUNC(PGLFNFINISHRENDERAPPLEPROC,                         glFinishRenderAPPLE,                        APPLE_FLUSH_RENDER,     NULL )\
-    /* GL_EXT_gpu_program_parameters */ \
-    USE_GL_FUNC(PGLFNPROGRAMENVPARAMETERS4FVEXTPROC,                glProgramEnvParameters4fvEXT,            EXT_GPU_PROGRAM_PARAMETERS,NULL )\
-    USE_GL_FUNC(PGLFNPROGRAMLOCALPARAMETERS4FVEXTPROC,              glProgramLocalParameters4fvEXT,          EXT_GPU_PROGRAM_PARAMETERS,NULL )\
-    /* GL_ATI_fragment_shader */ \
-    USE_GL_FUNC(PGLFNGENFRAGMENTSHADERSATI,                         glGenFragmentShadersATI,                    ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNBINDFRAGMENTSHADERATI,                         glBindFragmentShaderATI,                    ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNDELETEFRAGMENTSHADERATI,                       glDeleteFragmentShaderATI,                  ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNBEGINFRAGMENTSHADERATI,                        glBeginFragmentShaderATI,                   ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNENDFRAGMENTSHADERATI,                          glEndFragmentShaderATI,                     ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNPASSTEXCOORDATI,                               glPassTexCoordATI,                          ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNSAMPLEMAPATI,                                  glSampleMapATI,                             ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNCOLORFRAGMENTOP1ATI,                           glColorFragmentOp1ATI,                      ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNCOLORFRAGMENTOP2ATI,                           glColorFragmentOp2ATI,                      ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNCOLORFRAGMENTOP3ATI,                           glColorFragmentOp3ATI,                      ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNALPHAFRAGMENTOP1ATI,                           glAlphaFragmentOp1ATI,                      ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNALPHAFRAGMENTOP2ATI,                           glAlphaFragmentOp2ATI,                      ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNALPHAFRAGMENTOP3ATI,                           glAlphaFragmentOp3ATI,                      ATI_FRAGMENT_SHADER,    NULL )\
-    USE_GL_FUNC(PGLFNSETFRAGMENTSHADERCONSTANTATI,                  glSetFragmentShaderConstantATI,             ATI_FRAGMENT_SHADER,    NULL )\
-    /* GL_APPLE_flush_buffer_range */ \
-    USE_GL_FUNC(PGLFNBUFFERPARAMETERIAPPLE,                         glBufferParameteriAPPLE,                    APPLE_FLUSH_BUFFER_RANGE,NULL)\
-    USE_GL_FUNC(PGLFNFLUSHMAPPEDBUFFERRANGEAPPLE,                   glFlushMappedBufferRangeAPPLE,              APPLE_FLUSH_BUFFER_RANGE,NULL)
-
-
-/****************************************************
- * OpenGL WGL defines and functions pointer
- ****************************************************/
-
-/* WGL_ARB_extensions_string */
-typedef const char * (WINAPI * WINED3D_PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
-/* WGL_ARB_multisample */
-#ifndef WGL_ARB_multisample
-#define WGL_SAMPLE_BUFFERS_ARB         0x2041
-#define WGL_SAMPLES_ARB                0x2042
-#endif
-/* WGL_ARB_pixel_format */
-#ifndef WGL_ARB_pixel_format
-#define WGL_ARB_pixel_format 1
-#define WGL_NUMBER_PIXEL_FORMATS_ARB   0x2000
-#define WGL_DRAW_TO_WINDOW_ARB         0x2001
-#define WGL_DRAW_TO_BITMAP_ARB         0x2002
-#define WGL_ACCELERATION_ARB           0x2003
-#define WGL_NEED_PALETTE_ARB           0x2004
-#define WGL_NEED_SYSTEM_PALETTE_ARB    0x2005
-#define WGL_SWAP_LAYER_BUFFERS_ARB     0x2006
-#define WGL_SWAP_METHOD_ARB            0x2007
-#define WGL_NUMBER_OVERLAYS_ARB        0x2008
-#define WGL_NUMBER_UNDERLAYS_ARB       0x2009
-#define WGL_TRANSPARENT_ARB            0x200A
-#define WGL_TRANSPARENT_RED_VALUE_ARB  0x2037
-#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
-#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
-#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
-#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
-#define WGL_SHARE_DEPTH_ARB            0x200C
-#define WGL_SHARE_STENCIL_ARB          0x200D
-#define WGL_SHARE_ACCUM_ARB            0x200E
-#define WGL_SUPPORT_GDI_ARB            0x200F
-#define WGL_SUPPORT_OPENGL_ARB         0x2010
-#define WGL_DOUBLE_BUFFER_ARB          0x2011
-#define WGL_STEREO_ARB                 0x2012
-#define WGL_PIXEL_TYPE_ARB             0x2013
-#define WGL_COLOR_BITS_ARB             0x2014
-#define WGL_RED_BITS_ARB               0x2015
-#define WGL_RED_SHIFT_ARB              0x2016
-#define WGL_GREEN_BITS_ARB             0x2017
-#define WGL_GREEN_SHIFT_ARB            0x2018
-#define WGL_BLUE_BITS_ARB              0x2019
-#define WGL_BLUE_SHIFT_ARB             0x201A
-#define WGL_ALPHA_BITS_ARB             0x201B
-#define WGL_ALPHA_SHIFT_ARB            0x201C
-#define WGL_ACCUM_BITS_ARB             0x201D
-#define WGL_ACCUM_RED_BITS_ARB         0x201E
-#define WGL_ACCUM_GREEN_BITS_ARB       0x201F
-#define WGL_ACCUM_BLUE_BITS_ARB        0x2020
-#define WGL_ACCUM_ALPHA_BITS_ARB       0x2021
-#define WGL_DEPTH_BITS_ARB             0x2022
-#define WGL_STENCIL_BITS_ARB           0x2023
-#define WGL_AUX_BUFFERS_ARB            0x2024
-#define WGL_NO_ACCELERATION_ARB        0x2025
-#define WGL_GENERIC_ACCELERATION_ARB   0x2026
-#define WGL_FULL_ACCELERATION_ARB      0x2027
-#define WGL_SWAP_EXCHANGE_ARB          0x2028
-#define WGL_SWAP_COPY_ARB              0x2029
-#define WGL_SWAP_UNDEFINED_ARB         0x202A
-#define WGL_TYPE_RGBA_ARB              0x202B
-#define WGL_TYPE_COLORINDEX_ARB        0x202C
-#endif
-typedef BOOL (WINAPI * WINED3D_PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
-typedef BOOL (WINAPI * WINED3D_PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
-typedef BOOL (WINAPI * WINED3D_PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-/* WGL_ARB_make_current_read */
-typedef BOOL (WINAPI * WINED3D_PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-typedef HDC (WINAPI * WINED3D_PFNWGLGETCURRENTREADDCARBPROC) (void);
-/* WGL_ARB_pbuffer */
-#ifndef WGL_ARB_pbuffer
-#define WGL_ARB_pbuffer 1
-#define WGL_DRAW_TO_PBUFFER_ARB        0x202D
-#define WGL_MAX_PBUFFER_PIXELS_ARB     0x202E
-#define WGL_MAX_PBUFFER_WIDTH_ARB      0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_ARB     0x2030
-#define WGL_PBUFFER_LARGEST_ARB        0x2033
-#define WGL_PBUFFER_WIDTH_ARB          0x2034
-#define WGL_PBUFFER_HEIGHT_ARB         0x2035
-#define WGL_PBUFFER_LOST_ARB           0x2036
-#endif
-DECLARE_HANDLE(HPBUFFERARB);
-typedef HPBUFFERARB (WINAPI * WINED3D_PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-typedef HDC (WINAPI * WINED3D_PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
-typedef int (WINAPI * WINED3D_PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
-typedef BOOL (WINAPI * WINED3D_PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
-typedef BOOL (WINAPI * WINED3D_PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
-#ifndef WGL_ARB_pixel_format_float
-#define WGL_ARB_pixel_format_float 1
-#define WGL_TYPE_RGBA_FLOAT_ARB        0x21A0
-#endif
-/* WGL_WINE_pixel_format_passthrough */
-typedef BOOL (WINAPI * WINED3D_PFNWGLSETPIXELFORMATWINE) (HDC hdc, int iPixelFormat, const PIXELFORMATDESCRIPTOR* ppfd);
+    USE_GL_FUNC(PGLXFNGETVIDEOSYNCSGIPROC, \
+            glXGetVideoSyncSGI,                         SGI_VIDEO_SYNC,                 NULL) \
+    USE_GL_FUNC(PGLXFNWAITVIDEOSYNCSGIPROC, \
+            glXWaitVideoSyncSGI,                        SGI_VIDEO_SYNC,                 NULL)
 
 #define WGL_EXT_FUNCS_GEN \
-    USE_GL_FUNC(WINED3D_PFNWGLGETEXTENSIONSSTRINGARBPROC, wglGetExtensionsStringARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLGETPIXELFORMATATTRIBIVARBPROC, wglGetPixelFormatAttribivARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLGETPIXELFORMATATTRIBFVARBPROC, wglGetPixelFormatAttribfvARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLCHOOSEPIXELFORMATARBPROC, wglChoosePixelFormatARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLMAKECONTEXTCURRENTARBPROC, wglMakeContextCurrentARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLGETCURRENTREADDCARBPROC, wglGetCurrentReadDCARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLCREATEPBUFFERARBPROC, wglCreatePbufferARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLGETPBUFFERDCARBPROC, wglGetPbufferDCARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLRELEASEPBUFFERDCARBPROC, wglReleasePbufferDCARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLDESTROYPBUFFERARBPROC, wglDestroyPbufferARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLQUERYPBUFFERARBPROC, wglQueryPbufferARB, 0, NULL) \
-    USE_GL_FUNC(WINED3D_PFNWGLSETPIXELFORMATWINE, wglSetPixelFormatWINE, 0, NULL)
-
+    USE_GL_FUNC(WINED3D_PFNWGLGETEXTENSIONSSTRINGARBPROC,       wglGetExtensionsStringARB,      0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLGETPIXELFORMATATTRIBIVARBPROC,    wglGetPixelFormatAttribivARB,   0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLGETPIXELFORMATATTRIBFVARBPROC,    wglGetPixelFormatAttribfvARB,   0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLCHOOSEPIXELFORMATARBPROC,         wglChoosePixelFormatARB,        0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLMAKECONTEXTCURRENTARBPROC,        wglMakeContextCurrentARB,       0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLGETCURRENTREADDCARBPROC,          wglGetCurrentReadDCARB,         0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLCREATEPBUFFERARBPROC,             wglCreatePbufferARB,            0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLGETPBUFFERDCARBPROC,              wglGetPbufferDCARB,             0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLRELEASEPBUFFERDCARBPROC,          wglReleasePbufferDCARB,         0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLDESTROYPBUFFERARBPROC,            wglDestroyPbufferARB,           0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLQUERYPBUFFERARBPROC,              wglQueryPbufferARB,             0, NULL) \
+    USE_GL_FUNC(WINED3D_PFNWGLSETPIXELFORMATWINE,               wglSetPixelFormatWINE,          0, NULL)
 
-/****************************************************
- * Structures
- ****************************************************/
+#define WINE_DEFAULT_VIDMEM 64*1024*1024
+#define MAKEDWORD_VERSION(maj, min)  ((maj & 0x0000FFFF) << 16) | (min & 0x0000FFFF)
 
 struct wined3d_fbo_ops
 {
-- 
1.6.4.4




More information about the wine-patches mailing list