/*
 * Direct3D wine OpenGL include file
 *
 * Copyright 2002-2003 The wine-d3d team
 * Copyright 2002-2004 Jason Edmeades
 *                     Raphael Junqueira
 * Copyright 2007 Roderick Colenbrander
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 *
 *
 * Most OpenGL 1.0/1.1/1.2/1.3 constants/types come from the Mesa-project:
 * Copyright (C) 1999-2006  Brian Paul
 *
 * From the Mesa-license:
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

#ifndef __WINE_WINED3D_GL_H
#define __WINE_WINED3D_GL_H

#ifdef USE_WIN32_OPENGL
#define WINE_GLAPI __stdcall
#else
#define WINE_GLAPI
#endif

/****************************************************
 * OpenGL 1.0/1.1/1.2/1.3
 *     types, #defines and function pointers
 ****************************************************/

/* Types */
typedef unsigned int    GLbitfield;
typedef unsigned char   GLboolean;
typedef signed char     GLbyte;
typedef unsigned char   GLubyte;
typedef short           GLshort;
typedef unsigned short  GLushort;
typedef int             GLint;
typedef unsigned int    GLuint;
typedef unsigned int    GLenum;
typedef float           GLfloat;
typedef int             GLsizei;
typedef float           GLclampf;
typedef double          GLdouble;
typedef double          GLclampd;
typedef void            GLvoid;
typedef ptrdiff_t       GLintptr;
typedef ptrdiff_t       GLsizeiptr;
typedef INT64           GLint64;
typedef UINT64          GLuint64;
typedef struct __GLsync *GLsync;

/* Booleans */
#define GL_FALSE                                0x0
#define GL_TRUE                                 0x1

/* Data types */
#define GL_BYTE                                 0x1400
#define GL_UNSIGNED_BYTE                        0x1401
#define GL_SHORT                                0x1402
#define GL_UNSIGNED_SHORT                       0x1403
#define GL_INT                                  0x1404
#define GL_UNSIGNED_INT                         0x1405
#define GL_FLOAT                                0x1406
#define GL_DOUBLE                               0x140A
#define GL_2_BYTES                              0x1407
#define GL_3_BYTES                              0x1408
#define GL_4_BYTES                              0x1409

/* Errors */
#define GL_NO_ERROR                             0x0
#define GL_INVALID_VALUE                        0x0501
#define GL_INVALID_ENUM                         0x0500
#define GL_INVALID_OPERATION                    0x0502
#define GL_STACK_OVERFLOW                       0x0503
#define GL_STACK_UNDERFLOW                      0x0504
#define GL_OUT_OF_MEMORY                        0x0505

/* Utility */
#define GL_VENDOR                               0x1F00
#define GL_RENDERER                             0x1F01
#define GL_VERSION                              0x1F02
#define GL_EXTENSIONS                           0x1F03

/* Accumulation buffer */
#define GL_ACCUM_RED_BITS                       0x0D58
#define GL_ACCUM_GREEN_BITS                     0x0D59
#define GL_ACCUM_BLUE_BITS                      0x0D5A
#define GL_ACCUM_ALPHA_BITS                     0x0D5B
#define GL_ACCUM_CLEAR_VALUE                    0x0B80
#define GL_ACCUM                                0x0100
#define GL_ADD                                  0x0104
#define GL_LOAD                                 0x0101
#define GL_MULT                                 0x0103
#define GL_RETURN                               0x0102

/* Alpha testing */
#define GL_ALPHA_TEST                           0x0BC0
#define GL_ALPHA_TEST_REF                       0x0BC2
#define GL_ALPHA_TEST_FUNC                      0x0BC1

/* Blending */
#define GL_BLEND                                0x0BE2
#define GL_BLEND_SRC                            0x0BE1
#define GL_BLEND_DST                            0x0BE0
#define GL_ZERO                                 0x0
#define GL_ONE                                  0x1
#define GL_SRC_COLOR                            0x0300
#define GL_ONE_MINUS_SRC_COLOR                  0x0301
#define GL_SRC_ALPHA                            0x0302
#define GL_ONE_MINUS_SRC_ALPHA                  0x0303
#define GL_DST_ALPHA                            0x0304
#define GL_ONE_MINUS_DST_ALPHA                  0x0305
#define GL_DST_COLOR                            0x0306
#define GL_ONE_MINUS_DST_COLOR                  0x0307
#define GL_SRC_ALPHA_SATURATE                   0x0308
#define GL_CONSTANT_COLOR                       0x8001
#define GL_ONE_MINUS_CONSTANT_COLOR             0x8002
#define GL_CONSTANT_ALPHA                       0x8003
#define GL_ONE_MINUS_CONSTANT_ALPHA             0x8004

/* Buffers, Pixel Drawing/Reading */
#define GL_NONE                                 0x0
#define GL_FRONT_LEFT                           0x0400
#define GL_FRONT_RIGHT                          0x0401
#define GL_BACK_LEFT                            0x0402
#define GL_BACK_RIGHT                           0x0403
#define GL_FRONT                                0x0404
#define GL_BACK                                 0x0405
#define GL_LEFT                                 0x0406
#define GL_RIGHT                                0x0407
#define GL_FRONT_AND_BACK                       0x0408
#define GL_AUX0                                 0x0409
#define GL_AUX1                                 0x040A
#define GL_AUX2                                 0x040B
#define GL_AUX3                                 0x040C
#define GL_COLOR_INDEX                          0x1900
#define GL_RED                                  0x1903
#define GL_GREEN                                0x1904
#define GL_BLUE                                 0x1905
#define GL_ALPHA                                0x1906
#define GL_LUMINANCE                            0x1909
#define GL_LUMINANCE_ALPHA                      0x190A
#define GL_ALPHA_BITS                           0x0D55
#define GL_RED_BITS                             0x0D52
#define GL_GREEN_BITS                           0x0D53
#define GL_BLUE_BITS                            0x0D54
#define GL_INDEX_BITS                           0x0D51
#define GL_SUBPIXEL_BITS                        0x0D50
#define GL_AUX_BUFFERS                          0x0C00
#define GL_READ_BUFFER                          0x0C02
#define GL_DRAW_BUFFER                          0x0C01
#define GL_DOUBLEBUFFER                         0x0C32
#define GL_STEREO                               0x0C33
#define GL_BITMAP                               0x1A00
#define GL_COLOR                                0x1800
#define GL_DEPTH                                0x1801
#define GL_STENCIL                              0x1802
#define GL_DITHER                               0x0BD0
#define GL_RGB                                  0x1907
#define GL_RGBA                                 0x1908

/* Clipping */
#define GL_CLIP_PLANE0                          0x3000
#define GL_CLIP_PLANE1                          0x3001
#define GL_CLIP_PLANE2                          0x3002
#define GL_CLIP_PLANE3                          0x3003
#define GL_CLIP_PLANE4                          0x3004
#define GL_CLIP_PLANE5                          0x3005

/* Depth buffer */
#define GL_NEVER                                0x0200
#define GL_LESS                                 0x0201
#define GL_EQUAL                                0x0202
#define GL_LEQUAL                               0x0203
#define GL_GREATER                              0x0204
#define GL_NOTEQUAL                             0x0205
#define GL_GEQUAL                               0x0206
#define GL_ALWAYS                               0x0207
#define GL_DEPTH_TEST                           0x0B71
#define GL_DEPTH_BITS                           0x0D56
#define GL_DEPTH_CLEAR_VALUE                    0x0B73
#define GL_DEPTH_FUNC                           0x0B74
#define GL_DEPTH_RANGE                          0x0B70
#define GL_DEPTH_WRITEMASK                      0x0B72
#define GL_DEPTH_COMPONENT                      0x1902

/* Evaluators */
#define GL_AUTO_NORMAL                          0x0D80
#define GL_MAP1_COLOR_4                         0x0D90
#define GL_MAP1_GRID_DOMAIN                     0x0DD0
#define GL_MAP1_GRID_SEGMENTS                   0x0DD1
#define GL_MAP1_INDEX                           0x0D91
#define GL_MAP1_NORMAL                          0x0D92
#define GL_MAP1_TEXTURE_COORD_1                 0x0D93
#define GL_MAP1_TEXTURE_COORD_2                 0x0D94
#define GL_MAP1_TEXTURE_COORD_3                 0x0D95
#define GL_MAP1_TEXTURE_COORD_4                 0x0D96
#define GL_MAP1_VERTEX_3                        0x0D97
#define GL_MAP1_VERTEX_4                        0x0D98
#define GL_MAP2_COLOR_4                         0x0DB0
#define GL_MAP2_GRID_DOMAIN                     0x0DD2
#define GL_MAP2_GRID_SEGMENTS                   0x0DD3
#define GL_MAP2_INDEX                           0x0DB1
#define GL_MAP2_NORMAL                          0x0DB2
#define GL_MAP2_TEXTURE_COORD_1                 0x0DB3
#define GL_MAP2_TEXTURE_COORD_2                 0x0DB4
#define GL_MAP2_TEXTURE_COORD_3                 0x0DB5
#define GL_MAP2_TEXTURE_COORD_4                 0x0DB6
#define GL_MAP2_VERTEX_3                        0x0DB7
#define GL_MAP2_VERTEX_4                        0x0DB8
#define GL_COEFF                                0x0A00
#define GL_DOMAIN                               0x0A02
#define GL_ORDER                                0x0A01

/* Feedback */
#define GL_2D                                   0x0600
#define GL_3D                                   0x0601
#define GL_3D_COLOR                             0x0602
#define GL_3D_COLOR_TEXTURE                     0x0603
#define GL_4D_COLOR_TEXTURE                     0x0604
#define GL_POINT_TOKEN                          0x0701
#define GL_LINE_TOKEN                           0x0702
#define GL_LINE_RESET_TOKEN                     0x0707
#define GL_POLYGON_TOKEN                        0x0703
#define GL_BITMAP_TOKEN                         0x0704
#define GL_DRAW_PIXEL_TOKEN                     0x0705
#define GL_COPY_PIXEL_TOKEN                     0x0706
#define GL_PASS_THROUGH_TOKEN                   0x0700
#define GL_FEEDBACK_BUFFER_POINTER              0x0DF0
#define GL_FEEDBACK_BUFFER_SIZE                 0x0DF1
#define GL_FEEDBACK_BUFFER_TYPE                 0x0DF2

/* Fog */
#define GL_FOG                                  0x0B60
#define GL_FOG_MODE                             0x0B65
#define GL_FOG_DENSITY                          0x0B62
#define GL_FOG_COLOR                            0x0B66
#define GL_FOG_INDEX                            0x0B61
#define GL_FOG_START                            0x0B63
#define GL_FOG_END                              0x0B64
#define GL_LINEAR                               0x2601
#define GL_EXP                                  0x0800
#define GL_EXP2                                 0x0801

/* Gets */
#define GL_ATTRIB_STACK_DEPTH                   0x0BB0
#define GL_CLIENT_ATTRIB_STACK_DEPTH            0x0BB1
#define GL_COLOR_CLEAR_VALUE                    0x0C22
#define GL_COLOR_WRITEMASK                      0x0C23
#define GL_CURRENT_INDEX                        0x0B01
#define GL_CURRENT_COLOR                        0x0B00
#define GL_CURRENT_NORMAL                       0x0B02
#define GL_CURRENT_RASTER_COLOR                 0x0B04
#define GL_CURRENT_RASTER_DISTANCE              0x0B09
#define GL_CURRENT_RASTER_INDEX                 0x0B05
#define GL_CURRENT_RASTER_POSITION              0x0B07
#define GL_CURRENT_RASTER_TEXTURE_COORDS        0x0B06
#define GL_CURRENT_RASTER_POSITION_VALID        0x0B08
#define GL_CURRENT_TEXTURE_COORDS               0x0B03
#define GL_INDEX_CLEAR_VALUE                    0x0C20
#define GL_INDEX_MODE                           0x0C30
#define GL_INDEX_WRITEMASK                      0x0C21
#define GL_MODELVIEW_MATRIX                     0x0BA6
#define GL_MODELVIEW_STACK_DEPTH                0x0BA3
#define GL_NAME_STACK_DEPTH                     0x0D70
#define GL_PROJECTION_MATRIX                    0x0BA7
#define GL_PROJECTION_STACK_DEPTH               0x0BA4
#define GL_RENDER_MODE                          0x0C40
#define GL_RGBA_MODE                            0x0C31
#define GL_TEXTURE_MATRIX                       0x0BA8
#define GL_TEXTURE_STACK_DEPTH                  0x0BA5
#define GL_VIEWPORT                             0x0BA2

/* Hints */
#define GL_FOG_HINT                             0x0C54
#define GL_LINE_SMOOTH_HINT                     0x0C52
#define GL_PERSPECTIVE_CORRECTION_HINT          0x0C50
#define GL_POINT_SMOOTH_HINT                    0x0C51
#define GL_POLYGON_SMOOTH_HINT                  0x0C53
#define GL_DONT_CARE                            0x1100
#define GL_FASTEST                              0x1101
#define GL_NICEST                               0x1102

/* Implementation limits */
#define GL_MAX_LIST_NESTING                     0x0B31
#define GL_MAX_ATTRIB_STACK_DEPTH               0x0D35
#define GL_MAX_MODELVIEW_STACK_DEPTH            0x0D36
#define GL_MAX_NAME_STACK_DEPTH                 0x0D37
#define GL_MAX_PROJECTION_STACK_DEPTH           0x0D38
#define GL_MAX_TEXTURE_STACK_DEPTH              0x0D39
#define GL_MAX_EVAL_ORDER                       0x0D30
#define GL_MAX_LIGHTS                           0x0D31
#define GL_MAX_CLIP_PLANES                      0x0D32
#define GL_MAX_TEXTURE_SIZE                     0x0D33
#define GL_MAX_PIXEL_MAP_TABLE                  0x0D34
#define GL_MAX_VIEWPORT_DIMS                    0x0D3A
#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH        0x0D3B

/* Lighting */
#define GL_LIGHTING                             0x0B50
#define GL_LIGHT0                               0x4000
#define GL_LIGHT1                               0x4001
#define GL_LIGHT2                               0x4002
#define GL_LIGHT3                               0x4003
#define GL_LIGHT4                               0x4004
#define GL_LIGHT5                               0x4005
#define GL_LIGHT6                               0x4006
#define GL_LIGHT7                               0x4007
#define GL_SPOT_EXPONENT                        0x1205
#define GL_SPOT_CUTOFF                          0x1206
#define GL_CONSTANT_ATTENUATION                 0x1207
#define GL_LINEAR_ATTENUATION                   0x1208
#define GL_QUADRATIC_ATTENUATION                0x1209
#define GL_AMBIENT                              0x1200
#define GL_DIFFUSE                              0x1201
#define GL_SPECULAR                             0x1202
#define GL_SHININESS                            0x1601
#define GL_EMISSION                             0x1600
#define GL_POSITION                             0x1203
#define GL_SPOT_DIRECTION                       0x1204
#define GL_AMBIENT_AND_DIFFUSE                  0x1602
#define GL_COLOR_INDEXES                        0x1603
#define GL_LIGHT_MODEL_TWO_SIDE                 0x0B52
#define GL_LIGHT_MODEL_LOCAL_VIEWER             0x0B51
#define GL_LIGHT_MODEL_AMBIENT                  0x0B53
#define GL_FRONT_AND_BACK                       0x0408
#define GL_SHADE_MODEL                          0x0B54
#define GL_FLAT                                 0x1D00
#define GL_SMOOTH                               0x1D01
#define GL_COLOR_MATERIAL                       0x0B57
#define GL_COLOR_MATERIAL_FACE                  0x0B55
#define GL_COLOR_MATERIAL_PARAMETER             0x0B56
#define GL_NORMALIZE                            0x0BA1

/* Lines */
#define GL_LINE_SMOOTH                          0x0B20
#define GL_LINE_STIPPLE                         0x0B24
#define GL_LINE_STIPPLE_PATTERN                 0x0B25
#define GL_LINE_STIPPLE_REPEAT                  0x0B26
#define GL_LINE_WIDTH                           0x0B21
#define GL_LINE_WIDTH_GRANULARITY               0x0B23
#define GL_LINE_WIDTH_RANGE                     0x0B22

/* Logic Ops */
#define GL_LOGIC_OP                             0x0BF1
#define GL_INDEX_LOGIC_OP                       0x0BF1
#define GL_COLOR_LOGIC_OP                       0x0BF2
#define GL_LOGIC_OP_MODE                        0x0BF0
#define GL_CLEAR                                0x1500
#define GL_SET                                  0x150F
#define GL_COPY                                 0x1503
#define GL_COPY_INVERTED                        0x150C
#define GL_NOOP                                 0x1505
#define GL_INVERT                               0x150A
#define GL_AND                                  0x1501
#define GL_NAND                                 0x150E
#define GL_OR                                   0x1507
#define GL_NOR                                  0x1508
#define GL_XOR                                  0x1506
#define GL_EQUIV                                0x1509
#define GL_AND_REVERSE                          0x1502
#define GL_AND_INVERTED                         0x1504
#define GL_OR_REVERSE                           0x150B
#define GL_OR_INVERTED                          0x150D

/* Matrix Mode */
#define GL_MATRIX_MODE                          0x0BA0
#define GL_MODELVIEW                            0x1700
#define GL_PROJECTION                           0x1701
#define GL_TEXTURE                              0x1702

/* Pixel Mode / Transfer */
#define GL_MAP_COLOR                            0x0D10
#define GL_MAP_STENCIL                          0x0D11
#define GL_INDEX_SHIFT                          0x0D12
#define GL_INDEX_OFFSET                         0x0D13
#define GL_RED_SCALE                            0x0D14
#define GL_RED_BIAS                             0x0D15
#define GL_GREEN_SCALE                          0x0D18
#define GL_GREEN_BIAS                           0x0D19
#define GL_BLUE_SCALE                           0x0D1A
#define GL_BLUE_BIAS                            0x0D1B
#define GL_ALPHA_SCALE                          0x0D1C
#define GL_ALPHA_BIAS                           0x0D1D
#define GL_DEPTH_SCALE                          0x0D1E
#define GL_DEPTH_BIAS                           0x0D1F
#define GL_PIXEL_MAP_S_TO_S_SIZE                0x0CB1
#define GL_PIXEL_MAP_I_TO_I_SIZE                0x0CB0
#define GL_PIXEL_MAP_I_TO_R_SIZE                0x0CB2
#define GL_PIXEL_MAP_I_TO_G_SIZE                0x0CB3
#define GL_PIXEL_MAP_I_TO_B_SIZE                0x0CB4
#define GL_PIXEL_MAP_I_TO_A_SIZE                0x0CB5
#define GL_PIXEL_MAP_R_TO_R_SIZE                0x0CB6
#define GL_PIXEL_MAP_G_TO_G_SIZE                0x0CB7
#define GL_PIXEL_MAP_B_TO_B_SIZE                0x0CB8
#define GL_PIXEL_MAP_A_TO_A_SIZE                0x0CB9
#define GL_PIXEL_MAP_S_TO_S                     0x0C71
#define GL_PIXEL_MAP_I_TO_I                     0x0C70
#define GL_PIXEL_MAP_I_TO_R                     0x0C72
#define GL_PIXEL_MAP_I_TO_G                     0x0C73
#define GL_PIXEL_MAP_I_TO_B                     0x0C74
#define GL_PIXEL_MAP_I_TO_A                     0x0C75
#define GL_PIXEL_MAP_R_TO_R                     0x0C76
#define GL_PIXEL_MAP_G_TO_G                     0x0C77
#define GL_PIXEL_MAP_B_TO_B                     0x0C78
#define GL_PIXEL_MAP_A_TO_A                     0x0C79
#define GL_PACK_ALIGNMENT                       0x0D05
#define GL_PACK_LSB_FIRST                       0x0D01
#define GL_PACK_ROW_LENGTH                      0x0D02
#define GL_PACK_SKIP_PIXELS                     0x0D04
#define GL_PACK_SKIP_ROWS                       0x0D03
#define GL_PACK_SWAP_BYTES                      0x0D00
#define GL_UNPACK_ALIGNMENT                     0x0CF5
#define GL_UNPACK_LSB_FIRST                     0x0CF1
#define GL_UNPACK_ROW_LENGTH                    0x0CF2
#define GL_UNPACK_SKIP_PIXELS                   0x0CF4
#define GL_UNPACK_SKIP_ROWS                     0x0CF3
#define GL_UNPACK_SWAP_BYTES                    0x0CF0
#define GL_ZOOM_X                               0x0D16
#define GL_ZOOM_Y                               0x0D17

/* Points */
#define GL_POINT_SMOOTH                         0x0B10
#define GL_POINT_SIZE                           0x0B11
#define GL_POINT_SIZE_GRANULARITY               0x0B13
#define GL_POINT_SIZE_RANGE                     0x0B12

/* Polygons */
#define GL_POINT                                0x1B00
#define GL_LINE                                 0x1B01
#define GL_FILL                                 0x1B02
#define GL_CW                                   0x0900
#define GL_CCW                                  0x0901
#define GL_FRONT                                0x0404
#define GL_BACK                                 0x0405
#define GL_POLYGON_MODE                         0x0B40
#define GL_POLYGON_SMOOTH                       0x0B41
#define GL_POLYGON_STIPPLE                      0x0B42
#define GL_EDGE_FLAG                            0x0B43
#define GL_CULL_FACE                            0x0B44
#define GL_CULL_FACE_MODE                       0x0B45
#define GL_FRONT_FACE                           0x0B46
#define GL_POLYGON_OFFSET_FACTOR                0x8038
#define GL_POLYGON_OFFSET_UNITS                 0x2A00
#define GL_POLYGON_OFFSET_POINT                 0x2A01
#define GL_POLYGON_OFFSET_LINE                  0x2A02
#define GL_POLYGON_OFFSET_FILL                  0x8037

/* Primitives */
#define GL_POINTS                               0x0000
#define GL_LINES                                0x0001
#define GL_LINE_LOOP                            0x0002
#define GL_LINE_STRIP                           0x0003
#define GL_TRIANGLES                            0x0004
#define GL_TRIANGLE_STRIP                       0x0005
#define GL_TRIANGLE_FAN                         0x0006
#define GL_QUADS                                0x0007
#define GL_QUAD_STRIP                           0x0008
#define GL_POLYGON                              0x0009

/* Push/Pop bits */
#define GL_CURRENT_BIT                          0x00000001
#define GL_POINT_BIT                            0x00000002
#define GL_LINE_BIT                             0x00000004
#define GL_POLYGON_BIT                          0x00000008
#define GL_POLYGON_STIPPLE_BIT                  0x00000010
#define GL_PIXEL_MODE_BIT                       0x00000020
#define GL_LIGHTING_BIT                         0x00000040
#define GL_FOG_BIT                              0x00000080
#define GL_DEPTH_BUFFER_BIT                     0x00000100
#define GL_ACCUM_BUFFER_BIT                     0x00000200
#define GL_STENCIL_BUFFER_BIT                   0x00000400
#define GL_VIEWPORT_BIT                         0x00000800
#define GL_TRANSFORM_BIT                        0x00001000
#define GL_ENABLE_BIT                           0x00002000
#define GL_COLOR_BUFFER_BIT                     0x00004000
#define GL_HINT_BIT                             0x00008000
#define GL_EVAL_BIT                             0x00010000
#define GL_LIST_BIT                             0x00020000
#define GL_TEXTURE_BIT                          0x00040000
#define GL_SCISSOR_BIT                          0x00080000
#define GL_ALL_ATTRIB_BITS                      0x000FFFFF

/* Render Mode */
#define GL_FEEDBACK                             0x1C01
#define GL_RENDER                               0x1C00
#define GL_SELECT                               0x1C02

/* Scissor box */
#define GL_SCISSOR_TEST                         0x0C11
#define GL_SCISSOR_BOX                          0x0C10

/* Stencil */
#define GL_STENCIL_TEST                         0x0B90
#define GL_STENCIL_WRITEMASK                    0x0B98
#define GL_STENCIL_BITS                         0x0D57
#define GL_STENCIL_FUNC                         0x0B92
#define GL_STENCIL_VALUE_MASK                   0x0B93
#define GL_STENCIL_REF                          0x0B97
#define GL_STENCIL_FAIL                         0x0B94
#define GL_STENCIL_PASS_DEPTH_PASS              0x0B96
#define GL_STENCIL_PASS_DEPTH_FAIL              0x0B95
#define GL_STENCIL_CLEAR_VALUE                  0x0B91
#define GL_STENCIL_INDEX                        0x1901
#define GL_KEEP                                 0x1E00
#define GL_REPLACE                              0x1E01
#define GL_INCR                                 0x1E02
#define GL_DECR                                 0x1E03

/* Texture mapping */
#define GL_TEXTURE_ENV                          0x2300
#define GL_TEXTURE_ENV_MODE                     0x2200
#define GL_TEXTURE_1D                           0x0DE0
#define GL_TEXTURE_2D                           0x0DE1
#define GL_TEXTURE_WRAP_S                       0x2802
#define GL_TEXTURE_WRAP_T                       0x2803
#define GL_TEXTURE_MAG_FILTER                   0x2800
#define GL_TEXTURE_MIN_FILTER                   0x2801
#define GL_TEXTURE_ENV_COLOR                    0x2201
#define GL_TEXTURE_GEN_S                        0x0C60
#define GL_TEXTURE_GEN_T                        0x0C61
#define GL_TEXTURE_GEN_MODE                     0x2500
#define GL_TEXTURE_BORDER_COLOR                 0x1004
#define GL_TEXTURE_WIDTH                        0x1000
#define GL_TEXTURE_HEIGHT                       0x1001
#define GL_TEXTURE_BORDER                       0x1005
#define GL_TEXTURE_COMPONENTS                   0x1003
#define GL_TEXTURE_RED_SIZE                     0x805C
#define GL_TEXTURE_GREEN_SIZE                   0x805D
#define GL_TEXTURE_BLUE_SIZE                    0x805E
#define GL_TEXTURE_ALPHA_SIZE                   0x805F
#define GL_TEXTURE_LUMINANCE_SIZE               0x8060
#define GL_TEXTURE_INTENSITY_SIZE               0x8061
#define GL_NEAREST_MIPMAP_NEAREST               0x2700
#define GL_NEAREST_MIPMAP_LINEAR                0x2702
#define GL_LINEAR_MIPMAP_NEAREST                0x2701
#define GL_LINEAR_MIPMAP_LINEAR                 0x2703
#define GL_OBJECT_LINEAR                        0x2401
#define GL_OBJECT_PLANE                         0x2501
#define GL_EYE_LINEAR                           0x2400
#define GL_EYE_PLANE                            0x2502
#define GL_SPHERE_MAP                           0x2402
#define GL_DECAL                                0x2101
#define GL_MODULATE                             0x2100
#define GL_NEAREST                              0x2600
#define GL_REPEAT                               0x2901
#define GL_CLAMP                                0x2900
#define GL_S                                    0x2000
#define GL_T                                    0x2001
#define GL_R                                    0x2002
#define GL_Q                                    0x2003
#define GL_TEXTURE_GEN_R                        0x0C62
#define GL_TEXTURE_GEN_Q                        0x0C63

/* Vertex Arrays */
#define GL_VERTEX_ARRAY                         0x8074
#define GL_NORMAL_ARRAY                         0x8075
#define GL_COLOR_ARRAY                          0x8076
#define GL_INDEX_ARRAY                          0x8077
#define GL_TEXTURE_COORD_ARRAY                  0x8078
#define GL_EDGE_FLAG_ARRAY                      0x8079
#define GL_VERTEX_ARRAY_SIZE                    0x807A
#define GL_VERTEX_ARRAY_TYPE                    0x807B
#define GL_VERTEX_ARRAY_STRIDE                  0x807C
#define GL_NORMAL_ARRAY_TYPE                    0x807E
#define GL_NORMAL_ARRAY_STRIDE                  0x807F
#define GL_COLOR_ARRAY_SIZE                     0x8081
#define GL_COLOR_ARRAY_TYPE                     0x8082
#define GL_COLOR_ARRAY_STRIDE                   0x8083
#define GL_INDEX_ARRAY_TYPE                     0x8085
#define GL_INDEX_ARRAY_STRIDE                   0x8086
#define GL_TEXTURE_COORD_ARRAY_SIZE             0x8088
#define GL_TEXTURE_COORD_ARRAY_TYPE             0x8089
#define GL_TEXTURE_COORD_ARRAY_STRIDE           0x808A
#define GL_EDGE_FLAG_ARRAY_STRIDE               0x808C
#define GL_VERTEX_ARRAY_POINTER                 0x808E
#define GL_NORMAL_ARRAY_POINTER                 0x808F
#define GL_COLOR_ARRAY_POINTER                  0x8090
#define GL_INDEX_ARRAY_POINTER                  0x8091
#define GL_TEXTURE_COORD_ARRAY_POINTER          0x8092
#define GL_EDGE_FLAG_ARRAY_POINTER              0x8093
#define GL_V2F                                  0x2A20
#define GL_V3F                                  0x2A21
#define GL_C4UB_V2F                             0x2A22
#define GL_C4UB_V3F                             0x2A23
#define GL_C3F_V3F                              0x2A24
#define GL_N3F_V3F                              0x2A25
#define GL_C4F_N3F_V3F                          0x2A26
#define GL_T2F_V3F                              0x2A27
#define GL_T4F_V4F                              0x2A28
#define GL_T2F_C4UB_V3F                         0x2A29
#define GL_T2F_C3F_V3F                          0x2A2A
#define GL_T2F_N3F_V3F                          0x2A2B
#define GL_T2F_C4F_N3F_V3F                      0x2A2C
#define GL_T4F_C4F_N3F_V4F                      0x2A2D

/* OpenGL 1.1 */
#define GL_PROXY_TEXTURE_1D                     0x8063
#define GL_PROXY_TEXTURE_2D                     0x8064
#define GL_TEXTURE_PRIORITY                     0x8066
#define GL_TEXTURE_RESIDENT                     0x8067
#define GL_TEXTURE_BINDING_1D                   0x8068
#define GL_TEXTURE_BINDING_2D                   0x8069
#define GL_TEXTURE_INTERNAL_FORMAT              0x1003
#define GL_ALPHA4                               0x803B
#define GL_ALPHA8                               0x803C
#define GL_ALPHA12                              0x803D
#define GL_ALPHA16                              0x803E
#define GL_LUMINANCE4                           0x803F
#define GL_LUMINANCE8                           0x8040
#define GL_LUMINANCE12                          0x8041
#define GL_LUMINANCE16                          0x8042
#define GL_LUMINANCE4_ALPHA4                    0x8043
#define GL_LUMINANCE6_ALPHA2                    0x8044
#define GL_LUMINANCE8_ALPHA8                    0x8045
#define GL_LUMINANCE12_ALPHA4                   0x8046
#define GL_LUMINANCE12_ALPHA12                  0x8047
#define GL_LUMINANCE16_ALPHA16                  0x8048
#define GL_INTENSITY                            0x8049
#define GL_INTENSITY4                           0x804A
#define GL_INTENSITY8                           0x804B
#define GL_INTENSITY12                          0x804C
#define GL_INTENSITY16                          0x804D
#define GL_R3_G3_B2                             0x2A10
#define GL_RGB4                                 0x804F
#define GL_RGB5                                 0x8050
#define GL_RGB8                                 0x8051
#define GL_RGB10                                0x8052
#define GL_RGB12                                0x8053
#define GL_RGB16                                0x8054
#define GL_RGBA2                                0x8055
#define GL_RGBA4                                0x8056
#define GL_RGB5_A1                              0x8057
#define GL_RGBA8                                0x8058
#define GL_RGB10_A2                             0x8059
#define GL_RGBA12                               0x805A
#define GL_RGBA16                               0x805B
#define GL_CLIENT_PIXEL_STORE_BIT               0x00000001
#define GL_CLIENT_VERTEX_ARRAY_BIT              0x00000002
#define GL_ALL_CLIENT_ATTRIB_BITS               0xFFFFFFFF
#define GL_CLIENT_ALL_ATTRIB_BITS               0xFFFFFFFF

/* OpenGL 1.2 constants */
#define GL_PACK_SKIP_IMAGES               0x806B
#define GL_PACK_IMAGE_HEIGHT              0x806C
#define GL_UNPACK_SKIP_IMAGES             0x806D
#define GL_UNPACK_IMAGE_HEIGHT            0x806E
#define GL_TEXTURE_3D                     0x806F
#define GL_PROXY_TEXTURE_3D               0x8070
#define GL_TEXTURE_DEPTH                  0x8071
#define GL_TEXTURE_WRAP_R                 0x8072
#define GL_MAX_3D_TEXTURE_SIZE            0x8073
#define GL_BGR                            0x80E0
#define GL_BGRA                           0x80E1
#define GL_UNSIGNED_BYTE_3_3_2            0x8032
#define GL_UNSIGNED_BYTE_2_3_3_REV        0x8362
#define GL_UNSIGNED_SHORT_5_6_5           0x8363
#define GL_UNSIGNED_SHORT_5_6_5_REV       0x8364
#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
#define GL_UNSIGNED_SHORT_4_4_4_4_REV     0x8365
#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
#define GL_UNSIGNED_SHORT_1_5_5_5_REV     0x8366
#define GL_UNSIGNED_INT_8_8_8_8           0x8035
#define GL_UNSIGNED_INT_8_8_8_8_REV       0x8367
#define GL_UNSIGNED_INT_10_10_10_2        0x8036
#define GL_UNSIGNED_INT_2_10_10_10_REV    0x8368
#define GL_RESCALE_NORMAL                 0x803A
#define GL_TEXTURE_BINDING_3D             0x806A
#define GL_LIGHT_MODEL_COLOR_CONTROL      0x81F8
#define GL_SINGLE_COLOR                   0x81F9
#define GL_SEPARATE_SPECULAR_COLOR        0x81FA
#define GL_CLAMP_TO_EDGE                  0x812F
#define GL_TEXTURE_MIN_LOD                0x813A
#define GL_TEXTURE_MAX_LOD                0x813B
#define GL_TEXTURE_BASE_LEVEL             0x813C
#define GL_TEXTURE_MAX_LEVEL              0x813D
#define GL_MAX_ELEMENTS_VERTICES          0x80E8
#define GL_MAX_ELEMENTS_INDICES           0x80E9
#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E

/* OpenGL 1.3 constants */
#define GL_ACTIVE_TEXTURE                 0x84E0
#define GL_CLIENT_ACTIVE_TEXTURE          0x84E1
#define GL_MAX_TEXTURE_UNITS              0x84E2
#define GL_TEXTURE0                       0x84C0
#define GL_TEXTURE1                       0x84C1
#define GL_TEXTURE2                       0x84C2
#define GL_TEXTURE3                       0x84C3
#define GL_TEXTURE4                       0x84C4
#define GL_TEXTURE5                       0x84C5
#define GL_TEXTURE6                       0x84C6
#define GL_TEXTURE7                       0x84C7
#define GL_TEXTURE8                       0x84C8
#define GL_TEXTURE9                       0x84C9
#define GL_TEXTURE10                      0x84CA
#define GL_TEXTURE11                      0x84CB
#define GL_TEXTURE12                      0x84CC
#define GL_TEXTURE13                      0x84CD
#define GL_TEXTURE14                      0x84CE
#define GL_TEXTURE15                      0x84CF
#define GL_TEXTURE16                      0x84D0
#define GL_TEXTURE17                      0x84D1
#define GL_TEXTURE18                      0x84D2
#define GL_TEXTURE19                      0x84D3
#define GL_TEXTURE20                      0x84D4
#define GL_TEXTURE21                      0x84D5
#define GL_TEXTURE22                      0x84D6
#define GL_TEXTURE23                      0x84D7
#define GL_TEXTURE24                      0x84D8
#define GL_TEXTURE25                      0x84D9
#define GL_TEXTURE26                      0x84DA
#define GL_TEXTURE27                      0x84DB
#define GL_TEXTURE28                      0x84DC
#define GL_TEXTURE29                      0x84DD
#define GL_TEXTURE30                      0x84DE
#define GL_TEXTURE31                      0x84DF
#define GL_NORMAL_MAP                     0x8511
#define GL_REFLECTION_MAP                 0x8512
#define GL_TEXTURE_CUBE_MAP               0x8513
#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
#define GL_PROXY_TEXTURE_CUBE_MAP         0x851B
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
#define GL_COMBINE                        0x8570
#define GL_COMBINE_RGB                    0x8571
#define GL_COMBINE_ALPHA                  0x8572
#define GL_RGB_SCALE                      0x8573
#define GL_ADD_SIGNED                     0x8574
#define GL_INTERPOLATE                    0x8575
#define GL_CONSTANT                       0x8576
#define GL_PRIMARY_COLOR                  0x8577
#define GL_PREVIOUS                       0x8578
#define GL_SOURCE0_RGB                    0x8580
#define GL_SOURCE1_RGB                    0x8581
#define GL_SOURCE2_RGB                    0x8582
#define GL_SOURCE0_ALPHA                  0x8588
#define GL_SOURCE1_ALPHA                  0x8589
#define GL_SOURCE2_ALPHA                  0x858A
#define GL_OPERAND0_RGB                   0x8590
#define GL_OPERAND1_RGB                   0x8591
#define GL_OPERAND2_RGB                   0x8592
#define GL_OPERAND0_ALPHA                 0x8598
#define GL_OPERAND1_ALPHA                 0x8599
#define GL_OPERAND2_ALPHA                 0x859A
#define GL_SUBTRACT                       0x84E7
#define GL_TRANSPOSE_MODELVIEW_MATRIX     0x84E3
#define GL_TRANSPOSE_PROJECTION_MATRIX    0x84E4
#define GL_TRANSPOSE_TEXTURE_MATRIX       0x84E5
#define GL_TRANSPOSE_COLOR_MATRIX         0x84E6
#define GL_COMPRESSED_ALPHA               0x84E9
#define GL_COMPRESSED_LUMINANCE           0x84EA
#define GL_COMPRESSED_LUMINANCE_ALPHA     0x84EB
#define GL_COMPRESSED_INTENSITY           0x84EC
#define GL_COMPRESSED_RGB                 0x84ED
#define GL_COMPRESSED_RGBA                0x84EE
#define GL_TEXTURE_COMPRESSION_HINT       0x84EF
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE  0x86A0
#define GL_TEXTURE_COMPRESSED             0x86A1
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
#define GL_DOT3_RGB                       0x86AE
#define GL_DOT3_RGBA                      0x86AF
#define GL_CLAMP_TO_BORDER                0x812D
#define GL_MULTISAMPLE                    0x809D
#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
#define GL_SAMPLE_ALPHA_TO_ONE            0x809F
#define GL_SAMPLE_COVERAGE                0x80A0
#define GL_SAMPLE_BUFFERS                 0x80A8
#define GL_SAMPLES                        0x80A9
#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
#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;
void (WINE_GLAPI *glArrayElement)(GLint i) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glBegin)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glBindTexture)(GLenum target, GLuint texture) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glBitmap)(GLsizei width, GLsizei height, GLfloat xorig,
        GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glBlendFunc)(GLenum sfactor, GLenum dfactor) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCallList)(GLuint list) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCallLists)(GLsizei n, GLenum type, const GLvoid *lists) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClear)(GLbitfield mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClearDepth)(GLclampd depth) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClearIndex)(GLfloat c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClearStencil)(GLint s) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glClipPlane)(GLenum plane, const GLdouble *equation) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3b)(GLbyte red, GLbyte green, GLbyte blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3bv)(const GLbyte *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3d)(GLdouble red, GLdouble green, GLdouble blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3f)(GLfloat red, GLfloat green, GLfloat blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3i)(GLint red, GLint green, GLint blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3s)(GLshort red, GLshort green, GLshort blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3ub)(GLubyte red, GLubyte green, GLubyte blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3ubv)(const GLubyte *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3ui)(GLuint red, GLuint green, GLuint blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3uiv)(const GLuint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3us)(GLushort red, GLushort green, GLushort blue) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor3usv)(const GLushort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4bv)(const GLbyte *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4i)(GLint red, GLint green, GLint blue, GLint alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4ubv)(const GLubyte *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4uiv)(const GLuint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColor4usv)(const GLushort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColorMaterial)(GLenum face, GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCopyTexImage1D)(GLenum target, GLint level,
        GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCopyTexImage2D)(GLenum target, GLint level,
        GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCopyTexSubImage1D)(GLenum target, GLint level,
        GLint xoffset, GLint x, GLint y, GLsizei width) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCopyTexSubImage2D)(GLenum target, GLint level,
        GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glCullFace)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDeleteLists)(GLuint list, GLsizei range) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDeleteTextures)(GLsizei n, const GLuint *textures) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDepthFunc)(GLenum func) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDepthMask)(GLboolean flag) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDepthRange)(GLclampd nearParam, GLclampd farParam) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDisable)(GLenum cap) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDisableWINE)(GLenum cap) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDisableClientState)(GLenum array) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDrawArrays)(GLenum mode, GLint first, GLsizei count) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDrawBuffer)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glDrawPixels)(GLsizei width, GLsizei height, GLenum format,
        GLenum type, const GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEdgeFlag)(GLboolean flag) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEdgeFlagv)(const GLboolean *flag) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEnable)(GLenum cap) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEnableWINE)(GLenum cap) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEnableClientState)(GLenum array) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEnd)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEndList)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord1d)(GLdouble u) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord1dv)(const GLdouble *u) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord1f)(GLfloat u) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord1fv)(const GLfloat *u) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord2d)(GLdouble u, GLdouble v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord2dv)(const GLdouble *u) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord2f)(GLfloat u, GLfloat v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalCoord2fv)(const GLfloat *u) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalMesh1)(GLenum mode, GLint i1, GLint i2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalPoint1)(GLint i) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glEvalPoint2)(GLint i, GLint j) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFogf)(GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFogfv)(GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFogi)(GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFogiv)(GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFrontFace)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glFrustum)(GLdouble left, GLdouble right, GLdouble bottom,
        GLdouble top, GLdouble zNear, GLdouble zFar) DECLSPEC_HIDDEN;
GLuint (WINE_GLAPI *glGenLists)(GLsizei range) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGenTextures)(GLsizei n, GLuint *textures) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetBooleanv)(GLenum pname, GLboolean *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetClipPlane)(GLenum plane, GLdouble *equation) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetDoublev)(GLenum pname, GLdouble *params) DECLSPEC_HIDDEN;
GLenum (WINE_GLAPI *glGetError)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetFloatv)(GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetIntegerv)(GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetLightfv)(GLenum light, GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetLightiv)(GLenum light, GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetMapdv)(GLenum target, GLenum query, GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetMapfv)(GLenum target, GLenum query, GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetMapiv)(GLenum target, GLenum query, GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetMaterialiv)(GLenum face, GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetPixelMapfv)(GLenum map, GLfloat *values) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetPixelMapuiv)(GLenum map, GLuint *values) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetPixelMapusv)(GLenum map, GLushort *values) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetPointerv)(GLenum pname, GLvoid **params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetPolygonStipple)(GLubyte *mask) DECLSPEC_HIDDEN;
const GLubyte * (WINE_GLAPI *glGetString)(GLenum name) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexEnviv)(GLenum target, GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexGeniv)(GLenum coord, GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexImage)(GLenum target, GLint level, GLenum format,
        GLenum type, GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glGetTexParameteriv)(GLenum target, GLenum pname, GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glHint)(GLenum target, GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexMask)(GLuint mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexd)(GLdouble c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexdv)(const GLdouble *c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexf)(GLfloat c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexfv)(const GLfloat *c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexi)(GLint c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexiv)(const GLint *c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexs)(GLshort c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexsv)(const GLshort *c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexub)(GLubyte c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glIndexubv)(const GLubyte *c) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glInitNames)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
GLboolean (WINE_GLAPI *glIsEnabled)(GLenum cap) DECLSPEC_HIDDEN;
GLboolean (WINE_GLAPI *glIsList)(GLuint list) DECLSPEC_HIDDEN;
GLboolean (WINE_GLAPI *glIsTexture)(GLuint texture) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightModelf)(GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightModelfv)(GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightModeli)(GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightModeliv)(GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightf)(GLenum light, GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightfv)(GLenum light, GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLighti)(GLenum light, GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLightiv)(GLenum light, GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLineStipple)(GLint factor, GLushort pattern) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLineWidth)(GLfloat width) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glListBase)(GLuint base) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLoadIdentity)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLoadMatrixd)(const GLdouble *m) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLoadMatrixf)(const GLfloat *m) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLoadName)(GLuint name) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glLogicOp)(GLenum opcode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMap1d)(GLenum target, GLdouble u1, GLdouble u2,
        GLint stride, GLint order, const GLdouble *points) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride,
        GLint order, const GLfloat *points) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder,
        GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder,
        GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMapGrid1d)(GLint un, GLdouble u1, GLdouble u2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMapGrid1f)(GLint un, GLfloat u1, GLfloat u2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMaterialf)(GLenum face, GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMaterialfv)(GLenum face, GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMateriali)(GLenum face, GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMaterialiv)(GLenum face, GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMatrixMode)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMultMatrixd)(const GLdouble *m) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glMultMatrixf)(const GLfloat *m) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNewList)(GLuint list, GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3bv)(const GLbyte *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3i)(GLint nx, GLint ny, GLint nz) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3s)(GLshort nx, GLshort ny, GLshort nz) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormal3sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glOrtho)(GLdouble left, GLdouble right, GLdouble bottom,
        GLdouble top, GLdouble zNear, GLdouble zFar) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPassThrough)(GLfloat token) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelMapfv)(GLenum map, GLint mapsize, const GLfloat *values) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelMapuiv)(GLenum map, GLint mapsize, const GLuint *values) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelMapusv)(GLenum map, GLint mapsize, const GLushort *values) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelStoref)(GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelStorei)(GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelTransferf)(GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelTransferi)(GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPixelZoom)(GLfloat xfactor, GLfloat yfactor) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPointSize)(GLfloat size) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPolygonMode)(GLenum face, GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPolygonOffset)(GLfloat factor, GLfloat units) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPolygonStipple)(const GLubyte *mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPopAttrib)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPopClientAttrib)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPopMatrix)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPopName)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPushAttrib)(GLbitfield mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPushClientAttrib)(GLbitfield mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPushMatrix)(void) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPushName)(GLuint name) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2d)(GLdouble x, GLdouble y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2f)(GLfloat x, GLfloat y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2i)(GLint x, GLint y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2s)(GLshort x, GLshort y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos2sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3d)(GLdouble x, GLdouble y, GLdouble z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3f)(GLfloat x, GLfloat y, GLfloat z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3i)(GLint x, GLint y, GLint z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3s)(GLshort x, GLshort y, GLshort z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos3sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4i)(GLint x, GLint y, GLint z, GLint w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRasterPos4sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glReadBuffer)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height,
        GLenum format, GLenum type, GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRectdv)(const GLdouble *v1, const GLdouble *v2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRectfv)(const GLfloat *v1, const GLfloat *v2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRecti)(GLint x1, GLint y1, GLint x2, GLint y2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRectiv)(const GLint *v1, const GLint *v2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRectsv)(const GLshort *v1, const GLshort *v2) DECLSPEC_HIDDEN;
GLint (WINE_GLAPI *glRenderMode)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glScaled)(GLdouble x, GLdouble y, GLdouble z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glScalef)(GLfloat x, GLfloat y, GLfloat z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glScissor)(GLint x, GLint y, GLsizei width, GLsizei height) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glSelectBuffer)(GLsizei size, GLuint *buffer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glShadeModel)(GLenum mode) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glStencilFunc)(GLenum func, GLint ref, GLuint mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glStencilMask)(GLuint mask) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1d)(GLdouble s) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1f)(GLfloat s) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1i)(GLint s) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1s)(GLshort s) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord1sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2d)(GLdouble s, GLdouble t) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2f)(GLfloat s, GLfloat t) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2i)(GLint s, GLint t) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2s)(GLshort s, GLshort t) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord2sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3d)(GLdouble s, GLdouble t, GLdouble r) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3f)(GLfloat s, GLfloat t, GLfloat r) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3i)(GLint s, GLint t, GLint r) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3s)(GLshort s, GLshort t, GLshort r) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord3sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4i)(GLint s, GLint t, GLint r, GLint q) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoord4sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexEnvf)(GLenum target, GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexEnvi)(GLenum target, GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexEnviv)(GLenum target, GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexGend)(GLenum coord, GLenum pname, GLdouble param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexGendv)(GLenum coord, GLenum pname, const GLdouble *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexGenf)(GLenum coord, GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexGeni)(GLenum coord, GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexGeniv)(GLenum coord, GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width,
        GLint border, GLenum format, GLenum type, const GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width,
        GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexParameterf)(GLenum target, GLenum pname, GLfloat param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexParameteri)(GLenum target, GLenum pname, GLint param) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexParameteriv)(GLenum target, GLenum pname, const GLint *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexSubImage1D)(GLenum target, GLint level, GLint xoffset,
        GLsizei width, GLenum format, GLenum type, const GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset,
        GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTranslated)(GLdouble x, GLdouble y, GLdouble z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glTranslatef)(GLfloat x, GLfloat y, GLfloat z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2d)(GLdouble x, GLdouble y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2f)(GLfloat x, GLfloat y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2i)(GLint x, GLint y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2s)(GLshort x, GLshort y) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex2sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3d)(GLdouble x, GLdouble y, GLdouble z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3f)(GLfloat x, GLfloat y, GLfloat z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3i)(GLint x, GLint y, GLint z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3s)(GLshort x, GLshort y, GLshort z) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex3sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4dv)(const GLdouble *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4fv)(const GLfloat *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4i)(GLint x, GLint y, GLint z, GLint w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4iv)(const GLint *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertex4sv)(const GLshort *v) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glViewport)(GLint x, GLint y, GLsizei width, GLsizei height) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPointParameterfv)(GLenum pname, const GLfloat *params) DECLSPEC_HIDDEN;
void (WINE_GLAPI *glPointParameteri)(GLenum name, GLint value) DECLSPEC_HIDDEN;

/* glFinish and glFlush are always loaded from opengl32.dll, thus they always have
 * __stdcall calling convention.
 *
 * They are wgl functions and must not be called inside the gl lock, give them a
 * name that makes this clear
 */
void (__stdcall *wglFinish)(void) DECLSPEC_HIDDEN;
void (__stdcall *wglFlush)(void) DECLSPEC_HIDDEN;

/* WGL functions */
HGLRC (WINAPI *pwglCreateContext)(HDC) DECLSPEC_HIDDEN;
BOOL (WINAPI *pwglDeleteContext)(HGLRC) DECLSPEC_HIDDEN;
HGLRC (WINAPI *pwglGetCurrentContext)(void) DECLSPEC_HIDDEN;
HDC (WINAPI *pwglGetCurrentDC)(void) DECLSPEC_HIDDEN;
PROC (WINAPI *pwglGetProcAddress)(LPCSTR) DECLSPEC_HIDDEN;
BOOL (WINAPI *pwglMakeCurrent)(HDC, HGLRC) DECLSPEC_HIDDEN;
BOOL (WINAPI *pwglShareLists)(HGLRC, HGLRC) DECLSPEC_HIDDEN;

#define GL_FUNCS_GEN \
    USE_GL_FUNC(glAccum) \
    USE_GL_FUNC(glAlphaFunc) \
    USE_GL_FUNC(glAreTexturesResident) \
    USE_GL_FUNC(glArrayElement) \
    USE_GL_FUNC(glBegin) \
    USE_GL_FUNC(glBindTexture) \
    USE_GL_FUNC(glBitmap) \
    USE_GL_FUNC(glBlendFunc) \
    USE_GL_FUNC(glCallList) \
    USE_GL_FUNC(glCallLists) \
    USE_GL_FUNC(glClear) \
    USE_GL_FUNC(glClearAccum) \
    USE_GL_FUNC(glClearColor) \
    USE_GL_FUNC(glClearDepth) \
    USE_GL_FUNC(glClearIndex) \
    USE_GL_FUNC(glClearStencil) \
    USE_GL_FUNC(glClipPlane) \
    USE_GL_FUNC(glColor3b) \
    USE_GL_FUNC(glColor3bv) \
    USE_GL_FUNC(glColor3d) \
    USE_GL_FUNC(glColor3dv) \
    USE_GL_FUNC(glColor3f) \
    USE_GL_FUNC(glColor3fv) \
    USE_GL_FUNC(glColor3i) \
    USE_GL_FUNC(glColor3iv) \
    USE_GL_FUNC(glColor3s) \
    USE_GL_FUNC(glColor3sv) \
    USE_GL_FUNC(glColor3ub) \
    USE_GL_FUNC(glColor3ubv) \
    USE_GL_FUNC(glColor3ui) \
    USE_GL_FUNC(glColor3uiv) \
    USE_GL_FUNC(glColor3us) \
    USE_GL_FUNC(glColor3usv) \
    USE_GL_FUNC(glColor4b) \
    USE_GL_FUNC(glColor4bv) \
    USE_GL_FUNC(glColor4d) \
    USE_GL_FUNC(glColor4dv) \
    USE_GL_FUNC(glColor4f) \
    USE_GL_FUNC(glColor4fv) \
    USE_GL_FUNC(glColor4i) \
    USE_GL_FUNC(glColor4iv) \
    USE_GL_FUNC(glColor4s) \
    USE_GL_FUNC(glColor4sv) \
    USE_GL_FUNC(glColor4ub) \
    USE_GL_FUNC(glColor4ubv) \
    USE_GL_FUNC(glColor4ui) \
    USE_GL_FUNC(glColor4uiv) \
    USE_GL_FUNC(glColor4us) \
    USE_GL_FUNC(glColor4usv) \
    USE_GL_FUNC(glColorMask) \
    USE_GL_FUNC(glColorMaterial) \
    USE_GL_FUNC(glColorPointer) \
    USE_GL_FUNC(glCopyPixels) \
    USE_GL_FUNC(glCopyTexImage1D) \
    USE_GL_FUNC(glCopyTexImage2D) \
    USE_GL_FUNC(glCopyTexSubImage1D) \
    USE_GL_FUNC(glCopyTexSubImage2D) \
    USE_GL_FUNC(glCullFace) \
    USE_GL_FUNC(glDeleteLists) \
    USE_GL_FUNC(glDeleteTextures) \
    USE_GL_FUNC(glDepthFunc) \
    USE_GL_FUNC(glDepthMask) \
    USE_GL_FUNC(glDepthRange) \
    USE_GL_FUNC(glDisable) \
    USE_GL_FUNC(glDisableClientState) \
    USE_GL_FUNC(glDrawArrays) \
    USE_GL_FUNC(glDrawBuffer) \
    USE_GL_FUNC(glDrawElements) \
    USE_GL_FUNC(glDrawPixels) \
    USE_GL_FUNC(glEdgeFlag) \
    USE_GL_FUNC(glEdgeFlagPointer) \
    USE_GL_FUNC(glEdgeFlagv) \
    USE_GL_FUNC(glEnable) \
    USE_GL_FUNC(glEnableClientState) \
    USE_GL_FUNC(glEnd) \
    USE_GL_FUNC(glEndList) \
    USE_GL_FUNC(glEvalCoord1d) \
    USE_GL_FUNC(glEvalCoord1dv) \
    USE_GL_FUNC(glEvalCoord1f) \
    USE_GL_FUNC(glEvalCoord1fv) \
    USE_GL_FUNC(glEvalCoord2d) \
    USE_GL_FUNC(glEvalCoord2dv) \
    USE_GL_FUNC(glEvalCoord2f) \
    USE_GL_FUNC(glEvalCoord2fv) \
    USE_GL_FUNC(glEvalMesh1) \
    USE_GL_FUNC(glEvalMesh2) \
    USE_GL_FUNC(glEvalPoint1) \
    USE_GL_FUNC(glEvalPoint2) \
    USE_GL_FUNC(glFeedbackBuffer) \
    USE_GL_FUNC(glFogf) \
    USE_GL_FUNC(glFogfv) \
    USE_GL_FUNC(glFogi) \
    USE_GL_FUNC(glFogiv) \
    USE_GL_FUNC(glFrontFace) \
    USE_GL_FUNC(glFrustum) \
    USE_GL_FUNC(glGenLists) \
    USE_GL_FUNC(glGenTextures) \
    USE_GL_FUNC(glGetBooleanv) \
    USE_GL_FUNC(glGetClipPlane) \
    USE_GL_FUNC(glGetDoublev) \
    USE_GL_FUNC(glGetError) \
    USE_GL_FUNC(glGetFloatv) \
    USE_GL_FUNC(glGetIntegerv) \
    USE_GL_FUNC(glGetLightfv) \
    USE_GL_FUNC(glGetLightiv) \
    USE_GL_FUNC(glGetMapdv) \
    USE_GL_FUNC(glGetMapfv) \
    USE_GL_FUNC(glGetMapiv) \
    USE_GL_FUNC(glGetMaterialfv) \
    USE_GL_FUNC(glGetMaterialiv) \
    USE_GL_FUNC(glGetPixelMapfv) \
    USE_GL_FUNC(glGetPixelMapuiv) \
    USE_GL_FUNC(glGetPixelMapusv) \
    USE_GL_FUNC(glGetPointerv) \
    USE_GL_FUNC(glGetPolygonStipple) \
    USE_GL_FUNC(glGetString) \
    USE_GL_FUNC(glGetTexEnvfv) \
    USE_GL_FUNC(glGetTexEnviv) \
    USE_GL_FUNC(glGetTexGendv) \
    USE_GL_FUNC(glGetTexGenfv) \
    USE_GL_FUNC(glGetTexGeniv) \
    USE_GL_FUNC(glGetTexImage) \
    USE_GL_FUNC(glGetTexLevelParameterfv) \
    USE_GL_FUNC(glGetTexLevelParameteriv) \
    USE_GL_FUNC(glGetTexParameterfv) \
    USE_GL_FUNC(glGetTexParameteriv) \
    USE_GL_FUNC(glHint) \
    USE_GL_FUNC(glIndexMask) \
    USE_GL_FUNC(glIndexPointer) \
    USE_GL_FUNC(glIndexd) \
    USE_GL_FUNC(glIndexdv) \
    USE_GL_FUNC(glIndexf) \
    USE_GL_FUNC(glIndexfv) \
    USE_GL_FUNC(glIndexi) \
    USE_GL_FUNC(glIndexiv) \
    USE_GL_FUNC(glIndexs) \
    USE_GL_FUNC(glIndexsv) \
    USE_GL_FUNC(glIndexub) \
    USE_GL_FUNC(glIndexubv) \
    USE_GL_FUNC(glInitNames) \
    USE_GL_FUNC(glInterleavedArrays) \
    USE_GL_FUNC(glIsEnabled) \
    USE_GL_FUNC(glIsList) \
    USE_GL_FUNC(glIsTexture) \
    USE_GL_FUNC(glLightModelf) \
    USE_GL_FUNC(glLightModelfv) \
    USE_GL_FUNC(glLightModeli) \
    USE_GL_FUNC(glLightModeliv) \
    USE_GL_FUNC(glLightf) \
    USE_GL_FUNC(glLightfv) \
    USE_GL_FUNC(glLighti) \
    USE_GL_FUNC(glLightiv) \
    USE_GL_FUNC(glLineStipple) \
    USE_GL_FUNC(glLineWidth) \
    USE_GL_FUNC(glListBase) \
    USE_GL_FUNC(glLoadIdentity) \
    USE_GL_FUNC(glLoadMatrixd) \
    USE_GL_FUNC(glLoadMatrixf) \
    USE_GL_FUNC(glLoadName) \
    USE_GL_FUNC(glLogicOp) \
    USE_GL_FUNC(glMap1d) \
    USE_GL_FUNC(glMap1f) \
    USE_GL_FUNC(glMap2d) \
    USE_GL_FUNC(glMap2f) \
    USE_GL_FUNC(glMapGrid1d) \
    USE_GL_FUNC(glMapGrid1f) \
    USE_GL_FUNC(glMapGrid2d) \
    USE_GL_FUNC(glMapGrid2f) \
    USE_GL_FUNC(glMaterialf) \
    USE_GL_FUNC(glMaterialfv) \
    USE_GL_FUNC(glMateriali) \
    USE_GL_FUNC(glMaterialiv) \
    USE_GL_FUNC(glMatrixMode) \
    USE_GL_FUNC(glMultMatrixd) \
    USE_GL_FUNC(glMultMatrixf) \
    USE_GL_FUNC(glNewList) \
    USE_GL_FUNC(glNormal3b) \
    USE_GL_FUNC(glNormal3bv) \
    USE_GL_FUNC(glNormal3d) \
    USE_GL_FUNC(glNormal3dv) \
    USE_GL_FUNC(glNormal3f) \
    USE_GL_FUNC(glNormal3fv) \
    USE_GL_FUNC(glNormal3i) \
    USE_GL_FUNC(glNormal3iv) \
    USE_GL_FUNC(glNormal3s) \
    USE_GL_FUNC(glNormal3sv) \
    USE_GL_FUNC(glNormalPointer) \
    USE_GL_FUNC(glOrtho) \
    USE_GL_FUNC(glPassThrough) \
    USE_GL_FUNC(glPixelMapfv) \
    USE_GL_FUNC(glPixelMapuiv) \
    USE_GL_FUNC(glPixelMapusv) \
    USE_GL_FUNC(glPixelStoref) \
    USE_GL_FUNC(glPixelStorei) \
    USE_GL_FUNC(glPixelTransferf) \
    USE_GL_FUNC(glPixelTransferi) \
    USE_GL_FUNC(glPixelZoom) \
    USE_GL_FUNC(glPointSize) \
    USE_GL_FUNC(glPolygonMode) \
    USE_GL_FUNC(glPolygonOffset) \
    USE_GL_FUNC(glPolygonStipple) \
    USE_GL_FUNC(glPopAttrib) \
    USE_GL_FUNC(glPopClientAttrib) \
    USE_GL_FUNC(glPopMatrix) \
    USE_GL_FUNC(glPopName) \
    USE_GL_FUNC(glPrioritizeTextures) \
    USE_GL_FUNC(glPushAttrib) \
    USE_GL_FUNC(glPushClientAttrib) \
    USE_GL_FUNC(glPushMatrix) \
    USE_GL_FUNC(glPushName) \
    USE_GL_FUNC(glRasterPos2d) \
    USE_GL_FUNC(glRasterPos2dv) \
    USE_GL_FUNC(glRasterPos2f) \
    USE_GL_FUNC(glRasterPos2fv) \
    USE_GL_FUNC(glRasterPos2i) \
    USE_GL_FUNC(glRasterPos2iv) \
    USE_GL_FUNC(glRasterPos2s) \
    USE_GL_FUNC(glRasterPos2sv) \
    USE_GL_FUNC(glRasterPos3d) \
    USE_GL_FUNC(glRasterPos3dv) \
    USE_GL_FUNC(glRasterPos3f) \
    USE_GL_FUNC(glRasterPos3fv) \
    USE_GL_FUNC(glRasterPos3i) \
    USE_GL_FUNC(glRasterPos3iv) \
    USE_GL_FUNC(glRasterPos3s) \
    USE_GL_FUNC(glRasterPos3sv) \
    USE_GL_FUNC(glRasterPos4d) \
    USE_GL_FUNC(glRasterPos4dv) \
    USE_GL_FUNC(glRasterPos4f) \
    USE_GL_FUNC(glRasterPos4fv) \
    USE_GL_FUNC(glRasterPos4i) \
    USE_GL_FUNC(glRasterPos4iv) \
    USE_GL_FUNC(glRasterPos4s) \
    USE_GL_FUNC(glRasterPos4sv) \
    USE_GL_FUNC(glReadBuffer) \
    USE_GL_FUNC(glReadPixels) \
    USE_GL_FUNC(glRectd) \
    USE_GL_FUNC(glRectdv) \
    USE_GL_FUNC(glRectf) \
    USE_GL_FUNC(glRectfv) \
    USE_GL_FUNC(glRecti) \
    USE_GL_FUNC(glRectiv) \
    USE_GL_FUNC(glRects) \
    USE_GL_FUNC(glRectsv) \
    USE_GL_FUNC(glRenderMode) \
    USE_GL_FUNC(glRotated) \
    USE_GL_FUNC(glRotatef) \
    USE_GL_FUNC(glScaled) \
    USE_GL_FUNC(glScalef) \
    USE_GL_FUNC(glScissor) \
    USE_GL_FUNC(glSelectBuffer) \
    USE_GL_FUNC(glShadeModel) \
    USE_GL_FUNC(glStencilFunc) \
    USE_GL_FUNC(glStencilMask) \
    USE_GL_FUNC(glStencilOp) \
    USE_GL_FUNC(glTexCoord1d) \
    USE_GL_FUNC(glTexCoord1dv) \
    USE_GL_FUNC(glTexCoord1f) \
    USE_GL_FUNC(glTexCoord1fv) \
    USE_GL_FUNC(glTexCoord1i) \
    USE_GL_FUNC(glTexCoord1iv) \
    USE_GL_FUNC(glTexCoord1s) \
    USE_GL_FUNC(glTexCoord1sv) \
    USE_GL_FUNC(glTexCoord2d) \
    USE_GL_FUNC(glTexCoord2dv) \
    USE_GL_FUNC(glTexCoord2f) \
    USE_GL_FUNC(glTexCoord2fv) \
    USE_GL_FUNC(glTexCoord2i) \
    USE_GL_FUNC(glTexCoord2iv) \
    USE_GL_FUNC(glTexCoord2s) \
    USE_GL_FUNC(glTexCoord2sv) \
    USE_GL_FUNC(glTexCoord3d) \
    USE_GL_FUNC(glTexCoord3dv) \
    USE_GL_FUNC(glTexCoord3f) \
    USE_GL_FUNC(glTexCoord3fv) \
    USE_GL_FUNC(glTexCoord3i) \
    USE_GL_FUNC(glTexCoord3iv) \
    USE_GL_FUNC(glTexCoord3s) \
    USE_GL_FUNC(glTexCoord3sv) \
    USE_GL_FUNC(glTexCoord4d) \
    USE_GL_FUNC(glTexCoord4dv) \
    USE_GL_FUNC(glTexCoord4f) \
    USE_GL_FUNC(glTexCoord4fv) \
    USE_GL_FUNC(glTexCoord4i) \
    USE_GL_FUNC(glTexCoord4iv) \
    USE_GL_FUNC(glTexCoord4s) \
    USE_GL_FUNC(glTexCoord4sv) \
    USE_GL_FUNC(glTexCoordPointer) \
    USE_GL_FUNC(glTexEnvf) \
    USE_GL_FUNC(glTexEnvfv) \
    USE_GL_FUNC(glTexEnvi) \
    USE_GL_FUNC(glTexEnviv) \
    USE_GL_FUNC(glTexGend) \
    USE_GL_FUNC(glTexGendv) \
    USE_GL_FUNC(glTexGenf) \
    USE_GL_FUNC(glTexGenfv) \
    USE_GL_FUNC(glTexGeni) \
    USE_GL_FUNC(glTexGeniv) \
    USE_GL_FUNC(glTexImage1D) \
    USE_GL_FUNC(glTexImage2D) \
    USE_GL_FUNC(glTexParameterf) \
    USE_GL_FUNC(glTexParameterfv) \
    USE_GL_FUNC(glTexParameteri) \
    USE_GL_FUNC(glTexParameteriv) \
    USE_GL_FUNC(glTexSubImage1D) \
    USE_GL_FUNC(glTexSubImage2D) \
    USE_GL_FUNC(glTranslated) \
    USE_GL_FUNC(glTranslatef) \
    USE_GL_FUNC(glVertex2d) \
    USE_GL_FUNC(glVertex2dv) \
    USE_GL_FUNC(glVertex2f) \
    USE_GL_FUNC(glVertex2fv) \
    USE_GL_FUNC(glVertex2i) \
    USE_GL_FUNC(glVertex2iv) \
    USE_GL_FUNC(glVertex2s) \
    USE_GL_FUNC(glVertex2sv) \
    USE_GL_FUNC(glVertex3d) \
    USE_GL_FUNC(glVertex3dv) \
    USE_GL_FUNC(glVertex3f) \
    USE_GL_FUNC(glVertex3fv) \
    USE_GL_FUNC(glVertex3i) \
    USE_GL_FUNC(glVertex3iv) \
    USE_GL_FUNC(glVertex3s) \
    USE_GL_FUNC(glVertex3sv) \
    USE_GL_FUNC(glVertex4d) \
    USE_GL_FUNC(glVertex4dv) \
    USE_GL_FUNC(glVertex4f) \
    USE_GL_FUNC(glVertex4fv) \
    USE_GL_FUNC(glVertex4i) \
    USE_GL_FUNC(glVertex4iv) \
    USE_GL_FUNC(glVertex4s) \
    USE_GL_FUNC(glVertex4sv) \
    USE_GL_FUNC(glVertexPointer) \
    USE_GL_FUNC(glViewport) \
    USE_GL_FUNC(glPointParameterfv) \
    USE_GL_FUNC(glPointParameteri) \

#define WGL_FUNCS_GEN \
    USE_WGL_FUNC(wglCreateContext) \
    USE_WGL_FUNC(wglDeleteContext) \
    USE_WGL_FUNC(wglGetCurrentContext) \
    USE_WGL_FUNC(wglGetCurrentDC) \
    USE_WGL_FUNC(wglGetProcAddress) \
    USE_WGL_FUNC(wglMakeCurrent) \
    USE_WGL_FUNC(wglShareLists)

/* OpenGL extensions. */
typedef enum wined3d_gl_extension
{
    WINED3D_GL_EXT_NONE,

    /* 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_MAP_BUFFER_RANGE,
    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_SHADING_LANGUAGE_100,
    ARB_SHADOW,
    ARB_SYNC,
    ARB_TEXTURE_BORDER_CLAMP,
    ARB_TEXTURE_COMPRESSION,
    ARB_TEXTURE_COMPRESSION_RGTC,
    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_ARRAY_BGRA,
    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_BLEND_SUBTRACT,
    EXT_DRAW_BUFFERS2,
    EXT_DEPTH_BOUNDS_TEST,
    EXT_FOG_COORD,
    EXT_FRAMEBUFFER_BLIT,
    EXT_FRAMEBUFFER_MULTISAMPLE,
    EXT_FRAMEBUFFER_OBJECT,
    EXT_GPU_PROGRAM_PARAMETERS,
    EXT_GPU_SHADER4,
    EXT_PACKED_DEPTH_STENCIL,
    EXT_PALETTED_TEXTURE,
    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_BIAS,
    EXT_TEXTURE_SRGB,
    EXT_TEXTURE_SRGB_DECODE,
    EXT_VERTEX_ARRAY_BGRA,
    /* 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_POINT_SPRITE,
    NV_REGISTER_COMBINERS,
    NV_REGISTER_COMBINERS2,
    NV_TEXGEN_REFLECTION,
    NV_TEXTURE_ENV_COMBINE4,
    NV_TEXTURE_SHADER,
    NV_TEXTURE_SHADER2,
    NV_VERTEX_PROGRAM,
    NV_VERTEX_PROGRAM1_1,
    NV_VERTEX_PROGRAM2,
    NV_VERTEX_PROGRAM2_OPTION,
    NV_VERTEX_PROGRAM3,
    /* SGI */
    SGIS_GENERATE_MIPMAP,
    /* WGL extensions */
    WGL_ARB_PIXEL_FORMAT,
    WGL_EXT_SWAP_CONTROL,
    WGL_WINE_PIXEL_FORMAT_PASSTHROUGH,
    /* Internally used */
    WINED3D_GL_NORMALIZED_TEXRECT,
    WINED3D_GL_VERSION_2_0,

    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_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);

/* 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
#endif

/* GL_ARB_depth_clamp */
#ifndef GL_ARB_depth_clamp
#define GL_ARB_depth_clamp 1
#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
#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
#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

/* GL_ARB_framebuffer_object */
#ifndef GL_ARB_framebuffer_object
#define GL_ARB_framebuffer_object 1
#define GL_FRAMEBUFFER                                      0x8d40
#define GL_READ_FRAMEBUFFER                                 0x8ca8
#define GL_DRAW_FRAMEBUFFER                                 0x8ca9
#define GL_RENDERBUFFER                                     0x8d41
#define GL_STENCIL_INDEX1                                   0x8d46
#define GL_STENCIL_INDEX4                                   0x8d47
#define GL_STENCIL_INDEX8                                   0x8d48
#define GL_STENCIL_INDEX16                                  0x8d49
#define GL_RENDERBUFFER_WIDTH                               0x8d42
#define GL_RENDERBUFFER_HEIGHT                              0x8d43
#define GL_RENDERBUFFER_INTERNAL_FORMAT                     0x8d44
#define GL_RENDERBUFFER_RED_SIZE                            0x8d50
#define GL_RENDERBUFFER_GREEN_SIZE                          0x8d51
#define GL_RENDERBUFFER_BLUE_SIZE                           0x8d52
#define GL_RENDERBUFFER_ALPHA_SIZE                          0x8d53
#define GL_RENDERBUFFER_DEPTH_SIZE                          0x8d54
#define GL_RENDERBUFFER_STENCIL_SIZE                        0x8d55
#define GL_RENDERBUFFER_SAMPLES                             0x8cab
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE               0x8cd0
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME               0x8cd1
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL             0x8cd2
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE     0x8cd3
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER             0x8cd4
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING            0x8210
#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE            0x8211
#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE                  0x8212
#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE                0x8213
#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE                 0x8214
#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE                0x8215
#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE                0x8216
#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE              0x8217
#define GL_SRGB                                             0x8c40
#define GL_UNSIGNED_NORMALIZED                              0x8c17
#define GL_FRAMEBUFFER_DEFAULT                              0x8218
#define GL_INDEX                                            0x8222
#define GL_COLOR_ATTACHMENT0                                0x8ce0
#define GL_COLOR_ATTACHMENT1                                0x8ce1
#define GL_COLOR_ATTACHMENT2                                0x8ce2
#define GL_COLOR_ATTACHMENT3                                0x8ce3
#define GL_COLOR_ATTACHMENT4                                0x8ce4
#define GL_COLOR_ATTACHMENT5                                0x8ce5
#define GL_COLOR_ATTACHMENT6                                0x8ce6
#define GL_COLOR_ATTACHMENT7                                0x8ce7
#define GL_COLOR_ATTACHMENT8                                0x8ce8
#define GL_COLOR_ATTACHMENT9                                0x8ce9
#define GL_COLOR_ATTACHMENT10                               0x8cea
#define GL_COLOR_ATTACHMENT11                               0x8ceb
#define GL_COLOR_ATTACHMENT12                               0x8cec
#define GL_COLOR_ATTACHMENT13                               0x8ced
#define GL_COLOR_ATTACHMENT14                               0x8cee
#define GL_COLOR_ATTACHMENT15                               0x8cef
#define GL_DEPTH_ATTACHMENT                                 0x8d00
#define GL_STENCIL_ATTACHMENT                               0x8d20
#define GL_DEPTH_STENCIL_ATTACHMENT                         0x821a
#define GL_MAX_SAMPLES                                      0x8d57
#define GL_FRAMEBUFFER_COMPLETE                             0x8cd5
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT                0x8cd6
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT        0x8cd7
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER               0x8cdb
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER               0x8cdc
#define GL_FRAMEBUFFER_UNSUPPORTED                          0x8cdd
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE               0x8d56
#define GL_FRAMEBUFFER_UNDEFINED                            0x8219
#define GL_FRAMEBUFFER_BINDING                              0x8ca6
#define GL_DRAW_FRAMEBUFFER_BINDING                         0x8ca6
#define GL_READ_FRAMEBUFFER_BINDING                         0x8caa
#define GL_RENDERBUFFER_BINDING                             0x8ca7
#define GL_MAX_COLOR_ATTACHMENTS                            0x8cdf
#define GL_MAX_RENDERBUFFER_SIZE                            0x84e8
#define GL_INVALID_FRAMEBUFFER_OPERATION                    0x0506
#define GL_DEPTH_STENCIL                                    0x84f9
#define GL_UNSIGNED_INT_24_8                                0x84fa
#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,
        GLsizei width, GLsizei height);
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,
        GLenum textarget, GLuint texture, GLint level);
typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment,
        GLenum textarget, GLuint texture, GLint level);
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,
        GLuint texture, GLint level, GLint layer);
typedef void (WINE_GLAPI *PGLFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment,
        GLenum renderbuffertarget, GLuint renderbuffer);
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,
        GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
typedef void (WINE_GLAPI *PGLFNGLGENERATEMIPMAPPROC)(GLenum target);

/* GL_ARB_geometry_shader4 */
#ifndef GL_ARB_geometry_shader4
#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,
        GLuint texture, GLint level);
typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment,
        GLuint texture, GLint level, GLint layer);
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_map_buffer_range */
#ifndef GL_ARB_map_buffer_range
#define GL_ARB_map_buffer_range 1
#define GL_MAP_READ_BIT                                     0x0001
#define GL_MAP_WRITE_BIT                                    0x0002
#define GL_MAP_INVALIDATE_RANGE_BIT                         0x0004
#define GL_MAP_INVALIDATE_BUFFER_BIT                        0x0008
#define GL_MAP_FLUSH_EXPLICIT_BIT                           0x0010
#define GL_MAP_UNSYNCHRONIZED_BIT                           0x0020
#endif
typedef GLvoid *(WINE_GLAPI *PGLFNMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (WINE_GLAPI *PGLFNFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);

/* 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_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
#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);

/* 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
#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
#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

/* 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
#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_shadow */
#ifndef GL_ARB_shadow
#define GL_ARB_shadow 1
#define GL_TEXTURE_COMPARE_MODE_ARB                         0x884c
#define GL_TEXTURE_COMPARE_FUNC_ARB                         0x884d
#define GL_COMPARE_R_TO_TEXTURE_ARB                         0x884e
#endif

/* GL_ARB_sync */
#ifndef GL_ARB_sync
#define GL_ARB_sync 1
#define GL_MAX_SERVER_WAIT_TIMEOUT              0x9111
#define GL_OBJECT_TYPE                          0x9112
#define GL_SYNC_CONDITION                       0x9113
#define GL_SYNC_STATUS                          0x9114
#define GL_SYNC_FLAGS                           0x9115
#define GL_SYNC_FENCE                           0x9116
#define GL_SYNC_GPU_COMMANDS_COMPLETE           0x9117
#define GL_UNSIGNALED                           0x9118
#define GL_SIGNALED                             0x9119
#define GL_SYNC_FLUSH_COMMANDS_BIT              0x00000001
#define GL_TIMEOUT_IGNORED                      0xffffffffffffffffULL
#define GL_ALREADY_SIGNALED                     0x911a
#define GL_TIMEOUT_EXPIRED                      0x911b
#define GL_CONDITION_SATISFIED                  0x911c
#define GL_WAIT_FAILED                          0x911d
#endif
typedef GLsync (WINE_GLAPI *PGLFNFENCESYNCPROC)(GLenum condition, GLbitfield flags);
typedef GLboolean (WINE_GLAPI *PGLFNISSYNCPROC)(GLsync sync);
typedef GLvoid (WINE_GLAPI *PGLFNDELETESYNCPROC)(GLsync sync);
typedef GLenum (WINE_GLAPI *PGLFNCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef GLvoid (WINE_GLAPI *PGLFNWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef GLvoid (WINE_GLAPI *PGLFNGETINTEGER64VPROC)(GLenum pname, GLint64 *params);
typedef GLvoid (WINE_GLAPI *PGLFNGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufsize,
        GLsizei *length, GLint *values);

/* 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_compression_rgtc */
#ifndef GL_ARB_texture_compression_rgtc
#define GL_ARB_texture_compression_rgtc 1
#define GL_COMPRESSED_RED_RGTC1                             0x8dbb
#define GL_COMPRESSED_SIGNED_RED_RGTC1                      0x8dbc
#define GL_COMPRESSED_RED_GREEN_RGTC2                       0x8dbd
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2                0x8dbe
#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

/* 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
#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_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_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);

/* 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_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_color */
#ifndef GL_EXT_blend_color
#define GL_EXT_blend_color 1
#define GL_CONSTANT_COLOR_EXT                               0x8001
#define GL_ONE_MINUS_CONSTANT_COLOR_EXT                     0x8002
#define GL_CONSTANT_ALPHA_EXT                               0x8003
#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT                     0x8004
#define GL_BLEND_COLOR_EXT                                  0x8005
#endif
typedef GLvoid (WINE_GLAPI *PGLFNBLENDCOLOREXTPROC)(GLclampf red,
        GLclampf green, GLclampf blue, GLclampf alpha);

/* 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_blend_minmax */
#ifndef GL_EXT_blend_minmax
#define GL_EXT_blend_minmax 1
#define GL_FUNC_ADD_EXT                                     0x8006
#define GL_MIN_EXT                                          0x8007
#define GL_MAX_EXT                                          0x8008
#define GL_BLEND_EQUATION_EXT                               0x8009
#endif
typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONEXTPROC)(GLenum mode);

/* GL_EXT_blend_subtract */
#ifndef GL_EXT_blend_subtract
#define GL_EXT_blend_subtract 1
#define GL_FUNC_SUBTRACT_EXT                                0x800a
#define GL_FUNC_REVERSE_SUBTRACT_EXT                        0x800b
#endif

/* GL_EXT_depth_bounds_test */
#ifndef GL_EXT_depth_bounds_test
#define GL_EXT_depth_bounds_test 1
#define GL_DEPTH_BOUNDS_TEST_EXT                            0x8890
#define GL_DEPTH_BOUNDS_EXT                                 0x8891
#endif
typedef void (WINE_GLAPI *PGLFNDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax);

/* GL_EXT_draw_buffers2 */
typedef GLvoid (WINE_GLAPI *PGLFNCOLORMASKINDEXEDEXTPROC)(GLuint buffer_idx, GLboolean r, GLboolean g,
        GLboolean b, GLboolean a);
typedef GLvoid (WINE_GLAPI *PGLFNGETBOOLEANINDEXEDVEXTPROC)(GLenum param, GLuint index, GLboolean *value);
typedef GLvoid (WINE_GLAPI *PGLFNGETINTEGERINDEXEDVEXTPROC)(GLenum param, GLuint index, GLint *value);
typedef GLvoid (WINE_GLAPI *PGLFNENABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
typedef GLvoid (WINE_GLAPI *PGLFNDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
typedef GLboolean (WINE_GLAPI *PGLFNISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index);

/* 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
#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);

/* 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
#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

/* GL_EXT_gpu_shader4 */
#ifndef GL_EXT_gpu_shader4
#define GL_EXT_gpu_shader4 1
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT                  0x88fd
#define GL_SAMPLER_1D_ARRAY_EXT                             0x8dc0
#define GL_SAMPLER_2D_ARRAY_EXT                             0x8dc1
#define GL_SAMPLER_BUFFER_EXT                               0x8dc2
#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT                      0x8dc3
#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT                      0x8dc4
#define GL_SAMPLER_CUBE_SHADOW_EXT                          0x8dc5
#define GL_UNSIGNED_INT_VEC2_EXT                            0x8dc6
#define GL_UNSIGNED_INT_VEC3_EXT                            0x8dc7
#define GL_UNSIGNED_INT_VEC4_EXT                            0x8dc8
#define GL_INT_SAMPLER_1D_EXT                               0x8dc9
#define GL_INT_SAMPLER_2D_EXT                               0x8dca
#define GL_INT_SAMPLER_3D_EXT                               0x8dcb
#define GL_INT_SAMPLER_CUBE_EXT                             0x8dcc
#define GL_INT_SAMPLER_2D_RECT_EXT                          0x8dcd
#define GL_INT_SAMPLER_1D_ARRAY_EXT                         0x8dce
#define GL_INT_SAMPLER_2D_ARRAY_EXT                         0x8dcf
#define GL_INT_SAMPLER_BUFFER_EXT                           0x8dd0
#define GL_UNSIGNED_INT_SAMPLER_1D_EXT                      0x8dd1
#define GL_UNSIGNED_INT_SAMPLER_2D_EXT                      0x8dd2
#define GL_UNSIGNED_INT_SAMPLER_3D_EXT                      0x8dd3
#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT                    0x8dd4
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT                 0x8dd5
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT                0x8dd6
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT                0x8dd7
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT                  0x8dd8
#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT                     0x8904
#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT                     0x8905
#endif
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort *v);
typedef GLvoid (WINE_GLAPI *PGLFNVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type,
        GLsizei stride, const GLvoid *pointer);
typedef GLvoid (WINE_GLAPI *PGLFNGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname, GLint *params);
typedef GLvoid (WINE_GLAPI *PGLFNGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname, GLuint *params);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM1UIEXTPROC)(GLint location, GLuint v0);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM1UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM2UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM3UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef GLvoid (WINE_GLAPI *PGLFNUNIFORM4UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef GLvoid (WINE_GLAPI *PGLFNGETUNIFORMUIVEXTPROC)(GLuint program, GLint location, const GLuint *params);
typedef GLvoid (WINE_GLAPI *PGLFNBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color_number, const GLchar *name);
typedef GLint (WINE_GLAPI *PGLFNGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar *name);

/* 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
#endif

/* 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
#endif
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
#endif
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
#define GL_EXT_provoking_vertex 1
#define GL_FIRST_VERTEX_CONVENTION_EXT                      0x8e4d
#define GL_LAST_VERTEX_CONVENTION_EXT                       0x8e4e
#define GL_PROVOKING_VERTEX_EXT                             0x8e4f
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT     0x8e4c
#endif
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_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
#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);

/* 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
#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
#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
#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_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_EXT_texture_sRGB_decode */
#ifndef GL_EXT_texture_sRGB_decode
#define GL_EXT_texture_sRGB_decode 1
#define GL_TEXTURE_SRGB_DECODE_EXT                          0x8a48
#define GL_DECODE_EXT                                       0x8a49
#define GL_SKIP_DECODE_EXT                                  0x8a4a
#endif

/* GL_NV_depth_clamp */
#ifndef GL_NV_depth_clamp
#define GL_NV_depth_clamp 1
#define GL_DEPTH_CLAMP_NV                                   0x864f
#endif

/* 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_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
#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);

/* 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_point_sprite */
#ifndef GL_NV_point_sprite
#define GL_NV_point_sprite 1
#define GL_NV_POINT_SPRITE_NV                               0x8861
#define GL_NV_COORD_REPLACE_NV                              0x8862
#define GL_NV_POINT_SPRITE_R_MODE_NV                        0x8863
#endif
typedef void (WINE_GLAPI *PGLFNPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
typedef void (WINE_GLAPI *PGLFNPOINTPARAMETERINVPROC)(GLenum pname, GLint param);

/* 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
/* 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);

/* GL_NV_register_combiners2 */
#ifndef GL_NV_register_combiners2
#define GL_NV_register_combiners2 1
#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

/* 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
#endif

/* GL_NV_texture_shader2 */
#ifndef GL_NV_texture_shader2
#define GL_NV_texture_shader2 1
#define GL_DOT_PRODUCT_TEXTURE_3D_NV                        0x86ef
#endif

/* 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

/* GL_SGIS_generate_mipmap */
#ifndef GL_SGIS_generate_mipmap
#define GL_SGIS_generate_mipmap 1
#define GL_GENERATE_MIPMAP_SGIS                             0x8191
#define GL_GENERATE_MIPMAP_HINT_SGIS                        0x8192
#endif

/* WGL_ARB_extensions_string */
typedef const char *(WINAPI *WINED3D_PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);

/* WGL_ARB_multisample */
#ifndef WGL_ARB_multisample
#define WGL_ARB_multisample 1
#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_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);

typedef BOOL (WINAPI *WINED3D_PFNWGLSWAPINTERVALEXTPROC)(int interval);

#define GL_EXT_FUNCS_GEN \
    /* 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) \
    /* GL_ARB_draw_buffers */ \
    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) \
    /* 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) \
    /* GL_ARB_map_buffer_range */ \
    USE_GL_FUNC(PGLFNMAPBUFFERRANGEPROC, \
            glMapBufferRange,                           ARB_MAP_BUFFER_RANGE,           NULL) \
    USE_GL_FUNC(PGLFNFLUSHMAPPEDBUFFERRANGEPROC, \
            glFlushMappedBufferRange,                   ARB_MAP_BUFFER_RANGE,           NULL) \
    /* GL_ARB_multisample */ \
    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) \
    /* 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) \
    /* GL_ARB_point_parameters */ \
    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) \
    /* 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_PFNGLUNIFORM1FARBPROC, \
            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_sync */ \
    USE_GL_FUNC(PGLFNFENCESYNCPROC, \
            glFenceSync,                                ARB_SYNC,                       NULL) \
    USE_GL_FUNC(PGLFNISSYNCPROC, \
            glIsSync,                                   ARB_SYNC,                       NULL) \
    USE_GL_FUNC(PGLFNDELETESYNCPROC, \
            glDeleteSync,                               ARB_SYNC,                       NULL) \
    USE_GL_FUNC(PGLFNCLIENTWAITSYNCPROC, \
            glClientWaitSync,                           ARB_SYNC,                       NULL) \
    USE_GL_FUNC(PGLFNWAITSYNCPROC, \
            glWaitSync,                                 ARB_SYNC,                       NULL) \
    USE_GL_FUNC(PGLFNGETINTEGER64VPROC, \
            glGetInteger64v,                            ARB_SYNC,                       NULL) \
    USE_GL_FUNC(PGLFNGETSYNCIVPROC, \
            glGetSynciv,                                ARB_SYNC,                       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) \
    /* 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) \
    /* 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) \
    /* 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_color */ \
    USE_GL_FUNC(PGLFNBLENDCOLOREXTPROC, \
            glBlendColorEXT,                            EXT_BLEND_COLOR,                NULL) \
    /* GL_EXT_blend_equation_separate */ \
    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) \
    /* GL_EXT_blend_minmax */ \
    USE_GL_FUNC(PGLFNBLENDEQUATIONEXTPROC, \
            glBlendEquationEXT,                         EXT_BLEND_MINMAX,               NULL) \
    /* GL_EXT_depth_bounds_test */ \
    USE_GL_FUNC(PGLFNDEPTHBOUNDSEXTPROC, \
            glDepthBoundsEXT,                           EXT_DEPTH_BOUNDS_TEST,          NULL) \
    /* GL_EXT_draw_buffers2 */ \
    USE_GL_FUNC(PGLFNCOLORMASKINDEXEDEXTPROC, \
            glColorMaskIndexedEXT,                      EXT_DRAW_BUFFERS2,              NULL) \
    USE_GL_FUNC(PGLFNGETBOOLEANINDEXEDVEXTPROC, \
            glGetBooleanIndexedvEXT,                    EXT_DRAW_BUFFERS2,              NULL) \
    USE_GL_FUNC(PGLFNGETINTEGERINDEXEDVEXTPROC, \
            glGetIntegerIndexedvEXT,                    EXT_DRAW_BUFFERS2,              NULL) \
    USE_GL_FUNC(PGLFNENABLEINDEXEDEXTPROC, \
            glEnableIndexedEXT,                         EXT_DRAW_BUFFERS2,              NULL) \
    USE_GL_FUNC(PGLFNDISABLEINDEXEDEXTPROC, \
            glDisableIndexedEXT,                        EXT_DRAW_BUFFERS2,              NULL) \
    USE_GL_FUNC(PGLFNISENABLEDINDEXEDEXTPROC, \
            glIsEnabledIndexedEXT,                      EXT_DRAW_BUFFERS2,              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_blit */ \
    USE_GL_FUNC(PGLFNGLBLITFRAMEBUFFEREXTPROC, \
            glBlitFramebufferEXT,                       EXT_FRAMEBUFFER_BLIT,           NULL) \
    /* GL_EXT_framebuffer_multisample */ \
    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_gpu_shader4 */\
    USE_GL_FUNC(PGLFNVERTEXATTRIBI1IEXTPROC, \
            glVertexAttribI1iEXT,                       EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI2IEXTPROC, \
            glVertexAttribI2iEXT,                       EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI3IEXTPROC, \
            glVertexAttribI3iEXT,                       EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4IEXTPROC, \
            glVertexAttribI4iEXT,                       EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI1UIEXTPROC, \
            glVertexAttribI1uiEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI2UIEXTPROC, \
            glVertexAttribI2uiEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI3UIEXTPROC, \
            glVertexAttribI3uiEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4UIEXTPROC, \
            glVertexAttribI4uiEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI1IVEXTPROC, \
            glVertexAttribI1ivEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI2IVEXTPROC, \
            glVertexAttribI2ivEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI3IVEXTPROC, \
            glVertexAttribI3ivEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4IVEXTPROC, \
            glVertexAttribI4ivEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI1UIVEXTPROC, \
            glVertexAttribI1uivEXT,                     EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI2UIVEXTPROC, \
            glVertexAttribI2uivEXT,                     EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI3UIVEXTPROC, \
            glVertexAttribI3uivEXT,                     EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4UIVEXTPROC, \
            glVertexAttribI4uivEXT,                     EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4BVEXTPROC, \
            glVertexAttribI4bvEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4SVEXTPROC, \
            glVertexAttribI4svEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4UBVEXTPROC, \
            glVertexAttribI4ubvEXT,                     EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBI4USVEXTPROC, \
            glVertexAttribI4usvEXT,                     EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNVERTEXATTRIBIPOINTEREXTPROC, \
            glVertexAttribIPointerEXT,                  EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNGETVERTEXATTRIBIIVEXTPROC, \
            glVertexAttribIivEXT,                       EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNGETVERTEXATTRIBIUIVEXTPROC, \
            glVertexAttribIuivEXT,                      EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM1UIEXTPROC, \
            glUniform1uiEXT,                            EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM2UIEXTPROC, \
            glUniform2uiEXT,                            EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM3UIEXTPROC, \
            glUniform3uiEXT,                            EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM4UIEXTPROC, \
            glUniform4uiEXT,                            EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM1UIVEXTPROC, \
            glUniform1uivEXT,                           EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM2UIVEXTPROC, \
            glUniform2uivEXT,                           EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM3UIVEXTPROC, \
            glUniform3uivEXT,                           EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNUNIFORM4UIVEXTPROC, \
            glUniform4uivEXT,                           EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNGETUNIFORMUIVEXTPROC, \
            glGetUniformuivEXT,                         EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNBINDFRAGDATALOCATIONEXTPROC, \
            glBindFragDataLocationEXT,                  EXT_GPU_SHADER4,                NULL) \
    USE_GL_FUNC(PGLFNGETFRAGDATALOCATIONEXTPROC, \
            glGetFragDataLocationEXT,                   EXT_GPU_SHADER4,                NULL) \
    /* GL_EXT_paletted_texture */ \
    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) \
    /* GL_EXT_provoking_vertex */ \
    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_stencil_two_side */ \
    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) \
    /* GL_NV_point_sprite */ \
    USE_GL_FUNC(PGLFNPOINTPARAMETERIVNVPROC, \
            glPointParameterivNV,                       NV_POINT_SPRITE,                NULL) \
    USE_GL_FUNC(PGLFNPOINTPARAMETERINVPROC, \
            glPointParameteriNV,                        NV_POINT_SPRITE,                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) \

#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_PFNWGLSETPIXELFORMATWINE,               wglSetPixelFormatWINE,          0, NULL) \
    USE_GL_FUNC(WINED3D_PFNWGLSWAPINTERVALEXTPROC,              wglSwapIntervalEXT,             0, NULL)

#endif /* __WINE_WINED3D_GL */
