Home | History | Annotate | Download | only in tests
      1 /*
      2  * Copyright  2012 Intel Corporation
      3  *
      4  * Permission is hereby granted, free of charge, to any person obtaining a
      5  * copy of this software and associated documentation files (the "Software"),
      6  * to deal in the Software without restriction, including without limitation
      7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      8  * and/or sell copies of the Software, and to permit persons to whom the
      9  * Software is furnished to do so, subject to the following conditions:
     10  *
     11  * The above copyright notice and this permission notice (including the next
     12  * paragraph) shall be included in all copies or substantial portions of the
     13  * Software.
     14  *
     15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     21  * DEALINGS IN THE SOFTWARE.
     22  */
     23 
     24 #include <gtest/gtest.h>
     25 #include <GL/gl.h>
     26 
     27 extern "C" {
     28 #include "glapi/glapi.h"
     29 #include "glapi/glapitable.h"
     30 }
     31 
     32 struct name_offset {
     33    const char *name;
     34    int offset;
     35 };
     36 
     37 extern const struct name_offset linux_gl_abi[];
     38 extern const struct name_offset known_dispatch[];
     39 
     40 TEST(GetProcAddress, ABIOffsetByName)
     41 {
     42    /* 408 functions have had their locations in the dispatch table set since
     43     * the dawn of time.  Verify that all of these functions are at the correct
     44     * locations.
     45     */
     46    for (unsigned i = 0; linux_gl_abi[i].name != NULL; i++) {
     47       EXPECT_EQ(linux_gl_abi[i].offset,
     48 		_glapi_get_proc_offset(linux_gl_abi[i].name))
     49 	 << "function name: " << linux_gl_abi[i].name;
     50    }
     51 }
     52 
     53 TEST(GetProcAddress, ABINameByOffset)
     54 {
     55    /* 408 functions have had their locations in the dispatch table set since
     56     * the dawn of time.  Verify that all of these functions are at the correct
     57     * locations.
     58     */
     59    for (unsigned i = 0; linux_gl_abi[i].name != NULL; i++) {
     60       EXPECT_STREQ(linux_gl_abi[i].name,
     61 		   _glapi_get_proc_name(linux_gl_abi[i].offset))
     62 	 << "function offset: " << linux_gl_abi[i].offset;
     63    }
     64 }
     65 
     66 TEST(GetProcAddress, TableBigEnoughForABI)
     67 {
     68    const unsigned table_entries = sizeof(struct _glapi_table) / sizeof(void *);
     69 
     70    EXPECT_GE(table_entries, 408u);
     71 }
     72 
     73 TEST(GetProcAddress, TableDidntShrink)
     74 {
     75    const unsigned table_entries = sizeof(struct _glapi_table) / sizeof(void *);
     76 
     77    /* The dispatch table is not expected to shrink.  At GIT commit b45052b the
     78     * table had 978 entries.  Changes that intentionally reduce the size of
     79     * the table are very rare.  In those cases, the expected value should be
     80     * updated to reflect the change.
     81     *
     82     * Changes that accidentally reduce the size of the table are bugs, and
     83     * they should be fixed.
     84     *
     85     * 6 entries were removed when GL_SGIS_pixel_texture was removed from the
     86     * dispatch table.
     87     *
     88     * 1 entry was removed when GL_SGIX_pixel_texture was removed from the
     89     * dispatch table.
     90     *
     91     * 2 entries were removed when GL_APPLE_texture_range was removed from the
     92     * dispatch table.
     93     *
     94     * 13 entries were removed when GL_NV_register_combiners was removed from
     95     * the dispatch table.
     96     *
     97     * 7 entries were removed when GL_NV_fence was removed from the dispatch
     98     * table.
     99     *
    100     * 2 entries were removed when GL_NV_vertex_array_range was removed from
    101     * the dispatch table.
    102     */
    103    EXPECT_GE(table_entries, 978u - 6u - 1u - 2u - 13u - 7u - 2u);
    104 }
    105 
    106 TEST(GetProcAddress, QueriedDispatchSizeBigEnough)
    107 {
    108    const unsigned table_entries = sizeof(struct _glapi_table) / sizeof(void *);
    109 
    110    /* _glapi_get_dispatch_table_size returns the size of the extended dispatch
    111     * table.  This is the size of the static table with some extra entries for
    112     * drivers to use for extensions that the core does not know about.
    113     */
    114    EXPECT_LT(table_entries, _glapi_get_dispatch_table_size());
    115 }
    116 
    117 TEST(GetProcAddress, KnownDispatchOffsetsAreConsistent)
    118 {
    119    /* Verify that the queried dispatch offset for every known function is
    120     * consistent with its location in the static dispatch table.
    121     *
    122     * There is some redundancy between this test and ABIOffsetByName.  That's
    123     * okay.  The offsets in ABIOffsetByName comdirectly from the ABI
    124     * definition.  The offsets in this test come from locations in a structure
    125     * definition generated by scripts.
    126     */
    127    for (unsigned i = 0; known_dispatch[i].name != NULL; i++) {
    128       EXPECT_EQ(known_dispatch[i].offset,
    129 		_glapi_get_proc_offset(known_dispatch[i].name))
    130 	 << "function name: " << known_dispatch[i].name;
    131    }
    132 }
    133 
    134 TEST(GetProcAddress, KnownDispatchNamesAreConsistent)
    135 {
    136    /* Verify that the queried dispatch name for every known function is
    137     * consistent with its location in the static dispatch table.
    138     *
    139     * There is some redundancy between this test and ABINameByOffset.  That's
    140     * okay.  The offsets in ABIOffsetByName comdirectly from the ABI
    141     * definition.  The offsets in this test come from locations in a structure
    142     * definition generated by scripts.
    143     */
    144    for (unsigned i = 0; known_dispatch[i].name != NULL; i++) {
    145       EXPECT_STREQ(known_dispatch[i].name,
    146 		   _glapi_get_proc_name(known_dispatch[i].offset))
    147 	 << "function offset: " << known_dispatch[i].offset;
    148    }
    149 }
    150 
    151 const struct name_offset linux_gl_abi[] = {
    152    { "glNewList", 0 },
    153    { "glEndList", 1 },
    154    { "glCallList", 2 },
    155    { "glCallLists", 3 },
    156    { "glDeleteLists", 4 },
    157    { "glGenLists", 5 },
    158    { "glListBase", 6 },
    159    { "glBegin", 7 },
    160    { "glBitmap", 8 },
    161    { "glColor3b", 9 },
    162    { "glColor3bv", 10 },
    163    { "glColor3d", 11 },
    164    { "glColor3dv", 12 },
    165    { "glColor3f", 13 },
    166    { "glColor3fv", 14 },
    167    { "glColor3i", 15 },
    168    { "glColor3iv", 16 },
    169    { "glColor3s", 17 },
    170    { "glColor3sv", 18 },
    171    { "glColor3ub", 19 },
    172    { "glColor3ubv", 20 },
    173    { "glColor3ui", 21 },
    174    { "glColor3uiv", 22 },
    175    { "glColor3us", 23 },
    176    { "glColor3usv", 24 },
    177    { "glColor4b", 25 },
    178    { "glColor4bv", 26 },
    179    { "glColor4d", 27 },
    180    { "glColor4dv", 28 },
    181    { "glColor4f", 29 },
    182    { "glColor4fv", 30 },
    183    { "glColor4i", 31 },
    184    { "glColor4iv", 32 },
    185    { "glColor4s", 33 },
    186    { "glColor4sv", 34 },
    187    { "glColor4ub", 35 },
    188    { "glColor4ubv", 36 },
    189    { "glColor4ui", 37 },
    190    { "glColor4uiv", 38 },
    191    { "glColor4us", 39 },
    192    { "glColor4usv", 40 },
    193    { "glEdgeFlag", 41 },
    194    { "glEdgeFlagv", 42 },
    195    { "glEnd", 43 },
    196    { "glIndexd", 44 },
    197    { "glIndexdv", 45 },
    198    { "glIndexf", 46 },
    199    { "glIndexfv", 47 },
    200    { "glIndexi", 48 },
    201    { "glIndexiv", 49 },
    202    { "glIndexs", 50 },
    203    { "glIndexsv", 51 },
    204    { "glNormal3b", 52 },
    205    { "glNormal3bv", 53 },
    206    { "glNormal3d", 54 },
    207    { "glNormal3dv", 55 },
    208    { "glNormal3f", 56 },
    209    { "glNormal3fv", 57 },
    210    { "glNormal3i", 58 },
    211    { "glNormal3iv", 59 },
    212    { "glNormal3s", 60 },
    213    { "glNormal3sv", 61 },
    214    { "glRasterPos2d", 62 },
    215    { "glRasterPos2dv", 63 },
    216    { "glRasterPos2f", 64 },
    217    { "glRasterPos2fv", 65 },
    218    { "glRasterPos2i", 66 },
    219    { "glRasterPos2iv", 67 },
    220    { "glRasterPos2s", 68 },
    221    { "glRasterPos2sv", 69 },
    222    { "glRasterPos3d", 70 },
    223    { "glRasterPos3dv", 71 },
    224    { "glRasterPos3f", 72 },
    225    { "glRasterPos3fv", 73 },
    226    { "glRasterPos3i", 74 },
    227    { "glRasterPos3iv", 75 },
    228    { "glRasterPos3s", 76 },
    229    { "glRasterPos3sv", 77 },
    230    { "glRasterPos4d", 78 },
    231    { "glRasterPos4dv", 79 },
    232    { "glRasterPos4f", 80 },
    233    { "glRasterPos4fv", 81 },
    234    { "glRasterPos4i", 82 },
    235    { "glRasterPos4iv", 83 },
    236    { "glRasterPos4s", 84 },
    237    { "glRasterPos4sv", 85 },
    238    { "glRectd", 86 },
    239    { "glRectdv", 87 },
    240    { "glRectf", 88 },
    241    { "glRectfv", 89 },
    242    { "glRecti", 90 },
    243    { "glRectiv", 91 },
    244    { "glRects", 92 },
    245    { "glRectsv", 93 },
    246    { "glTexCoord1d", 94 },
    247    { "glTexCoord1dv", 95 },
    248    { "glTexCoord1f", 96 },
    249    { "glTexCoord1fv", 97 },
    250    { "glTexCoord1i", 98 },
    251    { "glTexCoord1iv", 99 },
    252    { "glTexCoord1s", 100 },
    253    { "glTexCoord1sv", 101 },
    254    { "glTexCoord2d", 102 },
    255    { "glTexCoord2dv", 103 },
    256    { "glTexCoord2f", 104 },
    257    { "glTexCoord2fv", 105 },
    258    { "glTexCoord2i", 106 },
    259    { "glTexCoord2iv", 107 },
    260    { "glTexCoord2s", 108 },
    261    { "glTexCoord2sv", 109 },
    262    { "glTexCoord3d", 110 },
    263    { "glTexCoord3dv", 111 },
    264    { "glTexCoord3f", 112 },
    265    { "glTexCoord3fv", 113 },
    266    { "glTexCoord3i", 114 },
    267    { "glTexCoord3iv", 115 },
    268    { "glTexCoord3s", 116 },
    269    { "glTexCoord3sv", 117 },
    270    { "glTexCoord4d", 118 },
    271    { "glTexCoord4dv", 119 },
    272    { "glTexCoord4f", 120 },
    273    { "glTexCoord4fv", 121 },
    274    { "glTexCoord4i", 122 },
    275    { "glTexCoord4iv", 123 },
    276    { "glTexCoord4s", 124 },
    277    { "glTexCoord4sv", 125 },
    278    { "glVertex2d", 126 },
    279    { "glVertex2dv", 127 },
    280    { "glVertex2f", 128 },
    281    { "glVertex2fv", 129 },
    282    { "glVertex2i", 130 },
    283    { "glVertex2iv", 131 },
    284    { "glVertex2s", 132 },
    285    { "glVertex2sv", 133 },
    286    { "glVertex3d", 134 },
    287    { "glVertex3dv", 135 },
    288    { "glVertex3f", 136 },
    289    { "glVertex3fv", 137 },
    290    { "glVertex3i", 138 },
    291    { "glVertex3iv", 139 },
    292    { "glVertex3s", 140 },
    293    { "glVertex3sv", 141 },
    294    { "glVertex4d", 142 },
    295    { "glVertex4dv", 143 },
    296    { "glVertex4f", 144 },
    297    { "glVertex4fv", 145 },
    298    { "glVertex4i", 146 },
    299    { "glVertex4iv", 147 },
    300    { "glVertex4s", 148 },
    301    { "glVertex4sv", 149 },
    302    { "glClipPlane", 150 },
    303    { "glColorMaterial", 151 },
    304    { "glCullFace", 152 },
    305    { "glFogf", 153 },
    306    { "glFogfv", 154 },
    307    { "glFogi", 155 },
    308    { "glFogiv", 156 },
    309    { "glFrontFace", 157 },
    310    { "glHint", 158 },
    311    { "glLightf", 159 },
    312    { "glLightfv", 160 },
    313    { "glLighti", 161 },
    314    { "glLightiv", 162 },
    315    { "glLightModelf", 163 },
    316    { "glLightModelfv", 164 },
    317    { "glLightModeli", 165 },
    318    { "glLightModeliv", 166 },
    319    { "glLineStipple", 167 },
    320    { "glLineWidth", 168 },
    321    { "glMaterialf", 169 },
    322    { "glMaterialfv", 170 },
    323    { "glMateriali", 171 },
    324    { "glMaterialiv", 172 },
    325    { "glPointSize", 173 },
    326    { "glPolygonMode", 174 },
    327    { "glPolygonStipple", 175 },
    328    { "glScissor", 176 },
    329    { "glShadeModel", 177 },
    330    { "glTexParameterf", 178 },
    331    { "glTexParameterfv", 179 },
    332    { "glTexParameteri", 180 },
    333    { "glTexParameteriv", 181 },
    334    { "glTexImage1D", 182 },
    335    { "glTexImage2D", 183 },
    336    { "glTexEnvf", 184 },
    337    { "glTexEnvfv", 185 },
    338    { "glTexEnvi", 186 },
    339    { "glTexEnviv", 187 },
    340    { "glTexGend", 188 },
    341    { "glTexGendv", 189 },
    342    { "glTexGenf", 190 },
    343    { "glTexGenfv", 191 },
    344    { "glTexGeni", 192 },
    345    { "glTexGeniv", 193 },
    346    { "glFeedbackBuffer", 194 },
    347    { "glSelectBuffer", 195 },
    348    { "glRenderMode", 196 },
    349    { "glInitNames", 197 },
    350    { "glLoadName", 198 },
    351    { "glPassThrough", 199 },
    352    { "glPopName", 200 },
    353    { "glPushName", 201 },
    354    { "glDrawBuffer", 202 },
    355    { "glClear", 203 },
    356    { "glClearAccum", 204 },
    357    { "glClearIndex", 205 },
    358    { "glClearColor", 206 },
    359    { "glClearStencil", 207 },
    360    { "glClearDepth", 208 },
    361    { "glStencilMask", 209 },
    362    { "glColorMask", 210 },
    363    { "glDepthMask", 211 },
    364    { "glIndexMask", 212 },
    365    { "glAccum", 213 },
    366    { "glDisable", 214 },
    367    { "glEnable", 215 },
    368    { "glFinish", 216 },
    369    { "glFlush", 217 },
    370    { "glPopAttrib", 218 },
    371    { "glPushAttrib", 219 },
    372    { "glMap1d", 220 },
    373    { "glMap1f", 221 },
    374    { "glMap2d", 222 },
    375    { "glMap2f", 223 },
    376    { "glMapGrid1d", 224 },
    377    { "glMapGrid1f", 225 },
    378    { "glMapGrid2d", 226 },
    379    { "glMapGrid2f", 227 },
    380    { "glEvalCoord1d", 228 },
    381    { "glEvalCoord1dv", 229 },
    382    { "glEvalCoord1f", 230 },
    383    { "glEvalCoord1fv", 231 },
    384    { "glEvalCoord2d", 232 },
    385    { "glEvalCoord2dv", 233 },
    386    { "glEvalCoord2f", 234 },
    387    { "glEvalCoord2fv", 235 },
    388    { "glEvalMesh1", 236 },
    389    { "glEvalPoint1", 237 },
    390    { "glEvalMesh2", 238 },
    391    { "glEvalPoint2", 239 },
    392    { "glAlphaFunc", 240 },
    393    { "glBlendFunc", 241 },
    394    { "glLogicOp", 242 },
    395    { "glStencilFunc", 243 },
    396    { "glStencilOp", 244 },
    397    { "glDepthFunc", 245 },
    398    { "glPixelZoom", 246 },
    399    { "glPixelTransferf", 247 },
    400    { "glPixelTransferi", 248 },
    401    { "glPixelStoref", 249 },
    402    { "glPixelStorei", 250 },
    403    { "glPixelMapfv", 251 },
    404    { "glPixelMapuiv", 252 },
    405    { "glPixelMapusv", 253 },
    406    { "glReadBuffer", 254 },
    407    { "glCopyPixels", 255 },
    408    { "glReadPixels", 256 },
    409    { "glDrawPixels", 257 },
    410    { "glGetBooleanv", 258 },
    411    { "glGetClipPlane", 259 },
    412    { "glGetDoublev", 260 },
    413    { "glGetError", 261 },
    414    { "glGetFloatv", 262 },
    415    { "glGetIntegerv", 263 },
    416    { "glGetLightfv", 264 },
    417    { "glGetLightiv", 265 },
    418    { "glGetMapdv", 266 },
    419    { "glGetMapfv", 267 },
    420    { "glGetMapiv", 268 },
    421    { "glGetMaterialfv", 269 },
    422    { "glGetMaterialiv", 270 },
    423    { "glGetPixelMapfv", 271 },
    424    { "glGetPixelMapuiv", 272 },
    425    { "glGetPixelMapusv", 273 },
    426    { "glGetPolygonStipple", 274 },
    427    { "glGetString", 275 },
    428    { "glGetTexEnvfv", 276 },
    429    { "glGetTexEnviv", 277 },
    430    { "glGetTexGendv", 278 },
    431    { "glGetTexGenfv", 279 },
    432    { "glGetTexGeniv", 280 },
    433    { "glGetTexImage", 281 },
    434    { "glGetTexParameterfv", 282 },
    435    { "glGetTexParameteriv", 283 },
    436    { "glGetTexLevelParameterfv", 284 },
    437    { "glGetTexLevelParameteriv", 285 },
    438    { "glIsEnabled", 286 },
    439    { "glIsList", 287 },
    440    { "glDepthRange", 288 },
    441    { "glFrustum", 289 },
    442    { "glLoadIdentity", 290 },
    443    { "glLoadMatrixf", 291 },
    444    { "glLoadMatrixd", 292 },
    445    { "glMatrixMode", 293 },
    446    { "glMultMatrixf", 294 },
    447    { "glMultMatrixd", 295 },
    448    { "glOrtho", 296 },
    449    { "glPopMatrix", 297 },
    450    { "glPushMatrix", 298 },
    451    { "glRotated", 299 },
    452    { "glRotatef", 300 },
    453    { "glScaled", 301 },
    454    { "glScalef", 302 },
    455    { "glTranslated", 303 },
    456    { "glTranslatef", 304 },
    457    { "glViewport", 305 },
    458    { "glArrayElement", 306 },
    459    { "glColorPointer", 308 },
    460    { "glDisableClientState", 309 },
    461    { "glDrawArrays", 310 },
    462    { "glDrawElements", 311 },
    463    { "glEdgeFlagPointer", 312 },
    464    { "glEnableClientState", 313 },
    465    { "glGetPointerv", 329 },
    466    { "glIndexPointer", 314 },
    467    { "glInterleavedArrays", 317 },
    468    { "glNormalPointer", 318 },
    469    { "glTexCoordPointer", 320 },
    470    { "glVertexPointer", 321 },
    471    { "glPolygonOffset", 319 },
    472    { "glCopyTexImage1D", 323 },
    473    { "glCopyTexImage2D", 324 },
    474    { "glCopyTexSubImage1D", 325 },
    475    { "glCopyTexSubImage2D", 326 },
    476    { "glTexSubImage1D", 332 },
    477    { "glTexSubImage2D", 333 },
    478    { "glAreTexturesResident", 322 },
    479    { "glBindTexture", 307 },
    480    { "glDeleteTextures", 327 },
    481    { "glGenTextures", 328 },
    482    { "glIsTexture", 330 },
    483    { "glPrioritizeTextures", 331 },
    484    { "glIndexub", 315 },
    485    { "glIndexubv", 316 },
    486    { "glPopClientAttrib", 334 },
    487    { "glPushClientAttrib", 335 },
    488    { "glBlendColor", 336 },
    489    { "glBlendEquation", 337 },
    490    { "glDrawRangeElements", 338 },
    491    { "glColorTable", 339 },
    492    { "glColorTableParameterfv", 340 },
    493    { "glColorTableParameteriv", 341 },
    494    { "glCopyColorTable", 342 },
    495    { "glGetColorTable", 343 },
    496    { "glGetColorTableParameterfv", 344 },
    497    { "glGetColorTableParameteriv", 345 },
    498    { "glColorSubTable", 346 },
    499    { "glCopyColorSubTable", 347 },
    500    { "glConvolutionFilter1D", 348 },
    501    { "glConvolutionFilter2D", 349 },
    502    { "glConvolutionParameterf", 350 },
    503    { "glConvolutionParameterfv", 351 },
    504    { "glConvolutionParameteri", 352 },
    505    { "glConvolutionParameteriv", 353 },
    506    { "glCopyConvolutionFilter1D", 354 },
    507    { "glCopyConvolutionFilter2D", 355 },
    508    { "glGetConvolutionFilter", 356 },
    509    { "glGetConvolutionParameterfv", 357 },
    510    { "glGetConvolutionParameteriv", 358 },
    511    { "glGetSeparableFilter", 359 },
    512    { "glSeparableFilter2D", 360 },
    513    { "glGetHistogram", 361 },
    514    { "glGetHistogramParameterfv", 362 },
    515    { "glGetHistogramParameteriv", 363 },
    516    { "glGetMinmax", 364 },
    517    { "glGetMinmaxParameterfv", 365 },
    518    { "glGetMinmaxParameteriv", 366 },
    519    { "glHistogram", 367 },
    520    { "glMinmax", 368 },
    521    { "glResetHistogram", 369 },
    522    { "glResetMinmax", 370 },
    523    { "glTexImage3D", 371 },
    524    { "glTexSubImage3D", 372 },
    525    { "glCopyTexSubImage3D", 373 },
    526    { "glActiveTextureARB", 374 },
    527    { "glClientActiveTextureARB", 375 },
    528    { "glMultiTexCoord1dARB", 376 },
    529    { "glMultiTexCoord1dvARB", 377 },
    530    { "glMultiTexCoord1fARB", 378 },
    531    { "glMultiTexCoord1fvARB", 379 },
    532    { "glMultiTexCoord1iARB", 380 },
    533    { "glMultiTexCoord1ivARB", 381 },
    534    { "glMultiTexCoord1sARB", 382 },
    535    { "glMultiTexCoord1svARB", 383 },
    536    { "glMultiTexCoord2dARB", 384 },
    537    { "glMultiTexCoord2dvARB", 385 },
    538    { "glMultiTexCoord2fARB", 386 },
    539    { "glMultiTexCoord2fvARB", 387 },
    540    { "glMultiTexCoord2iARB", 388 },
    541    { "glMultiTexCoord2ivARB", 389 },
    542    { "glMultiTexCoord2sARB", 390 },
    543    { "glMultiTexCoord2svARB", 391 },
    544    { "glMultiTexCoord3dARB", 392 },
    545    { "glMultiTexCoord3dvARB", 393 },
    546    { "glMultiTexCoord3fARB", 394 },
    547    { "glMultiTexCoord3fvARB", 395 },
    548    { "glMultiTexCoord3iARB", 396 },
    549    { "glMultiTexCoord3ivARB", 397 },
    550    { "glMultiTexCoord3sARB", 398 },
    551    { "glMultiTexCoord3svARB", 399 },
    552    { "glMultiTexCoord4dARB", 400 },
    553    { "glMultiTexCoord4dvARB", 401 },
    554    { "glMultiTexCoord4fARB", 402 },
    555    { "glMultiTexCoord4fvARB", 403 },
    556    { "glMultiTexCoord4iARB", 404 },
    557    { "glMultiTexCoord4ivARB", 405 },
    558    { "glMultiTexCoord4sARB", 406 },
    559    { "glMultiTexCoord4svARB", 407 },
    560    { NULL, 0 }
    561 };
    562 
    563 #define _O(f) ((intptr_t) & (((struct _glapi_table *) 0)->f)) / sizeof(void *)
    564 
    565 const struct name_offset known_dispatch[] = {
    566    { "glNewList", _O(NewList) },
    567    { "glEndList", _O(EndList) },
    568    { "glCallList", _O(CallList) },
    569    { "glCallLists", _O(CallLists) },
    570    { "glDeleteLists", _O(DeleteLists) },
    571    { "glGenLists", _O(GenLists) },
    572    { "glListBase", _O(ListBase) },
    573    { "glBegin", _O(Begin) },
    574    { "glBitmap", _O(Bitmap) },
    575    { "glColor3b", _O(Color3b) },
    576    { "glColor3bv", _O(Color3bv) },
    577    { "glColor3d", _O(Color3d) },
    578    { "glColor3dv", _O(Color3dv) },
    579    { "glColor3f", _O(Color3f) },
    580    { "glColor3fv", _O(Color3fv) },
    581    { "glColor3i", _O(Color3i) },
    582    { "glColor3iv", _O(Color3iv) },
    583    { "glColor3s", _O(Color3s) },
    584    { "glColor3sv", _O(Color3sv) },
    585    { "glColor3ub", _O(Color3ub) },
    586    { "glColor3ubv", _O(Color3ubv) },
    587    { "glColor3ui", _O(Color3ui) },
    588    { "glColor3uiv", _O(Color3uiv) },
    589    { "glColor3us", _O(Color3us) },
    590    { "glColor3usv", _O(Color3usv) },
    591    { "glColor4b", _O(Color4b) },
    592    { "glColor4bv", _O(Color4bv) },
    593    { "glColor4d", _O(Color4d) },
    594    { "glColor4dv", _O(Color4dv) },
    595    { "glColor4f", _O(Color4f) },
    596    { "glColor4fv", _O(Color4fv) },
    597    { "glColor4i", _O(Color4i) },
    598    { "glColor4iv", _O(Color4iv) },
    599    { "glColor4s", _O(Color4s) },
    600    { "glColor4sv", _O(Color4sv) },
    601    { "glColor4ub", _O(Color4ub) },
    602    { "glColor4ubv", _O(Color4ubv) },
    603    { "glColor4ui", _O(Color4ui) },
    604    { "glColor4uiv", _O(Color4uiv) },
    605    { "glColor4us", _O(Color4us) },
    606    { "glColor4usv", _O(Color4usv) },
    607    { "glEdgeFlag", _O(EdgeFlag) },
    608    { "glEdgeFlagv", _O(EdgeFlagv) },
    609    { "glEnd", _O(End) },
    610    { "glIndexd", _O(Indexd) },
    611    { "glIndexdv", _O(Indexdv) },
    612    { "glIndexf", _O(Indexf) },
    613    { "glIndexfv", _O(Indexfv) },
    614    { "glIndexi", _O(Indexi) },
    615    { "glIndexiv", _O(Indexiv) },
    616    { "glIndexs", _O(Indexs) },
    617    { "glIndexsv", _O(Indexsv) },
    618    { "glNormal3b", _O(Normal3b) },
    619    { "glNormal3bv", _O(Normal3bv) },
    620    { "glNormal3d", _O(Normal3d) },
    621    { "glNormal3dv", _O(Normal3dv) },
    622    { "glNormal3f", _O(Normal3f) },
    623    { "glNormal3fv", _O(Normal3fv) },
    624    { "glNormal3i", _O(Normal3i) },
    625    { "glNormal3iv", _O(Normal3iv) },
    626    { "glNormal3s", _O(Normal3s) },
    627    { "glNormal3sv", _O(Normal3sv) },
    628    { "glRasterPos2d", _O(RasterPos2d) },
    629    { "glRasterPos2dv", _O(RasterPos2dv) },
    630    { "glRasterPos2f", _O(RasterPos2f) },
    631    { "glRasterPos2fv", _O(RasterPos2fv) },
    632    { "glRasterPos2i", _O(RasterPos2i) },
    633    { "glRasterPos2iv", _O(RasterPos2iv) },
    634    { "glRasterPos2s", _O(RasterPos2s) },
    635    { "glRasterPos2sv", _O(RasterPos2sv) },
    636    { "glRasterPos3d", _O(RasterPos3d) },
    637    { "glRasterPos3dv", _O(RasterPos3dv) },
    638    { "glRasterPos3f", _O(RasterPos3f) },
    639    { "glRasterPos3fv", _O(RasterPos3fv) },
    640    { "glRasterPos3i", _O(RasterPos3i) },
    641    { "glRasterPos3iv", _O(RasterPos3iv) },
    642    { "glRasterPos3s", _O(RasterPos3s) },
    643    { "glRasterPos3sv", _O(RasterPos3sv) },
    644    { "glRasterPos4d", _O(RasterPos4d) },
    645    { "glRasterPos4dv", _O(RasterPos4dv) },
    646    { "glRasterPos4f", _O(RasterPos4f) },
    647    { "glRasterPos4fv", _O(RasterPos4fv) },
    648    { "glRasterPos4i", _O(RasterPos4i) },
    649    { "glRasterPos4iv", _O(RasterPos4iv) },
    650    { "glRasterPos4s", _O(RasterPos4s) },
    651    { "glRasterPos4sv", _O(RasterPos4sv) },
    652    { "glRectd", _O(Rectd) },
    653    { "glRectdv", _O(Rectdv) },
    654    { "glRectf", _O(Rectf) },
    655    { "glRectfv", _O(Rectfv) },
    656    { "glRecti", _O(Recti) },
    657    { "glRectiv", _O(Rectiv) },
    658    { "glRects", _O(Rects) },
    659    { "glRectsv", _O(Rectsv) },
    660    { "glTexCoord1d", _O(TexCoord1d) },
    661    { "glTexCoord1dv", _O(TexCoord1dv) },
    662    { "glTexCoord1f", _O(TexCoord1f) },
    663    { "glTexCoord1fv", _O(TexCoord1fv) },
    664    { "glTexCoord1i", _O(TexCoord1i) },
    665    { "glTexCoord1iv", _O(TexCoord1iv) },
    666    { "glTexCoord1s", _O(TexCoord1s) },
    667    { "glTexCoord1sv", _O(TexCoord1sv) },
    668    { "glTexCoord2d", _O(TexCoord2d) },
    669    { "glTexCoord2dv", _O(TexCoord2dv) },
    670    { "glTexCoord2f", _O(TexCoord2f) },
    671    { "glTexCoord2fv", _O(TexCoord2fv) },
    672    { "glTexCoord2i", _O(TexCoord2i) },
    673    { "glTexCoord2iv", _O(TexCoord2iv) },
    674    { "glTexCoord2s", _O(TexCoord2s) },
    675    { "glTexCoord2sv", _O(TexCoord2sv) },
    676    { "glTexCoord3d", _O(TexCoord3d) },
    677    { "glTexCoord3dv", _O(TexCoord3dv) },
    678    { "glTexCoord3f", _O(TexCoord3f) },
    679    { "glTexCoord3fv", _O(TexCoord3fv) },
    680    { "glTexCoord3i", _O(TexCoord3i) },
    681    { "glTexCoord3iv", _O(TexCoord3iv) },
    682    { "glTexCoord3s", _O(TexCoord3s) },
    683    { "glTexCoord3sv", _O(TexCoord3sv) },
    684    { "glTexCoord4d", _O(TexCoord4d) },
    685    { "glTexCoord4dv", _O(TexCoord4dv) },
    686    { "glTexCoord4f", _O(TexCoord4f) },
    687    { "glTexCoord4fv", _O(TexCoord4fv) },
    688    { "glTexCoord4i", _O(TexCoord4i) },
    689    { "glTexCoord4iv", _O(TexCoord4iv) },
    690    { "glTexCoord4s", _O(TexCoord4s) },
    691    { "glTexCoord4sv", _O(TexCoord4sv) },
    692    { "glVertex2d", _O(Vertex2d) },
    693    { "glVertex2dv", _O(Vertex2dv) },
    694    { "glVertex2f", _O(Vertex2f) },
    695    { "glVertex2fv", _O(Vertex2fv) },
    696    { "glVertex2i", _O(Vertex2i) },
    697    { "glVertex2iv", _O(Vertex2iv) },
    698    { "glVertex2s", _O(Vertex2s) },
    699    { "glVertex2sv", _O(Vertex2sv) },
    700    { "glVertex3d", _O(Vertex3d) },
    701    { "glVertex3dv", _O(Vertex3dv) },
    702    { "glVertex3f", _O(Vertex3f) },
    703    { "glVertex3fv", _O(Vertex3fv) },
    704    { "glVertex3i", _O(Vertex3i) },
    705    { "glVertex3iv", _O(Vertex3iv) },
    706    { "glVertex3s", _O(Vertex3s) },
    707    { "glVertex3sv", _O(Vertex3sv) },
    708    { "glVertex4d", _O(Vertex4d) },
    709    { "glVertex4dv", _O(Vertex4dv) },
    710    { "glVertex4f", _O(Vertex4f) },
    711    { "glVertex4fv", _O(Vertex4fv) },
    712    { "glVertex4i", _O(Vertex4i) },
    713    { "glVertex4iv", _O(Vertex4iv) },
    714    { "glVertex4s", _O(Vertex4s) },
    715    { "glVertex4sv", _O(Vertex4sv) },
    716    { "glClipPlane", _O(ClipPlane) },
    717    { "glColorMaterial", _O(ColorMaterial) },
    718    { "glCullFace", _O(CullFace) },
    719    { "glFogf", _O(Fogf) },
    720    { "glFogfv", _O(Fogfv) },
    721    { "glFogi", _O(Fogi) },
    722    { "glFogiv", _O(Fogiv) },
    723    { "glFrontFace", _O(FrontFace) },
    724    { "glHint", _O(Hint) },
    725    { "glLightf", _O(Lightf) },
    726    { "glLightfv", _O(Lightfv) },
    727    { "glLighti", _O(Lighti) },
    728    { "glLightiv", _O(Lightiv) },
    729    { "glLightModelf", _O(LightModelf) },
    730    { "glLightModelfv", _O(LightModelfv) },
    731    { "glLightModeli", _O(LightModeli) },
    732    { "glLightModeliv", _O(LightModeliv) },
    733    { "glLineStipple", _O(LineStipple) },
    734    { "glLineWidth", _O(LineWidth) },
    735    { "glMaterialf", _O(Materialf) },
    736    { "glMaterialfv", _O(Materialfv) },
    737    { "glMateriali", _O(Materiali) },
    738    { "glMaterialiv", _O(Materialiv) },
    739    { "glPointSize", _O(PointSize) },
    740    { "glPolygonMode", _O(PolygonMode) },
    741    { "glPolygonStipple", _O(PolygonStipple) },
    742    { "glScissor", _O(Scissor) },
    743    { "glShadeModel", _O(ShadeModel) },
    744    { "glTexParameterf", _O(TexParameterf) },
    745    { "glTexParameterfv", _O(TexParameterfv) },
    746    { "glTexParameteri", _O(TexParameteri) },
    747    { "glTexParameteriv", _O(TexParameteriv) },
    748    { "glTexImage1D", _O(TexImage1D) },
    749    { "glTexImage2D", _O(TexImage2D) },
    750    { "glTexEnvf", _O(TexEnvf) },
    751    { "glTexEnvfv", _O(TexEnvfv) },
    752    { "glTexEnvi", _O(TexEnvi) },
    753    { "glTexEnviv", _O(TexEnviv) },
    754    { "glTexGend", _O(TexGend) },
    755    { "glTexGendv", _O(TexGendv) },
    756    { "glTexGenf", _O(TexGenf) },
    757    { "glTexGenfv", _O(TexGenfv) },
    758    { "glTexGeni", _O(TexGeni) },
    759    { "glTexGeniv", _O(TexGeniv) },
    760    { "glFeedbackBuffer", _O(FeedbackBuffer) },
    761    { "glSelectBuffer", _O(SelectBuffer) },
    762    { "glRenderMode", _O(RenderMode) },
    763    { "glInitNames", _O(InitNames) },
    764    { "glLoadName", _O(LoadName) },
    765    { "glPassThrough", _O(PassThrough) },
    766    { "glPopName", _O(PopName) },
    767    { "glPushName", _O(PushName) },
    768    { "glDrawBuffer", _O(DrawBuffer) },
    769    { "glClear", _O(Clear) },
    770    { "glClearAccum", _O(ClearAccum) },
    771    { "glClearIndex", _O(ClearIndex) },
    772    { "glClearColor", _O(ClearColor) },
    773    { "glClearStencil", _O(ClearStencil) },
    774    { "glClearDepth", _O(ClearDepth) },
    775    { "glStencilMask", _O(StencilMask) },
    776    { "glColorMask", _O(ColorMask) },
    777    { "glDepthMask", _O(DepthMask) },
    778    { "glIndexMask", _O(IndexMask) },
    779    { "glAccum", _O(Accum) },
    780    { "glDisable", _O(Disable) },
    781    { "glEnable", _O(Enable) },
    782    { "glFinish", _O(Finish) },
    783    { "glFlush", _O(Flush) },
    784    { "glPopAttrib", _O(PopAttrib) },
    785    { "glPushAttrib", _O(PushAttrib) },
    786    { "glMap1d", _O(Map1d) },
    787    { "glMap1f", _O(Map1f) },
    788    { "glMap2d", _O(Map2d) },
    789    { "glMap2f", _O(Map2f) },
    790    { "glMapGrid1d", _O(MapGrid1d) },
    791    { "glMapGrid1f", _O(MapGrid1f) },
    792    { "glMapGrid2d", _O(MapGrid2d) },
    793    { "glMapGrid2f", _O(MapGrid2f) },
    794    { "glEvalCoord1d", _O(EvalCoord1d) },
    795    { "glEvalCoord1dv", _O(EvalCoord1dv) },
    796    { "glEvalCoord1f", _O(EvalCoord1f) },
    797    { "glEvalCoord1fv", _O(EvalCoord1fv) },
    798    { "glEvalCoord2d", _O(EvalCoord2d) },
    799    { "glEvalCoord2dv", _O(EvalCoord2dv) },
    800    { "glEvalCoord2f", _O(EvalCoord2f) },
    801    { "glEvalCoord2fv", _O(EvalCoord2fv) },
    802    { "glEvalMesh1", _O(EvalMesh1) },
    803    { "glEvalPoint1", _O(EvalPoint1) },
    804    { "glEvalMesh2", _O(EvalMesh2) },
    805    { "glEvalPoint2", _O(EvalPoint2) },
    806    { "glAlphaFunc", _O(AlphaFunc) },
    807    { "glBlendFunc", _O(BlendFunc) },
    808    { "glLogicOp", _O(LogicOp) },
    809    { "glStencilFunc", _O(StencilFunc) },
    810    { "glStencilOp", _O(StencilOp) },
    811    { "glDepthFunc", _O(DepthFunc) },
    812    { "glPixelZoom", _O(PixelZoom) },
    813    { "glPixelTransferf", _O(PixelTransferf) },
    814    { "glPixelTransferi", _O(PixelTransferi) },
    815    { "glPixelStoref", _O(PixelStoref) },
    816    { "glPixelStorei", _O(PixelStorei) },
    817    { "glPixelMapfv", _O(PixelMapfv) },
    818    { "glPixelMapuiv", _O(PixelMapuiv) },
    819    { "glPixelMapusv", _O(PixelMapusv) },
    820    { "glReadBuffer", _O(ReadBuffer) },
    821    { "glCopyPixels", _O(CopyPixels) },
    822    { "glReadPixels", _O(ReadPixels) },
    823    { "glDrawPixels", _O(DrawPixels) },
    824    { "glGetBooleanv", _O(GetBooleanv) },
    825    { "glGetClipPlane", _O(GetClipPlane) },
    826    { "glGetDoublev", _O(GetDoublev) },
    827    { "glGetError", _O(GetError) },
    828    { "glGetFloatv", _O(GetFloatv) },
    829    { "glGetIntegerv", _O(GetIntegerv) },
    830    { "glGetLightfv", _O(GetLightfv) },
    831    { "glGetLightiv", _O(GetLightiv) },
    832    { "glGetMapdv", _O(GetMapdv) },
    833    { "glGetMapfv", _O(GetMapfv) },
    834    { "glGetMapiv", _O(GetMapiv) },
    835    { "glGetMaterialfv", _O(GetMaterialfv) },
    836    { "glGetMaterialiv", _O(GetMaterialiv) },
    837    { "glGetPixelMapfv", _O(GetPixelMapfv) },
    838    { "glGetPixelMapuiv", _O(GetPixelMapuiv) },
    839    { "glGetPixelMapusv", _O(GetPixelMapusv) },
    840    { "glGetPolygonStipple", _O(GetPolygonStipple) },
    841    { "glGetString", _O(GetString) },
    842    { "glGetTexEnvfv", _O(GetTexEnvfv) },
    843    { "glGetTexEnviv", _O(GetTexEnviv) },
    844    { "glGetTexGendv", _O(GetTexGendv) },
    845    { "glGetTexGenfv", _O(GetTexGenfv) },
    846    { "glGetTexGeniv", _O(GetTexGeniv) },
    847    { "glGetTexImage", _O(GetTexImage) },
    848    { "glGetTexParameterfv", _O(GetTexParameterfv) },
    849    { "glGetTexParameteriv", _O(GetTexParameteriv) },
    850    { "glGetTexLevelParameterfv", _O(GetTexLevelParameterfv) },
    851    { "glGetTexLevelParameteriv", _O(GetTexLevelParameteriv) },
    852    { "glIsEnabled", _O(IsEnabled) },
    853    { "glIsList", _O(IsList) },
    854    { "glDepthRange", _O(DepthRange) },
    855    { "glFrustum", _O(Frustum) },
    856    { "glLoadIdentity", _O(LoadIdentity) },
    857    { "glLoadMatrixf", _O(LoadMatrixf) },
    858    { "glLoadMatrixd", _O(LoadMatrixd) },
    859    { "glMatrixMode", _O(MatrixMode) },
    860    { "glMultMatrixf", _O(MultMatrixf) },
    861    { "glMultMatrixd", _O(MultMatrixd) },
    862    { "glOrtho", _O(Ortho) },
    863    { "glPopMatrix", _O(PopMatrix) },
    864    { "glPushMatrix", _O(PushMatrix) },
    865    { "glRotated", _O(Rotated) },
    866    { "glRotatef", _O(Rotatef) },
    867    { "glScaled", _O(Scaled) },
    868    { "glScalef", _O(Scalef) },
    869    { "glTranslated", _O(Translated) },
    870    { "glTranslatef", _O(Translatef) },
    871    { "glViewport", _O(Viewport) },
    872    { "glArrayElement", _O(ArrayElement) },
    873    { "glBindTexture", _O(BindTexture) },
    874    { "glColorPointer", _O(ColorPointer) },
    875    { "glDisableClientState", _O(DisableClientState) },
    876    { "glDrawArrays", _O(DrawArrays) },
    877    { "glDrawElements", _O(DrawElements) },
    878    { "glEdgeFlagPointer", _O(EdgeFlagPointer) },
    879    { "glEnableClientState", _O(EnableClientState) },
    880    { "glIndexPointer", _O(IndexPointer) },
    881    { "glIndexub", _O(Indexub) },
    882    { "glIndexubv", _O(Indexubv) },
    883    { "glInterleavedArrays", _O(InterleavedArrays) },
    884    { "glNormalPointer", _O(NormalPointer) },
    885    { "glPolygonOffset", _O(PolygonOffset) },
    886    { "glTexCoordPointer", _O(TexCoordPointer) },
    887    { "glVertexPointer", _O(VertexPointer) },
    888    { "glAreTexturesResident", _O(AreTexturesResident) },
    889    { "glCopyTexImage1D", _O(CopyTexImage1D) },
    890    { "glCopyTexImage2D", _O(CopyTexImage2D) },
    891    { "glCopyTexSubImage1D", _O(CopyTexSubImage1D) },
    892    { "glCopyTexSubImage2D", _O(CopyTexSubImage2D) },
    893    { "glDeleteTextures", _O(DeleteTextures) },
    894    { "glGenTextures", _O(GenTextures) },
    895    { "glGetPointerv", _O(GetPointerv) },
    896    { "glIsTexture", _O(IsTexture) },
    897    { "glPrioritizeTextures", _O(PrioritizeTextures) },
    898    { "glTexSubImage1D", _O(TexSubImage1D) },
    899    { "glTexSubImage2D", _O(TexSubImage2D) },
    900    { "glPopClientAttrib", _O(PopClientAttrib) },
    901    { "glPushClientAttrib", _O(PushClientAttrib) },
    902    { "glBlendColor", _O(BlendColor) },
    903    { "glBlendEquation", _O(BlendEquation) },
    904    { "glDrawRangeElements", _O(DrawRangeElements) },
    905    { "glColorTable", _O(ColorTable) },
    906    { "glColorTableParameterfv", _O(ColorTableParameterfv) },
    907    { "glColorTableParameteriv", _O(ColorTableParameteriv) },
    908    { "glCopyColorTable", _O(CopyColorTable) },
    909    { "glGetColorTable", _O(GetColorTable) },
    910    { "glGetColorTableParameterfv", _O(GetColorTableParameterfv) },
    911    { "glGetColorTableParameteriv", _O(GetColorTableParameteriv) },
    912    { "glColorSubTable", _O(ColorSubTable) },
    913    { "glCopyColorSubTable", _O(CopyColorSubTable) },
    914    { "glConvolutionFilter1D", _O(ConvolutionFilter1D) },
    915    { "glConvolutionFilter2D", _O(ConvolutionFilter2D) },
    916    { "glConvolutionParameterf", _O(ConvolutionParameterf) },
    917    { "glConvolutionParameterfv", _O(ConvolutionParameterfv) },
    918    { "glConvolutionParameteri", _O(ConvolutionParameteri) },
    919    { "glConvolutionParameteriv", _O(ConvolutionParameteriv) },
    920    { "glCopyConvolutionFilter1D", _O(CopyConvolutionFilter1D) },
    921    { "glCopyConvolutionFilter2D", _O(CopyConvolutionFilter2D) },
    922    { "glGetConvolutionFilter", _O(GetConvolutionFilter) },
    923    { "glGetConvolutionParameterfv", _O(GetConvolutionParameterfv) },
    924    { "glGetConvolutionParameteriv", _O(GetConvolutionParameteriv) },
    925    { "glGetSeparableFilter", _O(GetSeparableFilter) },
    926    { "glSeparableFilter2D", _O(SeparableFilter2D) },
    927    { "glGetHistogram", _O(GetHistogram) },
    928    { "glGetHistogramParameterfv", _O(GetHistogramParameterfv) },
    929    { "glGetHistogramParameteriv", _O(GetHistogramParameteriv) },
    930    { "glGetMinmax", _O(GetMinmax) },
    931    { "glGetMinmaxParameterfv", _O(GetMinmaxParameterfv) },
    932    { "glGetMinmaxParameteriv", _O(GetMinmaxParameteriv) },
    933    { "glHistogram", _O(Histogram) },
    934    { "glMinmax", _O(Minmax) },
    935    { "glResetHistogram", _O(ResetHistogram) },
    936    { "glResetMinmax", _O(ResetMinmax) },
    937    { "glTexImage3D", _O(TexImage3D) },
    938    { "glTexSubImage3D", _O(TexSubImage3D) },
    939    { "glCopyTexSubImage3D", _O(CopyTexSubImage3D) },
    940    { "glActiveTextureARB", _O(ActiveTextureARB) },
    941    { "glClientActiveTextureARB", _O(ClientActiveTextureARB) },
    942    { "glMultiTexCoord1dARB", _O(MultiTexCoord1dARB) },
    943    { "glMultiTexCoord1dvARB", _O(MultiTexCoord1dvARB) },
    944    { "glMultiTexCoord1fARB", _O(MultiTexCoord1fARB) },
    945    { "glMultiTexCoord1fvARB", _O(MultiTexCoord1fvARB) },
    946    { "glMultiTexCoord1iARB", _O(MultiTexCoord1iARB) },
    947    { "glMultiTexCoord1ivARB", _O(MultiTexCoord1ivARB) },
    948    { "glMultiTexCoord1sARB", _O(MultiTexCoord1sARB) },
    949    { "glMultiTexCoord1svARB", _O(MultiTexCoord1svARB) },
    950    { "glMultiTexCoord2dARB", _O(MultiTexCoord2dARB) },
    951    { "glMultiTexCoord2dvARB", _O(MultiTexCoord2dvARB) },
    952    { "glMultiTexCoord2fARB", _O(MultiTexCoord2fARB) },
    953    { "glMultiTexCoord2fvARB", _O(MultiTexCoord2fvARB) },
    954    { "glMultiTexCoord2iARB", _O(MultiTexCoord2iARB) },
    955    { "glMultiTexCoord2ivARB", _O(MultiTexCoord2ivARB) },
    956    { "glMultiTexCoord2sARB", _O(MultiTexCoord2sARB) },
    957    { "glMultiTexCoord2svARB", _O(MultiTexCoord2svARB) },
    958    { "glMultiTexCoord3dARB", _O(MultiTexCoord3dARB) },
    959    { "glMultiTexCoord3dvARB", _O(MultiTexCoord3dvARB) },
    960    { "glMultiTexCoord3fARB", _O(MultiTexCoord3fARB) },
    961    { "glMultiTexCoord3fvARB", _O(MultiTexCoord3fvARB) },
    962    { "glMultiTexCoord3iARB", _O(MultiTexCoord3iARB) },
    963    { "glMultiTexCoord3ivARB", _O(MultiTexCoord3ivARB) },
    964    { "glMultiTexCoord3sARB", _O(MultiTexCoord3sARB) },
    965    { "glMultiTexCoord3svARB", _O(MultiTexCoord3svARB) },
    966    { "glMultiTexCoord4dARB", _O(MultiTexCoord4dARB) },
    967    { "glMultiTexCoord4dvARB", _O(MultiTexCoord4dvARB) },
    968    { "glMultiTexCoord4fARB", _O(MultiTexCoord4fARB) },
    969    { "glMultiTexCoord4fvARB", _O(MultiTexCoord4fvARB) },
    970    { "glMultiTexCoord4iARB", _O(MultiTexCoord4iARB) },
    971    { "glMultiTexCoord4ivARB", _O(MultiTexCoord4ivARB) },
    972    { "glMultiTexCoord4sARB", _O(MultiTexCoord4sARB) },
    973    { "glMultiTexCoord4svARB", _O(MultiTexCoord4svARB) },
    974    { "glAttachShader", _O(AttachShader) },
    975    { "glCreateProgram", _O(CreateProgram) },
    976    { "glCreateShader", _O(CreateShader) },
    977    { "glDeleteProgram", _O(DeleteProgram) },
    978    { "glDeleteShader", _O(DeleteShader) },
    979    { "glDetachShader", _O(DetachShader) },
    980    { "glGetAttachedShaders", _O(GetAttachedShaders) },
    981    { "glGetProgramInfoLog", _O(GetProgramInfoLog) },
    982    { "glGetProgramiv", _O(GetProgramiv) },
    983    { "glGetShaderInfoLog", _O(GetShaderInfoLog) },
    984    { "glGetShaderiv", _O(GetShaderiv) },
    985    { "glIsProgram", _O(IsProgram) },
    986    { "glIsShader", _O(IsShader) },
    987    { "glStencilFuncSeparate", _O(StencilFuncSeparate) },
    988    { "glStencilMaskSeparate", _O(StencilMaskSeparate) },
    989    { "glStencilOpSeparate", _O(StencilOpSeparate) },
    990    { "glUniformMatrix2x3fv", _O(UniformMatrix2x3fv) },
    991    { "glUniformMatrix2x4fv", _O(UniformMatrix2x4fv) },
    992    { "glUniformMatrix3x2fv", _O(UniformMatrix3x2fv) },
    993    { "glUniformMatrix3x4fv", _O(UniformMatrix3x4fv) },
    994    { "glUniformMatrix4x2fv", _O(UniformMatrix4x2fv) },
    995    { "glUniformMatrix4x3fv", _O(UniformMatrix4x3fv) },
    996    { "glClampColor", _O(ClampColor) },
    997    { "glClearBufferfi", _O(ClearBufferfi) },
    998    { "glClearBufferfv", _O(ClearBufferfv) },
    999    { "glClearBufferiv", _O(ClearBufferiv) },
   1000    { "glClearBufferuiv", _O(ClearBufferuiv) },
   1001    { "glGetStringi", _O(GetStringi) },
   1002    { "glFramebufferTexture", _O(FramebufferTexture) },
   1003    { "glGetBufferParameteri64v", _O(GetBufferParameteri64v) },
   1004    { "glGetInteger64i_v", _O(GetInteger64i_v) },
   1005    { "glVertexAttribDivisor", _O(VertexAttribDivisor) },
   1006    { "glLoadTransposeMatrixdARB", _O(LoadTransposeMatrixdARB) },
   1007    { "glLoadTransposeMatrixfARB", _O(LoadTransposeMatrixfARB) },
   1008    { "glMultTransposeMatrixdARB", _O(MultTransposeMatrixdARB) },
   1009    { "glMultTransposeMatrixfARB", _O(MultTransposeMatrixfARB) },
   1010    { "glSampleCoverageARB", _O(SampleCoverageARB) },
   1011    { "glCompressedTexImage1DARB", _O(CompressedTexImage1DARB) },
   1012    { "glCompressedTexImage2DARB", _O(CompressedTexImage2DARB) },
   1013    { "glCompressedTexImage3DARB", _O(CompressedTexImage3DARB) },
   1014    { "glCompressedTexSubImage1DARB", _O(CompressedTexSubImage1DARB) },
   1015    { "glCompressedTexSubImage2DARB", _O(CompressedTexSubImage2DARB) },
   1016    { "glCompressedTexSubImage3DARB", _O(CompressedTexSubImage3DARB) },
   1017    { "glGetCompressedTexImageARB", _O(GetCompressedTexImageARB) },
   1018    { "glDisableVertexAttribArrayARB", _O(DisableVertexAttribArrayARB) },
   1019    { "glEnableVertexAttribArrayARB", _O(EnableVertexAttribArrayARB) },
   1020    { "glGetProgramEnvParameterdvARB", _O(GetProgramEnvParameterdvARB) },
   1021    { "glGetProgramEnvParameterfvARB", _O(GetProgramEnvParameterfvARB) },
   1022    { "glGetProgramLocalParameterdvARB", _O(GetProgramLocalParameterdvARB) },
   1023    { "glGetProgramLocalParameterfvARB", _O(GetProgramLocalParameterfvARB) },
   1024    { "glGetProgramStringARB", _O(GetProgramStringARB) },
   1025    { "glGetProgramivARB", _O(GetProgramivARB) },
   1026    { "glGetVertexAttribdvARB", _O(GetVertexAttribdvARB) },
   1027    { "glGetVertexAttribfvARB", _O(GetVertexAttribfvARB) },
   1028    { "glGetVertexAttribivARB", _O(GetVertexAttribivARB) },
   1029    { "glProgramEnvParameter4dARB", _O(ProgramEnvParameter4dARB) },
   1030    { "glProgramEnvParameter4dvARB", _O(ProgramEnvParameter4dvARB) },
   1031    { "glProgramEnvParameter4fARB", _O(ProgramEnvParameter4fARB) },
   1032    { "glProgramEnvParameter4fvARB", _O(ProgramEnvParameter4fvARB) },
   1033    { "glProgramLocalParameter4dARB", _O(ProgramLocalParameter4dARB) },
   1034    { "glProgramLocalParameter4dvARB", _O(ProgramLocalParameter4dvARB) },
   1035    { "glProgramLocalParameter4fARB", _O(ProgramLocalParameter4fARB) },
   1036    { "glProgramLocalParameter4fvARB", _O(ProgramLocalParameter4fvARB) },
   1037    { "glProgramStringARB", _O(ProgramStringARB) },
   1038    { "glVertexAttrib1dARB", _O(VertexAttrib1dARB) },
   1039    { "glVertexAttrib1dvARB", _O(VertexAttrib1dvARB) },
   1040    { "glVertexAttrib1fARB", _O(VertexAttrib1fARB) },
   1041    { "glVertexAttrib1fvARB", _O(VertexAttrib1fvARB) },
   1042    { "glVertexAttrib1sARB", _O(VertexAttrib1sARB) },
   1043    { "glVertexAttrib1svARB", _O(VertexAttrib1svARB) },
   1044    { "glVertexAttrib2dARB", _O(VertexAttrib2dARB) },
   1045    { "glVertexAttrib2dvARB", _O(VertexAttrib2dvARB) },
   1046    { "glVertexAttrib2fARB", _O(VertexAttrib2fARB) },
   1047    { "glVertexAttrib2fvARB", _O(VertexAttrib2fvARB) },
   1048    { "glVertexAttrib2sARB", _O(VertexAttrib2sARB) },
   1049    { "glVertexAttrib2svARB", _O(VertexAttrib2svARB) },
   1050    { "glVertexAttrib3dARB", _O(VertexAttrib3dARB) },
   1051    { "glVertexAttrib3dvARB", _O(VertexAttrib3dvARB) },
   1052    { "glVertexAttrib3fARB", _O(VertexAttrib3fARB) },
   1053    { "glVertexAttrib3fvARB", _O(VertexAttrib3fvARB) },
   1054    { "glVertexAttrib3sARB", _O(VertexAttrib3sARB) },
   1055    { "glVertexAttrib3svARB", _O(VertexAttrib3svARB) },
   1056    { "glVertexAttrib4NbvARB", _O(VertexAttrib4NbvARB) },
   1057    { "glVertexAttrib4NivARB", _O(VertexAttrib4NivARB) },
   1058    { "glVertexAttrib4NsvARB", _O(VertexAttrib4NsvARB) },
   1059    { "glVertexAttrib4NubARB", _O(VertexAttrib4NubARB) },
   1060    { "glVertexAttrib4NubvARB", _O(VertexAttrib4NubvARB) },
   1061    { "glVertexAttrib4NuivARB", _O(VertexAttrib4NuivARB) },
   1062    { "glVertexAttrib4NusvARB", _O(VertexAttrib4NusvARB) },
   1063    { "glVertexAttrib4bvARB", _O(VertexAttrib4bvARB) },
   1064    { "glVertexAttrib4dARB", _O(VertexAttrib4dARB) },
   1065    { "glVertexAttrib4dvARB", _O(VertexAttrib4dvARB) },
   1066    { "glVertexAttrib4fARB", _O(VertexAttrib4fARB) },
   1067    { "glVertexAttrib4fvARB", _O(VertexAttrib4fvARB) },
   1068    { "glVertexAttrib4ivARB", _O(VertexAttrib4ivARB) },
   1069    { "glVertexAttrib4sARB", _O(VertexAttrib4sARB) },
   1070    { "glVertexAttrib4svARB", _O(VertexAttrib4svARB) },
   1071    { "glVertexAttrib4ubvARB", _O(VertexAttrib4ubvARB) },
   1072    { "glVertexAttrib4uivARB", _O(VertexAttrib4uivARB) },
   1073    { "glVertexAttrib4usvARB", _O(VertexAttrib4usvARB) },
   1074    { "glVertexAttribPointerARB", _O(VertexAttribPointerARB) },
   1075    { "glBindBufferARB", _O(BindBufferARB) },
   1076    { "glBufferDataARB", _O(BufferDataARB) },
   1077    { "glBufferSubDataARB", _O(BufferSubDataARB) },
   1078    { "glDeleteBuffersARB", _O(DeleteBuffersARB) },
   1079    { "glGenBuffersARB", _O(GenBuffersARB) },
   1080    { "glGetBufferParameterivARB", _O(GetBufferParameterivARB) },
   1081    { "glGetBufferPointervARB", _O(GetBufferPointervARB) },
   1082    { "glGetBufferSubDataARB", _O(GetBufferSubDataARB) },
   1083    { "glIsBufferARB", _O(IsBufferARB) },
   1084    { "glMapBufferARB", _O(MapBufferARB) },
   1085    { "glUnmapBufferARB", _O(UnmapBufferARB) },
   1086    { "glBeginQueryARB", _O(BeginQueryARB) },
   1087    { "glDeleteQueriesARB", _O(DeleteQueriesARB) },
   1088    { "glEndQueryARB", _O(EndQueryARB) },
   1089    { "glGenQueriesARB", _O(GenQueriesARB) },
   1090    { "glGetQueryObjectivARB", _O(GetQueryObjectivARB) },
   1091    { "glGetQueryObjectuivARB", _O(GetQueryObjectuivARB) },
   1092    { "glGetQueryivARB", _O(GetQueryivARB) },
   1093    { "glIsQueryARB", _O(IsQueryARB) },
   1094    { "glAttachObjectARB", _O(AttachObjectARB) },
   1095    { "glCompileShaderARB", _O(CompileShaderARB) },
   1096    { "glCreateProgramObjectARB", _O(CreateProgramObjectARB) },
   1097    { "glCreateShaderObjectARB", _O(CreateShaderObjectARB) },
   1098    { "glDeleteObjectARB", _O(DeleteObjectARB) },
   1099    { "glDetachObjectARB", _O(DetachObjectARB) },
   1100    { "glGetActiveUniformARB", _O(GetActiveUniformARB) },
   1101    { "glGetAttachedObjectsARB", _O(GetAttachedObjectsARB) },
   1102    { "glGetHandleARB", _O(GetHandleARB) },
   1103    { "glGetInfoLogARB", _O(GetInfoLogARB) },
   1104    { "glGetObjectParameterfvARB", _O(GetObjectParameterfvARB) },
   1105    { "glGetObjectParameterivARB", _O(GetObjectParameterivARB) },
   1106    { "glGetShaderSourceARB", _O(GetShaderSourceARB) },
   1107    { "glGetUniformLocationARB", _O(GetUniformLocationARB) },
   1108    { "glGetUniformfvARB", _O(GetUniformfvARB) },
   1109    { "glGetUniformivARB", _O(GetUniformivARB) },
   1110    { "glLinkProgramARB", _O(LinkProgramARB) },
   1111    { "glShaderSourceARB", _O(ShaderSourceARB) },
   1112    { "glUniform1fARB", _O(Uniform1fARB) },
   1113    { "glUniform1fvARB", _O(Uniform1fvARB) },
   1114    { "glUniform1iARB", _O(Uniform1iARB) },
   1115    { "glUniform1ivARB", _O(Uniform1ivARB) },
   1116    { "glUniform2fARB", _O(Uniform2fARB) },
   1117    { "glUniform2fvARB", _O(Uniform2fvARB) },
   1118    { "glUniform2iARB", _O(Uniform2iARB) },
   1119    { "glUniform2ivARB", _O(Uniform2ivARB) },
   1120    { "glUniform3fARB", _O(Uniform3fARB) },
   1121    { "glUniform3fvARB", _O(Uniform3fvARB) },
   1122    { "glUniform3iARB", _O(Uniform3iARB) },
   1123    { "glUniform3ivARB", _O(Uniform3ivARB) },
   1124    { "glUniform4fARB", _O(Uniform4fARB) },
   1125    { "glUniform4fvARB", _O(Uniform4fvARB) },
   1126    { "glUniform4iARB", _O(Uniform4iARB) },
   1127    { "glUniform4ivARB", _O(Uniform4ivARB) },
   1128    { "glUniformMatrix2fvARB", _O(UniformMatrix2fvARB) },
   1129    { "glUniformMatrix3fvARB", _O(UniformMatrix3fvARB) },
   1130    { "glUniformMatrix4fvARB", _O(UniformMatrix4fvARB) },
   1131    { "glUseProgramObjectARB", _O(UseProgramObjectARB) },
   1132    { "glValidateProgramARB", _O(ValidateProgramARB) },
   1133    { "glBindAttribLocationARB", _O(BindAttribLocationARB) },
   1134    { "glGetActiveAttribARB", _O(GetActiveAttribARB) },
   1135    { "glGetAttribLocationARB", _O(GetAttribLocationARB) },
   1136    { "glDrawBuffersARB", _O(DrawBuffersARB) },
   1137    { "glClampColorARB", _O(ClampColorARB) },
   1138    { "glDrawArraysInstancedARB", _O(DrawArraysInstancedARB) },
   1139    { "glDrawElementsInstancedARB", _O(DrawElementsInstancedARB) },
   1140    { "glRenderbufferStorageMultisample", _O(RenderbufferStorageMultisample) },
   1141    { "glFramebufferTextureARB", _O(FramebufferTextureARB) },
   1142    { "glFramebufferTextureFaceARB", _O(FramebufferTextureFaceARB) },
   1143    { "glProgramParameteriARB", _O(ProgramParameteriARB) },
   1144    { "glVertexAttribDivisorARB", _O(VertexAttribDivisorARB) },
   1145    { "glFlushMappedBufferRange", _O(FlushMappedBufferRange) },
   1146    { "glMapBufferRange", _O(MapBufferRange) },
   1147    { "glTexBufferARB", _O(TexBufferARB) },
   1148    { "glBindVertexArray", _O(BindVertexArray) },
   1149    { "glGenVertexArrays", _O(GenVertexArrays) },
   1150    { "glCopyBufferSubData", _O(CopyBufferSubData) },
   1151    { "glClientWaitSync", _O(ClientWaitSync) },
   1152    { "glDeleteSync", _O(DeleteSync) },
   1153    { "glFenceSync", _O(FenceSync) },
   1154    { "glGetInteger64v", _O(GetInteger64v) },
   1155    { "glGetSynciv", _O(GetSynciv) },
   1156    { "glIsSync", _O(IsSync) },
   1157    { "glWaitSync", _O(WaitSync) },
   1158    { "glDrawElementsBaseVertex", _O(DrawElementsBaseVertex) },
   1159    { "glDrawElementsInstancedBaseVertex", _O(DrawElementsInstancedBaseVertex) },
   1160    { "glDrawRangeElementsBaseVertex", _O(DrawRangeElementsBaseVertex) },
   1161    { "glMultiDrawElementsBaseVertex", _O(MultiDrawElementsBaseVertex) },
   1162    { "glBlendEquationSeparateiARB", _O(BlendEquationSeparateiARB) },
   1163    { "glBlendEquationiARB", _O(BlendEquationiARB) },
   1164    { "glBlendFuncSeparateiARB", _O(BlendFuncSeparateiARB) },
   1165    { "glBlendFunciARB", _O(BlendFunciARB) },
   1166    { "glBindFragDataLocationIndexed", _O(BindFragDataLocationIndexed) },
   1167    { "glGetFragDataIndex", _O(GetFragDataIndex) },
   1168    { "glBindSampler", _O(BindSampler) },
   1169    { "glDeleteSamplers", _O(DeleteSamplers) },
   1170    { "glGenSamplers", _O(GenSamplers) },
   1171    { "glGetSamplerParameterIiv", _O(GetSamplerParameterIiv) },
   1172    { "glGetSamplerParameterIuiv", _O(GetSamplerParameterIuiv) },
   1173    { "glGetSamplerParameterfv", _O(GetSamplerParameterfv) },
   1174    { "glGetSamplerParameteriv", _O(GetSamplerParameteriv) },
   1175    { "glIsSampler", _O(IsSampler) },
   1176    { "glSamplerParameterIiv", _O(SamplerParameterIiv) },
   1177    { "glSamplerParameterIuiv", _O(SamplerParameterIuiv) },
   1178    { "glSamplerParameterf", _O(SamplerParameterf) },
   1179    { "glSamplerParameterfv", _O(SamplerParameterfv) },
   1180    { "glSamplerParameteri", _O(SamplerParameteri) },
   1181    { "glSamplerParameteriv", _O(SamplerParameteriv) },
   1182    { "glColorP3ui", _O(ColorP3ui) },
   1183    { "glColorP3uiv", _O(ColorP3uiv) },
   1184    { "glColorP4ui", _O(ColorP4ui) },
   1185    { "glColorP4uiv", _O(ColorP4uiv) },
   1186    { "glMultiTexCoordP1ui", _O(MultiTexCoordP1ui) },
   1187    { "glMultiTexCoordP1uiv", _O(MultiTexCoordP1uiv) },
   1188    { "glMultiTexCoordP2ui", _O(MultiTexCoordP2ui) },
   1189    { "glMultiTexCoordP2uiv", _O(MultiTexCoordP2uiv) },
   1190    { "glMultiTexCoordP3ui", _O(MultiTexCoordP3ui) },
   1191    { "glMultiTexCoordP3uiv", _O(MultiTexCoordP3uiv) },
   1192    { "glMultiTexCoordP4ui", _O(MultiTexCoordP4ui) },
   1193    { "glMultiTexCoordP4uiv", _O(MultiTexCoordP4uiv) },
   1194    { "glNormalP3ui", _O(NormalP3ui) },
   1195    { "glNormalP3uiv", _O(NormalP3uiv) },
   1196    { "glSecondaryColorP3ui", _O(SecondaryColorP3ui) },
   1197    { "glSecondaryColorP3uiv", _O(SecondaryColorP3uiv) },
   1198    { "glTexCoordP1ui", _O(TexCoordP1ui) },
   1199    { "glTexCoordP1uiv", _O(TexCoordP1uiv) },
   1200    { "glTexCoordP2ui", _O(TexCoordP2ui) },
   1201    { "glTexCoordP2uiv", _O(TexCoordP2uiv) },
   1202    { "glTexCoordP3ui", _O(TexCoordP3ui) },
   1203    { "glTexCoordP3uiv", _O(TexCoordP3uiv) },
   1204    { "glTexCoordP4ui", _O(TexCoordP4ui) },
   1205    { "glTexCoordP4uiv", _O(TexCoordP4uiv) },
   1206    { "glVertexAttribP1ui", _O(VertexAttribP1ui) },
   1207    { "glVertexAttribP1uiv", _O(VertexAttribP1uiv) },
   1208    { "glVertexAttribP2ui", _O(VertexAttribP2ui) },
   1209    { "glVertexAttribP2uiv", _O(VertexAttribP2uiv) },
   1210    { "glVertexAttribP3ui", _O(VertexAttribP3ui) },
   1211    { "glVertexAttribP3uiv", _O(VertexAttribP3uiv) },
   1212    { "glVertexAttribP4ui", _O(VertexAttribP4ui) },
   1213    { "glVertexAttribP4uiv", _O(VertexAttribP4uiv) },
   1214    { "glVertexP2ui", _O(VertexP2ui) },
   1215    { "glVertexP2uiv", _O(VertexP2uiv) },
   1216    { "glVertexP3ui", _O(VertexP3ui) },
   1217    { "glVertexP3uiv", _O(VertexP3uiv) },
   1218    { "glVertexP4ui", _O(VertexP4ui) },
   1219    { "glVertexP4uiv", _O(VertexP4uiv) },
   1220    { "glBindTransformFeedback", _O(BindTransformFeedback) },
   1221    { "glDeleteTransformFeedbacks", _O(DeleteTransformFeedbacks) },
   1222    { "glDrawTransformFeedback", _O(DrawTransformFeedback) },
   1223    { "glGenTransformFeedbacks", _O(GenTransformFeedbacks) },
   1224    { "glIsTransformFeedback", _O(IsTransformFeedback) },
   1225    { "glPauseTransformFeedback", _O(PauseTransformFeedback) },
   1226    { "glResumeTransformFeedback", _O(ResumeTransformFeedback) },
   1227    { "glClearDepthf", _O(ClearDepthf) },
   1228    { "glDepthRangef", _O(DepthRangef) },
   1229    { "glGetShaderPrecisionFormat", _O(GetShaderPrecisionFormat) },
   1230    { "glReleaseShaderCompiler", _O(ReleaseShaderCompiler) },
   1231    { "glShaderBinary", _O(ShaderBinary) },
   1232    { "glDebugMessageCallbackARB", _O(DebugMessageCallbackARB) },
   1233    { "glDebugMessageControlARB", _O(DebugMessageControlARB) },
   1234    { "glDebugMessageInsertARB", _O(DebugMessageInsertARB) },
   1235    { "glGetDebugMessageLogARB", _O(GetDebugMessageLogARB) },
   1236    { "glGetGraphicsResetStatusARB", _O(GetGraphicsResetStatusARB) },
   1237    { "glGetnColorTableARB", _O(GetnColorTableARB) },
   1238    { "glGetnCompressedTexImageARB", _O(GetnCompressedTexImageARB) },
   1239    { "glGetnConvolutionFilterARB", _O(GetnConvolutionFilterARB) },
   1240    { "glGetnHistogramARB", _O(GetnHistogramARB) },
   1241    { "glGetnMapdvARB", _O(GetnMapdvARB) },
   1242    { "glGetnMapfvARB", _O(GetnMapfvARB) },
   1243    { "glGetnMapivARB", _O(GetnMapivARB) },
   1244    { "glGetnMinmaxARB", _O(GetnMinmaxARB) },
   1245    { "glGetnPixelMapfvARB", _O(GetnPixelMapfvARB) },
   1246    { "glGetnPixelMapuivARB", _O(GetnPixelMapuivARB) },
   1247    { "glGetnPixelMapusvARB", _O(GetnPixelMapusvARB) },
   1248    { "glGetnPolygonStippleARB", _O(GetnPolygonStippleARB) },
   1249    { "glGetnSeparableFilterARB", _O(GetnSeparableFilterARB) },
   1250    { "glGetnTexImageARB", _O(GetnTexImageARB) },
   1251    { "glGetnUniformdvARB", _O(GetnUniformdvARB) },
   1252    { "glGetnUniformfvARB", _O(GetnUniformfvARB) },
   1253    { "glGetnUniformivARB", _O(GetnUniformivARB) },
   1254    { "glGetnUniformuivARB", _O(GetnUniformuivARB) },
   1255    { "glReadnPixelsARB", _O(ReadnPixelsARB) },
   1256    { "glTexStorage1D", _O(TexStorage1D) },
   1257    { "glTexStorage2D", _O(TexStorage2D) },
   1258    { "glTexStorage3D", _O(TexStorage3D) },
   1259    { "glTextureStorage1DEXT", _O(TextureStorage1DEXT) },
   1260    { "glTextureStorage2DEXT", _O(TextureStorage2DEXT) },
   1261    { "glTextureStorage3DEXT", _O(TextureStorage3DEXT) },
   1262    { "glPolygonOffsetEXT", _O(PolygonOffsetEXT) },
   1263    { "glSampleMaskSGIS", _O(SampleMaskSGIS) },
   1264    { "glSamplePatternSGIS", _O(SamplePatternSGIS) },
   1265    { "glColorPointerEXT", _O(ColorPointerEXT) },
   1266    { "glEdgeFlagPointerEXT", _O(EdgeFlagPointerEXT) },
   1267    { "glIndexPointerEXT", _O(IndexPointerEXT) },
   1268    { "glNormalPointerEXT", _O(NormalPointerEXT) },
   1269    { "glTexCoordPointerEXT", _O(TexCoordPointerEXT) },
   1270    { "glVertexPointerEXT", _O(VertexPointerEXT) },
   1271    { "glPointParameterfEXT", _O(PointParameterfEXT) },
   1272    { "glPointParameterfvEXT", _O(PointParameterfvEXT) },
   1273    { "glLockArraysEXT", _O(LockArraysEXT) },
   1274    { "glUnlockArraysEXT", _O(UnlockArraysEXT) },
   1275    { "glSecondaryColor3bEXT", _O(SecondaryColor3bEXT) },
   1276    { "glSecondaryColor3bvEXT", _O(SecondaryColor3bvEXT) },
   1277    { "glSecondaryColor3dEXT", _O(SecondaryColor3dEXT) },
   1278    { "glSecondaryColor3dvEXT", _O(SecondaryColor3dvEXT) },
   1279    { "glSecondaryColor3fEXT", _O(SecondaryColor3fEXT) },
   1280    { "glSecondaryColor3fvEXT", _O(SecondaryColor3fvEXT) },
   1281    { "glSecondaryColor3iEXT", _O(SecondaryColor3iEXT) },
   1282    { "glSecondaryColor3ivEXT", _O(SecondaryColor3ivEXT) },
   1283    { "glSecondaryColor3sEXT", _O(SecondaryColor3sEXT) },
   1284    { "glSecondaryColor3svEXT", _O(SecondaryColor3svEXT) },
   1285    { "glSecondaryColor3ubEXT", _O(SecondaryColor3ubEXT) },
   1286    { "glSecondaryColor3ubvEXT", _O(SecondaryColor3ubvEXT) },
   1287    { "glSecondaryColor3uiEXT", _O(SecondaryColor3uiEXT) },
   1288    { "glSecondaryColor3uivEXT", _O(SecondaryColor3uivEXT) },
   1289    { "glSecondaryColor3usEXT", _O(SecondaryColor3usEXT) },
   1290    { "glSecondaryColor3usvEXT", _O(SecondaryColor3usvEXT) },
   1291    { "glSecondaryColorPointerEXT", _O(SecondaryColorPointerEXT) },
   1292    { "glMultiDrawArraysEXT", _O(MultiDrawArraysEXT) },
   1293    { "glMultiDrawElementsEXT", _O(MultiDrawElementsEXT) },
   1294    { "glFogCoordPointerEXT", _O(FogCoordPointerEXT) },
   1295    { "glFogCoorddEXT", _O(FogCoorddEXT) },
   1296    { "glFogCoorddvEXT", _O(FogCoorddvEXT) },
   1297    { "glFogCoordfEXT", _O(FogCoordfEXT) },
   1298    { "glFogCoordfvEXT", _O(FogCoordfvEXT) },
   1299    { "glBlendFuncSeparateEXT", _O(BlendFuncSeparateEXT) },
   1300    { "glResizeBuffersMESA", _O(ResizeBuffersMESA) },
   1301    { "glWindowPos2dMESA", _O(WindowPos2dMESA) },
   1302    { "glWindowPos2dvMESA", _O(WindowPos2dvMESA) },
   1303    { "glWindowPos2fMESA", _O(WindowPos2fMESA) },
   1304    { "glWindowPos2fvMESA", _O(WindowPos2fvMESA) },
   1305    { "glWindowPos2iMESA", _O(WindowPos2iMESA) },
   1306    { "glWindowPos2ivMESA", _O(WindowPos2ivMESA) },
   1307    { "glWindowPos2sMESA", _O(WindowPos2sMESA) },
   1308    { "glWindowPos2svMESA", _O(WindowPos2svMESA) },
   1309    { "glWindowPos3dMESA", _O(WindowPos3dMESA) },
   1310    { "glWindowPos3dvMESA", _O(WindowPos3dvMESA) },
   1311    { "glWindowPos3fMESA", _O(WindowPos3fMESA) },
   1312    { "glWindowPos3fvMESA", _O(WindowPos3fvMESA) },
   1313    { "glWindowPos3iMESA", _O(WindowPos3iMESA) },
   1314    { "glWindowPos3ivMESA", _O(WindowPos3ivMESA) },
   1315    { "glWindowPos3sMESA", _O(WindowPos3sMESA) },
   1316    { "glWindowPos3svMESA", _O(WindowPos3svMESA) },
   1317    { "glWindowPos4dMESA", _O(WindowPos4dMESA) },
   1318    { "glWindowPos4dvMESA", _O(WindowPos4dvMESA) },
   1319    { "glWindowPos4fMESA", _O(WindowPos4fMESA) },
   1320    { "glWindowPos4fvMESA", _O(WindowPos4fvMESA) },
   1321    { "glWindowPos4iMESA", _O(WindowPos4iMESA) },
   1322    { "glWindowPos4ivMESA", _O(WindowPos4ivMESA) },
   1323    { "glWindowPos4sMESA", _O(WindowPos4sMESA) },
   1324    { "glWindowPos4svMESA", _O(WindowPos4svMESA) },
   1325    { "glMultiModeDrawArraysIBM", _O(MultiModeDrawArraysIBM) },
   1326    { "glMultiModeDrawElementsIBM", _O(MultiModeDrawElementsIBM) },
   1327    { "glAreProgramsResidentNV", _O(AreProgramsResidentNV) },
   1328    { "glBindProgramNV", _O(BindProgramNV) },
   1329    { "glDeleteProgramsNV", _O(DeleteProgramsNV) },
   1330    { "glExecuteProgramNV", _O(ExecuteProgramNV) },
   1331    { "glGenProgramsNV", _O(GenProgramsNV) },
   1332    { "glGetProgramParameterdvNV", _O(GetProgramParameterdvNV) },
   1333    { "glGetProgramParameterfvNV", _O(GetProgramParameterfvNV) },
   1334    { "glGetProgramStringNV", _O(GetProgramStringNV) },
   1335    { "glGetProgramivNV", _O(GetProgramivNV) },
   1336    { "glGetTrackMatrixivNV", _O(GetTrackMatrixivNV) },
   1337    { "glGetVertexAttribPointervNV", _O(GetVertexAttribPointervNV) },
   1338    { "glGetVertexAttribdvNV", _O(GetVertexAttribdvNV) },
   1339    { "glGetVertexAttribfvNV", _O(GetVertexAttribfvNV) },
   1340    { "glGetVertexAttribivNV", _O(GetVertexAttribivNV) },
   1341    { "glIsProgramNV", _O(IsProgramNV) },
   1342    { "glLoadProgramNV", _O(LoadProgramNV) },
   1343    { "glProgramParameters4dvNV", _O(ProgramParameters4dvNV) },
   1344    { "glProgramParameters4fvNV", _O(ProgramParameters4fvNV) },
   1345    { "glRequestResidentProgramsNV", _O(RequestResidentProgramsNV) },
   1346    { "glTrackMatrixNV", _O(TrackMatrixNV) },
   1347    { "glVertexAttrib1dNV", _O(VertexAttrib1dNV) },
   1348    { "glVertexAttrib1dvNV", _O(VertexAttrib1dvNV) },
   1349    { "glVertexAttrib1fNV", _O(VertexAttrib1fNV) },
   1350    { "glVertexAttrib1fvNV", _O(VertexAttrib1fvNV) },
   1351    { "glVertexAttrib1sNV", _O(VertexAttrib1sNV) },
   1352    { "glVertexAttrib1svNV", _O(VertexAttrib1svNV) },
   1353    { "glVertexAttrib2dNV", _O(VertexAttrib2dNV) },
   1354    { "glVertexAttrib2dvNV", _O(VertexAttrib2dvNV) },
   1355    { "glVertexAttrib2fNV", _O(VertexAttrib2fNV) },
   1356    { "glVertexAttrib2fvNV", _O(VertexAttrib2fvNV) },
   1357    { "glVertexAttrib2sNV", _O(VertexAttrib2sNV) },
   1358    { "glVertexAttrib2svNV", _O(VertexAttrib2svNV) },
   1359    { "glVertexAttrib3dNV", _O(VertexAttrib3dNV) },
   1360    { "glVertexAttrib3dvNV", _O(VertexAttrib3dvNV) },
   1361    { "glVertexAttrib3fNV", _O(VertexAttrib3fNV) },
   1362    { "glVertexAttrib3fvNV", _O(VertexAttrib3fvNV) },
   1363    { "glVertexAttrib3sNV", _O(VertexAttrib3sNV) },
   1364    { "glVertexAttrib3svNV", _O(VertexAttrib3svNV) },
   1365    { "glVertexAttrib4dNV", _O(VertexAttrib4dNV) },
   1366    { "glVertexAttrib4dvNV", _O(VertexAttrib4dvNV) },
   1367    { "glVertexAttrib4fNV", _O(VertexAttrib4fNV) },
   1368    { "glVertexAttrib4fvNV", _O(VertexAttrib4fvNV) },
   1369    { "glVertexAttrib4sNV", _O(VertexAttrib4sNV) },
   1370    { "glVertexAttrib4svNV", _O(VertexAttrib4svNV) },
   1371    { "glVertexAttrib4ubNV", _O(VertexAttrib4ubNV) },
   1372    { "glVertexAttrib4ubvNV", _O(VertexAttrib4ubvNV) },
   1373    { "glVertexAttribPointerNV", _O(VertexAttribPointerNV) },
   1374    { "glVertexAttribs1dvNV", _O(VertexAttribs1dvNV) },
   1375    { "glVertexAttribs1fvNV", _O(VertexAttribs1fvNV) },
   1376    { "glVertexAttribs1svNV", _O(VertexAttribs1svNV) },
   1377    { "glVertexAttribs2dvNV", _O(VertexAttribs2dvNV) },
   1378    { "glVertexAttribs2fvNV", _O(VertexAttribs2fvNV) },
   1379    { "glVertexAttribs2svNV", _O(VertexAttribs2svNV) },
   1380    { "glVertexAttribs3dvNV", _O(VertexAttribs3dvNV) },
   1381    { "glVertexAttribs3fvNV", _O(VertexAttribs3fvNV) },
   1382    { "glVertexAttribs3svNV", _O(VertexAttribs3svNV) },
   1383    { "glVertexAttribs4dvNV", _O(VertexAttribs4dvNV) },
   1384    { "glVertexAttribs4fvNV", _O(VertexAttribs4fvNV) },
   1385    { "glVertexAttribs4svNV", _O(VertexAttribs4svNV) },
   1386    { "glVertexAttribs4ubvNV", _O(VertexAttribs4ubvNV) },
   1387    { "glGetTexBumpParameterfvATI", _O(GetTexBumpParameterfvATI) },
   1388    { "glGetTexBumpParameterivATI", _O(GetTexBumpParameterivATI) },
   1389    { "glTexBumpParameterfvATI", _O(TexBumpParameterfvATI) },
   1390    { "glTexBumpParameterivATI", _O(TexBumpParameterivATI) },
   1391    { "glAlphaFragmentOp1ATI", _O(AlphaFragmentOp1ATI) },
   1392    { "glAlphaFragmentOp2ATI", _O(AlphaFragmentOp2ATI) },
   1393    { "glAlphaFragmentOp3ATI", _O(AlphaFragmentOp3ATI) },
   1394    { "glBeginFragmentShaderATI", _O(BeginFragmentShaderATI) },
   1395    { "glBindFragmentShaderATI", _O(BindFragmentShaderATI) },
   1396    { "glColorFragmentOp1ATI", _O(ColorFragmentOp1ATI) },
   1397    { "glColorFragmentOp2ATI", _O(ColorFragmentOp2ATI) },
   1398    { "glColorFragmentOp3ATI", _O(ColorFragmentOp3ATI) },
   1399    { "glDeleteFragmentShaderATI", _O(DeleteFragmentShaderATI) },
   1400    { "glEndFragmentShaderATI", _O(EndFragmentShaderATI) },
   1401    { "glGenFragmentShadersATI", _O(GenFragmentShadersATI) },
   1402    { "glPassTexCoordATI", _O(PassTexCoordATI) },
   1403    { "glSampleMapATI", _O(SampleMapATI) },
   1404    { "glSetFragmentShaderConstantATI", _O(SetFragmentShaderConstantATI) },
   1405    { "glPointParameteriNV", _O(PointParameteriNV) },
   1406    { "glPointParameterivNV", _O(PointParameterivNV) },
   1407    { "glActiveStencilFaceEXT", _O(ActiveStencilFaceEXT) },
   1408    { "glBindVertexArrayAPPLE", _O(BindVertexArrayAPPLE) },
   1409    { "glDeleteVertexArraysAPPLE", _O(DeleteVertexArraysAPPLE) },
   1410    { "glGenVertexArraysAPPLE", _O(GenVertexArraysAPPLE) },
   1411    { "glIsVertexArrayAPPLE", _O(IsVertexArrayAPPLE) },
   1412    { "glGetProgramNamedParameterdvNV", _O(GetProgramNamedParameterdvNV) },
   1413    { "glGetProgramNamedParameterfvNV", _O(GetProgramNamedParameterfvNV) },
   1414    { "glProgramNamedParameter4dNV", _O(ProgramNamedParameter4dNV) },
   1415    { "glProgramNamedParameter4dvNV", _O(ProgramNamedParameter4dvNV) },
   1416    { "glProgramNamedParameter4fNV", _O(ProgramNamedParameter4fNV) },
   1417    { "glProgramNamedParameter4fvNV", _O(ProgramNamedParameter4fvNV) },
   1418    { "glPrimitiveRestartIndexNV", _O(PrimitiveRestartIndexNV) },
   1419    { "glPrimitiveRestartNV", _O(PrimitiveRestartNV) },
   1420    { "glDepthBoundsEXT", _O(DepthBoundsEXT) },
   1421    { "glBlendEquationSeparateEXT", _O(BlendEquationSeparateEXT) },
   1422    { "glBindFramebufferEXT", _O(BindFramebufferEXT) },
   1423    { "glBindRenderbufferEXT", _O(BindRenderbufferEXT) },
   1424    { "glCheckFramebufferStatusEXT", _O(CheckFramebufferStatusEXT) },
   1425    { "glDeleteFramebuffersEXT", _O(DeleteFramebuffersEXT) },
   1426    { "glDeleteRenderbuffersEXT", _O(DeleteRenderbuffersEXT) },
   1427    { "glFramebufferRenderbufferEXT", _O(FramebufferRenderbufferEXT) },
   1428    { "glFramebufferTexture1DEXT", _O(FramebufferTexture1DEXT) },
   1429    { "glFramebufferTexture2DEXT", _O(FramebufferTexture2DEXT) },
   1430    { "glFramebufferTexture3DEXT", _O(FramebufferTexture3DEXT) },
   1431    { "glGenFramebuffersEXT", _O(GenFramebuffersEXT) },
   1432    { "glGenRenderbuffersEXT", _O(GenRenderbuffersEXT) },
   1433    { "glGenerateMipmapEXT", _O(GenerateMipmapEXT) },
   1434    { "glGetFramebufferAttachmentParameterivEXT", _O(GetFramebufferAttachmentParameterivEXT) },
   1435    { "glGetRenderbufferParameterivEXT", _O(GetRenderbufferParameterivEXT) },
   1436    { "glIsFramebufferEXT", _O(IsFramebufferEXT) },
   1437    { "glIsRenderbufferEXT", _O(IsRenderbufferEXT) },
   1438    { "glRenderbufferStorageEXT", _O(RenderbufferStorageEXT) },
   1439    { "glBlitFramebufferEXT", _O(BlitFramebufferEXT) },
   1440    { "glBufferParameteriAPPLE", _O(BufferParameteriAPPLE) },
   1441    { "glFlushMappedBufferRangeAPPLE", _O(FlushMappedBufferRangeAPPLE) },
   1442    { "glBindFragDataLocationEXT", _O(BindFragDataLocationEXT) },
   1443    { "glGetFragDataLocationEXT", _O(GetFragDataLocationEXT) },
   1444    { "glGetUniformuivEXT", _O(GetUniformuivEXT) },
   1445    { "glGetVertexAttribIivEXT", _O(GetVertexAttribIivEXT) },
   1446    { "glGetVertexAttribIuivEXT", _O(GetVertexAttribIuivEXT) },
   1447    { "glUniform1uiEXT", _O(Uniform1uiEXT) },
   1448    { "glUniform1uivEXT", _O(Uniform1uivEXT) },
   1449    { "glUniform2uiEXT", _O(Uniform2uiEXT) },
   1450    { "glUniform2uivEXT", _O(Uniform2uivEXT) },
   1451    { "glUniform3uiEXT", _O(Uniform3uiEXT) },
   1452    { "glUniform3uivEXT", _O(Uniform3uivEXT) },
   1453    { "glUniform4uiEXT", _O(Uniform4uiEXT) },
   1454    { "glUniform4uivEXT", _O(Uniform4uivEXT) },
   1455    { "glVertexAttribI1iEXT", _O(VertexAttribI1iEXT) },
   1456    { "glVertexAttribI1ivEXT", _O(VertexAttribI1ivEXT) },
   1457    { "glVertexAttribI1uiEXT", _O(VertexAttribI1uiEXT) },
   1458    { "glVertexAttribI1uivEXT", _O(VertexAttribI1uivEXT) },
   1459    { "glVertexAttribI2iEXT", _O(VertexAttribI2iEXT) },
   1460    { "glVertexAttribI2ivEXT", _O(VertexAttribI2ivEXT) },
   1461    { "glVertexAttribI2uiEXT", _O(VertexAttribI2uiEXT) },
   1462    { "glVertexAttribI2uivEXT", _O(VertexAttribI2uivEXT) },
   1463    { "glVertexAttribI3iEXT", _O(VertexAttribI3iEXT) },
   1464    { "glVertexAttribI3ivEXT", _O(VertexAttribI3ivEXT) },
   1465    { "glVertexAttribI3uiEXT", _O(VertexAttribI3uiEXT) },
   1466    { "glVertexAttribI3uivEXT", _O(VertexAttribI3uivEXT) },
   1467    { "glVertexAttribI4bvEXT", _O(VertexAttribI4bvEXT) },
   1468    { "glVertexAttribI4iEXT", _O(VertexAttribI4iEXT) },
   1469    { "glVertexAttribI4ivEXT", _O(VertexAttribI4ivEXT) },
   1470    { "glVertexAttribI4svEXT", _O(VertexAttribI4svEXT) },
   1471    { "glVertexAttribI4ubvEXT", _O(VertexAttribI4ubvEXT) },
   1472    { "glVertexAttribI4uiEXT", _O(VertexAttribI4uiEXT) },
   1473    { "glVertexAttribI4uivEXT", _O(VertexAttribI4uivEXT) },
   1474    { "glVertexAttribI4usvEXT", _O(VertexAttribI4usvEXT) },
   1475    { "glVertexAttribIPointerEXT", _O(VertexAttribIPointerEXT) },
   1476    { "glFramebufferTextureLayerEXT", _O(FramebufferTextureLayerEXT) },
   1477    { "glColorMaskIndexedEXT", _O(ColorMaskIndexedEXT) },
   1478    { "glDisableIndexedEXT", _O(DisableIndexedEXT) },
   1479    { "glEnableIndexedEXT", _O(EnableIndexedEXT) },
   1480    { "glGetBooleanIndexedvEXT", _O(GetBooleanIndexedvEXT) },
   1481    { "glGetIntegerIndexedvEXT", _O(GetIntegerIndexedvEXT) },
   1482    { "glIsEnabledIndexedEXT", _O(IsEnabledIndexedEXT) },
   1483    { "glClearColorIiEXT", _O(ClearColorIiEXT) },
   1484    { "glClearColorIuiEXT", _O(ClearColorIuiEXT) },
   1485    { "glGetTexParameterIivEXT", _O(GetTexParameterIivEXT) },
   1486    { "glGetTexParameterIuivEXT", _O(GetTexParameterIuivEXT) },
   1487    { "glTexParameterIivEXT", _O(TexParameterIivEXT) },
   1488    { "glTexParameterIuivEXT", _O(TexParameterIuivEXT) },
   1489    { "glBeginConditionalRenderNV", _O(BeginConditionalRenderNV) },
   1490    { "glEndConditionalRenderNV", _O(EndConditionalRenderNV) },
   1491    { "glBeginTransformFeedbackEXT", _O(BeginTransformFeedbackEXT) },
   1492    { "glBindBufferBaseEXT", _O(BindBufferBaseEXT) },
   1493    { "glBindBufferOffsetEXT", _O(BindBufferOffsetEXT) },
   1494    { "glBindBufferRangeEXT", _O(BindBufferRangeEXT) },
   1495    { "glEndTransformFeedbackEXT", _O(EndTransformFeedbackEXT) },
   1496    { "glGetTransformFeedbackVaryingEXT", _O(GetTransformFeedbackVaryingEXT) },
   1497    { "glTransformFeedbackVaryingsEXT", _O(TransformFeedbackVaryingsEXT) },
   1498    { "glProvokingVertexEXT", _O(ProvokingVertexEXT) },
   1499    { "glGetObjectParameterivAPPLE", _O(GetObjectParameterivAPPLE) },
   1500    { "glObjectPurgeableAPPLE", _O(ObjectPurgeableAPPLE) },
   1501    { "glObjectUnpurgeableAPPLE", _O(ObjectUnpurgeableAPPLE) },
   1502    { "glActiveProgramEXT", _O(ActiveProgramEXT) },
   1503    { "glCreateShaderProgramEXT", _O(CreateShaderProgramEXT) },
   1504    { "glUseShaderProgramEXT", _O(UseShaderProgramEXT) },
   1505    { "glTextureBarrierNV", _O(TextureBarrierNV) },
   1506    { "glStencilFuncSeparateATI", _O(StencilFuncSeparateATI) },
   1507    { "glProgramEnvParameters4fvEXT", _O(ProgramEnvParameters4fvEXT) },
   1508    { "glProgramLocalParameters4fvEXT", _O(ProgramLocalParameters4fvEXT) },
   1509    { "glGetQueryObjecti64vEXT", _O(GetQueryObjecti64vEXT) },
   1510    { "glGetQueryObjectui64vEXT", _O(GetQueryObjectui64vEXT) },
   1511    { "glEGLImageTargetRenderbufferStorageOES", _O(EGLImageTargetRenderbufferStorageOES) },
   1512    { "glEGLImageTargetTexture2DOES", _O(EGLImageTargetTexture2DOES) },
   1513    { NULL, 0 }
   1514 };
   1515 
   1516 #ifndef GLX_INDIRECT_RENDERING
   1517 extern "C" {
   1518 GLAPI GLboolean GLAPIENTRY
   1519 glAreTexturesResidentEXT(GLsizei n, const GLuint *textures,
   1520 			 GLboolean *residences)
   1521 {
   1522    (void) n;
   1523    (void) textures;
   1524    (void) residences;
   1525    return GL_FALSE;
   1526 }
   1527 
   1528 GLAPI void GLAPIENTRY
   1529 glDeleteTexturesEXT(GLsizei n, const GLuint *textures)
   1530 {
   1531    (void) n;
   1532    (void) textures;
   1533 }
   1534 
   1535 GLAPI void GLAPIENTRY
   1536 glGenTexturesEXT(GLsizei n, GLuint *textures)
   1537 {
   1538    (void) n;
   1539    (void) textures;
   1540 }
   1541 
   1542 GLAPI GLboolean GLAPIENTRY
   1543 glIsTextureEXT(GLuint texture)
   1544 {
   1545    (void) texture;
   1546    return GL_FALSE;
   1547 }
   1548 
   1549 GLAPI void GLAPIENTRY
   1550 glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table)
   1551 {
   1552    (void) target;
   1553    (void) format;
   1554    (void) type;
   1555    (void) table;
   1556 }
   1557 
   1558 GLAPI void GLAPIENTRY
   1559 glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params)
   1560 {
   1561    (void) target;
   1562    (void) pname;
   1563    (void) params;
   1564 }
   1565 
   1566 GLAPI void GLAPIENTRY
   1567 glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params)
   1568 {
   1569    (void) target;
   1570    (void) pname;
   1571    (void) params;
   1572 }
   1573 
   1574 void GLAPIENTRY
   1575 gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type, GLvoid * image)
   1576 {
   1577    (void) target;
   1578    (void) format;
   1579    (void) type;
   1580    (void) image;
   1581 }
   1582 
   1583 void GLAPIENTRY
   1584 gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params)
   1585 {
   1586    (void) target;
   1587    (void) pname;
   1588    (void) params;
   1589 }
   1590 
   1591 void GLAPIENTRY
   1592 gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params)
   1593 {
   1594    (void) target;
   1595    (void) pname;
   1596    (void) params;
   1597 }
   1598 
   1599 void GLAPIENTRY
   1600 gl_dispatch_stub_359(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span)
   1601 {
   1602    (void) target;
   1603    (void) format;
   1604    (void) type;
   1605    (void) row;
   1606    (void) column;
   1607    (void) span;
   1608 }
   1609 
   1610 void GLAPIENTRY
   1611 gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values)
   1612 {
   1613    (void) target;
   1614    (void) reset;
   1615    (void) format;
   1616    (void) type;
   1617    (void) values;
   1618 }
   1619 
   1620 void GLAPIENTRY
   1621 gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params)
   1622 {
   1623    (void) target;
   1624    (void) pname;
   1625    (void) params;
   1626 }
   1627 
   1628 void GLAPIENTRY
   1629 gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params)
   1630 {
   1631    (void) target;
   1632    (void) pname;
   1633    (void) params;
   1634 }
   1635 
   1636 void GLAPIENTRY
   1637 gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values)
   1638 {
   1639    (void) target;
   1640    (void) reset;
   1641    (void) format;
   1642    (void) type;
   1643    (void) values;
   1644 }
   1645 
   1646 void GLAPIENTRY
   1647 gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params)
   1648 {
   1649    (void) target;
   1650    (void) pname;
   1651    (void) params;
   1652 }
   1653 
   1654 void GLAPIENTRY
   1655 gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params)
   1656 {
   1657    (void) target;
   1658    (void) pname;
   1659    (void) params;
   1660 }
   1661 
   1662 }
   1663 #endif
   1664