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 "../mesa/main/glheader.h" 26 27 #include "glapi/glapi.h" 28 #include "glapi/glapitable.h" 29 30 struct name_offset { 31 const char *name; 32 int offset; 33 }; 34 35 extern const struct name_offset linux_gl_abi[]; 36 extern const struct name_offset known_dispatch[]; 37 38 TEST(GetProcAddress, ABIOffsetByName) 39 { 40 /* 408 functions have had their locations in the dispatch table set since 41 * the dawn of time. Verify that all of these functions are at the correct 42 * locations. 43 */ 44 for (unsigned i = 0; linux_gl_abi[i].name != NULL; i++) { 45 EXPECT_EQ(linux_gl_abi[i].offset, 46 _glapi_get_proc_offset(linux_gl_abi[i].name)) 47 << "function name: " << linux_gl_abi[i].name; 48 } 49 } 50 51 TEST(GetProcAddress, ABINameByOffset) 52 { 53 /* 408 functions have had their locations in the dispatch table set since 54 * the dawn of time. Verify that all of these functions are at the correct 55 * locations. 56 */ 57 for (unsigned i = 0; linux_gl_abi[i].name != NULL; i++) { 58 EXPECT_STREQ(linux_gl_abi[i].name, 59 _glapi_get_proc_name(linux_gl_abi[i].offset)) 60 << "function offset: " << linux_gl_abi[i].offset; 61 } 62 } 63 64 TEST(GetProcAddress, TableBigEnoughForABI) 65 { 66 const unsigned table_entries = sizeof(struct _glapi_table) / sizeof(void *); 67 68 EXPECT_GE(table_entries, 408u); 69 } 70 71 TEST(GetProcAddress, TableDidntShrink) 72 { 73 const unsigned table_entries = sizeof(struct _glapi_table) / sizeof(void *); 74 75 /* The dispatch table is not expected to shrink. At GIT commit b45052b the 76 * table had 978 entries. Changes that intentionally reduce the size of 77 * the table are very rare. In those cases, the expected value should be 78 * updated to reflect the change. 79 * 80 * Changes that accidentally reduce the size of the table are bugs, and 81 * they should be fixed. 82 * 83 * 6 entries were removed when GL_SGIS_pixel_texture was removed from the 84 * dispatch table. 85 * 86 * 1 entry was removed when GL_SGIX_pixel_texture was removed from the 87 * dispatch table. 88 * 89 * 2 entries were removed when GL_APPLE_texture_range was removed from the 90 * dispatch table. 91 * 92 * 13 entries were removed when GL_NV_register_combiners was removed from 93 * the dispatch table. 94 * 95 * 7 entries were removed when GL_NV_fence was removed from the dispatch 96 * table. 97 * 98 * 2 entries were removed when GL_NV_vertex_array_range was removed from 99 * the dispatch table. 100 */ 101 EXPECT_GE(table_entries, 978u - 6u - 1u - 2u - 13u - 7u - 2u); 102 } 103 104 TEST(GetProcAddress, QueriedDispatchSizeBigEnough) 105 { 106 const unsigned table_entries = sizeof(struct _glapi_table) / sizeof(void *); 107 108 /* _glapi_get_dispatch_table_size returns the size of the extended dispatch 109 * table. This is the size of the static table with some extra entries for 110 * drivers to use for extensions that the core does not know about. 111 */ 112 EXPECT_LT(table_entries, _glapi_get_dispatch_table_size()); 113 } 114 115 TEST(GetProcAddress, KnownDispatchOffsetsAreConsistent) 116 { 117 /* Verify that the queried dispatch offset for every known function is 118 * consistent with its location in the static dispatch table. 119 * 120 * There is some redundancy between this test and ABIOffsetByName. That's 121 * okay. The offsets in ABIOffsetByName comdirectly from the ABI 122 * definition. The offsets in this test come from locations in a structure 123 * definition generated by scripts. 124 */ 125 for (unsigned i = 0; known_dispatch[i].name != NULL; i++) { 126 EXPECT_EQ(known_dispatch[i].offset, 127 _glapi_get_proc_offset(known_dispatch[i].name)) 128 << "function name: " << known_dispatch[i].name; 129 } 130 } 131 132 TEST(GetProcAddress, KnownDispatchNamesAreConsistent) 133 { 134 /* Verify that the queried dispatch name for every known function is 135 * consistent with its location in the static dispatch table. 136 * 137 * There is some redundancy between this test and ABINameByOffset. That's 138 * okay. The offsets in ABIOffsetByName comdirectly from the ABI 139 * definition. The offsets in this test come from locations in a structure 140 * definition generated by scripts. 141 */ 142 for (unsigned i = 0; known_dispatch[i].name != NULL; i++) { 143 EXPECT_STREQ(known_dispatch[i].name, 144 _glapi_get_proc_name(known_dispatch[i].offset)) 145 << "function offset: " << known_dispatch[i].offset; 146 } 147 } 148 149 const struct name_offset linux_gl_abi[] = { 150 { "glNewList", 0 }, 151 { "glEndList", 1 }, 152 { "glCallList", 2 }, 153 { "glCallLists", 3 }, 154 { "glDeleteLists", 4 }, 155 { "glGenLists", 5 }, 156 { "glListBase", 6 }, 157 { "glBegin", 7 }, 158 { "glBitmap", 8 }, 159 { "glColor3b", 9 }, 160 { "glColor3bv", 10 }, 161 { "glColor3d", 11 }, 162 { "glColor3dv", 12 }, 163 { "glColor3f", 13 }, 164 { "glColor3fv", 14 }, 165 { "glColor3i", 15 }, 166 { "glColor3iv", 16 }, 167 { "glColor3s", 17 }, 168 { "glColor3sv", 18 }, 169 { "glColor3ub", 19 }, 170 { "glColor3ubv", 20 }, 171 { "glColor3ui", 21 }, 172 { "glColor3uiv", 22 }, 173 { "glColor3us", 23 }, 174 { "glColor3usv", 24 }, 175 { "glColor4b", 25 }, 176 { "glColor4bv", 26 }, 177 { "glColor4d", 27 }, 178 { "glColor4dv", 28 }, 179 { "glColor4f", 29 }, 180 { "glColor4fv", 30 }, 181 { "glColor4i", 31 }, 182 { "glColor4iv", 32 }, 183 { "glColor4s", 33 }, 184 { "glColor4sv", 34 }, 185 { "glColor4ub", 35 }, 186 { "glColor4ubv", 36 }, 187 { "glColor4ui", 37 }, 188 { "glColor4uiv", 38 }, 189 { "glColor4us", 39 }, 190 { "glColor4usv", 40 }, 191 { "glEdgeFlag", 41 }, 192 { "glEdgeFlagv", 42 }, 193 { "glEnd", 43 }, 194 { "glIndexd", 44 }, 195 { "glIndexdv", 45 }, 196 { "glIndexf", 46 }, 197 { "glIndexfv", 47 }, 198 { "glIndexi", 48 }, 199 { "glIndexiv", 49 }, 200 { "glIndexs", 50 }, 201 { "glIndexsv", 51 }, 202 { "glNormal3b", 52 }, 203 { "glNormal3bv", 53 }, 204 { "glNormal3d", 54 }, 205 { "glNormal3dv", 55 }, 206 { "glNormal3f", 56 }, 207 { "glNormal3fv", 57 }, 208 { "glNormal3i", 58 }, 209 { "glNormal3iv", 59 }, 210 { "glNormal3s", 60 }, 211 { "glNormal3sv", 61 }, 212 { "glRasterPos2d", 62 }, 213 { "glRasterPos2dv", 63 }, 214 { "glRasterPos2f", 64 }, 215 { "glRasterPos2fv", 65 }, 216 { "glRasterPos2i", 66 }, 217 { "glRasterPos2iv", 67 }, 218 { "glRasterPos2s", 68 }, 219 { "glRasterPos2sv", 69 }, 220 { "glRasterPos3d", 70 }, 221 { "glRasterPos3dv", 71 }, 222 { "glRasterPos3f", 72 }, 223 { "glRasterPos3fv", 73 }, 224 { "glRasterPos3i", 74 }, 225 { "glRasterPos3iv", 75 }, 226 { "glRasterPos3s", 76 }, 227 { "glRasterPos3sv", 77 }, 228 { "glRasterPos4d", 78 }, 229 { "glRasterPos4dv", 79 }, 230 { "glRasterPos4f", 80 }, 231 { "glRasterPos4fv", 81 }, 232 { "glRasterPos4i", 82 }, 233 { "glRasterPos4iv", 83 }, 234 { "glRasterPos4s", 84 }, 235 { "glRasterPos4sv", 85 }, 236 { "glRectd", 86 }, 237 { "glRectdv", 87 }, 238 { "glRectf", 88 }, 239 { "glRectfv", 89 }, 240 { "glRecti", 90 }, 241 { "glRectiv", 91 }, 242 { "glRects", 92 }, 243 { "glRectsv", 93 }, 244 { "glTexCoord1d", 94 }, 245 { "glTexCoord1dv", 95 }, 246 { "glTexCoord1f", 96 }, 247 { "glTexCoord1fv", 97 }, 248 { "glTexCoord1i", 98 }, 249 { "glTexCoord1iv", 99 }, 250 { "glTexCoord1s", 100 }, 251 { "glTexCoord1sv", 101 }, 252 { "glTexCoord2d", 102 }, 253 { "glTexCoord2dv", 103 }, 254 { "glTexCoord2f", 104 }, 255 { "glTexCoord2fv", 105 }, 256 { "glTexCoord2i", 106 }, 257 { "glTexCoord2iv", 107 }, 258 { "glTexCoord2s", 108 }, 259 { "glTexCoord2sv", 109 }, 260 { "glTexCoord3d", 110 }, 261 { "glTexCoord3dv", 111 }, 262 { "glTexCoord3f", 112 }, 263 { "glTexCoord3fv", 113 }, 264 { "glTexCoord3i", 114 }, 265 { "glTexCoord3iv", 115 }, 266 { "glTexCoord3s", 116 }, 267 { "glTexCoord3sv", 117 }, 268 { "glTexCoord4d", 118 }, 269 { "glTexCoord4dv", 119 }, 270 { "glTexCoord4f", 120 }, 271 { "glTexCoord4fv", 121 }, 272 { "glTexCoord4i", 122 }, 273 { "glTexCoord4iv", 123 }, 274 { "glTexCoord4s", 124 }, 275 { "glTexCoord4sv", 125 }, 276 { "glVertex2d", 126 }, 277 { "glVertex2dv", 127 }, 278 { "glVertex2f", 128 }, 279 { "glVertex2fv", 129 }, 280 { "glVertex2i", 130 }, 281 { "glVertex2iv", 131 }, 282 { "glVertex2s", 132 }, 283 { "glVertex2sv", 133 }, 284 { "glVertex3d", 134 }, 285 { "glVertex3dv", 135 }, 286 { "glVertex3f", 136 }, 287 { "glVertex3fv", 137 }, 288 { "glVertex3i", 138 }, 289 { "glVertex3iv", 139 }, 290 { "glVertex3s", 140 }, 291 { "glVertex3sv", 141 }, 292 { "glVertex4d", 142 }, 293 { "glVertex4dv", 143 }, 294 { "glVertex4f", 144 }, 295 { "glVertex4fv", 145 }, 296 { "glVertex4i", 146 }, 297 { "glVertex4iv", 147 }, 298 { "glVertex4s", 148 }, 299 { "glVertex4sv", 149 }, 300 { "glClipPlane", 150 }, 301 { "glColorMaterial", 151 }, 302 { "glCullFace", 152 }, 303 { "glFogf", 153 }, 304 { "glFogfv", 154 }, 305 { "glFogi", 155 }, 306 { "glFogiv", 156 }, 307 { "glFrontFace", 157 }, 308 { "glHint", 158 }, 309 { "glLightf", 159 }, 310 { "glLightfv", 160 }, 311 { "glLighti", 161 }, 312 { "glLightiv", 162 }, 313 { "glLightModelf", 163 }, 314 { "glLightModelfv", 164 }, 315 { "glLightModeli", 165 }, 316 { "glLightModeliv", 166 }, 317 { "glLineStipple", 167 }, 318 { "glLineWidth", 168 }, 319 { "glMaterialf", 169 }, 320 { "glMaterialfv", 170 }, 321 { "glMateriali", 171 }, 322 { "glMaterialiv", 172 }, 323 { "glPointSize", 173 }, 324 { "glPolygonMode", 174 }, 325 { "glPolygonStipple", 175 }, 326 { "glScissor", 176 }, 327 { "glShadeModel", 177 }, 328 { "glTexParameterf", 178 }, 329 { "glTexParameterfv", 179 }, 330 { "glTexParameteri", 180 }, 331 { "glTexParameteriv", 181 }, 332 { "glTexImage1D", 182 }, 333 { "glTexImage2D", 183 }, 334 { "glTexEnvf", 184 }, 335 { "glTexEnvfv", 185 }, 336 { "glTexEnvi", 186 }, 337 { "glTexEnviv", 187 }, 338 { "glTexGend", 188 }, 339 { "glTexGendv", 189 }, 340 { "glTexGenf", 190 }, 341 { "glTexGenfv", 191 }, 342 { "glTexGeni", 192 }, 343 { "glTexGeniv", 193 }, 344 { "glFeedbackBuffer", 194 }, 345 { "glSelectBuffer", 195 }, 346 { "glRenderMode", 196 }, 347 { "glInitNames", 197 }, 348 { "glLoadName", 198 }, 349 { "glPassThrough", 199 }, 350 { "glPopName", 200 }, 351 { "glPushName", 201 }, 352 { "glDrawBuffer", 202 }, 353 { "glClear", 203 }, 354 { "glClearAccum", 204 }, 355 { "glClearIndex", 205 }, 356 { "glClearColor", 206 }, 357 { "glClearStencil", 207 }, 358 { "glClearDepth", 208 }, 359 { "glStencilMask", 209 }, 360 { "glColorMask", 210 }, 361 { "glDepthMask", 211 }, 362 { "glIndexMask", 212 }, 363 { "glAccum", 213 }, 364 { "glDisable", 214 }, 365 { "glEnable", 215 }, 366 { "glFinish", 216 }, 367 { "glFlush", 217 }, 368 { "glPopAttrib", 218 }, 369 { "glPushAttrib", 219 }, 370 { "glMap1d", 220 }, 371 { "glMap1f", 221 }, 372 { "glMap2d", 222 }, 373 { "glMap2f", 223 }, 374 { "glMapGrid1d", 224 }, 375 { "glMapGrid1f", 225 }, 376 { "glMapGrid2d", 226 }, 377 { "glMapGrid2f", 227 }, 378 { "glEvalCoord1d", 228 }, 379 { "glEvalCoord1dv", 229 }, 380 { "glEvalCoord1f", 230 }, 381 { "glEvalCoord1fv", 231 }, 382 { "glEvalCoord2d", 232 }, 383 { "glEvalCoord2dv", 233 }, 384 { "glEvalCoord2f", 234 }, 385 { "glEvalCoord2fv", 235 }, 386 { "glEvalMesh1", 236 }, 387 { "glEvalPoint1", 237 }, 388 { "glEvalMesh2", 238 }, 389 { "glEvalPoint2", 239 }, 390 { "glAlphaFunc", 240 }, 391 { "glBlendFunc", 241 }, 392 { "glLogicOp", 242 }, 393 { "glStencilFunc", 243 }, 394 { "glStencilOp", 244 }, 395 { "glDepthFunc", 245 }, 396 { "glPixelZoom", 246 }, 397 { "glPixelTransferf", 247 }, 398 { "glPixelTransferi", 248 }, 399 { "glPixelStoref", 249 }, 400 { "glPixelStorei", 250 }, 401 { "glPixelMapfv", 251 }, 402 { "glPixelMapuiv", 252 }, 403 { "glPixelMapusv", 253 }, 404 { "glReadBuffer", 254 }, 405 { "glCopyPixels", 255 }, 406 { "glReadPixels", 256 }, 407 { "glDrawPixels", 257 }, 408 { "glGetBooleanv", 258 }, 409 { "glGetClipPlane", 259 }, 410 { "glGetDoublev", 260 }, 411 { "glGetError", 261 }, 412 { "glGetFloatv", 262 }, 413 { "glGetIntegerv", 263 }, 414 { "glGetLightfv", 264 }, 415 { "glGetLightiv", 265 }, 416 { "glGetMapdv", 266 }, 417 { "glGetMapfv", 267 }, 418 { "glGetMapiv", 268 }, 419 { "glGetMaterialfv", 269 }, 420 { "glGetMaterialiv", 270 }, 421 { "glGetPixelMapfv", 271 }, 422 { "glGetPixelMapuiv", 272 }, 423 { "glGetPixelMapusv", 273 }, 424 { "glGetPolygonStipple", 274 }, 425 { "glGetString", 275 }, 426 { "glGetTexEnvfv", 276 }, 427 { "glGetTexEnviv", 277 }, 428 { "glGetTexGendv", 278 }, 429 { "glGetTexGenfv", 279 }, 430 { "glGetTexGeniv", 280 }, 431 { "glGetTexImage", 281 }, 432 { "glGetTexParameterfv", 282 }, 433 { "glGetTexParameteriv", 283 }, 434 { "glGetTexLevelParameterfv", 284 }, 435 { "glGetTexLevelParameteriv", 285 }, 436 { "glIsEnabled", 286 }, 437 { "glIsList", 287 }, 438 { "glDepthRange", 288 }, 439 { "glFrustum", 289 }, 440 { "glLoadIdentity", 290 }, 441 { "glLoadMatrixf", 291 }, 442 { "glLoadMatrixd", 292 }, 443 { "glMatrixMode", 293 }, 444 { "glMultMatrixf", 294 }, 445 { "glMultMatrixd", 295 }, 446 { "glOrtho", 296 }, 447 { "glPopMatrix", 297 }, 448 { "glPushMatrix", 298 }, 449 { "glRotated", 299 }, 450 { "glRotatef", 300 }, 451 { "glScaled", 301 }, 452 { "glScalef", 302 }, 453 { "glTranslated", 303 }, 454 { "glTranslatef", 304 }, 455 { "glViewport", 305 }, 456 { "glArrayElement", 306 }, 457 { "glColorPointer", 308 }, 458 { "glDisableClientState", 309 }, 459 { "glDrawArrays", 310 }, 460 { "glDrawElements", 311 }, 461 { "glEdgeFlagPointer", 312 }, 462 { "glEnableClientState", 313 }, 463 { "glGetPointerv", 329 }, 464 { "glIndexPointer", 314 }, 465 { "glInterleavedArrays", 317 }, 466 { "glNormalPointer", 318 }, 467 { "glTexCoordPointer", 320 }, 468 { "glVertexPointer", 321 }, 469 { "glPolygonOffset", 319 }, 470 { "glCopyTexImage1D", 323 }, 471 { "glCopyTexImage2D", 324 }, 472 { "glCopyTexSubImage1D", 325 }, 473 { "glCopyTexSubImage2D", 326 }, 474 { "glTexSubImage1D", 332 }, 475 { "glTexSubImage2D", 333 }, 476 { "glAreTexturesResident", 322 }, 477 { "glBindTexture", 307 }, 478 { "glDeleteTextures", 327 }, 479 { "glGenTextures", 328 }, 480 { "glIsTexture", 330 }, 481 { "glPrioritizeTextures", 331 }, 482 { "glIndexub", 315 }, 483 { "glIndexubv", 316 }, 484 { "glPopClientAttrib", 334 }, 485 { "glPushClientAttrib", 335 }, 486 { "glBlendColor", 336 }, 487 { "glBlendEquation", 337 }, 488 { "glDrawRangeElements", 338 }, 489 { "glColorTable", 339 }, 490 { "glColorTableParameterfv", 340 }, 491 { "glColorTableParameteriv", 341 }, 492 { "glCopyColorTable", 342 }, 493 { "glGetColorTable", 343 }, 494 { "glGetColorTableParameterfv", 344 }, 495 { "glGetColorTableParameteriv", 345 }, 496 { "glColorSubTable", 346 }, 497 { "glCopyColorSubTable", 347 }, 498 { "glConvolutionFilter1D", 348 }, 499 { "glConvolutionFilter2D", 349 }, 500 { "glConvolutionParameterf", 350 }, 501 { "glConvolutionParameterfv", 351 }, 502 { "glConvolutionParameteri", 352 }, 503 { "glConvolutionParameteriv", 353 }, 504 { "glCopyConvolutionFilter1D", 354 }, 505 { "glCopyConvolutionFilter2D", 355 }, 506 { "glGetConvolutionFilter", 356 }, 507 { "glGetConvolutionParameterfv", 357 }, 508 { "glGetConvolutionParameteriv", 358 }, 509 { "glGetSeparableFilter", 359 }, 510 { "glSeparableFilter2D", 360 }, 511 { "glGetHistogram", 361 }, 512 { "glGetHistogramParameterfv", 362 }, 513 { "glGetHistogramParameteriv", 363 }, 514 { "glGetMinmax", 364 }, 515 { "glGetMinmaxParameterfv", 365 }, 516 { "glGetMinmaxParameteriv", 366 }, 517 { "glHistogram", 367 }, 518 { "glMinmax", 368 }, 519 { "glResetHistogram", 369 }, 520 { "glResetMinmax", 370 }, 521 { "glTexImage3D", 371 }, 522 { "glTexSubImage3D", 372 }, 523 { "glCopyTexSubImage3D", 373 }, 524 { "glActiveTexture", 374 }, 525 { "glClientActiveTexture", 375 }, 526 { "glMultiTexCoord1d", 376 }, 527 { "glMultiTexCoord1dv", 377 }, 528 { "glMultiTexCoord1fARB", 378 }, 529 { "glMultiTexCoord1fvARB", 379 }, 530 { "glMultiTexCoord1i", 380 }, 531 { "glMultiTexCoord1iv", 381 }, 532 { "glMultiTexCoord1s", 382 }, 533 { "glMultiTexCoord1sv", 383 }, 534 { "glMultiTexCoord2d", 384 }, 535 { "glMultiTexCoord2dv", 385 }, 536 { "glMultiTexCoord2fARB", 386 }, 537 { "glMultiTexCoord2fvARB", 387 }, 538 { "glMultiTexCoord2i", 388 }, 539 { "glMultiTexCoord2iv", 389 }, 540 { "glMultiTexCoord2s", 390 }, 541 { "glMultiTexCoord2sv", 391 }, 542 { "glMultiTexCoord3d", 392 }, 543 { "glMultiTexCoord3dv", 393 }, 544 { "glMultiTexCoord3fARB", 394 }, 545 { "glMultiTexCoord3fvARB", 395 }, 546 { "glMultiTexCoord3i", 396 }, 547 { "glMultiTexCoord3iv", 397 }, 548 { "glMultiTexCoord3s", 398 }, 549 { "glMultiTexCoord3sv", 399 }, 550 { "glMultiTexCoord4d", 400 }, 551 { "glMultiTexCoord4dv", 401 }, 552 { "glMultiTexCoord4fARB", 402 }, 553 { "glMultiTexCoord4fvARB", 403 }, 554 { "glMultiTexCoord4i", 404 }, 555 { "glMultiTexCoord4iv", 405 }, 556 { "glMultiTexCoord4s", 406 }, 557 { "glMultiTexCoord4sv", 407 }, 558 { NULL, 0 } 559 }; 560 561 #define _O(f) ((intptr_t) & (((struct _glapi_table *) 0)->f)) / sizeof(void *) 562 563 const struct name_offset known_dispatch[] = { 564 { "glNewList", _O(NewList) }, 565 { "glEndList", _O(EndList) }, 566 { "glCallList", _O(CallList) }, 567 { "glCallLists", _O(CallLists) }, 568 { "glDeleteLists", _O(DeleteLists) }, 569 { "glGenLists", _O(GenLists) }, 570 { "glListBase", _O(ListBase) }, 571 { "glBegin", _O(Begin) }, 572 { "glBitmap", _O(Bitmap) }, 573 { "glColor3b", _O(Color3b) }, 574 { "glColor3bv", _O(Color3bv) }, 575 { "glColor3d", _O(Color3d) }, 576 { "glColor3dv", _O(Color3dv) }, 577 { "glColor3f", _O(Color3f) }, 578 { "glColor3fv", _O(Color3fv) }, 579 { "glColor3i", _O(Color3i) }, 580 { "glColor3iv", _O(Color3iv) }, 581 { "glColor3s", _O(Color3s) }, 582 { "glColor3sv", _O(Color3sv) }, 583 { "glColor3ub", _O(Color3ub) }, 584 { "glColor3ubv", _O(Color3ubv) }, 585 { "glColor3ui", _O(Color3ui) }, 586 { "glColor3uiv", _O(Color3uiv) }, 587 { "glColor3us", _O(Color3us) }, 588 { "glColor3usv", _O(Color3usv) }, 589 { "glColor4b", _O(Color4b) }, 590 { "glColor4bv", _O(Color4bv) }, 591 { "glColor4d", _O(Color4d) }, 592 { "glColor4dv", _O(Color4dv) }, 593 { "glColor4f", _O(Color4f) }, 594 { "glColor4fv", _O(Color4fv) }, 595 { "glColor4i", _O(Color4i) }, 596 { "glColor4iv", _O(Color4iv) }, 597 { "glColor4s", _O(Color4s) }, 598 { "glColor4sv", _O(Color4sv) }, 599 { "glColor4ub", _O(Color4ub) }, 600 { "glColor4ubv", _O(Color4ubv) }, 601 { "glColor4ui", _O(Color4ui) }, 602 { "glColor4uiv", _O(Color4uiv) }, 603 { "glColor4us", _O(Color4us) }, 604 { "glColor4usv", _O(Color4usv) }, 605 { "glEdgeFlag", _O(EdgeFlag) }, 606 { "glEdgeFlagv", _O(EdgeFlagv) }, 607 { "glEnd", _O(End) }, 608 { "glIndexd", _O(Indexd) }, 609 { "glIndexdv", _O(Indexdv) }, 610 { "glIndexf", _O(Indexf) }, 611 { "glIndexfv", _O(Indexfv) }, 612 { "glIndexi", _O(Indexi) }, 613 { "glIndexiv", _O(Indexiv) }, 614 { "glIndexs", _O(Indexs) }, 615 { "glIndexsv", _O(Indexsv) }, 616 { "glNormal3b", _O(Normal3b) }, 617 { "glNormal3bv", _O(Normal3bv) }, 618 { "glNormal3d", _O(Normal3d) }, 619 { "glNormal3dv", _O(Normal3dv) }, 620 { "glNormal3f", _O(Normal3f) }, 621 { "glNormal3fv", _O(Normal3fv) }, 622 { "glNormal3i", _O(Normal3i) }, 623 { "glNormal3iv", _O(Normal3iv) }, 624 { "glNormal3s", _O(Normal3s) }, 625 { "glNormal3sv", _O(Normal3sv) }, 626 { "glRasterPos2d", _O(RasterPos2d) }, 627 { "glRasterPos2dv", _O(RasterPos2dv) }, 628 { "glRasterPos2f", _O(RasterPos2f) }, 629 { "glRasterPos2fv", _O(RasterPos2fv) }, 630 { "glRasterPos2i", _O(RasterPos2i) }, 631 { "glRasterPos2iv", _O(RasterPos2iv) }, 632 { "glRasterPos2s", _O(RasterPos2s) }, 633 { "glRasterPos2sv", _O(RasterPos2sv) }, 634 { "glRasterPos3d", _O(RasterPos3d) }, 635 { "glRasterPos3dv", _O(RasterPos3dv) }, 636 { "glRasterPos3f", _O(RasterPos3f) }, 637 { "glRasterPos3fv", _O(RasterPos3fv) }, 638 { "glRasterPos3i", _O(RasterPos3i) }, 639 { "glRasterPos3iv", _O(RasterPos3iv) }, 640 { "glRasterPos3s", _O(RasterPos3s) }, 641 { "glRasterPos3sv", _O(RasterPos3sv) }, 642 { "glRasterPos4d", _O(RasterPos4d) }, 643 { "glRasterPos4dv", _O(RasterPos4dv) }, 644 { "glRasterPos4f", _O(RasterPos4f) }, 645 { "glRasterPos4fv", _O(RasterPos4fv) }, 646 { "glRasterPos4i", _O(RasterPos4i) }, 647 { "glRasterPos4iv", _O(RasterPos4iv) }, 648 { "glRasterPos4s", _O(RasterPos4s) }, 649 { "glRasterPos4sv", _O(RasterPos4sv) }, 650 { "glRectd", _O(Rectd) }, 651 { "glRectdv", _O(Rectdv) }, 652 { "glRectf", _O(Rectf) }, 653 { "glRectfv", _O(Rectfv) }, 654 { "glRecti", _O(Recti) }, 655 { "glRectiv", _O(Rectiv) }, 656 { "glRects", _O(Rects) }, 657 { "glRectsv", _O(Rectsv) }, 658 { "glTexCoord1d", _O(TexCoord1d) }, 659 { "glTexCoord1dv", _O(TexCoord1dv) }, 660 { "glTexCoord1f", _O(TexCoord1f) }, 661 { "glTexCoord1fv", _O(TexCoord1fv) }, 662 { "glTexCoord1i", _O(TexCoord1i) }, 663 { "glTexCoord1iv", _O(TexCoord1iv) }, 664 { "glTexCoord1s", _O(TexCoord1s) }, 665 { "glTexCoord1sv", _O(TexCoord1sv) }, 666 { "glTexCoord2d", _O(TexCoord2d) }, 667 { "glTexCoord2dv", _O(TexCoord2dv) }, 668 { "glTexCoord2f", _O(TexCoord2f) }, 669 { "glTexCoord2fv", _O(TexCoord2fv) }, 670 { "glTexCoord2i", _O(TexCoord2i) }, 671 { "glTexCoord2iv", _O(TexCoord2iv) }, 672 { "glTexCoord2s", _O(TexCoord2s) }, 673 { "glTexCoord2sv", _O(TexCoord2sv) }, 674 { "glTexCoord3d", _O(TexCoord3d) }, 675 { "glTexCoord3dv", _O(TexCoord3dv) }, 676 { "glTexCoord3f", _O(TexCoord3f) }, 677 { "glTexCoord3fv", _O(TexCoord3fv) }, 678 { "glTexCoord3i", _O(TexCoord3i) }, 679 { "glTexCoord3iv", _O(TexCoord3iv) }, 680 { "glTexCoord3s", _O(TexCoord3s) }, 681 { "glTexCoord3sv", _O(TexCoord3sv) }, 682 { "glTexCoord4d", _O(TexCoord4d) }, 683 { "glTexCoord4dv", _O(TexCoord4dv) }, 684 { "glTexCoord4f", _O(TexCoord4f) }, 685 { "glTexCoord4fv", _O(TexCoord4fv) }, 686 { "glTexCoord4i", _O(TexCoord4i) }, 687 { "glTexCoord4iv", _O(TexCoord4iv) }, 688 { "glTexCoord4s", _O(TexCoord4s) }, 689 { "glTexCoord4sv", _O(TexCoord4sv) }, 690 { "glVertex2d", _O(Vertex2d) }, 691 { "glVertex2dv", _O(Vertex2dv) }, 692 { "glVertex2f", _O(Vertex2f) }, 693 { "glVertex2fv", _O(Vertex2fv) }, 694 { "glVertex2i", _O(Vertex2i) }, 695 { "glVertex2iv", _O(Vertex2iv) }, 696 { "glVertex2s", _O(Vertex2s) }, 697 { "glVertex2sv", _O(Vertex2sv) }, 698 { "glVertex3d", _O(Vertex3d) }, 699 { "glVertex3dv", _O(Vertex3dv) }, 700 { "glVertex3f", _O(Vertex3f) }, 701 { "glVertex3fv", _O(Vertex3fv) }, 702 { "glVertex3i", _O(Vertex3i) }, 703 { "glVertex3iv", _O(Vertex3iv) }, 704 { "glVertex3s", _O(Vertex3s) }, 705 { "glVertex3sv", _O(Vertex3sv) }, 706 { "glVertex4d", _O(Vertex4d) }, 707 { "glVertex4dv", _O(Vertex4dv) }, 708 { "glVertex4f", _O(Vertex4f) }, 709 { "glVertex4fv", _O(Vertex4fv) }, 710 { "glVertex4i", _O(Vertex4i) }, 711 { "glVertex4iv", _O(Vertex4iv) }, 712 { "glVertex4s", _O(Vertex4s) }, 713 { "glVertex4sv", _O(Vertex4sv) }, 714 { "glClipPlane", _O(ClipPlane) }, 715 { "glColorMaterial", _O(ColorMaterial) }, 716 { "glCullFace", _O(CullFace) }, 717 { "glFogf", _O(Fogf) }, 718 { "glFogfv", _O(Fogfv) }, 719 { "glFogi", _O(Fogi) }, 720 { "glFogiv", _O(Fogiv) }, 721 { "glFrontFace", _O(FrontFace) }, 722 { "glHint", _O(Hint) }, 723 { "glLightf", _O(Lightf) }, 724 { "glLightfv", _O(Lightfv) }, 725 { "glLighti", _O(Lighti) }, 726 { "glLightiv", _O(Lightiv) }, 727 { "glLightModelf", _O(LightModelf) }, 728 { "glLightModelfv", _O(LightModelfv) }, 729 { "glLightModeli", _O(LightModeli) }, 730 { "glLightModeliv", _O(LightModeliv) }, 731 { "glLineStipple", _O(LineStipple) }, 732 { "glLineWidth", _O(LineWidth) }, 733 { "glMaterialf", _O(Materialf) }, 734 { "glMaterialfv", _O(Materialfv) }, 735 { "glMateriali", _O(Materiali) }, 736 { "glMaterialiv", _O(Materialiv) }, 737 { "glPointSize", _O(PointSize) }, 738 { "glPolygonMode", _O(PolygonMode) }, 739 { "glPolygonStipple", _O(PolygonStipple) }, 740 { "glScissor", _O(Scissor) }, 741 { "glShadeModel", _O(ShadeModel) }, 742 { "glTexParameterf", _O(TexParameterf) }, 743 { "glTexParameterfv", _O(TexParameterfv) }, 744 { "glTexParameteri", _O(TexParameteri) }, 745 { "glTexParameteriv", _O(TexParameteriv) }, 746 { "glTexImage1D", _O(TexImage1D) }, 747 { "glTexImage2D", _O(TexImage2D) }, 748 { "glTexEnvf", _O(TexEnvf) }, 749 { "glTexEnvfv", _O(TexEnvfv) }, 750 { "glTexEnvi", _O(TexEnvi) }, 751 { "glTexEnviv", _O(TexEnviv) }, 752 { "glTexGend", _O(TexGend) }, 753 { "glTexGendv", _O(TexGendv) }, 754 { "glTexGenf", _O(TexGenf) }, 755 { "glTexGenfv", _O(TexGenfv) }, 756 { "glTexGeni", _O(TexGeni) }, 757 { "glTexGeniv", _O(TexGeniv) }, 758 { "glFeedbackBuffer", _O(FeedbackBuffer) }, 759 { "glSelectBuffer", _O(SelectBuffer) }, 760 { "glRenderMode", _O(RenderMode) }, 761 { "glInitNames", _O(InitNames) }, 762 { "glLoadName", _O(LoadName) }, 763 { "glPassThrough", _O(PassThrough) }, 764 { "glPopName", _O(PopName) }, 765 { "glPushName", _O(PushName) }, 766 { "glDrawBuffer", _O(DrawBuffer) }, 767 { "glClear", _O(Clear) }, 768 { "glClearAccum", _O(ClearAccum) }, 769 { "glClearIndex", _O(ClearIndex) }, 770 { "glClearColor", _O(ClearColor) }, 771 { "glClearStencil", _O(ClearStencil) }, 772 { "glClearDepth", _O(ClearDepth) }, 773 { "glStencilMask", _O(StencilMask) }, 774 { "glColorMask", _O(ColorMask) }, 775 { "glDepthMask", _O(DepthMask) }, 776 { "glIndexMask", _O(IndexMask) }, 777 { "glAccum", _O(Accum) }, 778 { "glDisable", _O(Disable) }, 779 { "glEnable", _O(Enable) }, 780 { "glFinish", _O(Finish) }, 781 { "glFlush", _O(Flush) }, 782 { "glPopAttrib", _O(PopAttrib) }, 783 { "glPushAttrib", _O(PushAttrib) }, 784 { "glMap1d", _O(Map1d) }, 785 { "glMap1f", _O(Map1f) }, 786 { "glMap2d", _O(Map2d) }, 787 { "glMap2f", _O(Map2f) }, 788 { "glMapGrid1d", _O(MapGrid1d) }, 789 { "glMapGrid1f", _O(MapGrid1f) }, 790 { "glMapGrid2d", _O(MapGrid2d) }, 791 { "glMapGrid2f", _O(MapGrid2f) }, 792 { "glEvalCoord1d", _O(EvalCoord1d) }, 793 { "glEvalCoord1dv", _O(EvalCoord1dv) }, 794 { "glEvalCoord1f", _O(EvalCoord1f) }, 795 { "glEvalCoord1fv", _O(EvalCoord1fv) }, 796 { "glEvalCoord2d", _O(EvalCoord2d) }, 797 { "glEvalCoord2dv", _O(EvalCoord2dv) }, 798 { "glEvalCoord2f", _O(EvalCoord2f) }, 799 { "glEvalCoord2fv", _O(EvalCoord2fv) }, 800 { "glEvalMesh1", _O(EvalMesh1) }, 801 { "glEvalPoint1", _O(EvalPoint1) }, 802 { "glEvalMesh2", _O(EvalMesh2) }, 803 { "glEvalPoint2", _O(EvalPoint2) }, 804 { "glAlphaFunc", _O(AlphaFunc) }, 805 { "glBlendFunc", _O(BlendFunc) }, 806 { "glLogicOp", _O(LogicOp) }, 807 { "glStencilFunc", _O(StencilFunc) }, 808 { "glStencilOp", _O(StencilOp) }, 809 { "glDepthFunc", _O(DepthFunc) }, 810 { "glPixelZoom", _O(PixelZoom) }, 811 { "glPixelTransferf", _O(PixelTransferf) }, 812 { "glPixelTransferi", _O(PixelTransferi) }, 813 { "glPixelStoref", _O(PixelStoref) }, 814 { "glPixelStorei", _O(PixelStorei) }, 815 { "glPixelMapfv", _O(PixelMapfv) }, 816 { "glPixelMapuiv", _O(PixelMapuiv) }, 817 { "glPixelMapusv", _O(PixelMapusv) }, 818 { "glReadBuffer", _O(ReadBuffer) }, 819 { "glCopyPixels", _O(CopyPixels) }, 820 { "glReadPixels", _O(ReadPixels) }, 821 { "glDrawPixels", _O(DrawPixels) }, 822 { "glGetBooleanv", _O(GetBooleanv) }, 823 { "glGetClipPlane", _O(GetClipPlane) }, 824 { "glGetDoublev", _O(GetDoublev) }, 825 { "glGetError", _O(GetError) }, 826 { "glGetFloatv", _O(GetFloatv) }, 827 { "glGetIntegerv", _O(GetIntegerv) }, 828 { "glGetLightfv", _O(GetLightfv) }, 829 { "glGetLightiv", _O(GetLightiv) }, 830 { "glGetMapdv", _O(GetMapdv) }, 831 { "glGetMapfv", _O(GetMapfv) }, 832 { "glGetMapiv", _O(GetMapiv) }, 833 { "glGetMaterialfv", _O(GetMaterialfv) }, 834 { "glGetMaterialiv", _O(GetMaterialiv) }, 835 { "glGetPixelMapfv", _O(GetPixelMapfv) }, 836 { "glGetPixelMapuiv", _O(GetPixelMapuiv) }, 837 { "glGetPixelMapusv", _O(GetPixelMapusv) }, 838 { "glGetPolygonStipple", _O(GetPolygonStipple) }, 839 { "glGetString", _O(GetString) }, 840 { "glGetTexEnvfv", _O(GetTexEnvfv) }, 841 { "glGetTexEnviv", _O(GetTexEnviv) }, 842 { "glGetTexGendv", _O(GetTexGendv) }, 843 { "glGetTexGenfv", _O(GetTexGenfv) }, 844 { "glGetTexGeniv", _O(GetTexGeniv) }, 845 { "glGetTexImage", _O(GetTexImage) }, 846 { "glGetTexParameterfv", _O(GetTexParameterfv) }, 847 { "glGetTexParameteriv", _O(GetTexParameteriv) }, 848 { "glGetTexLevelParameterfv", _O(GetTexLevelParameterfv) }, 849 { "glGetTexLevelParameteriv", _O(GetTexLevelParameteriv) }, 850 { "glIsEnabled", _O(IsEnabled) }, 851 { "glIsList", _O(IsList) }, 852 { "glDepthRange", _O(DepthRange) }, 853 { "glFrustum", _O(Frustum) }, 854 { "glLoadIdentity", _O(LoadIdentity) }, 855 { "glLoadMatrixf", _O(LoadMatrixf) }, 856 { "glLoadMatrixd", _O(LoadMatrixd) }, 857 { "glMatrixMode", _O(MatrixMode) }, 858 { "glMultMatrixf", _O(MultMatrixf) }, 859 { "glMultMatrixd", _O(MultMatrixd) }, 860 { "glOrtho", _O(Ortho) }, 861 { "glPopMatrix", _O(PopMatrix) }, 862 { "glPushMatrix", _O(PushMatrix) }, 863 { "glRotated", _O(Rotated) }, 864 { "glRotatef", _O(Rotatef) }, 865 { "glScaled", _O(Scaled) }, 866 { "glScalef", _O(Scalef) }, 867 { "glTranslated", _O(Translated) }, 868 { "glTranslatef", _O(Translatef) }, 869 { "glViewport", _O(Viewport) }, 870 { "glArrayElement", _O(ArrayElement) }, 871 { "glBindTexture", _O(BindTexture) }, 872 { "glColorPointer", _O(ColorPointer) }, 873 { "glDisableClientState", _O(DisableClientState) }, 874 { "glDrawArrays", _O(DrawArrays) }, 875 { "glDrawElements", _O(DrawElements) }, 876 { "glEdgeFlagPointer", _O(EdgeFlagPointer) }, 877 { "glEnableClientState", _O(EnableClientState) }, 878 { "glIndexPointer", _O(IndexPointer) }, 879 { "glIndexub", _O(Indexub) }, 880 { "glIndexubv", _O(Indexubv) }, 881 { "glInterleavedArrays", _O(InterleavedArrays) }, 882 { "glNormalPointer", _O(NormalPointer) }, 883 { "glPolygonOffset", _O(PolygonOffset) }, 884 { "glTexCoordPointer", _O(TexCoordPointer) }, 885 { "glVertexPointer", _O(VertexPointer) }, 886 { "glAreTexturesResident", _O(AreTexturesResident) }, 887 { "glCopyTexImage1D", _O(CopyTexImage1D) }, 888 { "glCopyTexImage2D", _O(CopyTexImage2D) }, 889 { "glCopyTexSubImage1D", _O(CopyTexSubImage1D) }, 890 { "glCopyTexSubImage2D", _O(CopyTexSubImage2D) }, 891 { "glDeleteTextures", _O(DeleteTextures) }, 892 { "glGenTextures", _O(GenTextures) }, 893 { "glGetPointerv", _O(GetPointerv) }, 894 { "glIsTexture", _O(IsTexture) }, 895 { "glPrioritizeTextures", _O(PrioritizeTextures) }, 896 { "glTexSubImage1D", _O(TexSubImage1D) }, 897 { "glTexSubImage2D", _O(TexSubImage2D) }, 898 { "glPopClientAttrib", _O(PopClientAttrib) }, 899 { "glPushClientAttrib", _O(PushClientAttrib) }, 900 { "glBlendColor", _O(BlendColor) }, 901 { "glBlendEquation", _O(BlendEquation) }, 902 { "glDrawRangeElements", _O(DrawRangeElements) }, 903 { "glColorTable", _O(ColorTable) }, 904 { "glColorTableParameterfv", _O(ColorTableParameterfv) }, 905 { "glColorTableParameteriv", _O(ColorTableParameteriv) }, 906 { "glCopyColorTable", _O(CopyColorTable) }, 907 { "glGetColorTable", _O(GetColorTable) }, 908 { "glGetColorTableParameterfv", _O(GetColorTableParameterfv) }, 909 { "glGetColorTableParameteriv", _O(GetColorTableParameteriv) }, 910 { "glColorSubTable", _O(ColorSubTable) }, 911 { "glCopyColorSubTable", _O(CopyColorSubTable) }, 912 { "glConvolutionFilter1D", _O(ConvolutionFilter1D) }, 913 { "glConvolutionFilter2D", _O(ConvolutionFilter2D) }, 914 { "glConvolutionParameterf", _O(ConvolutionParameterf) }, 915 { "glConvolutionParameterfv", _O(ConvolutionParameterfv) }, 916 { "glConvolutionParameteri", _O(ConvolutionParameteri) }, 917 { "glConvolutionParameteriv", _O(ConvolutionParameteriv) }, 918 { "glCopyConvolutionFilter1D", _O(CopyConvolutionFilter1D) }, 919 { "glCopyConvolutionFilter2D", _O(CopyConvolutionFilter2D) }, 920 { "glGetConvolutionFilter", _O(GetConvolutionFilter) }, 921 { "glGetConvolutionParameterfv", _O(GetConvolutionParameterfv) }, 922 { "glGetConvolutionParameteriv", _O(GetConvolutionParameteriv) }, 923 { "glGetSeparableFilter", _O(GetSeparableFilter) }, 924 { "glSeparableFilter2D", _O(SeparableFilter2D) }, 925 { "glGetHistogram", _O(GetHistogram) }, 926 { "glGetHistogramParameterfv", _O(GetHistogramParameterfv) }, 927 { "glGetHistogramParameteriv", _O(GetHistogramParameteriv) }, 928 { "glGetMinmax", _O(GetMinmax) }, 929 { "glGetMinmaxParameterfv", _O(GetMinmaxParameterfv) }, 930 { "glGetMinmaxParameteriv", _O(GetMinmaxParameteriv) }, 931 { "glHistogram", _O(Histogram) }, 932 { "glMinmax", _O(Minmax) }, 933 { "glResetHistogram", _O(ResetHistogram) }, 934 { "glResetMinmax", _O(ResetMinmax) }, 935 { "glTexImage3D", _O(TexImage3D) }, 936 { "glTexSubImage3D", _O(TexSubImage3D) }, 937 { "glCopyTexSubImage3D", _O(CopyTexSubImage3D) }, 938 { "glActiveTexture", _O(ActiveTexture) }, 939 { "glClientActiveTexture", _O(ClientActiveTexture) }, 940 { "glMultiTexCoord1d", _O(MultiTexCoord1d) }, 941 { "glMultiTexCoord1dv", _O(MultiTexCoord1dv) }, 942 { "glMultiTexCoord1fARB", _O(MultiTexCoord1fARB) }, 943 { "glMultiTexCoord1fvARB", _O(MultiTexCoord1fvARB) }, 944 { "glMultiTexCoord1i", _O(MultiTexCoord1i) }, 945 { "glMultiTexCoord1iv", _O(MultiTexCoord1iv) }, 946 { "glMultiTexCoord1s", _O(MultiTexCoord1s) }, 947 { "glMultiTexCoord1sv", _O(MultiTexCoord1sv) }, 948 { "glMultiTexCoord2d", _O(MultiTexCoord2d) }, 949 { "glMultiTexCoord2dv", _O(MultiTexCoord2dv) }, 950 { "glMultiTexCoord2fARB", _O(MultiTexCoord2fARB) }, 951 { "glMultiTexCoord2fvARB", _O(MultiTexCoord2fvARB) }, 952 { "glMultiTexCoord2i", _O(MultiTexCoord2i) }, 953 { "glMultiTexCoord2iv", _O(MultiTexCoord2iv) }, 954 { "glMultiTexCoord2s", _O(MultiTexCoord2s) }, 955 { "glMultiTexCoord2sv", _O(MultiTexCoord2sv) }, 956 { "glMultiTexCoord3d", _O(MultiTexCoord3d) }, 957 { "glMultiTexCoord3dv", _O(MultiTexCoord3dv) }, 958 { "glMultiTexCoord3fARB", _O(MultiTexCoord3fARB) }, 959 { "glMultiTexCoord3fvARB", _O(MultiTexCoord3fvARB) }, 960 { "glMultiTexCoord3i", _O(MultiTexCoord3i) }, 961 { "glMultiTexCoord3iv", _O(MultiTexCoord3iv) }, 962 { "glMultiTexCoord3s", _O(MultiTexCoord3s) }, 963 { "glMultiTexCoord3sv", _O(MultiTexCoord3sv) }, 964 { "glMultiTexCoord4d", _O(MultiTexCoord4d) }, 965 { "glMultiTexCoord4dv", _O(MultiTexCoord4dv) }, 966 { "glMultiTexCoord4fARB", _O(MultiTexCoord4fARB) }, 967 { "glMultiTexCoord4fvARB", _O(MultiTexCoord4fvARB) }, 968 { "glMultiTexCoord4i", _O(MultiTexCoord4i) }, 969 { "glMultiTexCoord4iv", _O(MultiTexCoord4iv) }, 970 { "glMultiTexCoord4s", _O(MultiTexCoord4s) }, 971 { "glMultiTexCoord4sv", _O(MultiTexCoord4sv) }, 972 { "glAttachShader", _O(AttachShader) }, 973 { "glCreateProgram", _O(CreateProgram) }, 974 { "glCreateShader", _O(CreateShader) }, 975 { "glDeleteProgram", _O(DeleteProgram) }, 976 { "glDeleteShader", _O(DeleteShader) }, 977 { "glDetachShader", _O(DetachShader) }, 978 { "glGetAttachedShaders", _O(GetAttachedShaders) }, 979 { "glGetProgramInfoLog", _O(GetProgramInfoLog) }, 980 { "glGetProgramiv", _O(GetProgramiv) }, 981 { "glGetShaderInfoLog", _O(GetShaderInfoLog) }, 982 { "glGetShaderiv", _O(GetShaderiv) }, 983 { "glIsProgram", _O(IsProgram) }, 984 { "glIsShader", _O(IsShader) }, 985 { "glStencilFuncSeparate", _O(StencilFuncSeparate) }, 986 { "glStencilMaskSeparate", _O(StencilMaskSeparate) }, 987 { "glStencilOpSeparate", _O(StencilOpSeparate) }, 988 { "glUniformMatrix2x3fv", _O(UniformMatrix2x3fv) }, 989 { "glUniformMatrix2x4fv", _O(UniformMatrix2x4fv) }, 990 { "glUniformMatrix3x2fv", _O(UniformMatrix3x2fv) }, 991 { "glUniformMatrix3x4fv", _O(UniformMatrix3x4fv) }, 992 { "glUniformMatrix4x2fv", _O(UniformMatrix4x2fv) }, 993 { "glUniformMatrix4x3fv", _O(UniformMatrix4x3fv) }, 994 { "glClearBufferfi", _O(ClearBufferfi) }, 995 { "glClearBufferfv", _O(ClearBufferfv) }, 996 { "glClearBufferiv", _O(ClearBufferiv) }, 997 { "glClearBufferuiv", _O(ClearBufferuiv) }, 998 { "glGetStringi", _O(GetStringi) }, 999 { "glFramebufferTexture", _O(FramebufferTexture) }, 1000 { "glGetBufferParameteri64v", _O(GetBufferParameteri64v) }, 1001 { "glGetInteger64i_v", _O(GetInteger64i_v) }, 1002 { "glLoadTransposeMatrixd", _O(LoadTransposeMatrixd) }, 1003 { "glLoadTransposeMatrixf", _O(LoadTransposeMatrixf) }, 1004 { "glMultTransposeMatrixd", _O(MultTransposeMatrixd) }, 1005 { "glMultTransposeMatrixf", _O(MultTransposeMatrixf) }, 1006 { "glSampleCoverage", _O(SampleCoverage) }, 1007 { "glCompressedTexImage1D", _O(CompressedTexImage1D) }, 1008 { "glCompressedTexImage2D", _O(CompressedTexImage2D) }, 1009 { "glCompressedTexImage3D", _O(CompressedTexImage3D) }, 1010 { "glCompressedTexSubImage1D", _O(CompressedTexSubImage1D) }, 1011 { "glCompressedTexSubImage2D", _O(CompressedTexSubImage2D) }, 1012 { "glCompressedTexSubImage3D", _O(CompressedTexSubImage3D) }, 1013 { "glGetCompressedTexImage", _O(GetCompressedTexImage) }, 1014 { "glDisableVertexAttribArray", _O(DisableVertexAttribArray) }, 1015 { "glEnableVertexAttribArray", _O(EnableVertexAttribArray) }, 1016 { "glGetProgramEnvParameterdvARB", _O(GetProgramEnvParameterdvARB) }, 1017 { "glGetProgramEnvParameterfvARB", _O(GetProgramEnvParameterfvARB) }, 1018 { "glGetProgramLocalParameterdvARB", _O(GetProgramLocalParameterdvARB) }, 1019 { "glGetProgramLocalParameterfvARB", _O(GetProgramLocalParameterfvARB) }, 1020 { "glGetProgramStringARB", _O(GetProgramStringARB) }, 1021 { "glGetProgramivARB", _O(GetProgramivARB) }, 1022 { "glGetVertexAttribdv", _O(GetVertexAttribdv) }, 1023 { "glGetVertexAttribfv", _O(GetVertexAttribfv) }, 1024 { "glGetVertexAttribiv", _O(GetVertexAttribiv) }, 1025 { "glProgramEnvParameter4dARB", _O(ProgramEnvParameter4dARB) }, 1026 { "glProgramEnvParameter4dvARB", _O(ProgramEnvParameter4dvARB) }, 1027 { "glProgramEnvParameter4fARB", _O(ProgramEnvParameter4fARB) }, 1028 { "glProgramEnvParameter4fvARB", _O(ProgramEnvParameter4fvARB) }, 1029 { "glProgramLocalParameter4dARB", _O(ProgramLocalParameter4dARB) }, 1030 { "glProgramLocalParameter4dvARB", _O(ProgramLocalParameter4dvARB) }, 1031 { "glProgramLocalParameter4fARB", _O(ProgramLocalParameter4fARB) }, 1032 { "glProgramLocalParameter4fvARB", _O(ProgramLocalParameter4fvARB) }, 1033 { "glProgramStringARB", _O(ProgramStringARB) }, 1034 { "glVertexAttrib1d", _O(VertexAttrib1d) }, 1035 { "glVertexAttrib1dv", _O(VertexAttrib1dv) }, 1036 { "glVertexAttrib1fARB", _O(VertexAttrib1fARB) }, 1037 { "glVertexAttrib1fvARB", _O(VertexAttrib1fvARB) }, 1038 { "glVertexAttrib1s", _O(VertexAttrib1s) }, 1039 { "glVertexAttrib1sv", _O(VertexAttrib1sv) }, 1040 { "glVertexAttrib2d", _O(VertexAttrib2d) }, 1041 { "glVertexAttrib2dv", _O(VertexAttrib2dv) }, 1042 { "glVertexAttrib2fARB", _O(VertexAttrib2fARB) }, 1043 { "glVertexAttrib2fvARB", _O(VertexAttrib2fvARB) }, 1044 { "glVertexAttrib2s", _O(VertexAttrib2s) }, 1045 { "glVertexAttrib2sv", _O(VertexAttrib2sv) }, 1046 { "glVertexAttrib3d", _O(VertexAttrib3d) }, 1047 { "glVertexAttrib3dv", _O(VertexAttrib3dv) }, 1048 { "glVertexAttrib3fARB", _O(VertexAttrib3fARB) }, 1049 { "glVertexAttrib3fvARB", _O(VertexAttrib3fvARB) }, 1050 { "glVertexAttrib3s", _O(VertexAttrib3s) }, 1051 { "glVertexAttrib3sv", _O(VertexAttrib3sv) }, 1052 { "glVertexAttrib4Nbv", _O(VertexAttrib4Nbv) }, 1053 { "glVertexAttrib4Niv", _O(VertexAttrib4Niv) }, 1054 { "glVertexAttrib4Nsv", _O(VertexAttrib4Nsv) }, 1055 { "glVertexAttrib4Nub", _O(VertexAttrib4Nub) }, 1056 { "glVertexAttrib4Nubv", _O(VertexAttrib4Nubv) }, 1057 { "glVertexAttrib4Nuiv", _O(VertexAttrib4Nuiv) }, 1058 { "glVertexAttrib4Nusv", _O(VertexAttrib4Nusv) }, 1059 { "glVertexAttrib4bv", _O(VertexAttrib4bv) }, 1060 { "glVertexAttrib4d", _O(VertexAttrib4d) }, 1061 { "glVertexAttrib4dv", _O(VertexAttrib4dv) }, 1062 { "glVertexAttrib4fARB", _O(VertexAttrib4fARB) }, 1063 { "glVertexAttrib4fvARB", _O(VertexAttrib4fvARB) }, 1064 { "glVertexAttrib4iv", _O(VertexAttrib4iv) }, 1065 { "glVertexAttrib4s", _O(VertexAttrib4s) }, 1066 { "glVertexAttrib4sv", _O(VertexAttrib4sv) }, 1067 { "glVertexAttrib4ubv", _O(VertexAttrib4ubv) }, 1068 { "glVertexAttrib4uiv", _O(VertexAttrib4uiv) }, 1069 { "glVertexAttrib4usv", _O(VertexAttrib4usv) }, 1070 { "glVertexAttribPointer", _O(VertexAttribPointer) }, 1071 { "glBindBuffer", _O(BindBuffer) }, 1072 { "glBufferData", _O(BufferData) }, 1073 { "glBufferSubData", _O(BufferSubData) }, 1074 { "glDeleteBuffers", _O(DeleteBuffers) }, 1075 { "glGenBuffers", _O(GenBuffers) }, 1076 { "glGetBufferParameteriv", _O(GetBufferParameteriv) }, 1077 { "glGetBufferPointerv", _O(GetBufferPointerv) }, 1078 { "glGetBufferSubData", _O(GetBufferSubData) }, 1079 { "glIsBuffer", _O(IsBuffer) }, 1080 { "glMapBuffer", _O(MapBuffer) }, 1081 { "glUnmapBuffer", _O(UnmapBuffer) }, 1082 { "glBeginQuery", _O(BeginQuery) }, 1083 { "glDeleteQueries", _O(DeleteQueries) }, 1084 { "glEndQuery", _O(EndQuery) }, 1085 { "glGenQueries", _O(GenQueries) }, 1086 { "glGetQueryObjectiv", _O(GetQueryObjectiv) }, 1087 { "glGetQueryObjectuiv", _O(GetQueryObjectuiv) }, 1088 { "glGetQueryiv", _O(GetQueryiv) }, 1089 { "glIsQuery", _O(IsQuery) }, 1090 { "glAttachObjectARB", _O(AttachObjectARB) }, 1091 { "glCompileShader", _O(CompileShader) }, 1092 { "glCreateProgramObjectARB", _O(CreateProgramObjectARB) }, 1093 { "glCreateShaderObjectARB", _O(CreateShaderObjectARB) }, 1094 { "glDeleteObjectARB", _O(DeleteObjectARB) }, 1095 { "glDetachObjectARB", _O(DetachObjectARB) }, 1096 { "glGetActiveUniform", _O(GetActiveUniform) }, 1097 { "glGetAttachedObjectsARB", _O(GetAttachedObjectsARB) }, 1098 { "glGetHandleARB", _O(GetHandleARB) }, 1099 { "glGetInfoLogARB", _O(GetInfoLogARB) }, 1100 { "glGetObjectParameterfvARB", _O(GetObjectParameterfvARB) }, 1101 { "glGetObjectParameterivARB", _O(GetObjectParameterivARB) }, 1102 { "glGetShaderSource", _O(GetShaderSource) }, 1103 { "glGetUniformLocation", _O(GetUniformLocation) }, 1104 { "glGetUniformfv", _O(GetUniformfv) }, 1105 { "glGetUniformiv", _O(GetUniformiv) }, 1106 { "glLinkProgram", _O(LinkProgram) }, 1107 { "glShaderSource", _O(ShaderSource) }, 1108 { "glUniform1f", _O(Uniform1f) }, 1109 { "glUniform1fv", _O(Uniform1fv) }, 1110 { "glUniform1i", _O(Uniform1i) }, 1111 { "glUniform1iv", _O(Uniform1iv) }, 1112 { "glUniform2f", _O(Uniform2f) }, 1113 { "glUniform2fv", _O(Uniform2fv) }, 1114 { "glUniform2i", _O(Uniform2i) }, 1115 { "glUniform2iv", _O(Uniform2iv) }, 1116 { "glUniform3f", _O(Uniform3f) }, 1117 { "glUniform3fv", _O(Uniform3fv) }, 1118 { "glUniform3i", _O(Uniform3i) }, 1119 { "glUniform3iv", _O(Uniform3iv) }, 1120 { "glUniform4f", _O(Uniform4f) }, 1121 { "glUniform4fv", _O(Uniform4fv) }, 1122 { "glUniform4i", _O(Uniform4i) }, 1123 { "glUniform4iv", _O(Uniform4iv) }, 1124 { "glUniformMatrix2fv", _O(UniformMatrix2fv) }, 1125 { "glUniformMatrix3fv", _O(UniformMatrix3fv) }, 1126 { "glUniformMatrix4fv", _O(UniformMatrix4fv) }, 1127 { "glUseProgram", _O(UseProgram) }, 1128 { "glValidateProgram", _O(ValidateProgram) }, 1129 { "glBindAttribLocation", _O(BindAttribLocation) }, 1130 { "glGetActiveAttrib", _O(GetActiveAttrib) }, 1131 { "glGetAttribLocation", _O(GetAttribLocation) }, 1132 { "glDrawBuffers", _O(DrawBuffers) }, 1133 { "glClampColor", _O(ClampColor) }, 1134 { "glDrawArraysInstancedARB", _O(DrawArraysInstancedARB) }, 1135 { "glDrawElementsInstancedARB", _O(DrawElementsInstancedARB) }, 1136 { "glRenderbufferStorageMultisample", _O(RenderbufferStorageMultisample) }, 1137 { "glFramebufferTexture", _O(FramebufferTexture) }, 1138 { "glProgramParameteri", _O(ProgramParameteri) }, 1139 { "glVertexAttribDivisor", _O(VertexAttribDivisor) }, 1140 { "glFlushMappedBufferRange", _O(FlushMappedBufferRange) }, 1141 { "glMapBufferRange", _O(MapBufferRange) }, 1142 { "glTexBuffer", _O(TexBuffer) }, 1143 { "glBindVertexArray", _O(BindVertexArray) }, 1144 { "glGenVertexArrays", _O(GenVertexArrays) }, 1145 { "glCopyBufferSubData", _O(CopyBufferSubData) }, 1146 { "glClientWaitSync", _O(ClientWaitSync) }, 1147 { "glDeleteSync", _O(DeleteSync) }, 1148 { "glFenceSync", _O(FenceSync) }, 1149 { "glGetInteger64v", _O(GetInteger64v) }, 1150 { "glGetSynciv", _O(GetSynciv) }, 1151 { "glIsSync", _O(IsSync) }, 1152 { "glWaitSync", _O(WaitSync) }, 1153 { "glDrawElementsBaseVertex", _O(DrawElementsBaseVertex) }, 1154 { "glDrawElementsInstancedBaseVertex", _O(DrawElementsInstancedBaseVertex) }, 1155 { "glDrawRangeElementsBaseVertex", _O(DrawRangeElementsBaseVertex) }, 1156 { "glMultiDrawElementsBaseVertex", _O(MultiDrawElementsBaseVertex) }, 1157 { "glBlendEquationSeparateiARB", _O(BlendEquationSeparateiARB) }, 1158 { "glBlendEquationiARB", _O(BlendEquationiARB) }, 1159 { "glBlendFuncSeparateiARB", _O(BlendFuncSeparateiARB) }, 1160 { "glBlendFunciARB", _O(BlendFunciARB) }, 1161 { "glBindFragDataLocationIndexed", _O(BindFragDataLocationIndexed) }, 1162 { "glGetFragDataIndex", _O(GetFragDataIndex) }, 1163 { "glBindSampler", _O(BindSampler) }, 1164 { "glDeleteSamplers", _O(DeleteSamplers) }, 1165 { "glGenSamplers", _O(GenSamplers) }, 1166 { "glGetSamplerParameterIiv", _O(GetSamplerParameterIiv) }, 1167 { "glGetSamplerParameterIuiv", _O(GetSamplerParameterIuiv) }, 1168 { "glGetSamplerParameterfv", _O(GetSamplerParameterfv) }, 1169 { "glGetSamplerParameteriv", _O(GetSamplerParameteriv) }, 1170 { "glIsSampler", _O(IsSampler) }, 1171 { "glSamplerParameterIiv", _O(SamplerParameterIiv) }, 1172 { "glSamplerParameterIuiv", _O(SamplerParameterIuiv) }, 1173 { "glSamplerParameterf", _O(SamplerParameterf) }, 1174 { "glSamplerParameterfv", _O(SamplerParameterfv) }, 1175 { "glSamplerParameteri", _O(SamplerParameteri) }, 1176 { "glSamplerParameteriv", _O(SamplerParameteriv) }, 1177 { "glColorP3ui", _O(ColorP3ui) }, 1178 { "glColorP3uiv", _O(ColorP3uiv) }, 1179 { "glColorP4ui", _O(ColorP4ui) }, 1180 { "glColorP4uiv", _O(ColorP4uiv) }, 1181 { "glMultiTexCoordP1ui", _O(MultiTexCoordP1ui) }, 1182 { "glMultiTexCoordP1uiv", _O(MultiTexCoordP1uiv) }, 1183 { "glMultiTexCoordP2ui", _O(MultiTexCoordP2ui) }, 1184 { "glMultiTexCoordP2uiv", _O(MultiTexCoordP2uiv) }, 1185 { "glMultiTexCoordP3ui", _O(MultiTexCoordP3ui) }, 1186 { "glMultiTexCoordP3uiv", _O(MultiTexCoordP3uiv) }, 1187 { "glMultiTexCoordP4ui", _O(MultiTexCoordP4ui) }, 1188 { "glMultiTexCoordP4uiv", _O(MultiTexCoordP4uiv) }, 1189 { "glNormalP3ui", _O(NormalP3ui) }, 1190 { "glNormalP3uiv", _O(NormalP3uiv) }, 1191 { "glSecondaryColorP3ui", _O(SecondaryColorP3ui) }, 1192 { "glSecondaryColorP3uiv", _O(SecondaryColorP3uiv) }, 1193 { "glTexCoordP1ui", _O(TexCoordP1ui) }, 1194 { "glTexCoordP1uiv", _O(TexCoordP1uiv) }, 1195 { "glTexCoordP2ui", _O(TexCoordP2ui) }, 1196 { "glTexCoordP2uiv", _O(TexCoordP2uiv) }, 1197 { "glTexCoordP3ui", _O(TexCoordP3ui) }, 1198 { "glTexCoordP3uiv", _O(TexCoordP3uiv) }, 1199 { "glTexCoordP4ui", _O(TexCoordP4ui) }, 1200 { "glTexCoordP4uiv", _O(TexCoordP4uiv) }, 1201 { "glVertexAttribP1ui", _O(VertexAttribP1ui) }, 1202 { "glVertexAttribP1uiv", _O(VertexAttribP1uiv) }, 1203 { "glVertexAttribP2ui", _O(VertexAttribP2ui) }, 1204 { "glVertexAttribP2uiv", _O(VertexAttribP2uiv) }, 1205 { "glVertexAttribP3ui", _O(VertexAttribP3ui) }, 1206 { "glVertexAttribP3uiv", _O(VertexAttribP3uiv) }, 1207 { "glVertexAttribP4ui", _O(VertexAttribP4ui) }, 1208 { "glVertexAttribP4uiv", _O(VertexAttribP4uiv) }, 1209 { "glVertexP2ui", _O(VertexP2ui) }, 1210 { "glVertexP2uiv", _O(VertexP2uiv) }, 1211 { "glVertexP3ui", _O(VertexP3ui) }, 1212 { "glVertexP3uiv", _O(VertexP3uiv) }, 1213 { "glVertexP4ui", _O(VertexP4ui) }, 1214 { "glVertexP4uiv", _O(VertexP4uiv) }, 1215 { "glBindTransformFeedback", _O(BindTransformFeedback) }, 1216 { "glDeleteTransformFeedbacks", _O(DeleteTransformFeedbacks) }, 1217 { "glDrawTransformFeedback", _O(DrawTransformFeedback) }, 1218 { "glGenTransformFeedbacks", _O(GenTransformFeedbacks) }, 1219 { "glIsTransformFeedback", _O(IsTransformFeedback) }, 1220 { "glPauseTransformFeedback", _O(PauseTransformFeedback) }, 1221 { "glResumeTransformFeedback", _O(ResumeTransformFeedback) }, 1222 { "glClearDepthf", _O(ClearDepthf) }, 1223 { "glDepthRangef", _O(DepthRangef) }, 1224 { "glGetShaderPrecisionFormat", _O(GetShaderPrecisionFormat) }, 1225 { "glReleaseShaderCompiler", _O(ReleaseShaderCompiler) }, 1226 { "glShaderBinary", _O(ShaderBinary) }, 1227 { "glDebugMessageCallback", _O(DebugMessageCallback) }, 1228 { "glDebugMessageControl", _O(DebugMessageControl) }, 1229 { "glDebugMessageInsert", _O(DebugMessageInsert) }, 1230 { "glGetDebugMessageLog", _O(GetDebugMessageLog) }, 1231 { "glPushDebugGroup", _O(PushDebugGroup) }, 1232 { "glPopDebugGroup", _O(PopDebugGroup) }, 1233 { "glGetObjectLabel", _O(GetObjectLabel) }, 1234 { "glGetObjectPtrLabel", _O(GetObjectPtrLabel) }, 1235 { "glObjectLabel", _O(ObjectLabel) }, 1236 { "glObjectPtrLabel", _O(ObjectPtrLabel) }, 1237 { "glGetGraphicsResetStatusARB", _O(GetGraphicsResetStatusARB) }, 1238 { "glGetnColorTableARB", _O(GetnColorTableARB) }, 1239 { "glGetnCompressedTexImageARB", _O(GetnCompressedTexImageARB) }, 1240 { "glGetnConvolutionFilterARB", _O(GetnConvolutionFilterARB) }, 1241 { "glGetnHistogramARB", _O(GetnHistogramARB) }, 1242 { "glGetnMapdvARB", _O(GetnMapdvARB) }, 1243 { "glGetnMapfvARB", _O(GetnMapfvARB) }, 1244 { "glGetnMapivARB", _O(GetnMapivARB) }, 1245 { "glGetnMinmaxARB", _O(GetnMinmaxARB) }, 1246 { "glGetnPixelMapfvARB", _O(GetnPixelMapfvARB) }, 1247 { "glGetnPixelMapuivARB", _O(GetnPixelMapuivARB) }, 1248 { "glGetnPixelMapusvARB", _O(GetnPixelMapusvARB) }, 1249 { "glGetnPolygonStippleARB", _O(GetnPolygonStippleARB) }, 1250 { "glGetnSeparableFilterARB", _O(GetnSeparableFilterARB) }, 1251 { "glGetnTexImageARB", _O(GetnTexImageARB) }, 1252 { "glGetnUniformdvARB", _O(GetnUniformdvARB) }, 1253 { "glGetnUniformfvARB", _O(GetnUniformfvARB) }, 1254 { "glGetnUniformivARB", _O(GetnUniformivARB) }, 1255 { "glGetnUniformuivARB", _O(GetnUniformuivARB) }, 1256 { "glReadnPixelsARB", _O(ReadnPixelsARB) }, 1257 { "glTexStorage1D", _O(TexStorage1D) }, 1258 { "glTexStorage2D", _O(TexStorage2D) }, 1259 { "glTexStorage3D", _O(TexStorage3D) }, 1260 { "glTextureStorage1DEXT", _O(TextureStorage1DEXT) }, 1261 { "glTextureStorage2DEXT", _O(TextureStorage2DEXT) }, 1262 { "glTextureStorage3DEXT", _O(TextureStorage3DEXT) }, 1263 { "glPolygonOffsetEXT", _O(PolygonOffsetEXT) }, 1264 { "glSampleMaskSGIS", _O(SampleMaskSGIS) }, 1265 { "glSamplePatternSGIS", _O(SamplePatternSGIS) }, 1266 { "glColorPointerEXT", _O(ColorPointerEXT) }, 1267 { "glEdgeFlagPointerEXT", _O(EdgeFlagPointerEXT) }, 1268 { "glIndexPointerEXT", _O(IndexPointerEXT) }, 1269 { "glNormalPointerEXT", _O(NormalPointerEXT) }, 1270 { "glTexCoordPointerEXT", _O(TexCoordPointerEXT) }, 1271 { "glVertexPointerEXT", _O(VertexPointerEXT) }, 1272 { "glPointParameterf", _O(PointParameterf) }, 1273 { "glPointParameterfv", _O(PointParameterfv) }, 1274 { "glLockArraysEXT", _O(LockArraysEXT) }, 1275 { "glUnlockArraysEXT", _O(UnlockArraysEXT) }, 1276 { "glSecondaryColor3b", _O(SecondaryColor3b) }, 1277 { "glSecondaryColor3bv", _O(SecondaryColor3bv) }, 1278 { "glSecondaryColor3d", _O(SecondaryColor3d) }, 1279 { "glSecondaryColor3dv", _O(SecondaryColor3dv) }, 1280 { "glSecondaryColor3fEXT", _O(SecondaryColor3fEXT) }, 1281 { "glSecondaryColor3fvEXT", _O(SecondaryColor3fvEXT) }, 1282 { "glSecondaryColor3i", _O(SecondaryColor3i) }, 1283 { "glSecondaryColor3iv", _O(SecondaryColor3iv) }, 1284 { "glSecondaryColor3s", _O(SecondaryColor3s) }, 1285 { "glSecondaryColor3sv", _O(SecondaryColor3sv) }, 1286 { "glSecondaryColor3ub", _O(SecondaryColor3ub) }, 1287 { "glSecondaryColor3ubv", _O(SecondaryColor3ubv) }, 1288 { "glSecondaryColor3ui", _O(SecondaryColor3ui) }, 1289 { "glSecondaryColor3uiv", _O(SecondaryColor3uiv) }, 1290 { "glSecondaryColor3us", _O(SecondaryColor3us) }, 1291 { "glSecondaryColor3usv", _O(SecondaryColor3usv) }, 1292 { "glSecondaryColorPointer", _O(SecondaryColorPointer) }, 1293 { "glMultiDrawArrays", _O(MultiDrawArrays) }, 1294 { "glMultiDrawElementsEXT", _O(MultiDrawElementsEXT) }, 1295 { "glFogCoordPointer", _O(FogCoordPointer) }, 1296 { "glFogCoordd", _O(FogCoordd) }, 1297 { "glFogCoorddv", _O(FogCoorddv) }, 1298 { "glFogCoordfEXT", _O(FogCoordfEXT) }, 1299 { "glFogCoordfvEXT", _O(FogCoordfvEXT) }, 1300 { "glBlendFuncSeparate", _O(BlendFuncSeparate) }, 1301 { "glResizeBuffersMESA", _O(ResizeBuffersMESA) }, 1302 { "glWindowPos2d", _O(WindowPos2d) }, 1303 { "glWindowPos2dv", _O(WindowPos2dv) }, 1304 { "glWindowPos2f", _O(WindowPos2f) }, 1305 { "glWindowPos2fv", _O(WindowPos2fv) }, 1306 { "glWindowPos2i", _O(WindowPos2i) }, 1307 { "glWindowPos2iv", _O(WindowPos2iv) }, 1308 { "glWindowPos2s", _O(WindowPos2s) }, 1309 { "glWindowPos2sv", _O(WindowPos2sv) }, 1310 { "glWindowPos3d", _O(WindowPos3d) }, 1311 { "glWindowPos3dv", _O(WindowPos3dv) }, 1312 { "glWindowPos3f", _O(WindowPos3f) }, 1313 { "glWindowPos3fv", _O(WindowPos3fv) }, 1314 { "glWindowPos3i", _O(WindowPos3i) }, 1315 { "glWindowPos3iv", _O(WindowPos3iv) }, 1316 { "glWindowPos3s", _O(WindowPos3s) }, 1317 { "glWindowPos3sv", _O(WindowPos3sv) }, 1318 { "glWindowPos4dMESA", _O(WindowPos4dMESA) }, 1319 { "glWindowPos4dvMESA", _O(WindowPos4dvMESA) }, 1320 { "glWindowPos4fMESA", _O(WindowPos4fMESA) }, 1321 { "glWindowPos4fvMESA", _O(WindowPos4fvMESA) }, 1322 { "glWindowPos4iMESA", _O(WindowPos4iMESA) }, 1323 { "glWindowPos4ivMESA", _O(WindowPos4ivMESA) }, 1324 { "glWindowPos4sMESA", _O(WindowPos4sMESA) }, 1325 { "glWindowPos4svMESA", _O(WindowPos4svMESA) }, 1326 { "glMultiModeDrawArraysIBM", _O(MultiModeDrawArraysIBM) }, 1327 { "glMultiModeDrawElementsIBM", _O(MultiModeDrawElementsIBM) }, 1328 { "glAreProgramsResidentNV", _O(AreProgramsResidentNV) }, 1329 { "glBindProgramARB", _O(BindProgramARB) }, 1330 { "glDeleteProgramsARB", _O(DeleteProgramsARB) }, 1331 { "glExecuteProgramNV", _O(ExecuteProgramNV) }, 1332 { "glGenProgramsARB", _O(GenProgramsARB) }, 1333 { "glGetProgramParameterdvNV", _O(GetProgramParameterdvNV) }, 1334 { "glGetProgramParameterfvNV", _O(GetProgramParameterfvNV) }, 1335 { "glGetProgramStringNV", _O(GetProgramStringNV) }, 1336 { "glGetProgramivNV", _O(GetProgramivNV) }, 1337 { "glGetTrackMatrixivNV", _O(GetTrackMatrixivNV) }, 1338 { "glGetVertexAttribPointerv", _O(GetVertexAttribPointerv) }, 1339 { "glGetVertexAttribdvNV", _O(GetVertexAttribdvNV) }, 1340 { "glGetVertexAttribfvNV", _O(GetVertexAttribfvNV) }, 1341 { "glGetVertexAttribivNV", _O(GetVertexAttribivNV) }, 1342 { "glIsProgram", _O(IsProgram) }, 1343 { "glLoadProgramNV", _O(LoadProgramNV) }, 1344 { "glProgramParameters4dvNV", _O(ProgramParameters4dvNV) }, 1345 { "glProgramParameters4fvNV", _O(ProgramParameters4fvNV) }, 1346 { "glRequestResidentProgramsNV", _O(RequestResidentProgramsNV) }, 1347 { "glTrackMatrixNV", _O(TrackMatrixNV) }, 1348 { "glVertexAttrib1dNV", _O(VertexAttrib1dNV) }, 1349 { "glVertexAttrib1dvNV", _O(VertexAttrib1dvNV) }, 1350 { "glVertexAttrib1fNV", _O(VertexAttrib1fNV) }, 1351 { "glVertexAttrib1fvNV", _O(VertexAttrib1fvNV) }, 1352 { "glVertexAttrib1sNV", _O(VertexAttrib1sNV) }, 1353 { "glVertexAttrib1svNV", _O(VertexAttrib1svNV) }, 1354 { "glVertexAttrib2dNV", _O(VertexAttrib2dNV) }, 1355 { "glVertexAttrib2dvNV", _O(VertexAttrib2dvNV) }, 1356 { "glVertexAttrib2fNV", _O(VertexAttrib2fNV) }, 1357 { "glVertexAttrib2fvNV", _O(VertexAttrib2fvNV) }, 1358 { "glVertexAttrib2sNV", _O(VertexAttrib2sNV) }, 1359 { "glVertexAttrib2svNV", _O(VertexAttrib2svNV) }, 1360 { "glVertexAttrib3dNV", _O(VertexAttrib3dNV) }, 1361 { "glVertexAttrib3dvNV", _O(VertexAttrib3dvNV) }, 1362 { "glVertexAttrib3fNV", _O(VertexAttrib3fNV) }, 1363 { "glVertexAttrib3fvNV", _O(VertexAttrib3fvNV) }, 1364 { "glVertexAttrib3sNV", _O(VertexAttrib3sNV) }, 1365 { "glVertexAttrib3svNV", _O(VertexAttrib3svNV) }, 1366 { "glVertexAttrib4dNV", _O(VertexAttrib4dNV) }, 1367 { "glVertexAttrib4dvNV", _O(VertexAttrib4dvNV) }, 1368 { "glVertexAttrib4fNV", _O(VertexAttrib4fNV) }, 1369 { "glVertexAttrib4fvNV", _O(VertexAttrib4fvNV) }, 1370 { "glVertexAttrib4sNV", _O(VertexAttrib4sNV) }, 1371 { "glVertexAttrib4svNV", _O(VertexAttrib4svNV) }, 1372 { "glVertexAttrib4ubNV", _O(VertexAttrib4ubNV) }, 1373 { "glVertexAttrib4ubvNV", _O(VertexAttrib4ubvNV) }, 1374 { "glVertexAttribPointerNV", _O(VertexAttribPointerNV) }, 1375 { "glVertexAttribs1dvNV", _O(VertexAttribs1dvNV) }, 1376 { "glVertexAttribs1fvNV", _O(VertexAttribs1fvNV) }, 1377 { "glVertexAttribs1svNV", _O(VertexAttribs1svNV) }, 1378 { "glVertexAttribs2dvNV", _O(VertexAttribs2dvNV) }, 1379 { "glVertexAttribs2fvNV", _O(VertexAttribs2fvNV) }, 1380 { "glVertexAttribs2svNV", _O(VertexAttribs2svNV) }, 1381 { "glVertexAttribs3dvNV", _O(VertexAttribs3dvNV) }, 1382 { "glVertexAttribs3fvNV", _O(VertexAttribs3fvNV) }, 1383 { "glVertexAttribs3svNV", _O(VertexAttribs3svNV) }, 1384 { "glVertexAttribs4dvNV", _O(VertexAttribs4dvNV) }, 1385 { "glVertexAttribs4fvNV", _O(VertexAttribs4fvNV) }, 1386 { "glVertexAttribs4svNV", _O(VertexAttribs4svNV) }, 1387 { "glVertexAttribs4ubvNV", _O(VertexAttribs4ubvNV) }, 1388 { "glAlphaFragmentOp1ATI", _O(AlphaFragmentOp1ATI) }, 1389 { "glAlphaFragmentOp2ATI", _O(AlphaFragmentOp2ATI) }, 1390 { "glAlphaFragmentOp3ATI", _O(AlphaFragmentOp3ATI) }, 1391 { "glBeginFragmentShaderATI", _O(BeginFragmentShaderATI) }, 1392 { "glBindFragmentShaderATI", _O(BindFragmentShaderATI) }, 1393 { "glColorFragmentOp1ATI", _O(ColorFragmentOp1ATI) }, 1394 { "glColorFragmentOp2ATI", _O(ColorFragmentOp2ATI) }, 1395 { "glColorFragmentOp3ATI", _O(ColorFragmentOp3ATI) }, 1396 { "glDeleteFragmentShaderATI", _O(DeleteFragmentShaderATI) }, 1397 { "glEndFragmentShaderATI", _O(EndFragmentShaderATI) }, 1398 { "glGenFragmentShadersATI", _O(GenFragmentShadersATI) }, 1399 { "glPassTexCoordATI", _O(PassTexCoordATI) }, 1400 { "glSampleMapATI", _O(SampleMapATI) }, 1401 { "glSetFragmentShaderConstantATI", _O(SetFragmentShaderConstantATI) }, 1402 { "glPointParameteri", _O(PointParameteri) }, 1403 { "glPointParameteriv", _O(PointParameteriv) }, 1404 { "glActiveStencilFaceEXT", _O(ActiveStencilFaceEXT) }, 1405 { "glDeleteVertexArrays", _O(DeleteVertexArrays) }, 1406 { "glIsVertexArray", _O(IsVertexArray) }, 1407 { "glGetProgramNamedParameterdvNV", _O(GetProgramNamedParameterdvNV) }, 1408 { "glGetProgramNamedParameterfvNV", _O(GetProgramNamedParameterfvNV) }, 1409 { "glProgramNamedParameter4dNV", _O(ProgramNamedParameter4dNV) }, 1410 { "glProgramNamedParameter4dvNV", _O(ProgramNamedParameter4dvNV) }, 1411 { "glProgramNamedParameter4fNV", _O(ProgramNamedParameter4fNV) }, 1412 { "glProgramNamedParameter4fvNV", _O(ProgramNamedParameter4fvNV) }, 1413 { "glPrimitiveRestartIndex", _O(PrimitiveRestartIndex) }, 1414 { "glPrimitiveRestartNV", _O(PrimitiveRestartNV) }, 1415 { "glDepthBoundsEXT", _O(DepthBoundsEXT) }, 1416 { "glBlendEquationSeparate", _O(BlendEquationSeparate) }, 1417 { "glBindFramebuffer", _O(BindFramebuffer) }, 1418 { "glBindRenderbuffer", _O(BindRenderbuffer) }, 1419 { "glCheckFramebufferStatus", _O(CheckFramebufferStatus) }, 1420 { "glDeleteFramebuffers", _O(DeleteFramebuffers) }, 1421 { "glDeleteRenderbuffers", _O(DeleteRenderbuffers) }, 1422 { "glFramebufferRenderbuffer", _O(FramebufferRenderbuffer) }, 1423 { "glFramebufferTexture1D", _O(FramebufferTexture1D) }, 1424 { "glFramebufferTexture2D", _O(FramebufferTexture2D) }, 1425 { "glFramebufferTexture3D", _O(FramebufferTexture3D) }, 1426 { "glGenFramebuffers", _O(GenFramebuffers) }, 1427 { "glGenRenderbuffers", _O(GenRenderbuffers) }, 1428 { "glGenerateMipmap", _O(GenerateMipmap) }, 1429 { "glGetFramebufferAttachmentParameteriv", _O(GetFramebufferAttachmentParameteriv) }, 1430 { "glGetRenderbufferParameteriv", _O(GetRenderbufferParameteriv) }, 1431 { "glIsFramebuffer", _O(IsFramebuffer) }, 1432 { "glIsRenderbuffer", _O(IsRenderbuffer) }, 1433 { "glRenderbufferStorage", _O(RenderbufferStorage) }, 1434 { "glBlitFramebuffer", _O(BlitFramebuffer) }, 1435 { "glBufferParameteriAPPLE", _O(BufferParameteriAPPLE) }, 1436 { "glFlushMappedBufferRangeAPPLE", _O(FlushMappedBufferRangeAPPLE) }, 1437 { "glBindFragDataLocation", _O(BindFragDataLocation) }, 1438 { "glGetFragDataLocation", _O(GetFragDataLocation) }, 1439 { "glGetUniformuiv", _O(GetUniformuiv) }, 1440 { "glGetVertexAttribIiv", _O(GetVertexAttribIiv) }, 1441 { "glGetVertexAttribIuiv", _O(GetVertexAttribIuiv) }, 1442 { "glUniform1ui", _O(Uniform1ui) }, 1443 { "glUniform1uiv", _O(Uniform1uiv) }, 1444 { "glUniform2ui", _O(Uniform2ui) }, 1445 { "glUniform2uiv", _O(Uniform2uiv) }, 1446 { "glUniform3ui", _O(Uniform3ui) }, 1447 { "glUniform3uiv", _O(Uniform3uiv) }, 1448 { "glUniform4ui", _O(Uniform4ui) }, 1449 { "glUniform4uiv", _O(Uniform4uiv) }, 1450 { "glVertexAttribI1iEXT", _O(VertexAttribI1iEXT) }, 1451 { "glVertexAttribI1iv", _O(VertexAttribI1iv) }, 1452 { "glVertexAttribI1uiEXT", _O(VertexAttribI1uiEXT) }, 1453 { "glVertexAttribI1uiv", _O(VertexAttribI1uiv) }, 1454 { "glVertexAttribI2iEXT", _O(VertexAttribI2iEXT) }, 1455 { "glVertexAttribI2ivEXT", _O(VertexAttribI2ivEXT) }, 1456 { "glVertexAttribI2uiEXT", _O(VertexAttribI2uiEXT) }, 1457 { "glVertexAttribI2uivEXT", _O(VertexAttribI2uivEXT) }, 1458 { "glVertexAttribI3iEXT", _O(VertexAttribI3iEXT) }, 1459 { "glVertexAttribI3ivEXT", _O(VertexAttribI3ivEXT) }, 1460 { "glVertexAttribI3uiEXT", _O(VertexAttribI3uiEXT) }, 1461 { "glVertexAttribI3uivEXT", _O(VertexAttribI3uivEXT) }, 1462 { "glVertexAttribI4bv", _O(VertexAttribI4bv) }, 1463 { "glVertexAttribI4iEXT", _O(VertexAttribI4iEXT) }, 1464 { "glVertexAttribI4ivEXT", _O(VertexAttribI4ivEXT) }, 1465 { "glVertexAttribI4sv", _O(VertexAttribI4sv) }, 1466 { "glVertexAttribI4ubv", _O(VertexAttribI4ubv) }, 1467 { "glVertexAttribI4uiEXT", _O(VertexAttribI4uiEXT) }, 1468 { "glVertexAttribI4uivEXT", _O(VertexAttribI4uivEXT) }, 1469 { "glVertexAttribI4usv", _O(VertexAttribI4usv) }, 1470 { "glVertexAttribIPointer", _O(VertexAttribIPointer) }, 1471 { "glFramebufferTextureLayer", _O(FramebufferTextureLayer) }, 1472 { "glColorMaski", _O(ColorMaski) }, 1473 { "glDisablei", _O(Disablei) }, 1474 { "glEnablei", _O(Enablei) }, 1475 { "glGetBooleani_v", _O(GetBooleani_v) }, 1476 { "glGetIntegeri_v", _O(GetIntegeri_v) }, 1477 { "glIsEnabledi", _O(IsEnabledi) }, 1478 { "glClearColorIiEXT", _O(ClearColorIiEXT) }, 1479 { "glClearColorIuiEXT", _O(ClearColorIuiEXT) }, 1480 { "glGetTexParameterIiv", _O(GetTexParameterIiv) }, 1481 { "glGetTexParameterIuiv", _O(GetTexParameterIuiv) }, 1482 { "glTexParameterIiv", _O(TexParameterIiv) }, 1483 { "glTexParameterIuiv", _O(TexParameterIuiv) }, 1484 { "glBeginConditionalRender", _O(BeginConditionalRender) }, 1485 { "glEndConditionalRender", _O(EndConditionalRender) }, 1486 { "glBeginTransformFeedback", _O(BeginTransformFeedback) }, 1487 { "glBindBufferBase", _O(BindBufferBase) }, 1488 { "glBindBufferOffsetEXT", _O(BindBufferOffsetEXT) }, 1489 { "glBindBufferRange", _O(BindBufferRange) }, 1490 { "glEndTransformFeedback", _O(EndTransformFeedback) }, 1491 { "glGetTransformFeedbackVarying", _O(GetTransformFeedbackVarying) }, 1492 { "glTransformFeedbackVaryings", _O(TransformFeedbackVaryings) }, 1493 { "glProvokingVertex", _O(ProvokingVertex) }, 1494 { "glGetObjectParameterivAPPLE", _O(GetObjectParameterivAPPLE) }, 1495 { "glObjectPurgeableAPPLE", _O(ObjectPurgeableAPPLE) }, 1496 { "glObjectUnpurgeableAPPLE", _O(ObjectUnpurgeableAPPLE) }, 1497 { "glActiveProgramEXT", _O(ActiveProgramEXT) }, 1498 { "glCreateShaderProgramEXT", _O(CreateShaderProgramEXT) }, 1499 { "glUseShaderProgramEXT", _O(UseShaderProgramEXT) }, 1500 { "glTextureBarrierNV", _O(TextureBarrierNV) }, 1501 { "glStencilFuncSeparateATI", _O(StencilFuncSeparateATI) }, 1502 { "glProgramEnvParameters4fvEXT", _O(ProgramEnvParameters4fvEXT) }, 1503 { "glProgramLocalParameters4fvEXT", _O(ProgramLocalParameters4fvEXT) }, 1504 { "glGetQueryObjecti64v", _O(GetQueryObjecti64v) }, 1505 { "glGetQueryObjectui64v", _O(GetQueryObjectui64v) }, 1506 { "glEGLImageTargetRenderbufferStorageOES", _O(EGLImageTargetRenderbufferStorageOES) }, 1507 { "glEGLImageTargetTexture2DOES", _O(EGLImageTargetTexture2DOES) }, 1508 { NULL, 0 } 1509 }; 1510 1511 #ifdef GLX_INDIRECT_RENDERING 1512 extern "C" { 1513 GLAPI GLboolean GLAPIENTRY 1514 glAreTexturesResidentEXT(GLsizei n, const GLuint *textures, 1515 GLboolean *residences) 1516 { 1517 (void) n; 1518 (void) textures; 1519 (void) residences; 1520 return GL_FALSE; 1521 } 1522 1523 GLAPI void GLAPIENTRY 1524 glDeleteTexturesEXT(GLsizei n, const GLuint *textures) 1525 { 1526 (void) n; 1527 (void) textures; 1528 } 1529 1530 GLAPI void GLAPIENTRY 1531 glGenTexturesEXT(GLsizei n, GLuint *textures) 1532 { 1533 (void) n; 1534 (void) textures; 1535 } 1536 1537 GLAPI GLboolean GLAPIENTRY 1538 glIsTextureEXT(GLuint texture) 1539 { 1540 (void) texture; 1541 return GL_FALSE; 1542 } 1543 1544 GLAPI void GLAPIENTRY 1545 glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table) 1546 { 1547 (void) target; 1548 (void) format; 1549 (void) type; 1550 (void) table; 1551 } 1552 1553 GLAPI void GLAPIENTRY 1554 glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params) 1555 { 1556 (void) target; 1557 (void) pname; 1558 (void) params; 1559 } 1560 1561 GLAPI void GLAPIENTRY 1562 glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params) 1563 { 1564 (void) target; 1565 (void) pname; 1566 (void) params; 1567 } 1568 1569 void GLAPIENTRY 1570 gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type, GLvoid * image) 1571 { 1572 (void) target; 1573 (void) format; 1574 (void) type; 1575 (void) image; 1576 } 1577 1578 void GLAPIENTRY 1579 gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params) 1580 { 1581 (void) target; 1582 (void) pname; 1583 (void) params; 1584 } 1585 1586 void GLAPIENTRY 1587 gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params) 1588 { 1589 (void) target; 1590 (void) pname; 1591 (void) params; 1592 } 1593 1594 void GLAPIENTRY 1595 gl_dispatch_stub_359(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span) 1596 { 1597 (void) target; 1598 (void) format; 1599 (void) type; 1600 (void) row; 1601 (void) column; 1602 (void) span; 1603 } 1604 1605 void GLAPIENTRY 1606 gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) 1607 { 1608 (void) target; 1609 (void) reset; 1610 (void) format; 1611 (void) type; 1612 (void) values; 1613 } 1614 1615 void GLAPIENTRY 1616 gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params) 1617 { 1618 (void) target; 1619 (void) pname; 1620 (void) params; 1621 } 1622 1623 void GLAPIENTRY 1624 gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params) 1625 { 1626 (void) target; 1627 (void) pname; 1628 (void) params; 1629 } 1630 1631 void GLAPIENTRY 1632 gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) 1633 { 1634 (void) target; 1635 (void) reset; 1636 (void) format; 1637 (void) type; 1638 (void) values; 1639 } 1640 1641 void GLAPIENTRY 1642 gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params) 1643 { 1644 (void) target; 1645 (void) pname; 1646 (void) params; 1647 } 1648 1649 void GLAPIENTRY 1650 gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params) 1651 { 1652 (void) target; 1653 (void) pname; 1654 (void) params; 1655 } 1656 1657 } 1658 #endif 1659