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