summaryrefslogtreecommitdiff
path: root/common/opengl.h
blob: 7964a50607bee3b6586fd0ac6d481c087381e035 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
#ifndef _OPENGL_H_
#define _OPENGL_H_

#ifdef LC_WINDOWS
#include "stdafx.h"
#endif

#include <GL/gl.h>
#include <GL/glu.h>

#ifdef LC_LINUX
#include <GL/glx.h>
#include "linux_gl.h"
#endif 


bool InitializeOpenGL (const char* libname);
void ShutdownOpenGL ();


// =============================================================================
// OpenGL functions typedefs

// Miscellaneous
typedef void (*PFNGLCLEARINDEX) (GLfloat c);
typedef void (*PFNGLCLEARCOLOR) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void (*PFNGLCLEAR) (GLbitfield mask);
typedef void (*PFNGLINDEXMASK) (GLuint mask);
typedef void (*PFNGLCOLORMASK) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
typedef void (*PFNGLALPHAFUNC) (GLenum func, GLclampf ref);
typedef void (*PFNGLBLENDFUNC) (GLenum sfactor, GLenum dfactor);
typedef void (*PFNGLLOGICOP) (GLenum opcode);
typedef void (*PFNGLCULLFACE) (GLenum mode);
typedef void (*PFNGLFRONTFACE) (GLenum mode);
typedef void (*PFNGLPOINTSIZE) (GLfloat size);
typedef void (*PFNGLLINEWIDTH) (GLfloat width);
typedef void (*PFNGLLINESTIPPLE) (GLint factor, GLushort pattern);
typedef void (*PFNGLPOLYGONMODE) (GLenum face, GLenum mode);
typedef void (*PFNGLPOLYGONOFFSET) (GLfloat factor, GLfloat units);
typedef void (*PFNGLPOLYGONSTIPPLE) (const GLubyte *mask);
typedef void (*PFNGLGETPOLYGONSTIPPLE) (GLubyte *mask);
typedef void (*PFNGLEDGEFLAG) (GLboolean flag);
typedef void (*PFNGLEDGEFLAGV) (const GLboolean *flag);
typedef void (*PFNGLSCISSOR) (GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLCLIPPLANE) (GLenum plane, const GLdouble *equation);
typedef void (*PFNGLGETCLIPPLANE) (GLenum plane, GLdouble *equation);
typedef void (*PFNGLDRAWBUFFER) (GLenum mode);
typedef void (*PFNGLREADBUFFER) (GLenum mode);
typedef void (*PFNGLENABLE) (GLenum cap);
typedef void (*PFNGLDISABLE) (GLenum cap);
typedef GLboolean (*PFNGLISENABLED) (GLenum cap);
typedef void (*PFNGLENABLECLIENTSTATE) (GLenum cap);
typedef void (*PFNGLDISABLECLIENTSTATE) (GLenum cap);
typedef void (*PFNGLGETBOOLEANV) (GLenum pname, GLboolean *params);
typedef void (*PFNGLGETDOUBLEV) (GLenum pname, GLdouble *params);
typedef void (*PFNGLGETFLOATV) (GLenum pname, GLfloat *params);
typedef void (*PFNGLGETINTEGERV) (GLenum pname, GLint *params);
typedef void (*PFNGLPUSHATTRIB) (GLbitfield mask);
typedef void (*PFNGLPOPATTRIB) (void);
typedef void (*PFNGLPUSHCLIENTATTRIB) (GLbitfield mask);
typedef void (*PFNGLPOPCLIENTATTRIB) (void);
typedef GLint (*PFNGLRENDERMODE) (GLenum mode);
typedef GLenum (*PFNGLGETERROR) (void);
typedef const GLubyte* (*PFNGLGETSTRING) (GLenum name);
typedef void (*PFNGLFINISH) (void);
typedef void (*PFNGLFLUSH) (void);
typedef void (*PFNGLHINT) (GLenum target, GLenum mode);

// Depth Buffer
typedef void (*PFNGLCLEARDEPTH) (GLclampd depth);
typedef void (*PFNGLDEPTHFUNC) (GLenum func);
typedef void (*PFNGLDEPTHMASK) (GLboolean flag);
typedef void (*PFNGLDEPTHRANGE) (GLclampd near_val, GLclampd far_val);

// Accumulation Buffer
typedef void (*PFNGLCLEARACCUM) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
typedef void (*PFNGLACCUM) (GLenum op, GLfloat value);

// Transformation
typedef void (*PFNGLMATRIXMODE) (GLenum mode);
typedef void (*PFNGLORTHO) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val);
typedef void (*PFNGLFRUSTUM) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val);
typedef void (*PFNGLVIEWPORT) (GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLPUSHMATRIX) (void);
typedef void (*PFNGLPOPMATRIX) (void);
typedef void (*PFNGLLOADIDENTITY) (void);
typedef void (*PFNGLLOADMATRIXD) (const GLdouble *m);
typedef void (*PFNGLLOADMATRIXF) (const GLfloat *m);
typedef void (*PFNGLMULTMATRIXD) (const GLdouble *m);
typedef void (*PFNGLMULTMATRIXF) (const GLfloat *m);
typedef void (*PFNGLROTATED) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLROTATEF) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLSCALED) (GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLSCALEF) (GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLTRANSLATED) (GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLTRANSLATEF) (GLfloat x, GLfloat y, GLfloat z);

// Display Lists
typedef GLboolean (*PFNGLISLIST) (GLuint list);
typedef void (*PFNGLDELETELISTS) (GLuint list, GLsizei range);
typedef GLuint (*PFNGLGENLISTS) (GLsizei range);
typedef void (*PFNGLNEWLIST) (GLuint list, GLenum mode);
typedef void (*PFNGLENDLIST) (void);
typedef void (*PFNGLCALLLIST) (GLuint list);
typedef void (*PFNGLCALLLISTS) (GLsizei n, GLenum type, const GLvoid *lists);
typedef void (*PFNGLLISTBASE) (GLuint base);

// Drawing Functions
typedef void (*PFNGLBEGIN) (GLenum mode);
typedef void (*PFNGLEND) (void);
typedef void (*PFNGLVERTEX2D) (GLdouble x, GLdouble y);
typedef void (*PFNGLVERTEX2F) (GLfloat x, GLfloat y);
typedef void (*PFNGLVERTEX2I) (GLint x, GLint y);
typedef void (*PFNGLVERTEX2S) (GLshort x, GLshort y);
typedef void (*PFNGLVERTEX3D) (GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLVERTEX3F) (GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLVERTEX3I) (GLint x, GLint y, GLint z);
typedef void (*PFNGLVERTEX3S) (GLshort x, GLshort y, GLshort z);
typedef void (*PFNGLVERTEX4D) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (*PFNGLVERTEX4F) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (*PFNGLVERTEX4I) (GLint x, GLint y, GLint z, GLint w);
typedef void (*PFNGLVERTEX4S) (GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (*PFNGLVERTEX2DV) (const GLdouble *v);
typedef void (*PFNGLVERTEX2FV) (const GLfloat *v);
typedef void (*PFNGLVERTEX2IV) (const GLint *v);
typedef void (*PFNGLVERTEX2SV) (const GLshort *v);
typedef void (*PFNGLVERTEX3DV) (const GLdouble *v);
typedef void (*PFNGLVERTEX3FV) (const GLfloat *v);
typedef void (*PFNGLVERTEX3IV) (const GLint *v);
typedef void (*PFNGLVERTEX3SV) (const GLshort *v);
typedef void (*PFNGLVERTEX4DV) (const GLdouble *v);
typedef void (*PFNGLVERTEX4FV) (const GLfloat *v);
typedef void (*PFNGLVERTEX4IV) (const GLint *v);
typedef void (*PFNGLVERTEX4SV) (const GLshort *v);
typedef void (*PFNGLNORMAL3B) (GLbyte nx, GLbyte ny, GLbyte nz);
typedef void (*PFNGLNORMAL3D) (GLdouble nx, GLdouble ny, GLdouble nz);
typedef void (*PFNGLNORMAL3F) (GLfloat nx, GLfloat ny, GLfloat nz);
typedef void (*PFNGLNORMAL3I) (GLint nx, GLint ny, GLint nz);
typedef void (*PFNGLNORMAL3S) (GLshort nx, GLshort ny, GLshort nz);
typedef void (*PFNGLNORMAL3BV) (const GLbyte *v);
typedef void (*PFNGLNORMAL3DV) (const GLdouble *v);
typedef void (*PFNGLNORMAL3FV) (const GLfloat *v);
typedef void (*PFNGLNORMAL3IV) (const GLint *v);
typedef void (*PFNGLNORMAL3SV) (const GLshort *v);
typedef void (*PFNGLINDEXD) (GLdouble c);
typedef void (*PFNGLINDEXF) (GLfloat c);
typedef void (*PFNGLINDEXI) (GLint c);
typedef void (*PFNGLINDEXS) (GLshort c);
typedef void (*PFNGLINDEXUB) (GLubyte c);
typedef void (*PFNGLINDEXDV) (const GLdouble *c);
typedef void (*PFNGLINDEXFV) (const GLfloat *c);
typedef void (*PFNGLINDEXIV) (const GLint *c);
typedef void (*PFNGLINDEXSV) (const GLshort *c);
typedef void (*PFNGLINDEXUBV) (const GLubyte *c);
typedef void (*PFNGLCOLOR3B) (GLbyte red, GLbyte green, GLbyte blue);
typedef void (*PFNGLCOLOR3D) (GLdouble red, GLdouble green, GLdouble blue);
typedef void (*PFNGLCOLOR3F) (GLfloat red, GLfloat green, GLfloat blue);
typedef void (*PFNGLCOLOR3I) (GLint red, GLint green, GLint blue);
typedef void (*PFNGLCOLOR3S) (GLshort red, GLshort green, GLshort blue);
typedef void (*PFNGLCOLOR3UB) (GLubyte red, GLubyte green, GLubyte blue);
typedef void (*PFNGLCOLOR3UI) (GLuint red, GLuint green, GLuint blue);
typedef void (*PFNGLCOLOR3US) (GLushort red, GLushort green, GLushort blue);
typedef void (*PFNGLCOLOR4B) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
typedef void (*PFNGLCOLOR4D) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
typedef void (*PFNGLCOLOR4F) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
typedef void (*PFNGLCOLOR4I) (GLint red, GLint green, GLint blue, GLint alpha);
typedef void (*PFNGLCOLOR4S) (GLshort red, GLshort green, GLshort blue, GLshort alpha);
typedef void (*PFNGLCOLOR4UB) (GLubyte red, GLubyte green,GLubyte blue, GLubyte alpha);
typedef void (*PFNGLCOLOR4UI) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
typedef void (*PFNGLCOLOR4US) (GLushort red, GLushort green, GLushort blue, GLushort alpha);
typedef void (*PFNGLCOLOR3BV) (const GLbyte *v);
typedef void (*PFNGLCOLOR3DV) (const GLdouble *v);
typedef void (*PFNGLCOLOR3FV) (const GLfloat *v);
typedef void (*PFNGLCOLOR3IV) (const GLint *v);
typedef void (*PFNGLCOLOR3SV) (const GLshort *v);
typedef void (*PFNGLCOLOR3UBV) (const GLubyte *v);
typedef void (*PFNGLCOLOR3UIV) (const GLuint *v);
typedef void (*PFNGLCOLOR3USV) (const GLushort *v);
typedef void (*PFNGLCOLOR4BV) (const GLbyte *v);
typedef void (*PFNGLCOLOR4DV) (const GLdouble *v);
typedef void (*PFNGLCOLOR4FV) (const GLfloat *v);
typedef void (*PFNGLCOLOR4IV) (const GLint *v);
typedef void (*PFNGLCOLOR4SV) (const GLshort *v);
typedef void (*PFNGLCOLOR4UBV) (const GLubyte *v);
typedef void (*PFNGLCOLOR4UIV) (const GLuint *v);
typedef void (*PFNGLCOLOR4USV) (const GLushort *v);
typedef void (*PFNGLTEXCOORD1D) (GLdouble s);
typedef void (*PFNGLTEXCOORD1F) (GLfloat s);
typedef void (*PFNGLTEXCOORD1I) (GLint s);
typedef void (*PFNGLTEXCOORD1S) (GLshort s);
typedef void (*PFNGLTEXCOORD2D) (GLdouble s, GLdouble t);
typedef void (*PFNGLTEXCOORD2F) (GLfloat s, GLfloat t);
typedef void (*PFNGLTEXCOORD2I) (GLint s, GLint t);
typedef void (*PFNGLTEXCOORD2S) (GLshort s, GLshort t);
typedef void (*PFNGLTEXCOORD3D) (GLdouble s, GLdouble t, GLdouble r);
typedef void (*PFNGLTEXCOORD3F) (GLfloat s, GLfloat t, GLfloat r);
typedef void (*PFNGLTEXCOORD3I) (GLint s, GLint t, GLint r);
typedef void (*PFNGLTEXCOORD3S) (GLshort s, GLshort t, GLshort r);
typedef void (*PFNGLTEXCOORD4D) (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (*PFNGLTEXCOORD4F) (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (*PFNGLTEXCOORD4I) (GLint s, GLint t, GLint r, GLint q);
typedef void (*PFNGLTEXCOORD4S) (GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (*PFNGLTEXCOORD1DV) (const GLdouble *v);
typedef void (*PFNGLTEXCOORD1FV) (const GLfloat *v);
typedef void (*PFNGLTEXCOORD1IV) (const GLint *v);
typedef void (*PFNGLTEXCOORD1SV) (const GLshort *v);
typedef void (*PFNGLTEXCOORD2DV) (const GLdouble *v);
typedef void (*PFNGLTEXCOORD2FV) (const GLfloat *v);
typedef void (*PFNGLTEXCOORD2IV) (const GLint *v);
typedef void (*PFNGLTEXCOORD2SV) (const GLshort *v);
typedef void (*PFNGLTEXCOORD3DV) (const GLdouble *v);
typedef void (*PFNGLTEXCOORD3FV) (const GLfloat *v);
typedef void (*PFNGLTEXCOORD3IV) (const GLint *v);
typedef void (*PFNGLTEXCOORD3SV) (const GLshort *v);
typedef void (*PFNGLTEXCOORD4DV) (const GLdouble *v);
typedef void (*PFNGLTEXCOORD4FV) (const GLfloat *v);
typedef void (*PFNGLTEXCOORD4IV) (const GLint *v);
typedef void (*PFNGLTEXCOORD4SV) (const GLshort *v);
typedef void (*PFNGLRASTERPOS2D) (GLdouble x, GLdouble y);
typedef void (*PFNGLRASTERPOS2F) (GLfloat x, GLfloat y);
typedef void (*PFNGLRASTERPOS2I) (GLint x, GLint y);
typedef void (*PFNGLRASTERPOS2S) (GLshort x, GLshort y);
typedef void (*PFNGLRASTERPOS3D) (GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLRASTERPOS3F) (GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLRASTERPOS3I) (GLint x, GLint y, GLint z);
typedef void (*PFNGLRASTERPOS3S) (GLshort x, GLshort y, GLshort z);
typedef void (*PFNGLRASTERPOS4D) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (*PFNGLRASTERPOS4F) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (*PFNGLRASTERPOS4I) (GLint x, GLint y, GLint z, GLint w);
typedef void (*PFNGLRASTERPOS4S) (GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (*PFNGLRASTERPOS2DV) (const GLdouble *v);
typedef void (*PFNGLRASTERPOS2FV) (const GLfloat *v);
typedef void (*PFNGLRASTERPOS2IV) (const GLint *v);
typedef void (*PFNGLRASTERPOS2SV) (const GLshort *v);
typedef void (*PFNGLRASTERPOS3DV) (const GLdouble *v);
typedef void (*PFNGLRASTERPOS3FV) (const GLfloat *v);
typedef void (*PFNGLRASTERPOS3IV) (const GLint *v);
typedef void (*PFNGLRASTERPOS3SV) (const GLshort *v);
typedef void (*PFNGLRASTERPOS4DV) (const GLdouble *v);
typedef void (*PFNGLRASTERPOS4FV) (const GLfloat *v);
typedef void (*PFNGLRASTERPOS4IV) (const GLint *v);
typedef void (*PFNGLRASTERPOS4SV) (const GLshort *v);
typedef void (*PFNGLRECTD) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
typedef void (*PFNGLRECTF) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
typedef void (*PFNGLRECTI) (GLint x1, GLint y1, GLint x2, GLint y2);
typedef void (*PFNGLRECTS) (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
typedef void (*PFNGLRECTDV) (const GLdouble *v1, const GLdouble *v2);
typedef void (*PFNGLRECTFV) (const GLfloat *v1, const GLfloat *v2);
typedef void (*PFNGLRECTIV) (const GLint *v1, const GLint *v2);
typedef void (*PFNGLRECTSV) (const GLshort *v1, const GLshort *v2);

// Vertex Arrays
typedef void (*PFNGLVERTEXPOINTER) (GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
typedef void (*PFNGLNORMALPOINTER) (GLenum type, GLsizei stride, const GLvoid *ptr);
typedef void (*PFNGLCOLORPOINTER) (GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
typedef void (*PFNGLINDEXPOINTER) (GLenum type, GLsizei stride, const GLvoid *ptr);
typedef void (*PFNGLTEXCOORDPOINTER) (GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
typedef void (*PFNGLEDGEFLAGPOINTER) (GLsizei stride, const GLvoid *ptr);
typedef void (*PFNGLGETPOINTERV) (GLenum pname, void **params);
typedef void (*PFNGLARRAYELEMENT) (GLint i);
typedef void (*PFNGLDRAWARRAYS) (GLenum mode, GLint first, GLsizei count);
typedef void (*PFNGLDRAWELEMENTS) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
typedef void (*PFNGLINTERLEAVEDARRAYS) (GLenum format, GLsizei stride, const GLvoid *pointer);

// Lighting
typedef void (*PFNGLSHADEMODEL) (GLenum mode);
typedef void (*PFNGLLIGHTF) (GLenum light, GLenum pname, GLfloat param);
typedef void (*PFNGLLIGHTI) (GLenum light, GLenum pname, GLint param);
typedef void (*PFNGLLIGHTFV) (GLenum light, GLenum pname, const GLfloat *params);
typedef void (*PFNGLLIGHTIV) (GLenum light, GLenum pname, const GLint *params);
typedef void (*PFNGLGETLIGHTFV) (GLenum light, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETLIGHTIV) (GLenum light, GLenum pname, GLint *params);
typedef void (*PFNGLLIGHTMODELF) (GLenum pname, GLfloat param);
typedef void (*PFNGLLIGHTMODELI) (GLenum pname, GLint param);
typedef void (*PFNGLLIGHTMODELFV) (GLenum pname, const GLfloat *params);
typedef void (*PFNGLLIGHTMODELIV) (GLenum pname, const GLint *params);
typedef void (*PFNGLMATERIALF) (GLenum face, GLenum pname, GLfloat param);
typedef void (*PFNGLMATERIALI) (GLenum face, GLenum pname, GLint param);
typedef void (*PFNGLMATERIALFV) (GLenum face, GLenum pname, const GLfloat *params);
typedef void (*PFNGLMATERIALIV) (GLenum face, GLenum pname, const GLint *params);
typedef void (*PFNGLGETMATERIALFV) (GLenum face, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETMATERIALIV) (GLenum face, GLenum pname, GLint *params);
typedef void (*PFNGLCOLORMATERIAL) (GLenum face, GLenum mode);

// Raster functions
typedef void (*PFNGLPIXELZOOM) (GLfloat xfactor, GLfloat yfactor);
typedef void (*PFNGLPIXELSTOREF) (GLenum pname, GLfloat param);
typedef void (*PFNGLPIXELSTOREI) (GLenum pname, GLint param);
typedef void (*PFNGLPIXELTRANSFERF) (GLenum pname, GLfloat param);
typedef void (*PFNGLPIXELTRANSFERI) (GLenum pname, GLint param);
typedef void (*PFNGLPIXELMAPFV) (GLenum map, GLint mapsize, const GLfloat *values);
typedef void (*PFNGLPIXELMAPUIV) (GLenum map, GLint mapsize, const GLuint *values);
typedef void (*PFNGLPIXELMAPUSV) (GLenum map, GLint mapsize, const GLushort *values);
typedef void (*PFNGLGETPIXELMAPFV) (GLenum map, GLfloat *values);
typedef void (*PFNGLGETPIXELMAPUIV) (GLenum map, GLuint *values);
typedef void (*PFNGLGETPIXELMAPUSV) (GLenum map, GLushort *values);
typedef void (*PFNGLBITMAP) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap );
typedef void (*PFNGLREADPIXELS) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels );
typedef void (*PFNGLDRAWPIXELS) (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLCOPYPIXELS) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);

// Stenciling
typedef void (*PFNGLSTENCILFUNC) (GLenum func, GLint ref, GLuint mask);
typedef void (*PFNGLSTENCILMASK) (GLuint mask);
typedef void (*PFNGLSTENCILOP) (GLenum fail, GLenum zfail, GLenum zpass);
typedef void (*PFNGLCLEARSTENCIL) (GLint s);

// Texture mapping
typedef void (*PFNGLTEXGEND) (GLenum coord, GLenum pname, GLdouble param);
typedef void (*PFNGLTEXGENF) (GLenum coord, GLenum pname, GLfloat param);
typedef void (*PFNGLTEXGENI) (GLenum coord, GLenum pname, GLint param);
typedef void (*PFNGLTEXGENDV) (GLenum coord, GLenum pname, const GLdouble *params);
typedef void (*PFNGLTEXGENFV) (GLenum coord, GLenum pname, const GLfloat *params);
typedef void (*PFNGLTEXGENIV) (GLenum coord, GLenum pname, const GLint *params);
typedef void (*PFNGLGETTEXGENDV) (GLenum coord, GLenum pname, GLdouble *params);
typedef void (*PFNGLGETTEXGENFV) (GLenum coord, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETTEXGENIV) (GLenum coord, GLenum pname, GLint *params);
typedef void (*PFNGLTEXENVF) (GLenum target, GLenum pname, GLfloat param);
typedef void (*PFNGLTEXENVI) (GLenum target, GLenum pname, GLint param);
typedef void (*PFNGLTEXENVFV) (GLenum target, GLenum pname, const GLfloat *params);
typedef void (*PFNGLTEXENVIV) (GLenum target, GLenum pname, const GLint *params);
typedef void (*PFNGLGETTEXENVFV) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETTEXENVIV) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLTEXPARAMETERF) (GLenum target, GLenum pname, GLfloat param);
typedef void (*PFNGLTEXPARAMETERI) (GLenum target, GLenum pname, GLint param);
typedef void (*PFNGLTEXPARAMETERFV) (GLenum target, GLenum pname, const GLfloat *params);
typedef void (*PFNGLTEXPARAMETERIV) (GLenum target, GLenum pname, const GLint *params);
typedef void (*PFNGLGETTEXPARAMETERFV) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETTEXPARAMETERIV) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLGETTEXLEVELPARAMETERFV) (GLenum target, GLint level, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETTEXLEVELPARAMETERIV) (GLenum target, GLint level, GLenum pname, GLint *params);
typedef void (*PFNGLTEXIMAGE1D) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLTEXIMAGE2D) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLGETTEXIMAGE) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
typedef void (*PFNGLGENTEXTURES) (GLsizei n, GLuint *textures);
typedef void (*PFNGLDELETETEXTURES) (GLsizei n, const GLuint *textures);
typedef void (*PFNGLBINDTEXTURE) (GLenum target, GLuint texture);
typedef void (*PFNGLPRIORITIZETEXTURES) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
typedef GLboolean (*PFNGLARETEXTURESRESIDENT) (GLsizei n, const GLuint *textures, GLboolean *residences);
typedef GLboolean (*PFNGLISTEXTURE) (GLuint texture);
typedef void (*PFNGLTEXSUBIMAGE1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLTEXSUBIMAGE2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLCOPYTEXIMAGE1D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
typedef void (*PFNGLCOPYTEXIMAGE2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
typedef void (*PFNGLCOPYTEXSUBIMAGE1D) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
typedef void (*PFNGLCOPYTEXSUBIMAGE2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);

// Evaluators
typedef void (*PFNGLMAP1D) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
typedef void (*PFNGLMAP1F) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
typedef void (*PFNGLMAP2D) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
typedef void (*PFNGLMAP2F) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
typedef void (*PFNGLGETMAPDV) (GLenum target, GLenum query, GLdouble *v);
typedef void (*PFNGLGETMAPFV) (GLenum target, GLenum query, GLfloat *v);
typedef void (*PFNGLGETMAPIV) (GLenum target, GLenum query, GLint *v);
typedef void (*PFNGLEVALCOORD1D) (GLdouble u);
typedef void (*PFNGLEVALCOORD1F) (GLfloat u);
typedef void (*PFNGLEVALCOORD1DV) (const GLdouble *u);
typedef void (*PFNGLEVALCOORD1FV) (const GLfloat *u);
typedef void (*PFNGLEVALCOORD2D) (GLdouble u, GLdouble v);
typedef void (*PFNGLEVALCOORD2F) (GLfloat u, GLfloat v);
typedef void (*PFNGLEVALCOORD2DV) (const GLdouble *u);
typedef void (*PFNGLEVALCOORD2FV) (const GLfloat *u);
typedef void (*PFNGLMAPGRID1D) (GLint un, GLdouble u1, GLdouble u2);
typedef void (*PFNGLMAPGRID1F) (GLint un, GLfloat u1, GLfloat u2);
typedef void (*PFNGLMAPGRID2D) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
typedef void (*PFNGLMAPGRID2F) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
typedef void (*PFNGLEVALPOINT1) (GLint i);
typedef void (*PFNGLEVALPOINT2) (GLint i, GLint j);
typedef void (*PFNGLEVALMESH1) (GLenum mode, GLint i1, GLint i2);
typedef void (*PFNGLEVALMESH2) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);

// Fog
typedef void (*PFNGLFOGF) (GLenum pname, GLfloat param);
typedef void (*PFNGLFOGI) (GLenum pname, GLint param);
typedef void (*PFNGLFOGFV) (GLenum pname, const GLfloat *params);
typedef void (*PFNGLFOGIV) (GLenum pname, const GLint *params);

// Selection and Feedback
typedef void (*PFNGLFEEDBACKBUFFER) (GLsizei size, GLenum type, GLfloat *buffer);
typedef void (*PFNGLPASSTHROUGH) (GLfloat token);
typedef void (*PFNGLSELECTBUFFER) (GLsizei size, GLuint *buffer);
typedef void (*PFNGLINITNAMES) (void);
typedef void (*PFNGLLOADNAME) (GLuint name);
typedef void (*PFNGLPUSHNAME) (GLuint name);
typedef void (*PFNGLPOPNAME) (void);

// Extensions
typedef void (*PFNGLBLENDEQUATIONEXT) (GLenum mode);
typedef void (*PFNGLBLENDCOLOREXT) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void (*PFNGLPOLYGONOFFSETEXT) (GLfloat factor, GLfloat bias);

// GL_EXT_vertex_array
typedef void (*PFNGLVERTEXPOINTEREXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
typedef void (*PFNGLNORMALPOINTEREXT) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
typedef void (*PFNGLCOLORPOINTEREXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
typedef void (*PFNGLINDEXPOINTEREXT) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
typedef void (*PFNGLTEXCOORDPOINTEREXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
typedef void (*PFNGLEDGEFLAGPOINTEREXT) (GLsizei stride, GLsizei count, const GLboolean *ptr);
typedef void (*PFNGLGETPOINTERVEXT) (GLenum pname, void **params);
typedef void (*PFNGLARRAYELEMENTEXT) (GLint i);
typedef void (*PFNGLDRAWARRAYSEXT) (GLenum mode, GLint first, GLsizei count);

// GL_EXT_texture_object
typedef void (*PFNGLGENTEXTURESEXT) (GLsizei n, GLuint *textures);
typedef void (*PFNGLDELETETEXTURESEXT) (GLsizei n, const GLuint *textures);
typedef void (*PFNGLBINDTEXTUREEXT) (GLenum target, GLuint texture);
typedef void (*PFNGLPRIORITIZETEXTURESEXT) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
typedef GLboolean (*PFNGLARETEXTURESRESIDENTEXT) (GLsizei n, const GLuint *textures, GLboolean *residences);
typedef GLboolean (*PFNGLISTEXTUREEXT) (GLuint texture);

// GL_EXT_texture3D
typedef void (*PFNGLTEXIMAGE3DEXT) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLTEXSUBIMAGE3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLCOPYTEXSUBIMAGE3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);

// GL_EXT_color_table
typedef void (*PFNGLCOLORTABLEEXT) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
typedef void (*PFNGLCOLORSUBTABLEEXT) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
typedef void (*PFNGLGETCOLORTABLEEXT) (GLenum target, GLenum format, GLenum type, GLvoid *table);
typedef void (*PFNGLGETCOLORTABLEPARAMETERFVEXT) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETCOLORTABLEPARAMETERIVEXT) (GLenum target, GLenum pname, GLint *params);

// GL_ARB_multitexture
typedef void (*PFNGLACTIVETEXTUREARB) (GLenum texture);
typedef void (*PFNGLCLIENTACTIVETEXTUREARB) (GLenum texture);
typedef void (*PFNGLMULTITEXCOORD1DARB) (GLenum target, GLdouble s);
typedef void (*PFNGLMULTITEXCOORD1DVARB) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD1FARB) (GLenum target, GLfloat s);
typedef void (*PFNGLMULTITEXCOORD1FVARB) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD1IARB) (GLenum target, GLint s);
typedef void (*PFNGLMULTITEXCOORD1IVARB) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD1SARB) (GLenum target, GLshort s);
typedef void (*PFNGLMULTITEXCOORD1SVARB) (GLenum target, const GLshort *v);
typedef void (*PFNGLMULTITEXCOORD2DARB) (GLenum target, GLdouble s, GLdouble t);
typedef void (*PFNGLMULTITEXCOORD2DVARB) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD2FARB) (GLenum target, GLfloat s, GLfloat t);
typedef void (*PFNGLMULTITEXCOORD2FVARB) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD2IARB) (GLenum target, GLint s, GLint t);
typedef void (*PFNGLMULTITEXCOORD2IVARB) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD2SARB) (GLenum target, GLshort s, GLshort t);
typedef void (*PFNGLMULTITEXCOORD2SVARB) (GLenum target, const GLshort *v);
typedef void (*PFNGLMULTITEXCOORD3DARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
typedef void (*PFNGLMULTITEXCOORD3DVARB) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD3FARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
typedef void (*PFNGLMULTITEXCOORD3FVARB) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD3IARB) (GLenum target, GLint s, GLint t, GLint r);
typedef void (*PFNGLMULTITEXCOORD3IVARB) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD3SARB) (GLenum target, GLshort s, GLshort t, GLshort r);
typedef void (*PFNGLMULTITEXCOORD3SVARB) (GLenum target, const GLshort *v);
typedef void (*PFNGLMULTITEXCOORD4DARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (*PFNGLMULTITEXCOORD4DVARB) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD4FARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (*PFNGLMULTITEXCOORD4FVARB) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD4IARB) (GLenum target, GLint s, GLint t, GLint r, GLint q);
typedef void (*PFNGLMULTITEXCOORD4IVARB) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD4SARB) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (*PFNGLMULTITEXCOORD4SVARB) (GLenum target, const GLshort *v);

// GL_EXT_point_parameters
typedef void (*PFNGLPOINTPARAMETERFEXT) (GLenum pname, GLfloat param);
typedef void (*PFNGLPOINTPARAMETERFVEXT) (GLenum pname, const GLfloat *params);

// GL_INGR_blend_func_separate
typedef void (*PFNGLBLENDFUNCSEPARATEINGR) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);

// GL_MESA_window_pos
typedef void (*PFNGLWINDOWPOS2IMESA) (GLint x, GLint y);
typedef void (*PFNGLWINDOWPOS2SMESA) (GLshort x, GLshort y);
typedef void (*PFNGLWINDOWPOS2FMESA) (GLfloat x, GLfloat y);
typedef void (*PFNGLWINDOWPOS2DMESA) (GLdouble x, GLdouble y);
typedef void (*PFNGLWINDOWPOS2IVMESA) (const GLint *p);
typedef void (*PFNGLWINDOWPOS2SVMESA) (const GLshort *p);
typedef void (*PFNGLWINDOWPOS2FVMESA) (const GLfloat *p);
typedef void (*PFNGLWINDOWPOS2DVMESA) (const GLdouble *p);
typedef void (*PFNGLWINDOWPOS3IMESA) (GLint x, GLint y, GLint z);
typedef void (*PFNGLWINDOWPOS3SMESA) (GLshort x, GLshort y, GLshort z);
typedef void (*PFNGLWINDOWPOS3FMESA) (GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLWINDOWPOS3DMESA) (GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLWINDOWPOS3IVMESA) (const GLint *p);
typedef void (*PFNGLWINDOWPOS3SVMESA) (const GLshort *p);
typedef void (*PFNGLWINDOWPOS3FVMESA) (const GLfloat *p);
typedef void (*PFNGLWINDOWPOS3DVMESA) (const GLdouble *p);
typedef void (*PFNGLWINDOWPOS4IMESA) (GLint x, GLint y, GLint z, GLint w);
typedef void (*PFNGLWINDOWPOS4SMESA) (GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (*PFNGLWINDOWPOS4FMESA) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (*PFNGLWINDOWPOS4DMESA) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (*PFNGLWINDOWPOS4IVMESA) (const GLint *p);
typedef void (*PFNGLWINDOWPOS4SVMESA) (const GLshort *p);
typedef void (*PFNGLWINDOWPOS4FVMESA) (const GLfloat *p);
typedef void (*PFNGLWINDOWPOS4DVMESA) (const GLdouble *p);

// GL_MESA_resize_buffers
typedef void (*PFNGLRESIZEBUFFERSMESA) (void);

// 1.2 functions
typedef void (*PFNGLDRAWRANGEELEMENTS) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
typedef void (*PFNGLTEXIMAGE3D) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLTEXSUBIMAGE3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (*PFNGLCOPYTEXSUBIMAGE3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);

// 1.2 imaging extension functions
typedef void (*PFNGLCOLORTABLE) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
typedef void (*PFNGLCOLORSUBTABLE) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
typedef void (*PFNGLCOLORTABLEPARAMETERIV) (GLenum target, GLenum pname, const GLint *params);
typedef void (*PFNGLCOLORTABLEPARAMETERFV) (GLenum target, GLenum pname, const GLfloat *params);
typedef void (*PFNGLCOPYCOLORSUBTABLE) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
typedef void (*PFNGLCOPYCOLORTABLE) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
typedef void (*PFNGLGETCOLORTABLE) (GLenum target, GLenum format, GLenum type, GLvoid *table);
typedef void (*PFNGLGETCOLORTABLEPARAMETERFV) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETCOLORTABLEPARAMETERIV) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLBLENDEQUATION) (GLenum mode);
typedef void (*PFNGLBLENDCOLOR) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void (*PFNGLHISTOGRAM) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
typedef void (*PFNGLRESETHISTOGRAM) (GLenum target);
typedef void (*PFNGLGETHISTOGRAM) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
typedef void (*PFNGLGETHISTOGRAMPARAMETERFV) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETHISTOGRAMPARAMETERIV) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLMINMAX) (GLenum target, GLenum internalformat, GLboolean sink);
typedef void (*PFNGLRESETMINMAX) (GLenum target);
typedef void (*PFNGLGETMINMAX) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
typedef void (*PFNGLGETMINMAXPARAMETERFV) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETMINMAXPARAMETERIV) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLCONVOLUTIONFILTER1D) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
typedef void (*PFNGLCONVOLUTIONFILTER2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
typedef void (*PFNGLCONVOLUTIONPARAMETERF) (GLenum target, GLenum pname, GLfloat params);
typedef void (*PFNGLCONVOLUTIONPARAMETERFV) (GLenum target, GLenum pname, const GLfloat *params);
typedef void (*PFNGLCONVOLUTIONPARAMETERI) (GLenum target, GLenum pname, GLint params);
typedef void (*PFNGLCONVOLUTIONPARAMETERIV) (GLenum target, GLenum pname, const GLint *params);
typedef void (*PFNGLCOPYCONVOLUTIONFILTER1D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
typedef void (*PFNGLCOPYCONVOLUTIONFILTER2D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLGETCONVOLUTIONFILTER) (GLenum target, GLenum format, GLenum type, GLvoid *image);
typedef void (*PFNGLGETCONVOLUTIONPARAMETERFV) (GLenum target, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETCONVOLUTIONPARAMETERIV) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLSEPARABLEFILTER2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
typedef void (*PFNGLGETSEPARABLEFILTER) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);

// GL_EXT_compiled_vertex_array
typedef void (*PFNGLLOCKARRAYSEXT) (GLint first, GLsizei count);
typedef void (*PFNGLUNLOCKARRAYSEXT) (void);


// =============================================================================
// OpenGL extern declarations

extern PFNGLCLEARINDEX pfnglClearIndex;
extern PFNGLCLEARCOLOR pfnglClearColor;
extern PFNGLCLEAR pfnglClear;
extern PFNGLINDEXMASK pfnglIndexMask;
extern PFNGLCOLORMASK pfnglColorMask;
extern PFNGLALPHAFUNC pfnglAlphaFunc;
extern PFNGLBLENDFUNC pfnglBlendFunc;
extern PFNGLLOGICOP pfnglLogicOp;
extern PFNGLCULLFACE pfnglCullFace;
extern PFNGLFRONTFACE pfnglFrontFace;
extern PFNGLPOINTSIZE pfnglPointSize;
extern PFNGLLINEWIDTH pfnglLineWidth;
extern PFNGLLINESTIPPLE pfnglLineStipple;
extern PFNGLPOLYGONMODE pfnglPolygonMode;
extern PFNGLPOLYGONOFFSET pfnglPolygonOffset;
extern PFNGLPOLYGONSTIPPLE pfnglPolygonStipple;
extern PFNGLGETPOLYGONSTIPPLE pfnglGetPolygonStipple;
extern PFNGLEDGEFLAG pfnglEdgeFlag;
extern PFNGLEDGEFLAGV pfnglEdgeFlagv;
extern PFNGLSCISSOR pfnglScissor;
extern PFNGLCLIPPLANE pfnglClipPlane;
extern PFNGLGETCLIPPLANE pfnglGetClipPlane;
extern PFNGLDRAWBUFFER pfnglDrawBuffer;
extern PFNGLREADBUFFER pfnglReadBuffer;
extern PFNGLENABLE pfnglEnable;
extern PFNGLDISABLE pfnglDisable;
extern PFNGLISENABLED pfnglIsEnabled;
extern PFNGLENABLECLIENTSTATE pfnglEnableClientState;
extern PFNGLDISABLECLIENTSTATE pfnglDisableClientState;
extern PFNGLGETBOOLEANV pfnglGetBooleanv;
extern PFNGLGETDOUBLEV pfnglGetDoublev;
extern PFNGLGETFLOATV pfnglGetFloatv;
extern PFNGLGETINTEGERV pfnglGetIntegerv;
extern PFNGLPUSHATTRIB pfnglPushAttrib;
extern PFNGLPOPATTRIB pfnglPopAttrib;
extern PFNGLPUSHCLIENTATTRIB pfnglPushClientAttrib;
extern PFNGLPOPCLIENTATTRIB pfnglPopClientAttrib;
extern PFNGLRENDERMODE pfnglRenderMode;
extern PFNGLGETERROR pfnglGetError;
extern PFNGLGETSTRING pfnglGetString;
extern PFNGLFINISH pfnglFinish;
extern PFNGLFLUSH pfnglFlush;
extern PFNGLHINT pfnglHint;
extern PFNGLCLEARDEPTH pfnglClearDepth;
extern PFNGLDEPTHFUNC pfnglDepthFunc;
extern PFNGLDEPTHMASK pfnglDepthMask;
extern PFNGLDEPTHRANGE pfnglDepthRange;
extern PFNGLCLEARACCUM pfnglClearAccum;
extern PFNGLACCUM pfnglAccum;
extern PFNGLMATRIXMODE pfnglMatrixMode;
extern PFNGLORTHO pfnglOrtho;
extern PFNGLFRUSTUM pfnglFrustum;
extern PFNGLVIEWPORT pfnglViewport;
extern PFNGLPUSHMATRIX pfnglPushMatrix;
extern PFNGLPOPMATRIX pfnglPopMatrix;
extern PFNGLLOADIDENTITY pfnglLoadIdentity;
extern PFNGLLOADMATRIXD pfnglLoadMatrixd;
extern PFNGLLOADMATRIXF pfnglLoadMatrixf;
extern PFNGLMULTMATRIXD pfnglMultMatrixd;
extern PFNGLMULTMATRIXF pfnglMultMatrixf;
extern PFNGLROTATED pfnglRotated;
extern PFNGLROTATEF pfnglRotatef;
extern PFNGLSCALED pfnglScaled;
extern PFNGLSCALEF pfnglScalef;
extern PFNGLTRANSLATED pfnglTranslated;
extern PFNGLTRANSLATEF pfnglTranslatef;
extern PFNGLISLIST pfnglIsList;
extern PFNGLDELETELISTS pfnglDeleteLists;
extern PFNGLGENLISTS pfnglGenLists;
extern PFNGLNEWLIST pfnglNewList;
extern PFNGLENDLIST pfnglEndList;
extern PFNGLCALLLIST pfnglCallList;
extern PFNGLCALLLISTS pfnglCallLists;
extern PFNGLLISTBASE pfnglListBase;
extern PFNGLBEGIN pfnglBegin;
extern PFNGLEND pfnglEnd;
extern PFNGLVERTEX2D pfnglVertex2d;
extern PFNGLVERTEX2F pfnglVertex2f;
extern PFNGLVERTEX2I pfnglVertex2i;
extern PFNGLVERTEX2S pfnglVertex2s;
extern PFNGLVERTEX3D pfnglVertex3d;
extern PFNGLVERTEX3F pfnglVertex3f;
extern PFNGLVERTEX3I pfnglVertex3i;
extern PFNGLVERTEX3S pfnglVertex3s;
extern PFNGLVERTEX4D pfnglVertex4d;
extern PFNGLVERTEX4F pfnglVertex4f;
extern PFNGLVERTEX4I pfnglVertex4i;
extern PFNGLVERTEX4S pfnglVertex4s;
extern PFNGLVERTEX2DV pfnglVertex2dv;
extern PFNGLVERTEX2FV pfnglVertex2fv;
extern PFNGLVERTEX2IV pfnglVertex2iv;
extern PFNGLVERTEX2SV pfnglVertex2sv;
extern PFNGLVERTEX3DV pfnglVertex3dv;
extern PFNGLVERTEX3FV pfnglVertex3fv;
extern PFNGLVERTEX3IV pfnglVertex3iv;
extern PFNGLVERTEX3SV pfnglVertex3sv;
extern PFNGLVERTEX4DV pfnglVertex4dv;
extern PFNGLVERTEX4FV pfnglVertex4fv;
extern PFNGLVERTEX4IV pfnglVertex4iv;
extern PFNGLVERTEX4SV pfnglVertex4sv;
extern PFNGLNORMAL3B pfnglNormal3b;
extern PFNGLNORMAL3D pfnglNormal3d;
extern PFNGLNORMAL3F pfnglNormal3f;
extern PFNGLNORMAL3I pfnglNormal3i;
extern PFNGLNORMAL3S pfnglNormal3s;
extern PFNGLNORMAL3BV pfnglNormal3bv;
extern PFNGLNORMAL3DV pfnglNormal3dv;
extern PFNGLNORMAL3FV pfnglNormal3fv;
extern PFNGLNORMAL3IV pfnglNormal3iv;
extern PFNGLNORMAL3SV pfnglNormal3sv;
extern PFNGLINDEXD pfnglIndexd;
extern PFNGLINDEXF pfnglIndexf;
extern PFNGLINDEXI pfnglIndexi;
extern PFNGLINDEXS pfnglIndexs;
extern PFNGLINDEXUB pfnglIndexub;
extern PFNGLINDEXDV pfnglIndexdv;
extern PFNGLINDEXFV pfnglIndexfv;
extern PFNGLINDEXIV pfnglIndexiv;
extern PFNGLINDEXSV pfnglIndexsv;
extern PFNGLINDEXUBV pfnglIndexubv;
extern PFNGLCOLOR3B pfnglColor3b;
extern PFNGLCOLOR3D pfnglColor3d;
extern PFNGLCOLOR3F pfnglColor3f;
extern PFNGLCOLOR3I pfnglColor3i;
extern PFNGLCOLOR3S pfnglColor3s;
extern PFNGLCOLOR3UB pfnglColor3ub;
extern PFNGLCOLOR3UI pfnglColor3ui;
extern PFNGLCOLOR3US pfnglColor3us;
extern PFNGLCOLOR4B pfnglColor4b;
extern PFNGLCOLOR4D pfnglColor4d;
extern PFNGLCOLOR4F pfnglColor4f;
extern PFNGLCOLOR4I pfnglColor4i;
extern PFNGLCOLOR4S pfnglColor4s;
extern PFNGLCOLOR4UB pfnglColor4ub;
extern PFNGLCOLOR4UI pfnglColor4ui;
extern PFNGLCOLOR4US pfnglColor4us;
extern PFNGLCOLOR3BV pfnglColor3bv;
extern PFNGLCOLOR3DV pfnglColor3dv;
extern PFNGLCOLOR3FV pfnglColor3fv;
extern PFNGLCOLOR3IV pfnglColor3iv;
extern PFNGLCOLOR3SV pfnglColor3sv;
extern PFNGLCOLOR3UBV pfnglColor3ubv;
extern PFNGLCOLOR3UIV pfnglColor3uiv;
extern PFNGLCOLOR3USV pfnglColor3usv;
extern PFNGLCOLOR4BV pfnglColor4bv;
extern PFNGLCOLOR4DV pfnglColor4dv;
extern PFNGLCOLOR4FV pfnglColor4fv;
extern PFNGLCOLOR4IV pfnglColor4iv;
extern PFNGLCOLOR4SV pfnglColor4sv;
extern PFNGLCOLOR4UBV pfnglColor4ubv;
extern PFNGLCOLOR4UIV pfnglColor4uiv;
extern PFNGLCOLOR4USV pfnglColor4usv;
extern PFNGLTEXCOORD1D pfnglTexCoord1d;
extern PFNGLTEXCOORD1F pfnglTexCoord1f;
extern PFNGLTEXCOORD1I pfnglTexCoord1i;
extern PFNGLTEXCOORD1S pfnglTexCoord1s;
extern PFNGLTEXCOORD2D pfnglTexCoord2d;
extern PFNGLTEXCOORD2F pfnglTexCoord2f;
extern PFNGLTEXCOORD2I pfnglTexCoord2i;
extern PFNGLTEXCOORD2S pfnglTexCoord2s;
extern PFNGLTEXCOORD3D pfnglTexCoord3d;
extern PFNGLTEXCOORD3F pfnglTexCoord3f;
extern PFNGLTEXCOORD3I pfnglTexCoord3i;
extern PFNGLTEXCOORD3S pfnglTexCoord3s;
extern PFNGLTEXCOORD4D pfnglTexCoord4d;
extern PFNGLTEXCOORD4F pfnglTexCoord4f;
extern PFNGLTEXCOORD4I pfnglTexCoord4i;
extern PFNGLTEXCOORD4S pfnglTexCoord4s;
extern PFNGLTEXCOORD1DV pfnglTexCoord1dv;
extern PFNGLTEXCOORD1FV pfnglTexCoord1fv;
extern PFNGLTEXCOORD1IV pfnglTexCoord1iv;
extern PFNGLTEXCOORD1SV pfnglTexCoord1sv;
extern PFNGLTEXCOORD2DV pfnglTexCoord2dv;
extern PFNGLTEXCOORD2FV pfnglTexCoord2fv;
extern PFNGLTEXCOORD2IV pfnglTexCoord2iv;
extern PFNGLTEXCOORD2SV pfnglTexCoord2sv;
extern PFNGLTEXCOORD3DV pfnglTexCoord3dv;
extern PFNGLTEXCOORD3FV pfnglTexCoord3fv;
extern PFNGLTEXCOORD3IV pfnglTexCoord3iv;
extern PFNGLTEXCOORD3SV pfnglTexCoord3sv;
extern PFNGLTEXCOORD4DV pfnglTexCoord4dv;
extern PFNGLTEXCOORD4FV pfnglTexCoord4fv;
extern PFNGLTEXCOORD4IV pfnglTexCoord4iv;
extern PFNGLTEXCOORD4SV pfnglTexCoord4sv;
extern PFNGLRASTERPOS2D pfnglRasterPos2d;
extern PFNGLRASTERPOS2F pfnglRasterPos2f;
extern PFNGLRASTERPOS2I pfnglRasterPos2i;
extern PFNGLRASTERPOS2S pfnglRasterPos2s;
extern PFNGLRASTERPOS3D pfnglRasterPos3d;
extern PFNGLRASTERPOS3F pfnglRasterPos3f;
extern PFNGLRASTERPOS3I pfnglRasterPos3i;
extern PFNGLRASTERPOS3S pfnglRasterPos3s;
extern PFNGLRASTERPOS4D pfnglRasterPos4d;
extern PFNGLRASTERPOS4F pfnglRasterPos4f;
extern PFNGLRASTERPOS4I pfnglRasterPos4i;
extern PFNGLRASTERPOS4S pfnglRasterPos4s;
extern PFNGLRASTERPOS2DV pfnglRasterPos2dv;
extern PFNGLRASTERPOS2FV pfnglRasterPos2fv;
extern PFNGLRASTERPOS2IV pfnglRasterPos2iv;
extern PFNGLRASTERPOS2SV pfnglRasterPos2sv;
extern PFNGLRASTERPOS3DV pfnglRasterPos3dv;
extern PFNGLRASTERPOS3FV pfnglRasterPos3fv;
extern PFNGLRASTERPOS3IV pfnglRasterPos3iv;
extern PFNGLRASTERPOS3SV pfnglRasterPos3sv;
extern PFNGLRASTERPOS4DV pfnglRasterPos4dv;
extern PFNGLRASTERPOS4FV pfnglRasterPos4fv;
extern PFNGLRASTERPOS4IV pfnglRasterPos4iv;
extern PFNGLRASTERPOS4SV pfnglRasterPos4sv;
extern PFNGLRECTD pfnglRectd;
extern PFNGLRECTF pfnglRectf;
extern PFNGLRECTI pfnglRecti;
extern PFNGLRECTS pfnglRects;
extern PFNGLRECTDV pfnglRectdv;
extern PFNGLRECTFV pfnglRectfv;
extern PFNGLRECTIV pfnglRectiv;
extern PFNGLRECTSV pfnglRectsv;
extern PFNGLVERTEXPOINTER pfnglVertexPointer;
extern PFNGLNORMALPOINTER pfnglNormalPointer;
extern PFNGLCOLORPOINTER pfnglColorPointer;
extern PFNGLINDEXPOINTER pfnglIndexPointer;
extern PFNGLTEXCOORDPOINTER pfnglTexCoordPointer;
extern PFNGLEDGEFLAGPOINTER pfnglEdgeFlagPointer;
extern PFNGLGETPOINTERV pfnglGetPointerv;
extern PFNGLARRAYELEMENT pfnglArrayElement;
extern PFNGLDRAWARRAYS pfnglDrawArrays;
extern PFNGLDRAWELEMENTS pfnglDrawElements;
extern PFNGLINTERLEAVEDARRAYS pfnglInterleavedArrays;
extern PFNGLSHADEMODEL pfnglShadeModel;
extern PFNGLLIGHTF pfnglLightf;
extern PFNGLLIGHTI pfnglLighti;
extern PFNGLLIGHTFV pfnglLightfv;
extern PFNGLLIGHTIV pfnglLightiv;
extern PFNGLGETLIGHTFV pfnglGetLightfv;
extern PFNGLGETLIGHTIV pfnglGetLightiv;
extern PFNGLLIGHTMODELF pfnglLightModelf;
extern PFNGLLIGHTMODELI pfnglLightModeli;
extern PFNGLLIGHTMODELFV pfnglLightModelfv;
extern PFNGLLIGHTMODELIV pfnglLightModeliv;
extern PFNGLMATERIALF pfnglMaterialf;
extern PFNGLMATERIALI pfnglMateriali;
extern PFNGLMATERIALFV pfnglMaterialfv;
extern PFNGLMATERIALIV pfnglMaterialiv;
extern PFNGLGETMATERIALFV pfnglGetMaterialfv;
extern PFNGLGETMATERIALIV pfnglGetMaterialiv;
extern PFNGLCOLORMATERIAL pfnglColorMaterial;
extern PFNGLPIXELZOOM pfnglPixelZoom;
extern PFNGLPIXELSTOREF pfnglPixelStoref;
extern PFNGLPIXELSTOREI pfnglPixelStorei;
extern PFNGLPIXELTRANSFERF pfnglPixelTransferf;
extern PFNGLPIXELTRANSFERI pfnglPixelTransferi;
extern PFNGLPIXELMAPFV pfnglPixelMapfv;
extern PFNGLPIXELMAPUIV pfnglPixelMapuiv;
extern PFNGLPIXELMAPUSV pfnglPixelMapusv;
extern PFNGLGETPIXELMAPFV pfnglGetPixelMapfv;
extern PFNGLGETPIXELMAPUIV pfnglGetPixelMapuiv;
extern PFNGLGETPIXELMAPUSV pfnglGetPixelMapusv;
extern PFNGLBITMAP pfnglBitmap;
extern PFNGLREADPIXELS pfnglReadPixels;
extern PFNGLDRAWPIXELS pfnglDrawPixels;
extern PFNGLCOPYPIXELS pfnglCopyPixels;
extern PFNGLSTENCILFUNC pfnglStencilFunc;
extern PFNGLSTENCILMASK pfnglStencilMask;
extern PFNGLSTENCILOP pfnglStencilOp;
extern PFNGLCLEARSTENCIL pfnglClearStencil;
extern PFNGLTEXGEND pfnglTexGend;
extern PFNGLTEXGENF pfnglTexGenf;
extern PFNGLTEXGENI pfnglTexGeni;
extern PFNGLTEXGENDV pfnglTexGendv;
extern PFNGLTEXGENFV pfnglTexGenfv;
extern PFNGLTEXGENIV pfnglTexGeniv;
extern PFNGLGETTEXGENDV pfnglGetTexGendv;
extern PFNGLGETTEXGENFV pfnglGetTexGenfv;
extern PFNGLGETTEXGENIV pfnglGetTexGeniv;
extern PFNGLTEXENVF pfnglTexEnvf;
extern PFNGLTEXENVI pfnglTexEnvi;
extern PFNGLTEXENVFV pfnglTexEnvfv;
extern PFNGLTEXENVIV pfnglTexEnviv;
extern PFNGLGETTEXENVFV pfnglGetTexEnvfv;
extern PFNGLGETTEXENVIV pfnglGetTexEnviv;
extern PFNGLTEXPARAMETERF pfnglTexParameterf;
extern PFNGLTEXPARAMETERI pfnglTexParameteri;
extern PFNGLTEXPARAMETERFV pfnglTexParameterfv;
extern PFNGLTEXPARAMETERIV pfnglTexParameteriv;
extern PFNGLGETTEXPARAMETERFV pfnglGetTexParameterfv;
extern PFNGLGETTEXPARAMETERIV pfnglGetTexParameteriv;
extern PFNGLGETTEXLEVELPARAMETERFV pfnglGetTexLevelParameterfv;
extern PFNGLGETTEXLEVELPARAMETERIV pfnglGetTexLevelParameteriv;
extern PFNGLTEXIMAGE1D pfnglTexImage1D;
extern PFNGLTEXIMAGE2D pfnglTexImage2D;
extern PFNGLGETTEXIMAGE pfnglGetTexImage;
extern PFNGLGENTEXTURES pfnglGenTextures;
extern PFNGLDELETETEXTURES pfnglDeleteTextures;
extern PFNGLBINDTEXTURE pfnglBindTexture;
extern PFNGLPRIORITIZETEXTURES pfnglPrioritizeTextures;
extern PFNGLARETEXTURESRESIDENT pfnglAreTexturesResident;
extern PFNGLISTEXTURE pfnglIsTexture;
extern PFNGLTEXSUBIMAGE1D pfnglTexSubImage1D;
extern PFNGLTEXSUBIMAGE2D pfnglTexSubImage2D;
extern PFNGLCOPYTEXIMAGE1D pfnglCopyTexImage1D;
extern PFNGLCOPYTEXIMAGE2D pfnglCopyTexImage2D;
extern PFNGLCOPYTEXSUBIMAGE1D pfnglCopyTexSubImage1D;
extern PFNGLCOPYTEXSUBIMAGE2D pfnglCopyTexSubImage2D;
extern PFNGLMAP1D pfnglMap1d;
extern PFNGLMAP1F pfnglMap1f;
extern PFNGLMAP2D pfnglMap2d;
extern PFNGLMAP2F pfnglMap2f;
extern PFNGLGETMAPDV pfnglGetMapdv;
extern PFNGLGETMAPFV pfnglGetMapfv;
extern PFNGLGETMAPIV pfnglGetMapiv;
extern PFNGLEVALCOORD1D pfnglEvalCoord1d;
extern PFNGLEVALCOORD1F pfnglEvalCoord1f;
extern PFNGLEVALCOORD1DV pfnglEvalCoord1dv;
extern PFNGLEVALCOORD1FV pfnglEvalCoord1fv;
extern PFNGLEVALCOORD2D pfnglEvalCoord2d;
extern PFNGLEVALCOORD2F pfnglEvalCoord2f;
extern PFNGLEVALCOORD2DV pfnglEvalCoord2dv;
extern PFNGLEVALCOORD2FV pfnglEvalCoord2fv;
extern PFNGLMAPGRID1D pfnglMapGrid1d;
extern PFNGLMAPGRID1F pfnglMapGrid1f;
extern PFNGLMAPGRID2D pfnglMapGrid2d;
extern PFNGLMAPGRID2F pfnglMapGrid2f;
extern PFNGLEVALPOINT1 pfnglEvalPoint1;
extern PFNGLEVALPOINT2 pfnglEvalPoint2;
extern PFNGLEVALMESH1 pfnglEvalMesh1;
extern PFNGLEVALMESH2 pfnglEvalMesh2;
extern PFNGLFOGF pfnglFogf;
extern PFNGLFOGI pfnglFogi;
extern PFNGLFOGFV pfnglFogfv;
extern PFNGLFOGIV pfnglFogiv;
extern PFNGLFEEDBACKBUFFER pfnglFeedbackBuffer;
extern PFNGLPASSTHROUGH pfnglPassThrough;
extern PFNGLSELECTBUFFER pfnglSelectBuffer;
extern PFNGLINITNAMES pfnglInitNames;
extern PFNGLLOADNAME pfnglLoadName;
extern PFNGLPUSHNAME pfnglPushName;
extern PFNGLPOPNAME pfnglPopName;
extern PFNGLBLENDEQUATIONEXT pfnglBlendEquationEXT;
extern PFNGLBLENDCOLOREXT pfnglBlendColorEXT;
extern PFNGLPOLYGONOFFSETEXT pfnglPolygonOffsetEXT;
extern PFNGLVERTEXPOINTEREXT pfnglVertexPointerEXT;
extern PFNGLNORMALPOINTEREXT pfnglNormalPointerEXT;
extern PFNGLCOLORPOINTEREXT pfnglColorPointerEXT;
extern PFNGLINDEXPOINTEREXT pfnglIndexPointerEXT;
extern PFNGLTEXCOORDPOINTEREXT pfnglTexCoordPointerEXT;
extern PFNGLEDGEFLAGPOINTEREXT pfnglEdgeFlagPointerEXT;
extern PFNGLGETPOINTERVEXT pfnglGetPointervEXT;
extern PFNGLARRAYELEMENTEXT pfnglArrayElementEXT;
extern PFNGLDRAWARRAYSEXT pfnglDrawArraysEXT;
extern PFNGLGENTEXTURESEXT pfnglGenTexturesEXT;
extern PFNGLDELETETEXTURESEXT pfnglDeleteTexturesEXT;
extern PFNGLBINDTEXTUREEXT pfnglBindTextureEXT;
extern PFNGLPRIORITIZETEXTURESEXT pfnglPrioritizeTexturesEXT;
extern PFNGLARETEXTURESRESIDENTEXT pfnglAreTexturesResidentEXT;
extern PFNGLISTEXTUREEXT pfnglIsTextureEXT;
extern PFNGLTEXIMAGE3DEXT pfnglTexImage3DEXT;
extern PFNGLTEXSUBIMAGE3DEXT pfnglTexSubImage3DEXT;
extern PFNGLCOPYTEXSUBIMAGE3DEXT pfnglCopyTexSubImage3DEXT;
extern PFNGLCOLORTABLEEXT pfnglColorTableEXT;
extern PFNGLCOLORSUBTABLEEXT pfnglColorSubTableEXT;
extern PFNGLGETCOLORTABLEEXT pfnglGetColorTableEXT;
extern PFNGLGETCOLORTABLEPARAMETERFVEXT pfnglGetColorTableParameterfvEXT;
extern PFNGLGETCOLORTABLEPARAMETERIVEXT pfnglGetColorTableParameterivEXT;
extern PFNGLACTIVETEXTUREARB pfnglActiveTextureARB;
extern PFNGLCLIENTACTIVETEXTUREARB pfnglClientActiveTextureARB;
extern PFNGLMULTITEXCOORD1DARB pfnglMultiTexCoord1dARB;
extern PFNGLMULTITEXCOORD1DVARB pfnglMultiTexCoord1dvARB;
extern PFNGLMULTITEXCOORD1FARB pfnglMultiTexCoord1fARB;
extern PFNGLMULTITEXCOORD1FVARB pfnglMultiTexCoord1fvARB;
extern PFNGLMULTITEXCOORD1IARB pfnglMultiTexCoord1iARB;
extern PFNGLMULTITEXCOORD1IVARB pfnglMultiTexCoord1ivARB;
extern PFNGLMULTITEXCOORD1SARB pfnglMultiTexCoord1sARB;
extern PFNGLMULTITEXCOORD1SVARB pfnglMultiTexCoord1svARB;
extern PFNGLMULTITEXCOORD2DARB pfnglMultiTexCoord2dARB;
extern PFNGLMULTITEXCOORD2DVARB pfnglMultiTexCoord2dvARB;
extern PFNGLMULTITEXCOORD2FARB pfnglMultiTexCoord2fARB;
extern PFNGLMULTITEXCOORD2FVARB pfnglMultiTexCoord2fvARB;
extern PFNGLMULTITEXCOORD2IARB pfnglMultiTexCoord2iARB;
extern PFNGLMULTITEXCOORD2IVARB pfnglMultiTexCoord2ivARB;
extern PFNGLMULTITEXCOORD2SARB pfnglMultiTexCoord2sARB;
extern PFNGLMULTITEXCOORD2SVARB pfnglMultiTexCoord2svARB;
extern PFNGLMULTITEXCOORD3DARB pfnglMultiTexCoord3dARB;
extern PFNGLMULTITEXCOORD3DVARB pfnglMultiTexCoord3dvARB;
extern PFNGLMULTITEXCOORD3FARB pfnglMultiTexCoord3fARB;
extern PFNGLMULTITEXCOORD3FVARB pfnglMultiTexCoord3fvARB;
extern PFNGLMULTITEXCOORD3IARB pfnglMultiTexCoord3iARB;
extern PFNGLMULTITEXCOORD3IVARB pfnglMultiTexCoord3ivARB;
extern PFNGLMULTITEXCOORD3SARB pfnglMultiTexCoord3sARB;
extern PFNGLMULTITEXCOORD3SVARB pfnglMultiTexCoord3svARB;
extern PFNGLMULTITEXCOORD4DARB pfnglMultiTexCoord4dARB;
extern PFNGLMULTITEXCOORD4DVARB pfnglMultiTexCoord4dvARB;
extern PFNGLMULTITEXCOORD4FARB pfnglMultiTexCoord4fARB;
extern PFNGLMULTITEXCOORD4FVARB pfnglMultiTexCoord4fvARB;
extern PFNGLMULTITEXCOORD4IARB pfnglMultiTexCoord4iARB;
extern PFNGLMULTITEXCOORD4IVARB pfnglMultiTexCoord4ivARB;
extern PFNGLMULTITEXCOORD4SARB pfnglMultiTexCoord4sARB;
extern PFNGLMULTITEXCOORD4SVARB pfnglMultiTexCoord4svARB;
extern PFNGLPOINTPARAMETERFEXT pfnglPointParameterfEXT;
extern PFNGLPOINTPARAMETERFVEXT pfnglPointParameterfvEXT;
extern PFNGLBLENDFUNCSEPARATEINGR pfnglBlendFuncSeparateINGR;
extern PFNGLWINDOWPOS2IMESA pfnglWindowPos2iMESA;
extern PFNGLWINDOWPOS2SMESA pfnglWindowPos2sMESA;
extern PFNGLWINDOWPOS2FMESA pfnglWindowPos2fMESA;
extern PFNGLWINDOWPOS2DMESA pfnglWindowPos2dMESA;
extern PFNGLWINDOWPOS2IVMESA pfnglWindowPos2ivMESA;
extern PFNGLWINDOWPOS2SVMESA pfnglWindowPos2svMESA;
extern PFNGLWINDOWPOS2FVMESA pfnglWindowPos2fvMESA;
extern PFNGLWINDOWPOS2DVMESA pfnglWindowPos2dvMESA;
extern PFNGLWINDOWPOS3IMESA pfnglWindowPos3iMESA;
extern PFNGLWINDOWPOS3SMESA pfnglWindowPos3sMESA;
extern PFNGLWINDOWPOS3FMESA pfnglWindowPos3fMESA;
extern PFNGLWINDOWPOS3DMESA pfnglWindowPos3dMESA;
extern PFNGLWINDOWPOS3IVMESA pfnglWindowPos3ivMESA;
extern PFNGLWINDOWPOS3SVMESA pfnglWindowPos3svMESA;
extern PFNGLWINDOWPOS3FVMESA pfnglWindowPos3fvMESA;
extern PFNGLWINDOWPOS3DVMESA pfnglWindowPos3dvMESA;
extern PFNGLWINDOWPOS4IMESA pfnglWindowPos4iMESA;
extern PFNGLWINDOWPOS4SMESA pfnglWindowPos4sMESA;
extern PFNGLWINDOWPOS4FMESA pfnglWindowPos4fMESA;
extern PFNGLWINDOWPOS4DMESA pfnglWindowPos4dMESA;
extern PFNGLWINDOWPOS4IVMESA pfnglWindowPos4ivMESA;
extern PFNGLWINDOWPOS4SVMESA pfnglWindowPos4svMESA;
extern PFNGLWINDOWPOS4FVMESA pfnglWindowPos4fvMESA;
extern PFNGLWINDOWPOS4DVMESA pfnglWindowPos4dvMESA;
extern PFNGLRESIZEBUFFERSMESA pfnglResizeBuffersMESA;
extern PFNGLDRAWRANGEELEMENTS pfnglDrawRangeElements;
extern PFNGLTEXIMAGE3D pfnglTexImage3D;
extern PFNGLTEXSUBIMAGE3D pfnglTexSubImage3D;
extern PFNGLCOPYTEXSUBIMAGE3D pfnglCopyTexSubImage3D;
extern PFNGLCOLORTABLE pfnglColorTable;
extern PFNGLCOLORSUBTABLE pfnglColorSubTable;
extern PFNGLCOLORTABLEPARAMETERIV pfnglColorTableParameteriv;
extern PFNGLCOLORTABLEPARAMETERFV pfnglColorTableParameterfv;
extern PFNGLCOPYCOLORSUBTABLE pfnglCopyColorSubTable;
extern PFNGLCOPYCOLORTABLE pfnglCopyColorTable;
extern PFNGLGETCOLORTABLE pfnglGetColorTable;
extern PFNGLGETCOLORTABLEPARAMETERFV pfnglGetColorTableParameterfv;
extern PFNGLGETCOLORTABLEPARAMETERIV pfnglGetColorTableParameteriv;
extern PFNGLBLENDEQUATION pfnglBlendEquation;
extern PFNGLBLENDCOLOR pfnglBlendColor;
extern PFNGLHISTOGRAM pfnglHistogram;
extern PFNGLRESETHISTOGRAM pfnglResetHistogram;
extern PFNGLGETHISTOGRAM pfnglGetHistogram;
extern PFNGLGETHISTOGRAMPARAMETERFV pfnglGetHistogramParameterfv;
extern PFNGLGETHISTOGRAMPARAMETERIV pfnglGetHistogramParameteriv;
extern PFNGLMINMAX pfnglMinmax;
extern PFNGLRESETMINMAX pfnglResetMinmax;
extern PFNGLGETMINMAX pfnglGetMinmax;
extern PFNGLGETMINMAXPARAMETERFV pfnglGetMinmaxParameterfv;
extern PFNGLGETMINMAXPARAMETERIV pfnglGetMinmaxParameteriv;
extern PFNGLCONVOLUTIONFILTER1D pfnglConvolutionFilter1D;
extern PFNGLCONVOLUTIONFILTER2D pfnglConvolutionFilter2D;
extern PFNGLCONVOLUTIONPARAMETERF pfnglConvolutionParameterf;
extern PFNGLCONVOLUTIONPARAMETERFV pfnglConvolutionParameterfv;
extern PFNGLCONVOLUTIONPARAMETERI pfnglConvolutionParameteri;
extern PFNGLCONVOLUTIONPARAMETERIV pfnglConvolutionParameteriv;
extern PFNGLCOPYCONVOLUTIONFILTER1D pfnglCopyConvolutionFilter1D;
extern PFNGLCOPYCONVOLUTIONFILTER2D pfnglCopyConvolutionFilter2D;
extern PFNGLGETCONVOLUTIONFILTER pfnglGetConvolutionFilter;
extern PFNGLGETCONVOLUTIONPARAMETERFV pfnglGetConvolutionParameterfv;
extern PFNGLGETCONVOLUTIONPARAMETERIV pfnglGetConvolutionParameteriv;
extern PFNGLSEPARABLEFILTER2D pfnglSeparableFilter2D;
extern PFNGLGETSEPARABLEFILTER pfnglGetSeparableFilter;
extern PFNGLLOCKARRAYSEXT pfnglLockArraysEXT;
extern PFNGLUNLOCKARRAYSEXT pfnglUnlockArraysEXT;

// =============================================================================
// Replace OpenGL function names with the dynamic functions

#define glClearIndex pfnglClearIndex
#define glClearColor pfnglClearColor
#define glClear pfnglClear
#define glIndexMask pfnglIndexMask
#define glColorMask pfnglColorMask
#define glAlphaFunc pfnglAlphaFunc
#define glBlendFunc pfnglBlendFunc
#define glLogicOp pfnglLogicOp
#define glCullFace pfnglCullFace
#define glFrontFace pfnglFrontFace
#define glPointSize pfnglPointSize
#define glLineWidth pfnglLineWidth
#define glLineStipple pfnglLineStipple
#define glPolygonMode pfnglPolygonMode
#define glPolygonOffset pfnglPolygonOffset
#define glPolygonStipple pfnglPolygonStipple
#define glGetPolygonStipple pfnglGetPolygonStipple
#define glEdgeFlag pfnglEdgeFlag
#define glEdgeFlagv pfnglEdgeFlagv
#define glScissor pfnglScissor
#define glClipPlane pfnglClipPlane
#define glGetClipPlane pfnglGetClipPlane
#define glDrawBuffer pfnglDrawBuffer
#define glReadBuffer pfnglReadBuffer
#define glEnable pfnglEnable
#define glDisable pfnglDisable
#define glIsEnabled pfnglIsEnabled
#define glEnableClientState pfnglEnableClientState
#define glDisableClientState pfnglDisableClientState
#define glGetBooleanv pfnglGetBooleanv
#define glGetDoublev pfnglGetDoublev
#define glGetFloatv pfnglGetFloatv
#define glGetIntegerv pfnglGetIntegerv
#define glPushAttrib pfnglPushAttrib
#define glPopAttrib pfnglPopAttrib
#define glPushClientAttrib pfnglPushClientAttrib
#define glPopClientAttrib pfnglPopClientAttrib
#define glRenderMode pfnglRenderMode
#define glGetError pfnglGetError
#define glGetString pfnglGetString
#define glFinish pfnglFinish
#define glFlush pfnglFlush
#define glHint pfnglHint
#define glClearDepth pfnglClearDepth
#define glDepthFunc pfnglDepthFunc
#define glDepthMask pfnglDepthMask
#define glDepthRange pfnglDepthRange
#define glClearAccum pfnglClearAccum
#define glAccum pfnglAccum
#define glMatrixMode pfnglMatrixMode
#define glOrtho pfnglOrtho
#define glFrustum pfnglFrustum
#define glViewport pfnglViewport
#define glPushMatrix pfnglPushMatrix
#define glPopMatrix pfnglPopMatrix
#define glLoadIdentity pfnglLoadIdentity
#define glLoadMatrixd pfnglLoadMatrixd
#define glLoadMatrixf pfnglLoadMatrixf
#define glMultMatrixd pfnglMultMatrixd
#define glMultMatrixf pfnglMultMatrixf
#define glRotated pfnglRotated
#define glRotatef pfnglRotatef
#define glScaled pfnglScaled
#define glScalef pfnglScalef
#define glTranslated pfnglTranslated
#define glTranslatef pfnglTranslatef
#define glIsList pfnglIsList
#define glDeleteLists pfnglDeleteLists
#define glGenLists pfnglGenLists
#define glNewList pfnglNewList
#define glEndList pfnglEndList
#define glCallList pfnglCallList
#define glCallLists pfnglCallLists
#define glListBase pfnglListBase
#define glBegin pfnglBegin
#define glEnd pfnglEnd
#define glVertex2d pfnglVertex2d
#define glVertex2f pfnglVertex2f
#define glVertex2i pfnglVertex2i
#define glVertex2s pfnglVertex2s
#define glVertex3d pfnglVertex3d
#define glVertex3f pfnglVertex3f
#define glVertex3i pfnglVertex3i
#define glVertex3s pfnglVertex3s
#define glVertex4d pfnglVertex4d
#define glVertex4f pfnglVertex4f
#define glVertex4i pfnglVertex4i
#define glVertex4s pfnglVertex4s
#define glVertex2dv pfnglVertex2dv
#define glVertex2fv pfnglVertex2fv
#define glVertex2iv pfnglVertex2iv
#define glVertex2sv pfnglVertex2sv
#define glVertex3dv pfnglVertex3dv
#define glVertex3fv pfnglVertex3fv
#define glVertex3iv pfnglVertex3iv
#define glVertex3sv pfnglVertex3sv
#define glVertex4dv pfnglVertex4dv
#define glVertex4fv pfnglVertex4fv
#define glVertex4iv pfnglVertex4iv
#define glVertex4sv pfnglVertex4sv
#define glNormal3b pfnglNormal3b
#define glNormal3d pfnglNormal3d
#define glNormal3f pfnglNormal3f
#define glNormal3i pfnglNormal3i
#define glNormal3s pfnglNormal3s
#define glNormal3bv pfnglNormal3bv
#define glNormal3dv pfnglNormal3dv
#define glNormal3fv pfnglNormal3fv
#define glNormal3iv pfnglNormal3iv
#define glNormal3sv pfnglNormal3sv
#define glIndexd pfnglIndexd
#define glIndexf pfnglIndexf
#define glIndexi pfnglIndexi
#define glIndexs pfnglIndexs
#define glIndexub pfnglIndexub
#define glIndexdv pfnglIndexdv
#define glIndexfv pfnglIndexfv
#define glIndexiv pfnglIndexiv
#define glIndexsv pfnglIndexsv
#define glIndexubv pfnglIndexubv
#define glColor3b pfnglColor3b
#define glColor3d pfnglColor3d
#define glColor3f pfnglColor3f
#define glColor3i pfnglColor3i
#define glColor3s pfnglColor3s
#define glColor3ub pfnglColor3ub
#define glColor3ui pfnglColor3ui
#define glColor3us pfnglColor3us
#define glColor4b pfnglColor4b
#define glColor4d pfnglColor4d
#define glColor4f pfnglColor4f
#define glColor4i pfnglColor4i
#define glColor4s pfnglColor4s
#define glColor4ub pfnglColor4ub
#define glColor4ui pfnglColor4ui
#define glColor4us pfnglColor4us
#define glColor3bv pfnglColor3bv
#define glColor3dv pfnglColor3dv
#define glColor3fv pfnglColor3fv
#define glColor3iv pfnglColor3iv
#define glColor3sv pfnglColor3sv
#define glColor3ubv pfnglColor3ubv
#define glColor3uiv pfnglColor3uiv
#define glColor3usv pfnglColor3usv
#define glColor4bv pfnglColor4bv
#define glColor4dv pfnglColor4dv
#define glColor4fv pfnglColor4fv
#define glColor4iv pfnglColor4iv
#define glColor4sv pfnglColor4sv
#define glColor4ubv pfnglColor4ubv
#define glColor4uiv pfnglColor4uiv
#define glColor4usv pfnglColor4usv
#define glTexCoord1d pfnglTexCoord1d
#define glTexCoord1f pfnglTexCoord1f
#define glTexCoord1i pfnglTexCoord1i
#define glTexCoord1s pfnglTexCoord1s
#define glTexCoord2d pfnglTexCoord2d
#define glTexCoord2f pfnglTexCoord2f
#define glTexCoord2i pfnglTexCoord2i
#define glTexCoord2s pfnglTexCoord2s
#define glTexCoord3d pfnglTexCoord3d
#define glTexCoord3f pfnglTexCoord3f
#define glTexCoord3i pfnglTexCoord3i
#define glTexCoord3s pfnglTexCoord3s
#define glTexCoord4d pfnglTexCoord4d
#define glTexCoord4f pfnglTexCoord4f
#define glTexCoord4i pfnglTexCoord4i
#define glTexCoord4s pfnglTexCoord4s
#define glTexCoord1dv pfnglTexCoord1dv
#define glTexCoord1fv pfnglTexCoord1fv
#define glTexCoord1iv pfnglTexCoord1iv
#define glTexCoord1sv pfnglTexCoord1sv
#define glTexCoord2dv pfnglTexCoord2dv
#define glTexCoord2fv pfnglTexCoord2fv
#define glTexCoord2iv pfnglTexCoord2iv
#define glTexCoord2sv pfnglTexCoord2sv
#define glTexCoord3dv pfnglTexCoord3dv
#define glTexCoord3fv pfnglTexCoord3fv
#define glTexCoord3iv pfnglTexCoord3iv
#define glTexCoord3sv pfnglTexCoord3sv
#define glTexCoord4dv pfnglTexCoord4dv
#define glTexCoord4fv pfnglTexCoord4fv
#define glTexCoord4iv pfnglTexCoord4iv
#define glTexCoord4sv pfnglTexCoord4sv
#define glRasterPos2d pfnglRasterPos2d
#define glRasterPos2f pfnglRasterPos2f
#define glRasterPos2i pfnglRasterPos2i
#define glRasterPos2s pfnglRasterPos2s
#define glRasterPos3d pfnglRasterPos3d
#define glRasterPos3f pfnglRasterPos3f
#define glRasterPos3i pfnglRasterPos3i
#define glRasterPos3s pfnglRasterPos3s
#define glRasterPos4d pfnglRasterPos4d
#define glRasterPos4f pfnglRasterPos4f
#define glRasterPos4i pfnglRasterPos4i
#define glRasterPos4s pfnglRasterPos4s
#define glRasterPos2dv pfnglRasterPos2dv
#define glRasterPos2fv pfnglRasterPos2fv
#define glRasterPos2iv pfnglRasterPos2iv
#define glRasterPos2sv pfnglRasterPos2sv
#define glRasterPos3dv pfnglRasterPos3dv
#define glRasterPos3fv pfnglRasterPos3fv
#define glRasterPos3iv pfnglRasterPos3iv
#define glRasterPos3sv pfnglRasterPos3sv
#define glRasterPos4dv pfnglRasterPos4dv
#define glRasterPos4fv pfnglRasterPos4fv
#define glRasterPos4iv pfnglRasterPos4iv
#define glRasterPos4sv pfnglRasterPos4sv
#define glRectd pfnglRectd
#define glRectf pfnglRectf
#define glRecti pfnglRecti
#define glRects pfnglRects
#define glRectdv pfnglRectdv
#define glRectfv pfnglRectfv
#define glRectiv pfnglRectiv
#define glRectsv pfnglRectsv
#define glVertexPointer pfnglVertexPointer
#define glNormalPointer pfnglNormalPointer
#define glColorPointer pfnglColorPointer
#define glIndexPointer pfnglIndexPointer
#define glTexCoordPointer pfnglTexCoordPointer
#define glEdgeFlagPointer pfnglEdgeFlagPointer
#define glGetPointerv pfnglGetPointerv
#define glArrayElement pfnglArrayElement
#define glDrawArrays pfnglDrawArrays
#define glDrawElements pfnglDrawElements
#define glInterleavedArrays pfnglInterleavedArrays
#define glShadeModel pfnglShadeModel
#define glLightf pfnglLightf
#define glLighti pfnglLighti
#define glLightfv pfnglLightfv
#define glLightiv pfnglLightiv
#define glGetLightfv pfnglGetLightfv
#define glGetLightiv pfnglGetLightiv
#define glLightModelf pfnglLightModelf
#define glLightModeli pfnglLightModeli
#define glLightModelfv pfnglLightModelfv
#define glLightModeliv pfnglLightModeliv
#define glMaterialf pfnglMaterialf
#define glMateriali pfnglMateriali
#define glMaterialfv pfnglMaterialfv
#define glMaterialiv pfnglMaterialiv
#define glGetMaterialfv pfnglGetMaterialfv
#define glGetMaterialiv pfnglGetMaterialiv
#define glColorMaterial pfnglColorMaterial
#define glPixelZoom pfnglPixelZoom
#define glPixelStoref pfnglPixelStoref
#define glPixelStorei pfnglPixelStorei
#define glPixelTransferf pfnglPixelTransferf
#define glPixelTransferi pfnglPixelTransferi
#define glPixelMapfv pfnglPixelMapfv
#define glPixelMapuiv pfnglPixelMapuiv
#define glPixelMapusv pfnglPixelMapusv
#define glGetPixelMapfv pfnglGetPixelMapfv
#define glGetPixelMapuiv pfnglGetPixelMapuiv
#define glGetPixelMapusv pfnglGetPixelMapusv
#define glBitmap pfnglBitmap
#define glReadPixels pfnglReadPixels
#define glDrawPixels pfnglDrawPixels
#define glCopyPixels pfnglCopyPixels
#define glStencilFunc pfnglStencilFunc
#define glStencilMask pfnglStencilMask
#define glStencilOp pfnglStencilOp
#define glClearStencil pfnglClearStencil
#define glTexGend pfnglTexGend
#define glTexGenf pfnglTexGenf
#define glTexGeni pfnglTexGeni
#define glTexGendv pfnglTexGendv
#define glTexGenfv pfnglTexGenfv
#define glTexGeniv pfnglTexGeniv
#define glGetTexGendv pfnglGetTexGendv
#define glGetTexGenfv pfnglGetTexGenfv
#define glGetTexGeniv pfnglGetTexGeniv
#define glTexEnvf pfnglTexEnvf
#define glTexEnvi pfnglTexEnvi
#define glTexEnvfv pfnglTexEnvfv
#define glTexEnviv pfnglTexEnviv
#define glGetTexEnvfv pfnglGetTexEnvfv
#define glGetTexEnviv pfnglGetTexEnviv
#define glTexParameterf pfnglTexParameterf
#define glTexParameteri pfnglTexParameteri
#define glTexParameterfv pfnglTexParameterfv
#define glTexParameteriv pfnglTexParameteriv
#define glGetTexParameterfv pfnglGetTexParameterfv
#define glGetTexParameteriv pfnglGetTexParameteriv
#define glGetTexLevelParameterfv pfnglGetTexLevelParameterfv
#define glGetTexLevelParameteriv pfnglGetTexLevelParameteriv
#define glTexImage1D pfnglTexImage1D
#define glTexImage2D pfnglTexImage2D
#define glGetTexImage pfnglGetTexImage
#define glGenTextures pfnglGenTextures
#define glDeleteTextures pfnglDeleteTextures
#define glBindTexture pfnglBindTexture
#define glPrioritizeTextures pfnglPrioritizeTextures
#define glAreTexturesResident pfnglAreTexturesResident
#define glIsTexture pfnglIsTexture
#define glTexSubImage1D pfnglTexSubImage1D
#define glTexSubImage2D pfnglTexSubImage2D
#define glCopyTexImage1D pfnglCopyTexImage1D
#define glCopyTexImage2D pfnglCopyTexImage2D
#define glCopyTexSubImage1D pfnglCopyTexSubImage1D
#define glCopyTexSubImage2D pfnglCopyTexSubImage2D
#define glMap1d pfnglMap1d
#define glMap1f pfnglMap1f
#define glMap2d pfnglMap2d
#define glMap2f pfnglMap2f
#define glGetMapdv pfnglGetMapdv
#define glGetMapfv pfnglGetMapfv
#define glGetMapiv pfnglGetMapiv
#define glEvalCoord1d pfnglEvalCoord1d
#define glEvalCoord1f pfnglEvalCoord1f
#define glEvalCoord1dv pfnglEvalCoord1dv
#define glEvalCoord1fv pfnglEvalCoord1fv
#define glEvalCoord2d pfnglEvalCoord2d
#define glEvalCoord2f pfnglEvalCoord2f
#define glEvalCoord2dv pfnglEvalCoord2dv
#define glEvalCoord2fv pfnglEvalCoord2fv
#define glMapGrid1d pfnglMapGrid1d
#define glMapGrid1f pfnglMapGrid1f
#define glMapGrid2d pfnglMapGrid2d
#define glMapGrid2f pfnglMapGrid2f
#define glEvalPoint1 pfnglEvalPoint1
#define glEvalPoint2 pfnglEvalPoint2
#define glEvalMesh1 pfnglEvalMesh1
#define glEvalMesh2 pfnglEvalMesh2
#define glFogf pfnglFogf
#define glFogi pfnglFogi
#define glFogfv pfnglFogfv
#define glFogiv pfnglFogiv
#define glFeedbackBuffer pfnglFeedbackBuffer
#define glPassThrough pfnglPassThrough
#define glSelectBuffer pfnglSelectBuffer
#define glInitNames pfnglInitNames
#define glLoadName pfnglLoadName
#define glPushName pfnglPushName
#define glPopName pfnglPopName
#define glBlendEquationEXT pfnglBlendEquationEXT
#define glBlendColorEXT pfnglBlendColorEXT
#define glPolygonOffsetEXT pfnglPolygonOffsetEXT
#define glVertexPointerEXT pfnglVertexPointerEXT
#define glNormalPointerEXT pfnglNormalPointerEXT
#define glColorPointerEXT pfnglColorPointerEXT
#define glIndexPointerEXT pfnglIndexPointerEXT
#define glTexCoordPointerEXT pfnglTexCoordPointerEXT
#define glEdgeFlagPointerEXT pfnglEdgeFlagPointerEXT
#define glGetPointervEXT pfnglGetPointervEXT
#define glArrayElementEXT pfnglArrayElementEXT
#define glDrawArraysEXT pfnglDrawArraysEXT
#define glGenTexturesEXT pfnglGenTexturesEXT
#define glDeleteTexturesEXT pfnglDeleteTexturesEXT
#define glBindTextureEXT pfnglBindTextureEXT
#define glPrioritizeTexturesEXT pfnglPrioritizeTexturesEXT
#define glAreTexturesResidentEXT pfnglAreTexturesResidentEXT
#define glIsTextureEXT pfnglIsTextureEXT
#define glTexImage3DEXT pfnglTexImage3DEXT
#define glTexSubImage3DEXT pfnglTexSubImage3DEXT
#define glCopyTexSubImage3DEXT pfnglCopyTexSubImage3DEXT
#define glColorTableEXT pfnglColorTableEXT
#define glColorSubTableEXT pfnglColorSubTableEXT
#define glGetColorTableEXT pfnglGetColorTableEXT
#define glGetColorTableParameterfvEXT pfnglGetColorTableParameterfvEXT
#define glGetColorTableParameterivEXT pfnglGetColorTableParameterivEXT
#define glActiveTextureARB pfnglActiveTextureARB
#define glClientActiveTextureARB pfnglClientActiveTextureARB
#define glMultiTexCoord1dARB pfnglMultiTexCoord1dARB
#define glMultiTexCoord1dvARB pfnglMultiTexCoord1dvARB
#define glMultiTexCoord1fARB pfnglMultiTexCoord1fARB
#define glMultiTexCoord1fvARB pfnglMultiTexCoord1fvARB
#define glMultiTexCoord1iARB pfnglMultiTexCoord1iARB
#define glMultiTexCoord1ivARB pfnglMultiTexCoord1ivARB
#define glMultiTexCoord1sARB pfnglMultiTexCoord1sARB
#define glMultiTexCoord1svARB pfnglMultiTexCoord1svARB
#define glMultiTexCoord2dARB pfnglMultiTexCoord2dARB
#define glMultiTexCoord2dvARB pfnglMultiTexCoord2dvARB
#define glMultiTexCoord2fARB pfnglMultiTexCoord2fARB
#define glMultiTexCoord2fvARB pfnglMultiTexCoord2fvARB
#define glMultiTexCoord2iARB pfnglMultiTexCoord2iARB
#define glMultiTexCoord2ivARB pfnglMultiTexCoord2ivARB
#define glMultiTexCoord2sARB pfnglMultiTexCoord2sARB
#define glMultiTexCoord2svARB pfnglMultiTexCoord2svARB
#define glMultiTexCoord3dARB pfnglMultiTexCoord3dARB
#define glMultiTexCoord3dvARB pfnglMultiTexCoord3dvARB
#define glMultiTexCoord3fARB pfnglMultiTexCoord3fARB
#define glMultiTexCoord3fvARB pfnglMultiTexCoord3fvARB
#define glMultiTexCoord3iARB pfnglMultiTexCoord3iARB
#define glMultiTexCoord3ivARB pfnglMultiTexCoord3ivARB
#define glMultiTexCoord3sARB pfnglMultiTexCoord3sARB
#define glMultiTexCoord3svARB pfnglMultiTexCoord3svARB
#define glMultiTexCoord4dARB pfnglMultiTexCoord4dARB
#define glMultiTexCoord4dvARB pfnglMultiTexCoord4dvARB
#define glMultiTexCoord4fARB pfnglMultiTexCoord4fARB
#define glMultiTexCoord4fvARB pfnglMultiTexCoord4fvARB
#define glMultiTexCoord4iARB pfnglMultiTexCoord4iARB
#define glMultiTexCoord4ivARB pfnglMultiTexCoord4ivARB
#define glMultiTexCoord4sARB pfnglMultiTexCoord4sARB
#define glMultiTexCoord4svARB pfnglMultiTexCoord4svARB
#define glPointParameterfEXT pfnglPointParameterfEXT
#define glPointParameterfvEXT pfnglPointParameterfvEXT
#define glBlendFuncSeparateINGR pfnglBlendFuncSeparateINGR
#define glWindowPos2iMESA pfnglWindowPos2iMESA
#define glWindowPos2sMESA pfnglWindowPos2sMESA
#define glWindowPos2fMESA pfnglWindowPos2fMESA
#define glWindowPos2dMESA pfnglWindowPos2dMESA
#define glWindowPos2ivMESA pfnglWindowPos2ivMESA
#define glWindowPos2svMESA pfnglWindowPos2svMESA
#define glWindowPos2fvMESA pfnglWindowPos2fvMESA
#define glWindowPos2dvMESA pfnglWindowPos2dvMESA
#define glWindowPos3iMESA pfnglWindowPos3iMESA
#define glWindowPos3sMESA pfnglWindowPos3sMESA
#define glWindowPos3fMESA pfnglWindowPos3fMESA
#define glWindowPos3dMESA pfnglWindowPos3dMESA
#define glWindowPos3ivMESA pfnglWindowPos3ivMESA
#define glWindowPos3svMESA pfnglWindowPos3svMESA
#define glWindowPos3fvMESA pfnglWindowPos3fvMESA
#define glWindowPos3dvMESA pfnglWindowPos3dvMESA
#define glWindowPos4iMESA pfnglWindowPos4iMESA
#define glWindowPos4sMESA pfnglWindowPos4sMESA
#define glWindowPos4fMESA pfnglWindowPos4fMESA
#define glWindowPos4dMESA pfnglWindowPos4dMESA
#define glWindowPos4ivMESA pfnglWindowPos4ivMESA
#define glWindowPos4svMESA pfnglWindowPos4svMESA
#define glWindowPos4fvMESA pfnglWindowPos4fvMESA
#define glWindowPos4dvMESA pfnglWindowPos4dvMESA
#define glResizeBuffersMESA pfnglResizeBuffersMESA
#define glDrawRangeElements pfnglDrawRangeElements
#define glTexImage3D pfnglTexImage3D
#define glTexSubImage3D pfnglTexSubImage3D
#define glCopyTexSubImage3D pfnglCopyTexSubImage3D
#define glColorTable pfnglColorTable
#define glColorSubTable pfnglColorSubTable
#define glColorTableParameteriv pfnglColorTableParameteriv
#define glColorTableParameterfv pfnglColorTableParameterfv
#define glCopyColorSubTable pfnglCopyColorSubTable
#define glCopyColorTable pfnglCopyColorTable
#define glGetColorTable pfnglGetColorTable
#define glGetColorTableParameterfv pfnglGetColorTableParameterfv
#define glGetColorTableParameteriv pfnglGetColorTableParameteriv
#define glBlendEquation pfnglBlendEquation
#define glBlendColor pfnglBlendColor
#define glHistogram pfnglHistogram
#define glResetHistogram pfnglResetHistogram
#define glGetHistogram pfnglGetHistogram
#define glGetHistogramParameterfv pfnglGetHistogramParameterfv
#define glGetHistogramParameteriv pfnglGetHistogramParameteriv
#define glMinmax pfnglMinmax
#define glResetMinmax pfnglResetMinmax
#define glGetMinmax pfnglGetMinmax
#define glGetMinmaxParameterfv pfnglGetMinmaxParameterfv
#define glGetMinmaxParameteriv pfnglGetMinmaxParameteriv
#define glConvolutionFilter1D pfnglConvolutionFilter1D
#define glConvolutionFilter2D pfnglConvolutionFilter2D
#define glConvolutionParameterf pfnglConvolutionParameterf
#define glConvolutionParameterfv pfnglConvolutionParameterfv
#define glConvolutionParameteri pfnglConvolutionParameteri
#define glConvolutionParameteriv pfnglConvolutionParameteriv
#define glCopyConvolutionFilter1D pfnglCopyConvolutionFilter1D
#define glCopyConvolutionFilter2D pfnglCopyConvolutionFilter2D
#define glGetConvolutionFilter pfnglGetConvolutionFilter
#define glGetConvolutionParameterfv pfnglGetConvolutionParameterfv
#define glGetConvolutionParameteriv pfnglGetConvolutionParameteriv
#define glSeparableFilter2D pfnglSeparableFilter2D
#define glGetSeparableFilter pfnglGetSeparableFilter
#define glLockArraysEXT pfnglLockArraysEXT
#define glUnlockArraysEXT pfnglUnlockArraysEXT

#endif // _OPENGL_H_