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
|
/*
* GLX implementation that uses Apple's OpenGL.framework
*
* Copyright (c) 2007-2011 Apple Inc.
* Copyright (c) 2004 Torrey T. Lyons. All Rights Reserved.
* Copyright (c) 2002 Greg Parker. All Rights Reserved.
*
* Portions of this file are copied from Mesa's xf86glx.c,
* which contains the following copyright:
*
* Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#include <assert.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <GL/gl.h>
#include "glapi.h"
#include "glapitable.h"
#include "glapidispatch.h"
#include "apple_glx.h"
#include "apple_xgl_api.h"
#ifndef OPENGL_FRAMEWORK_PATH
#define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/OpenGL"
#endif
__private_extern__
struct _glapi_table * __ogl_framework_api = NULL;
__private_extern__
struct _glapi_table * __applegl_api = NULL;
__private_extern__
void apple_xgl_init_direct(void) {
static void *handle;
const char *opengl_framework_path;
if(__applegl_api) {
_glapi_set_dispatch(__applegl_api);
return;
}
opengl_framework_path = getenv("OPENGL_FRAMEWORK_PATH");
if (!opengl_framework_path) {
opengl_framework_path = OPENGL_FRAMEWORK_PATH;
}
(void) dlerror(); /*drain dlerror */
handle = dlopen(opengl_framework_path, RTLD_LOCAL);
if (!handle) {
fprintf(stderr, "error: unable to dlopen %s : %s\n",
opengl_framework_path, dlerror());
abort();
}
__ogl_framework_api = calloc(1, sizeof(struct _glapi_table));
assert(__ogl_framework_api);
/* to update:
* for f in $(grep 'define SET_' ../../../glx/dispatch.h | cut -f2 -d' ' | cut -f1 -d\( | sort -u); do grep -q $f indirect.c && echo $f ; done | grep -v by_offset | sed 's:SET_\(.*\)$:SET_\1(__ogl_framework_api, dlsym(handle, "gl\1"))\;:'
*/
SET_Accum(__ogl_framework_api, dlsym(handle, "glAccum"));
SET_AlphaFunc(__ogl_framework_api, dlsym(handle, "glAlphaFunc"));
SET_AreTexturesResident(__ogl_framework_api, dlsym(handle, "glAreTexturesResident"));
SET_ArrayElement(__ogl_framework_api, dlsym(handle, "glArrayElement"));
SET_Begin(__ogl_framework_api, dlsym(handle, "glBegin"));
SET_BindTexture(__ogl_framework_api, dlsym(handle, "glBindTexture"));
SET_Bitmap(__ogl_framework_api, dlsym(handle, "glBitmap"));
SET_BlendColor(__ogl_framework_api, dlsym(handle, "glBlendColor"));
SET_BlendEquation(__ogl_framework_api, dlsym(handle, "glBlendEquation"));
SET_BlendFunc(__ogl_framework_api, dlsym(handle, "glBlendFunc"));
SET_CallList(__ogl_framework_api, dlsym(handle, "glCallList"));
SET_CallLists(__ogl_framework_api, dlsym(handle, "glCallLists"));
SET_Clear(__ogl_framework_api, dlsym(handle, "glClear"));
SET_ClearAccum(__ogl_framework_api, dlsym(handle, "glClearAccum"));
SET_ClearColor(__ogl_framework_api, dlsym(handle, "glClearColor"));
SET_ClearDepth(__ogl_framework_api, dlsym(handle, "glClearDepth"));
SET_ClearIndex(__ogl_framework_api, dlsym(handle, "glClearIndex"));
SET_ClearStencil(__ogl_framework_api, dlsym(handle, "glClearStencil"));
SET_ClipPlane(__ogl_framework_api, dlsym(handle, "glClipPlane"));
SET_Color3b(__ogl_framework_api, dlsym(handle, "glColor3b"));
SET_Color3bv(__ogl_framework_api, dlsym(handle, "glColor3bv"));
SET_Color3d(__ogl_framework_api, dlsym(handle, "glColor3d"));
SET_Color3dv(__ogl_framework_api, dlsym(handle, "glColor3dv"));
SET_Color3f(__ogl_framework_api, dlsym(handle, "glColor3f"));
SET_Color3fv(__ogl_framework_api, dlsym(handle, "glColor3fv"));
SET_Color3i(__ogl_framework_api, dlsym(handle, "glColor3i"));
SET_Color3iv(__ogl_framework_api, dlsym(handle, "glColor3iv"));
SET_Color3s(__ogl_framework_api, dlsym(handle, "glColor3s"));
SET_Color3sv(__ogl_framework_api, dlsym(handle, "glColor3sv"));
SET_Color3ub(__ogl_framework_api, dlsym(handle, "glColor3ub"));
SET_Color3ubv(__ogl_framework_api, dlsym(handle, "glColor3ubv"));
SET_Color3ui(__ogl_framework_api, dlsym(handle, "glColor3ui"));
SET_Color3uiv(__ogl_framework_api, dlsym(handle, "glColor3uiv"));
SET_Color3us(__ogl_framework_api, dlsym(handle, "glColor3us"));
SET_Color3usv(__ogl_framework_api, dlsym(handle, "glColor3usv"));
SET_Color4b(__ogl_framework_api, dlsym(handle, "glColor4b"));
SET_Color4bv(__ogl_framework_api, dlsym(handle, "glColor4bv"));
SET_Color4d(__ogl_framework_api, dlsym(handle, "glColor4d"));
SET_Color4dv(__ogl_framework_api, dlsym(handle, "glColor4dv"));
SET_Color4f(__ogl_framework_api, dlsym(handle, "glColor4f"));
SET_Color4fv(__ogl_framework_api, dlsym(handle, "glColor4fv"));
SET_Color4i(__ogl_framework_api, dlsym(handle, "glColor4i"));
SET_Color4iv(__ogl_framework_api, dlsym(handle, "glColor4iv"));
SET_Color4s(__ogl_framework_api, dlsym(handle, "glColor4s"));
SET_Color4sv(__ogl_framework_api, dlsym(handle, "glColor4sv"));
SET_Color4ub(__ogl_framework_api, dlsym(handle, "glColor4ub"));
SET_Color4ubv(__ogl_framework_api, dlsym(handle, "glColor4ubv"));
SET_Color4ui(__ogl_framework_api, dlsym(handle, "glColor4ui"));
SET_Color4uiv(__ogl_framework_api, dlsym(handle, "glColor4uiv"));
SET_Color4us(__ogl_framework_api, dlsym(handle, "glColor4us"));
SET_Color4usv(__ogl_framework_api, dlsym(handle, "glColor4usv"));
SET_ColorMask(__ogl_framework_api, dlsym(handle, "glColorMask"));
SET_ColorMaterial(__ogl_framework_api, dlsym(handle, "glColorMaterial"));
SET_ColorPointer(__ogl_framework_api, dlsym(handle, "glColorPointer"));
SET_ColorSubTable(__ogl_framework_api, dlsym(handle, "glColorSubTable"));
SET_ColorTable(__ogl_framework_api, dlsym(handle, "glColorTable"));
SET_ColorTableParameterfv(__ogl_framework_api, dlsym(handle, "glColorTableParameterfv"));
SET_ColorTableParameteriv(__ogl_framework_api, dlsym(handle, "glColorTableParameteriv"));
SET_ConvolutionFilter1D(__ogl_framework_api, dlsym(handle, "glConvolutionFilter1D"));
SET_ConvolutionFilter2D(__ogl_framework_api, dlsym(handle, "glConvolutionFilter2D"));
SET_ConvolutionParameterf(__ogl_framework_api, dlsym(handle, "glConvolutionParameterf"));
SET_ConvolutionParameterfv(__ogl_framework_api, dlsym(handle, "glConvolutionParameterfv"));
SET_ConvolutionParameteri(__ogl_framework_api, dlsym(handle, "glConvolutionParameteri"));
SET_ConvolutionParameteriv(__ogl_framework_api, dlsym(handle, "glConvolutionParameteriv"));
SET_CopyColorSubTable(__ogl_framework_api, dlsym(handle, "glCopyColorSubTable"));
SET_CopyColorTable(__ogl_framework_api, dlsym(handle, "glCopyColorTable"));
SET_CopyConvolutionFilter1D(__ogl_framework_api, dlsym(handle, "glCopyConvolutionFilter1D"));
SET_CopyConvolutionFilter2D(__ogl_framework_api, dlsym(handle, "glCopyConvolutionFilter2D"));
SET_CopyPixels(__ogl_framework_api, dlsym(handle, "glCopyPixels"));
SET_CopyTexImage1D(__ogl_framework_api, dlsym(handle, "glCopyTexImage1D"));
SET_CopyTexImage2D(__ogl_framework_api, dlsym(handle, "glCopyTexImage2D"));
SET_CopyTexSubImage1D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage1D"));
SET_CopyTexSubImage2D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage2D"));
SET_CopyTexSubImage3D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage3D"));
SET_CullFace(__ogl_framework_api, dlsym(handle, "glCullFace"));
SET_DeleteLists(__ogl_framework_api, dlsym(handle, "glDeleteLists"));
SET_DeleteTextures(__ogl_framework_api, dlsym(handle, "glDeleteTextures"));
SET_DepthFunc(__ogl_framework_api, dlsym(handle, "glDepthFunc"));
SET_DepthMask(__ogl_framework_api, dlsym(handle, "glDepthMask"));
SET_DepthRange(__ogl_framework_api, dlsym(handle, "glDepthRange"));
SET_Disable(__ogl_framework_api, dlsym(handle, "glDisable"));
SET_DisableClientState(__ogl_framework_api, dlsym(handle, "glDisableClientState"));
SET_DrawArrays(__ogl_framework_api, dlsym(handle, "glDrawArrays"));
SET_DrawBuffer(__ogl_framework_api, dlsym(handle, "glDrawBuffer"));
SET_DrawElements(__ogl_framework_api, dlsym(handle, "glDrawElements"));
SET_DrawPixels(__ogl_framework_api, dlsym(handle, "glDrawPixels"));
SET_DrawRangeElements(__ogl_framework_api, dlsym(handle, "glDrawRangeElements"));
SET_EdgeFlag(__ogl_framework_api, dlsym(handle, "glEdgeFlag"));
SET_EdgeFlagPointer(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointer"));
SET_EdgeFlagv(__ogl_framework_api, dlsym(handle, "glEdgeFlagv"));
SET_Enable(__ogl_framework_api, dlsym(handle, "glEnable"));
SET_EnableClientState(__ogl_framework_api, dlsym(handle, "glEnableClientState"));
SET_End(__ogl_framework_api, dlsym(handle, "glEnd"));
SET_EndList(__ogl_framework_api, dlsym(handle, "glEndList"));
SET_EvalCoord1d(__ogl_framework_api, dlsym(handle, "glEvalCoord1d"));
SET_EvalCoord1dv(__ogl_framework_api, dlsym(handle, "glEvalCoord1dv"));
SET_EvalCoord1f(__ogl_framework_api, dlsym(handle, "glEvalCoord1f"));
SET_EvalCoord1fv(__ogl_framework_api, dlsym(handle, "glEvalCoord1fv"));
SET_EvalCoord2d(__ogl_framework_api, dlsym(handle, "glEvalCoord2d"));
SET_EvalCoord2dv(__ogl_framework_api, dlsym(handle, "glEvalCoord2dv"));
SET_EvalCoord2f(__ogl_framework_api, dlsym(handle, "glEvalCoord2f"));
SET_EvalCoord2fv(__ogl_framework_api, dlsym(handle, "glEvalCoord2fv"));
SET_EvalMesh1(__ogl_framework_api, dlsym(handle, "glEvalMesh1"));
SET_EvalMesh2(__ogl_framework_api, dlsym(handle, "glEvalMesh2"));
SET_EvalPoint1(__ogl_framework_api, dlsym(handle, "glEvalPoint1"));
SET_EvalPoint2(__ogl_framework_api, dlsym(handle, "glEvalPoint2"));
SET_FeedbackBuffer(__ogl_framework_api, dlsym(handle, "glFeedbackBuffer"));
SET_Finish(__ogl_framework_api, dlsym(handle, "glFinish"));
SET_Flush(__ogl_framework_api, dlsym(handle, "glFlush"));
SET_Fogf(__ogl_framework_api, dlsym(handle, "glFogf"));
SET_Fogfv(__ogl_framework_api, dlsym(handle, "glFogfv"));
SET_Fogi(__ogl_framework_api, dlsym(handle, "glFogi"));
SET_Fogiv(__ogl_framework_api, dlsym(handle, "glFogiv"));
SET_FrontFace(__ogl_framework_api, dlsym(handle, "glFrontFace"));
SET_Frustum(__ogl_framework_api, dlsym(handle, "glFrustum"));
SET_GenLists(__ogl_framework_api, dlsym(handle, "glGenLists"));
SET_GenTextures(__ogl_framework_api, dlsym(handle, "glGenTextures"));
SET_GetBooleanv(__ogl_framework_api, dlsym(handle, "glGetBooleanv"));
SET_GetClipPlane(__ogl_framework_api, dlsym(handle, "glGetClipPlane"));
SET_GetColorTable(__ogl_framework_api, dlsym(handle, "glGetColorTable"));
SET_GetColorTableParameterfv(__ogl_framework_api, dlsym(handle, "glGetColorTableParameterfv"));
SET_GetColorTableParameteriv(__ogl_framework_api, dlsym(handle, "glGetColorTableParameteriv"));
SET_GetConvolutionFilter(__ogl_framework_api, dlsym(handle, "glGetConvolutionFilter"));
SET_GetConvolutionParameterfv(__ogl_framework_api, dlsym(handle, "glGetConvolutionParameterfv"));
SET_GetConvolutionParameteriv(__ogl_framework_api, dlsym(handle, "glGetConvolutionParameteriv"));
SET_GetDoublev(__ogl_framework_api, dlsym(handle, "glGetDoublev"));
SET_GetError(__ogl_framework_api, dlsym(handle, "glGetError"));
SET_GetFloatv(__ogl_framework_api, dlsym(handle, "glGetFloatv"));
SET_GetHistogram(__ogl_framework_api, dlsym(handle, "glGetHistogram"));
SET_GetHistogramParameterfv(__ogl_framework_api, dlsym(handle, "glGetHistogramParameterfv"));
SET_GetHistogramParameteriv(__ogl_framework_api, dlsym(handle, "glGetHistogramParameteriv"));
SET_GetIntegerv(__ogl_framework_api, dlsym(handle, "glGetIntegerv"));
SET_GetLightfv(__ogl_framework_api, dlsym(handle, "glGetLightfv"));
SET_GetLightiv(__ogl_framework_api, dlsym(handle, "glGetLightiv"));
SET_GetMapdv(__ogl_framework_api, dlsym(handle, "glGetMapdv"));
SET_GetMapfv(__ogl_framework_api, dlsym(handle, "glGetMapfv"));
SET_GetMapiv(__ogl_framework_api, dlsym(handle, "glGetMapiv"));
SET_GetMaterialfv(__ogl_framework_api, dlsym(handle, "glGetMaterialfv"));
SET_GetMaterialiv(__ogl_framework_api, dlsym(handle, "glGetMaterialiv"));
SET_GetMinmax(__ogl_framework_api, dlsym(handle, "glGetMinmax"));
SET_GetMinmaxParameterfv(__ogl_framework_api, dlsym(handle, "glGetMinmaxParameterfv"));
SET_GetMinmaxParameteriv(__ogl_framework_api, dlsym(handle, "glGetMinmaxParameteriv"));
SET_GetPixelMapfv(__ogl_framework_api, dlsym(handle, "glGetPixelMapfv"));
SET_GetPixelMapuiv(__ogl_framework_api, dlsym(handle, "glGetPixelMapuiv"));
SET_GetPixelMapusv(__ogl_framework_api, dlsym(handle, "glGetPixelMapusv"));
SET_GetPointerv(__ogl_framework_api, dlsym(handle, "glGetPointerv"));
SET_GetPolygonStipple(__ogl_framework_api, dlsym(handle, "glGetPolygonStipple"));
SET_GetSeparableFilter(__ogl_framework_api, dlsym(handle, "glGetSeparableFilter"));
SET_GetString(__ogl_framework_api, dlsym(handle, "glGetString"));
SET_GetTexEnvfv(__ogl_framework_api, dlsym(handle, "glGetTexEnvfv"));
SET_GetTexEnviv(__ogl_framework_api, dlsym(handle, "glGetTexEnviv"));
SET_GetTexGendv(__ogl_framework_api, dlsym(handle, "glGetTexGendv"));
SET_GetTexGenfv(__ogl_framework_api, dlsym(handle, "glGetTexGenfv"));
SET_GetTexGeniv(__ogl_framework_api, dlsym(handle, "glGetTexGeniv"));
SET_GetTexImage(__ogl_framework_api, dlsym(handle, "glGetTexImage"));
SET_GetTexLevelParameterfv(__ogl_framework_api, dlsym(handle, "glGetTexLevelParameterfv"));
SET_GetTexLevelParameteriv(__ogl_framework_api, dlsym(handle, "glGetTexLevelParameteriv"));
SET_GetTexParameterfv(__ogl_framework_api, dlsym(handle, "glGetTexParameterfv"));
SET_GetTexParameteriv(__ogl_framework_api, dlsym(handle, "glGetTexParameteriv"));
SET_Hint(__ogl_framework_api, dlsym(handle, "glHint"));
SET_Histogram(__ogl_framework_api, dlsym(handle, "glHistogram"));
SET_IndexMask(__ogl_framework_api, dlsym(handle, "glIndexMask"));
SET_IndexPointer(__ogl_framework_api, dlsym(handle, "glIndexPointer"));
SET_Indexd(__ogl_framework_api, dlsym(handle, "glIndexd"));
SET_Indexdv(__ogl_framework_api, dlsym(handle, "glIndexdv"));
SET_Indexf(__ogl_framework_api, dlsym(handle, "glIndexf"));
SET_Indexfv(__ogl_framework_api, dlsym(handle, "glIndexfv"));
SET_Indexi(__ogl_framework_api, dlsym(handle, "glIndexi"));
SET_Indexiv(__ogl_framework_api, dlsym(handle, "glIndexiv"));
SET_Indexs(__ogl_framework_api, dlsym(handle, "glIndexs"));
SET_Indexsv(__ogl_framework_api, dlsym(handle, "glIndexsv"));
SET_Indexub(__ogl_framework_api, dlsym(handle, "glIndexub"));
SET_Indexubv(__ogl_framework_api, dlsym(handle, "glIndexubv"));
SET_InitNames(__ogl_framework_api, dlsym(handle, "glInitNames"));
SET_InterleavedArrays(__ogl_framework_api, dlsym(handle, "glInterleavedArrays"));
SET_IsEnabled(__ogl_framework_api, dlsym(handle, "glIsEnabled"));
SET_IsList(__ogl_framework_api, dlsym(handle, "glIsList"));
SET_IsTexture(__ogl_framework_api, dlsym(handle, "glIsTexture"));
SET_LightModelf(__ogl_framework_api, dlsym(handle, "glLightModelf"));
SET_LightModelfv(__ogl_framework_api, dlsym(handle, "glLightModelfv"));
SET_LightModeli(__ogl_framework_api, dlsym(handle, "glLightModeli"));
SET_LightModeliv(__ogl_framework_api, dlsym(handle, "glLightModeliv"));
SET_Lightf(__ogl_framework_api, dlsym(handle, "glLightf"));
SET_Lightfv(__ogl_framework_api, dlsym(handle, "glLightfv"));
SET_Lighti(__ogl_framework_api, dlsym(handle, "glLighti"));
SET_Lightiv(__ogl_framework_api, dlsym(handle, "glLightiv"));
SET_LineStipple(__ogl_framework_api, dlsym(handle, "glLineStipple"));
SET_LineWidth(__ogl_framework_api, dlsym(handle, "glLineWidth"));
SET_ListBase(__ogl_framework_api, dlsym(handle, "glListBase"));
SET_LoadIdentity(__ogl_framework_api, dlsym(handle, "glLoadIdentity"));
SET_LoadMatrixd(__ogl_framework_api, dlsym(handle, "glLoadMatrixd"));
SET_LoadMatrixf(__ogl_framework_api, dlsym(handle, "glLoadMatrixf"));
SET_LoadName(__ogl_framework_api, dlsym(handle, "glLoadName"));
SET_LogicOp(__ogl_framework_api, dlsym(handle, "glLogicOp"));
SET_Map1d(__ogl_framework_api, dlsym(handle, "glMap1d"));
SET_Map1f(__ogl_framework_api, dlsym(handle, "glMap1f"));
SET_Map2d(__ogl_framework_api, dlsym(handle, "glMap2d"));
SET_Map2f(__ogl_framework_api, dlsym(handle, "glMap2f"));
SET_MapGrid1d(__ogl_framework_api, dlsym(handle, "glMapGrid1d"));
SET_MapGrid1f(__ogl_framework_api, dlsym(handle, "glMapGrid1f"));
SET_MapGrid2d(__ogl_framework_api, dlsym(handle, "glMapGrid2d"));
SET_MapGrid2f(__ogl_framework_api, dlsym(handle, "glMapGrid2f"));
SET_Materialf(__ogl_framework_api, dlsym(handle, "glMaterialf"));
SET_Materialfv(__ogl_framework_api, dlsym(handle, "glMaterialfv"));
SET_Materiali(__ogl_framework_api, dlsym(handle, "glMateriali"));
SET_Materialiv(__ogl_framework_api, dlsym(handle, "glMaterialiv"));
SET_MatrixMode(__ogl_framework_api, dlsym(handle, "glMatrixMode"));
SET_Minmax(__ogl_framework_api, dlsym(handle, "glMinmax"));
SET_MultMatrixd(__ogl_framework_api, dlsym(handle, "glMultMatrixd"));
SET_MultMatrixf(__ogl_framework_api, dlsym(handle, "glMultMatrixf"));
SET_NewList(__ogl_framework_api, dlsym(handle, "glNewList"));
SET_Normal3b(__ogl_framework_api, dlsym(handle, "glNormal3b"));
SET_Normal3bv(__ogl_framework_api, dlsym(handle, "glNormal3bv"));
SET_Normal3d(__ogl_framework_api, dlsym(handle, "glNormal3d"));
SET_Normal3dv(__ogl_framework_api, dlsym(handle, "glNormal3dv"));
SET_Normal3f(__ogl_framework_api, dlsym(handle, "glNormal3f"));
SET_Normal3fv(__ogl_framework_api, dlsym(handle, "glNormal3fv"));
SET_Normal3i(__ogl_framework_api, dlsym(handle, "glNormal3i"));
SET_Normal3iv(__ogl_framework_api, dlsym(handle, "glNormal3iv"));
SET_Normal3s(__ogl_framework_api, dlsym(handle, "glNormal3s"));
SET_Normal3sv(__ogl_framework_api, dlsym(handle, "glNormal3sv"));
SET_NormalPointer(__ogl_framework_api, dlsym(handle, "glNormalPointer"));
SET_Ortho(__ogl_framework_api, dlsym(handle, "glOrtho"));
SET_PassThrough(__ogl_framework_api, dlsym(handle, "glPassThrough"));
SET_PixelMapfv(__ogl_framework_api, dlsym(handle, "glPixelMapfv"));
SET_PixelMapuiv(__ogl_framework_api, dlsym(handle, "glPixelMapuiv"));
SET_PixelMapusv(__ogl_framework_api, dlsym(handle, "glPixelMapusv"));
SET_PixelStoref(__ogl_framework_api, dlsym(handle, "glPixelStoref"));
SET_PixelStorei(__ogl_framework_api, dlsym(handle, "glPixelStorei"));
SET_PixelTransferf(__ogl_framework_api, dlsym(handle, "glPixelTransferf"));
SET_PixelTransferi(__ogl_framework_api, dlsym(handle, "glPixelTransferi"));
SET_PixelZoom(__ogl_framework_api, dlsym(handle, "glPixelZoom"));
SET_PointSize(__ogl_framework_api, dlsym(handle, "glPointSize"));
SET_PolygonMode(__ogl_framework_api, dlsym(handle, "glPolygonMode"));
SET_PolygonOffset(__ogl_framework_api, dlsym(handle, "glPolygonOffset"));
SET_PolygonStipple(__ogl_framework_api, dlsym(handle, "glPolygonStipple"));
SET_PopAttrib(__ogl_framework_api, dlsym(handle, "glPopAttrib"));
SET_PopClientAttrib(__ogl_framework_api, dlsym(handle, "glPopClientAttrib"));
SET_PopMatrix(__ogl_framework_api, dlsym(handle, "glPopMatrix"));
SET_PopName(__ogl_framework_api, dlsym(handle, "glPopName"));
SET_PrioritizeTextures(__ogl_framework_api, dlsym(handle, "glPrioritizeTextures"));
SET_PushAttrib(__ogl_framework_api, dlsym(handle, "glPushAttrib"));
SET_PushClientAttrib(__ogl_framework_api, dlsym(handle, "glPushClientAttrib"));
SET_PushMatrix(__ogl_framework_api, dlsym(handle, "glPushMatrix"));
SET_PushName(__ogl_framework_api, dlsym(handle, "glPushName"));
SET_RasterPos2d(__ogl_framework_api, dlsym(handle, "glRasterPos2d"));
SET_RasterPos2dv(__ogl_framework_api, dlsym(handle, "glRasterPos2dv"));
SET_RasterPos2f(__ogl_framework_api, dlsym(handle, "glRasterPos2f"));
SET_RasterPos2fv(__ogl_framework_api, dlsym(handle, "glRasterPos2fv"));
SET_RasterPos2i(__ogl_framework_api, dlsym(handle, "glRasterPos2i"));
SET_RasterPos2iv(__ogl_framework_api, dlsym(handle, "glRasterPos2iv"));
SET_RasterPos2s(__ogl_framework_api, dlsym(handle, "glRasterPos2s"));
SET_RasterPos2sv(__ogl_framework_api, dlsym(handle, "glRasterPos2sv"));
SET_RasterPos3d(__ogl_framework_api, dlsym(handle, "glRasterPos3d"));
SET_RasterPos3dv(__ogl_framework_api, dlsym(handle, "glRasterPos3dv"));
SET_RasterPos3f(__ogl_framework_api, dlsym(handle, "glRasterPos3f"));
SET_RasterPos3fv(__ogl_framework_api, dlsym(handle, "glRasterPos3fv"));
SET_RasterPos3i(__ogl_framework_api, dlsym(handle, "glRasterPos3i"));
SET_RasterPos3iv(__ogl_framework_api, dlsym(handle, "glRasterPos3iv"));
SET_RasterPos3s(__ogl_framework_api, dlsym(handle, "glRasterPos3s"));
SET_RasterPos3sv(__ogl_framework_api, dlsym(handle, "glRasterPos3sv"));
SET_RasterPos4d(__ogl_framework_api, dlsym(handle, "glRasterPos4d"));
SET_RasterPos4dv(__ogl_framework_api, dlsym(handle, "glRasterPos4dv"));
SET_RasterPos4f(__ogl_framework_api, dlsym(handle, "glRasterPos4f"));
SET_RasterPos4fv(__ogl_framework_api, dlsym(handle, "glRasterPos4fv"));
SET_RasterPos4i(__ogl_framework_api, dlsym(handle, "glRasterPos4i"));
SET_RasterPos4iv(__ogl_framework_api, dlsym(handle, "glRasterPos4iv"));
SET_RasterPos4s(__ogl_framework_api, dlsym(handle, "glRasterPos4s"));
SET_RasterPos4sv(__ogl_framework_api, dlsym(handle, "glRasterPos4sv"));
SET_ReadBuffer(__ogl_framework_api, dlsym(handle, "glReadBuffer"));
SET_ReadPixels(__ogl_framework_api, dlsym(handle, "glReadPixels"));
SET_Rectd(__ogl_framework_api, dlsym(handle, "glRectd"));
SET_Rectdv(__ogl_framework_api, dlsym(handle, "glRectdv"));
SET_Rectf(__ogl_framework_api, dlsym(handle, "glRectf"));
SET_Rectfv(__ogl_framework_api, dlsym(handle, "glRectfv"));
SET_Recti(__ogl_framework_api, dlsym(handle, "glRecti"));
SET_Rectiv(__ogl_framework_api, dlsym(handle, "glRectiv"));
SET_Rects(__ogl_framework_api, dlsym(handle, "glRects"));
SET_Rectsv(__ogl_framework_api, dlsym(handle, "glRectsv"));
SET_RenderMode(__ogl_framework_api, dlsym(handle, "glRenderMode"));
SET_ResetHistogram(__ogl_framework_api, dlsym(handle, "glResetHistogram"));
SET_ResetMinmax(__ogl_framework_api, dlsym(handle, "glResetMinmax"));
SET_Rotated(__ogl_framework_api, dlsym(handle, "glRotated"));
SET_Rotatef(__ogl_framework_api, dlsym(handle, "glRotatef"));
SET_Scaled(__ogl_framework_api, dlsym(handle, "glScaled"));
SET_Scalef(__ogl_framework_api, dlsym(handle, "glScalef"));
SET_Scissor(__ogl_framework_api, dlsym(handle, "glScissor"));
SET_SelectBuffer(__ogl_framework_api, dlsym(handle, "glSelectBuffer"));
SET_SeparableFilter2D(__ogl_framework_api, dlsym(handle, "glSeparableFilter2D"));
SET_ShadeModel(__ogl_framework_api, dlsym(handle, "glShadeModel"));
SET_StencilFunc(__ogl_framework_api, dlsym(handle, "glStencilFunc"));
SET_StencilMask(__ogl_framework_api, dlsym(handle, "glStencilMask"));
SET_StencilOp(__ogl_framework_api, dlsym(handle, "glStencilOp"));
SET_TexCoord1d(__ogl_framework_api, dlsym(handle, "glTexCoord1d"));
SET_TexCoord1dv(__ogl_framework_api, dlsym(handle, "glTexCoord1dv"));
SET_TexCoord1f(__ogl_framework_api, dlsym(handle, "glTexCoord1f"));
SET_TexCoord1fv(__ogl_framework_api, dlsym(handle, "glTexCoord1fv"));
SET_TexCoord1i(__ogl_framework_api, dlsym(handle, "glTexCoord1i"));
SET_TexCoord1iv(__ogl_framework_api, dlsym(handle, "glTexCoord1iv"));
SET_TexCoord1s(__ogl_framework_api, dlsym(handle, "glTexCoord1s"));
SET_TexCoord1sv(__ogl_framework_api, dlsym(handle, "glTexCoord1sv"));
SET_TexCoord2d(__ogl_framework_api, dlsym(handle, "glTexCoord2d"));
SET_TexCoord2dv(__ogl_framework_api, dlsym(handle, "glTexCoord2dv"));
SET_TexCoord2f(__ogl_framework_api, dlsym(handle, "glTexCoord2f"));
SET_TexCoord2fv(__ogl_framework_api, dlsym(handle, "glTexCoord2fv"));
SET_TexCoord2i(__ogl_framework_api, dlsym(handle, "glTexCoord2i"));
SET_TexCoord2iv(__ogl_framework_api, dlsym(handle, "glTexCoord2iv"));
SET_TexCoord2s(__ogl_framework_api, dlsym(handle, "glTexCoord2s"));
SET_TexCoord2sv(__ogl_framework_api, dlsym(handle, "glTexCoord2sv"));
SET_TexCoord3d(__ogl_framework_api, dlsym(handle, "glTexCoord3d"));
SET_TexCoord3dv(__ogl_framework_api, dlsym(handle, "glTexCoord3dv"));
SET_TexCoord3f(__ogl_framework_api, dlsym(handle, "glTexCoord3f"));
SET_TexCoord3fv(__ogl_framework_api, dlsym(handle, "glTexCoord3fv"));
SET_TexCoord3i(__ogl_framework_api, dlsym(handle, "glTexCoord3i"));
SET_TexCoord3iv(__ogl_framework_api, dlsym(handle, "glTexCoord3iv"));
SET_TexCoord3s(__ogl_framework_api, dlsym(handle, "glTexCoord3s"));
SET_TexCoord3sv(__ogl_framework_api, dlsym(handle, "glTexCoord3sv"));
SET_TexCoord4d(__ogl_framework_api, dlsym(handle, "glTexCoord4d"));
SET_TexCoord4dv(__ogl_framework_api, dlsym(handle, "glTexCoord4dv"));
SET_TexCoord4f(__ogl_framework_api, dlsym(handle, "glTexCoord4f"));
SET_TexCoord4fv(__ogl_framework_api, dlsym(handle, "glTexCoord4fv"));
SET_TexCoord4i(__ogl_framework_api, dlsym(handle, "glTexCoord4i"));
SET_TexCoord4iv(__ogl_framework_api, dlsym(handle, "glTexCoord4iv"));
SET_TexCoord4s(__ogl_framework_api, dlsym(handle, "glTexCoord4s"));
SET_TexCoord4sv(__ogl_framework_api, dlsym(handle, "glTexCoord4sv"));
SET_TexCoordPointer(__ogl_framework_api, dlsym(handle, "glTexCoordPointer"));
SET_TexEnvf(__ogl_framework_api, dlsym(handle, "glTexEnvf"));
SET_TexEnvfv(__ogl_framework_api, dlsym(handle, "glTexEnvfv"));
SET_TexEnvi(__ogl_framework_api, dlsym(handle, "glTexEnvi"));
SET_TexEnviv(__ogl_framework_api, dlsym(handle, "glTexEnviv"));
SET_TexGend(__ogl_framework_api, dlsym(handle, "glTexGend"));
SET_TexGendv(__ogl_framework_api, dlsym(handle, "glTexGendv"));
SET_TexGenf(__ogl_framework_api, dlsym(handle, "glTexGenf"));
SET_TexGenfv(__ogl_framework_api, dlsym(handle, "glTexGenfv"));
SET_TexGeni(__ogl_framework_api, dlsym(handle, "glTexGeni"));
SET_TexGeniv(__ogl_framework_api, dlsym(handle, "glTexGeniv"));
/* Pointer Incompatability:
* internalformat is a GLenum according to /System/Library/Frameworks/OpenGL.framework/Headers/gl.h
* extern void glTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
* extern void glTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
* extern void glTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
*
* and it's a GLint in glx/glapitable.h and according to the man page
* void ( * TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
* void ( * TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
* void ( * TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
*
* <rdar://problem/6953344> gl.h contains incorrect prototypes for glTexImage[123]D
*/
SET_TexImage1D(__ogl_framework_api, dlsym(handle, "glTexImage1D"));
SET_TexImage2D(__ogl_framework_api, dlsym(handle, "glTexImage2D"));
SET_TexImage3D(__ogl_framework_api, dlsym(handle, "glTexImage3D"));
SET_TexParameterf(__ogl_framework_api, dlsym(handle, "glTexParameterf"));
SET_TexParameterfv(__ogl_framework_api, dlsym(handle, "glTexParameterfv"));
SET_TexParameteri(__ogl_framework_api, dlsym(handle, "glTexParameteri"));
SET_TexParameteriv(__ogl_framework_api, dlsym(handle, "glTexParameteriv"));
SET_TexSubImage1D(__ogl_framework_api, dlsym(handle, "glTexSubImage1D"));
SET_TexSubImage2D(__ogl_framework_api, dlsym(handle, "glTexSubImage2D"));
SET_TexSubImage3D(__ogl_framework_api, dlsym(handle, "glTexSubImage3D"));
SET_Translated(__ogl_framework_api, dlsym(handle, "glTranslated"));
SET_Translatef(__ogl_framework_api, dlsym(handle, "glTranslatef"));
SET_Vertex2d(__ogl_framework_api, dlsym(handle, "glVertex2d"));
SET_Vertex2dv(__ogl_framework_api, dlsym(handle, "glVertex2dv"));
SET_Vertex2f(__ogl_framework_api, dlsym(handle, "glVertex2f"));
SET_Vertex2fv(__ogl_framework_api, dlsym(handle, "glVertex2fv"));
SET_Vertex2i(__ogl_framework_api, dlsym(handle, "glVertex2i"));
SET_Vertex2iv(__ogl_framework_api, dlsym(handle, "glVertex2iv"));
SET_Vertex2s(__ogl_framework_api, dlsym(handle, "glVertex2s"));
SET_Vertex2sv(__ogl_framework_api, dlsym(handle, "glVertex2sv"));
SET_Vertex3d(__ogl_framework_api, dlsym(handle, "glVertex3d"));
SET_Vertex3dv(__ogl_framework_api, dlsym(handle, "glVertex3dv"));
SET_Vertex3f(__ogl_framework_api, dlsym(handle, "glVertex3f"));
SET_Vertex3fv(__ogl_framework_api, dlsym(handle, "glVertex3fv"));
SET_Vertex3i(__ogl_framework_api, dlsym(handle, "glVertex3i"));
SET_Vertex3iv(__ogl_framework_api, dlsym(handle, "glVertex3iv"));
SET_Vertex3s(__ogl_framework_api, dlsym(handle, "glVertex3s"));
SET_Vertex3sv(__ogl_framework_api, dlsym(handle, "glVertex3sv"));
SET_Vertex4d(__ogl_framework_api, dlsym(handle, "glVertex4d"));
SET_Vertex4dv(__ogl_framework_api, dlsym(handle, "glVertex4dv"));
SET_Vertex4f(__ogl_framework_api, dlsym(handle, "glVertex4f"));
SET_Vertex4fv(__ogl_framework_api, dlsym(handle, "glVertex4fv"));
SET_Vertex4i(__ogl_framework_api, dlsym(handle, "glVertex4i"));
SET_Vertex4iv(__ogl_framework_api, dlsym(handle, "glVertex4iv"));
SET_Vertex4s(__ogl_framework_api, dlsym(handle, "glVertex4s"));
SET_Vertex4sv(__ogl_framework_api, dlsym(handle, "glVertex4sv"));
SET_VertexPointer(__ogl_framework_api, dlsym(handle, "glVertexPointer"));
SET_Viewport(__ogl_framework_api, dlsym(handle, "glViewport"));
/* GL_VERSION_2_0 */
SET_AttachShader(__ogl_framework_api, dlsym(handle, "glAttachShader"));
SET_DeleteShader(__ogl_framework_api, dlsym(handle, "glDeleteShader"));
SET_DetachShader(__ogl_framework_api, dlsym(handle, "glDetachShader"));
SET_GetAttachedShaders(__ogl_framework_api, dlsym(handle, "glGetAttachedShaders"));
SET_GetProgramInfoLog(__ogl_framework_api, dlsym(handle, "glGetProgramInfoLog"));
SET_GetShaderInfoLog(__ogl_framework_api, dlsym(handle, "glGetShaderInfoLog"));
SET_GetShaderiv(__ogl_framework_api, dlsym(handle, "glGetShaderiv"));
SET_IsShader(__ogl_framework_api, dlsym(handle, "glIsShader"));
SET_StencilFuncSeparate(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparate"));
SET_StencilMaskSeparate(__ogl_framework_api, dlsym(handle, "glStencilMaskSeparate"));
SET_StencilOpSeparate(__ogl_framework_api, dlsym(handle, "glStencilOpSeparate"));
/* GL_VERSION_2_1 */
SET_UniformMatrix2x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x3fv"));
SET_UniformMatrix2x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x4fv"));
SET_UniformMatrix3x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x2fv"));
SET_UniformMatrix3x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x4fv"));
SET_UniformMatrix4x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x2fv"));
SET_UniformMatrix4x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x3fv"));
/* GL_APPLE_vertex_array_object */
SET_BindVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glBindVertexArrayAPPLE"));
SET_DeleteVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glDeleteVertexArraysAPPLE"));
SET_GenVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glGenVertexArraysAPPLE"));
SET_IsVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glIsVertexArrayAPPLE"));
/* GL_ARB_draw_buffers */
SET_DrawBuffersARB(__ogl_framework_api, dlsym(handle, "glDrawBuffersARB"));
/* GL_ARB_multisample */
SET_SampleCoverageARB(__ogl_framework_api, dlsym(handle, "glSampleCoverageARB"));
/* GL_ARB_multitexture */
SET_ActiveTextureARB(__ogl_framework_api, dlsym(handle, "glActiveTextureARB"));
SET_ClientActiveTextureARB(__ogl_framework_api, dlsym(handle, "glClientActiveTextureARB"));
SET_MultiTexCoord1dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dARB"));
SET_MultiTexCoord1dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dvARB"));
SET_MultiTexCoord1fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fARB"));
SET_MultiTexCoord1fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fvARB"));
SET_MultiTexCoord1iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1iARB"));
SET_MultiTexCoord1ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1ivARB"));
SET_MultiTexCoord1sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1sARB"));
SET_MultiTexCoord1svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1svARB"));
SET_MultiTexCoord2dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dARB"));
SET_MultiTexCoord2dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dvARB"));
SET_MultiTexCoord2fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fARB"));
SET_MultiTexCoord2fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fvARB"));
SET_MultiTexCoord2iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2iARB"));
SET_MultiTexCoord2ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2ivARB"));
SET_MultiTexCoord2sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2sARB"));
SET_MultiTexCoord2svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2svARB"));
SET_MultiTexCoord3dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dARB"));
SET_MultiTexCoord3dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dvARB"));
SET_MultiTexCoord3fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fARB"));
SET_MultiTexCoord3fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fvARB"));
SET_MultiTexCoord3iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3iARB"));
SET_MultiTexCoord3ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3ivARB"));
SET_MultiTexCoord3sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3sARB"));
SET_MultiTexCoord3svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3svARB"));
SET_MultiTexCoord4dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dARB"));
SET_MultiTexCoord4dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dvARB"));
SET_MultiTexCoord4fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fARB"));
SET_MultiTexCoord4fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fvARB"));
SET_MultiTexCoord4iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4iARB"));
SET_MultiTexCoord4ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4ivARB"));
SET_MultiTexCoord4sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4sARB"));
SET_MultiTexCoord4svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4svARB"));
/* GL_ARB_occlusion_query */
SET_BeginQueryARB(__ogl_framework_api, dlsym(handle, "glBeginQueryARB"));
SET_DeleteQueriesARB(__ogl_framework_api, dlsym(handle, "glDeleteQueriesARB"));
SET_EndQueryARB(__ogl_framework_api, dlsym(handle, "glEndQueryARB"));
SET_GenQueriesARB(__ogl_framework_api, dlsym(handle, "glGenQueriesARB"));
SET_GetQueryObjectivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectivARB"));
SET_GetQueryObjectuivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectuivARB"));
SET_GetQueryivARB(__ogl_framework_api, dlsym(handle, "glGetQueryivARB"));
SET_IsQueryARB(__ogl_framework_api, dlsym(handle, "glIsQueryARB"));
/* GL_ARB_shader_objects */
SET_AttachObjectARB(__ogl_framework_api, dlsym(handle, "glAttachObjectARB"));
SET_CompileShaderARB(__ogl_framework_api, dlsym(handle, "glCompileShaderARB"));
SET_DeleteObjectARB(__ogl_framework_api, dlsym(handle, "glDeleteObjectARB"));
SET_GetHandleARB(__ogl_framework_api, dlsym(handle, "glGetHandleARB"));
SET_DetachObjectARB(__ogl_framework_api, dlsym(handle, "glDetachObjectARB"));
SET_CreateProgramObjectARB(__ogl_framework_api, dlsym(handle, "glCreateProgramObjectARB"));
SET_CreateShaderObjectARB(__ogl_framework_api, dlsym(handle, "glCreateShaderObjectARB"));
SET_GetInfoLogARB(__ogl_framework_api, dlsym(handle, "glGetInfoLogARB"));
SET_GetActiveUniformARB(__ogl_framework_api, dlsym(handle, "glGetActiveUniformARB"));
SET_GetAttachedObjectsARB(__ogl_framework_api, dlsym(handle, "glGetAttachedObjectsARB"));
SET_GetObjectParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterfvARB"));
SET_GetObjectParameterivARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterivARB"));
SET_GetShaderSourceARB(__ogl_framework_api, dlsym(handle, "glGetShaderSourceARB"));
SET_GetUniformLocationARB(__ogl_framework_api, dlsym(handle, "glGetUniformLocationARB"));
SET_GetUniformfvARB(__ogl_framework_api, dlsym(handle, "glGetUniformfvARB"));
SET_GetUniformivARB(__ogl_framework_api, dlsym(handle, "glGetUniformivARB"));
SET_LinkProgramARB(__ogl_framework_api, dlsym(handle, "glLinkProgramARB"));
SET_ShaderSourceARB(__ogl_framework_api, dlsym(handle, "glShaderSourceARB"));
SET_Uniform1fARB(__ogl_framework_api, dlsym(handle, "glUniform1fARB"));
SET_Uniform1fvARB(__ogl_framework_api, dlsym(handle, "glUniform1fvARB"));
SET_Uniform1iARB(__ogl_framework_api, dlsym(handle, "glUniform1iARB"));
SET_Uniform1ivARB(__ogl_framework_api, dlsym(handle, "glUniform1ivARB"));
SET_Uniform2fARB(__ogl_framework_api, dlsym(handle, "glUniform2fARB"));
SET_Uniform2fvARB(__ogl_framework_api, dlsym(handle, "glUniform2fvARB"));
SET_Uniform2iARB(__ogl_framework_api, dlsym(handle, "glUniform2iARB"));
SET_Uniform2ivARB(__ogl_framework_api, dlsym(handle, "glUniform2ivARB"));
SET_Uniform3fARB(__ogl_framework_api, dlsym(handle, "glUniform3fARB"));
SET_Uniform3fvARB(__ogl_framework_api, dlsym(handle, "glUniform3fvARB"));
SET_Uniform3iARB(__ogl_framework_api, dlsym(handle, "glUniform3iARB"));
SET_Uniform3ivARB(__ogl_framework_api, dlsym(handle, "glUniform3ivARB"));
SET_Uniform4fARB(__ogl_framework_api, dlsym(handle, "glUniform4fARB"));
SET_Uniform4fvARB(__ogl_framework_api, dlsym(handle, "glUniform4fvARB"));
SET_Uniform4iARB(__ogl_framework_api, dlsym(handle, "glUniform4iARB"));
SET_Uniform4ivARB(__ogl_framework_api, dlsym(handle, "glUniform4ivARB"));
SET_UniformMatrix2fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix2fvARB"));
SET_UniformMatrix3fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix3fvARB"));
SET_UniformMatrix4fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix4fvARB"));
SET_UseProgramObjectARB(__ogl_framework_api, dlsym(handle, "glUseProgramObjectARB"));
SET_ValidateProgramARB(__ogl_framework_api, dlsym(handle, "glValidateProgramARB"));
/* GL_ARB_texture_compression */
SET_CompressedTexImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage1DARB"));
SET_CompressedTexImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage2DARB"));
SET_CompressedTexImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage3DARB"));
SET_CompressedTexSubImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage1DARB"));
SET_CompressedTexSubImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage2DARB"));
SET_CompressedTexSubImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage3DARB"));
SET_GetCompressedTexImageARB(__ogl_framework_api, dlsym(handle, "glGetCompressedTexImageARB"));
/* GL_ARB_transpose_matrix */
SET_LoadTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixdARB"));
SET_LoadTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixfARB"));
SET_MultTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixdARB"));
SET_MultTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixfARB"));
/* GL_ARB_vertex_buffer_object */
SET_BindBufferARB(__ogl_framework_api, dlsym(handle, "glBindBufferARB"));
SET_BufferDataARB(__ogl_framework_api, dlsym(handle, "glBufferDataARB"));
SET_BufferSubDataARB(__ogl_framework_api, dlsym(handle, "glBufferSubDataARB"));
SET_DeleteBuffersARB(__ogl_framework_api, dlsym(handle, "glDeleteBuffersARB"));
SET_GenBuffersARB(__ogl_framework_api, dlsym(handle, "glGenBuffersARB"));
SET_GetBufferParameterivARB(__ogl_framework_api, dlsym(handle, "glGetBufferParameterivARB"));
SET_GetBufferPointervARB(__ogl_framework_api, dlsym(handle, "glGetBufferPointervARB"));
SET_GetBufferSubDataARB(__ogl_framework_api, dlsym(handle, "glGetBufferSubDataARB"));
SET_IsBufferARB(__ogl_framework_api, dlsym(handle, "glIsBufferARB"));
SET_MapBufferARB(__ogl_framework_api, dlsym(handle, "glMapBufferARB"));
SET_UnmapBufferARB(__ogl_framework_api, dlsym(handle, "glUnmapBufferARB"));
/* GL_ARB_vertex_program */
SET_DisableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glDisableVertexAttribArrayARB"));
SET_EnableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glEnableVertexAttribArrayARB"));
SET_GetProgramEnvParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterdvARB"));
SET_GetProgramEnvParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterfvARB"));
SET_GetProgramLocalParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterdvARB"));
SET_GetProgramLocalParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterfvARB"));
SET_GetProgramStringARB(__ogl_framework_api, dlsym(handle, "glGetProgramStringARB"));
SET_GetProgramivARB(__ogl_framework_api, dlsym(handle, "glGetProgramivARB"));
SET_GetVertexAttribdvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvARB"));
SET_GetVertexAttribfvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvARB"));
SET_GetVertexAttribivARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivARB"));
SET_ProgramEnvParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dARB"));
SET_ProgramEnvParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dvARB"));
SET_ProgramEnvParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fARB"));
SET_ProgramEnvParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fvARB"));
SET_ProgramLocalParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dARB"));
SET_ProgramLocalParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dvARB"));
SET_ProgramLocalParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fARB"));
SET_ProgramLocalParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fvARB"));
SET_ProgramStringARB(__ogl_framework_api, dlsym(handle, "glProgramStringARB"));
SET_VertexAttrib1dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dARB"));
SET_VertexAttrib1dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvARB"));
SET_VertexAttrib1fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fARB"));
SET_VertexAttrib1fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvARB"));
SET_VertexAttrib1sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sARB"));
SET_VertexAttrib1svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svARB"));
SET_VertexAttrib2dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dARB"));
SET_VertexAttrib2dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvARB"));
SET_VertexAttrib2fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fARB"));
SET_VertexAttrib2fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvARB"));
SET_VertexAttrib2sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sARB"));
SET_VertexAttrib2svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svARB"));
SET_VertexAttrib3dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dARB"));
SET_VertexAttrib3dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvARB"));
SET_VertexAttrib3fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fARB"));
SET_VertexAttrib3fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvARB"));
SET_VertexAttrib3sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sARB"));
SET_VertexAttrib3svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svARB"));
SET_VertexAttrib4NbvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NbvARB"));
SET_VertexAttrib4NivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NivARB"));
SET_VertexAttrib4NsvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NsvARB"));
SET_VertexAttrib4NubARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubARB"));
SET_VertexAttrib4NubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubvARB"));
SET_VertexAttrib4NuivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NuivARB"));
SET_VertexAttrib4NusvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NusvARB"));
SET_VertexAttrib4bvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4bvARB"));
SET_VertexAttrib4dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dARB"));
SET_VertexAttrib4dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvARB"));
SET_VertexAttrib4fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fARB"));
SET_VertexAttrib4fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvARB"));
SET_VertexAttrib4ivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ivARB"));
SET_VertexAttrib4sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sARB"));
SET_VertexAttrib4svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svARB"));
SET_VertexAttrib4ubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvARB"));
SET_VertexAttrib4uivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4uivARB"));
SET_VertexAttrib4usvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4usvARB"));
SET_VertexAttribPointerARB(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerARB"));
/* GL_ARB_vertex_shader */
SET_BindAttribLocationARB(__ogl_framework_api, dlsym(handle, "glBindAttribLocationARB"));
SET_GetActiveAttribARB(__ogl_framework_api, dlsym(handle, "glGetActiveAttribARB"));
SET_GetAttribLocationARB(__ogl_framework_api, dlsym(handle, "glGetAttribLocationARB"));
/* GL_ARB_window_pos */
SET_WindowPos2dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dARB"));
SET_WindowPos2dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dvARB"));
SET_WindowPos2fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fARB"));
SET_WindowPos2fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fvARB"));
SET_WindowPos2iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2iARB"));
SET_WindowPos2ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2ivARB"));
SET_WindowPos2sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2sARB"));
SET_WindowPos2svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2svARB"));
SET_WindowPos3dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dARB"));
SET_WindowPos3dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dvARB"));
SET_WindowPos3fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fARB"));
SET_WindowPos3fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fvARB"));
SET_WindowPos3iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3iARB"));
SET_WindowPos3ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3ivARB"));
SET_WindowPos3sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3sARB"));
SET_WindowPos3svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3svARB"));
/* GL_ATI_fragment_shader / GL_EXT_fragment_shader */
if(dlsym(handle, "glAlphaFragmentOp1ATI")) {
/* GL_ATI_fragment_shader */
SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1ATI"));
SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2ATI"));
SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3ATI"));
SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderATI"));
SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderATI"));
SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1ATI"));
SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2ATI"));
SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3ATI"));
SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderATI"));
SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderATI"));
SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersATI"));
SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordATI"));
SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapATI"));
SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantATI"));
} else {
/* GL_EXT_fragment_shader */
SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1EXT"));
SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2EXT"));
SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3EXT"));
SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderEXT"));
SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderEXT"));
SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1EXT"));
SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2EXT"));
SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3EXT"));
SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderEXT"));
SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderEXT"));
SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersEXT"));
SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordEXT"));
SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapEXT"));
SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantEXT"));
}
/* GL_ATI_separate_stencil */
SET_StencilFuncSeparateATI(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparateATI"));
/* GL_EXT_blend_equation_separate */
SET_BlendEquationSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendEquationSeparateEXT"));
/* GL_EXT_blend_func_separate */
SET_BlendFuncSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendFuncSeparateEXT"));
/* GL_EXT_depth_bounds_test */
SET_DepthBoundsEXT(__ogl_framework_api, dlsym(handle, "glDepthBoundsEXT"));
/* GL_EXT_compiled_vertex_array */
SET_LockArraysEXT(__ogl_framework_api, dlsym(handle, "glLockArraysEXT"));
SET_UnlockArraysEXT(__ogl_framework_api, dlsym(handle, "glUnlockArraysEXT"));
/* GL_EXT_cull_vertex */
// SET_CullParameterdvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterdvEXT"));
// SET_CullParameterfvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterfvEXT"));
/* GL_EXT_fog_coord */
SET_FogCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glFogCoordPointerEXT"));
SET_FogCoorddEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddEXT"));
SET_FogCoorddvEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddvEXT"));
SET_FogCoordfEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfEXT"));
SET_FogCoordfvEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfvEXT"));
/* GL_EXT_framebuffer_blit */
SET_BlitFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBlitFramebufferEXT"));
/* GL_EXT_framebuffer_object */
SET_BindFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBindFramebufferEXT"));
SET_BindRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glBindRenderbufferEXT"));
SET_CheckFramebufferStatusEXT(__ogl_framework_api, dlsym(handle, "glCheckFramebufferStatusEXT"));
SET_DeleteFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteFramebuffersEXT"));
SET_DeleteRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteRenderbuffersEXT"));
SET_FramebufferRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glFramebufferRenderbufferEXT"));
SET_FramebufferTexture1DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture1DEXT"));
SET_FramebufferTexture2DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture2DEXT"));
SET_FramebufferTexture3DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture3DEXT"));
SET_GenerateMipmapEXT(__ogl_framework_api, dlsym(handle, "glGenerateMipmapEXT"));
SET_GenFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glGenFramebuffersEXT"));
SET_GenRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glGenRenderbuffersEXT"));
SET_GetFramebufferAttachmentParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetFramebufferAttachmentParameterivEXT"));
SET_GetRenderbufferParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetRenderbufferParameterivEXT"));
SET_IsFramebufferEXT(__ogl_framework_api, dlsym(handle, "glIsFramebufferEXT"));
SET_IsRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glIsRenderbufferEXT"));
SET_RenderbufferStorageEXT(__ogl_framework_api, dlsym(handle, "glRenderbufferStorageEXT"));
/* GL_EXT_gpu_program_parameters */
SET_ProgramEnvParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramEnvParameters4fvEXT"));
SET_ProgramLocalParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramLocalParameters4fvEXT"));
/* Pointer Incompatability:
* This warning can be safely ignored. OpenGL.framework adds const to the
* two pointers.
*
* extern void glMultiDrawArraysEXT (GLenum, const GLint *, const GLsizei *, GLsizei);
*
* void ( * MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount);
*/
/* GL_EXT_multi_draw_arrays */
SET_MultiDrawArraysEXT(__ogl_framework_api, (void *)dlsym(handle, "glMultiDrawArraysEXT"));
SET_MultiDrawElementsEXT(__ogl_framework_api, dlsym(handle, "glMultiDrawElementsEXT"));
/* GL_EXT_point_parameters / GL_ARB_point_parameters */
if(dlsym(handle, "glPointParameterfEXT")) {
/* GL_EXT_point_parameters */
SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfEXT"));
SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvEXT"));
} else {
/* GL_ARB_point_parameters */
SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfARB"));
SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvARB"));
}
/* GL_EXT_polygon_offset */
SET_PolygonOffsetEXT(__ogl_framework_api, dlsym(handle, "glPolygonOffsetEXT"));
/* GL_EXT_secondary_color */
SET_SecondaryColor3bEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bEXT"));
SET_SecondaryColor3bvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bvEXT"));
SET_SecondaryColor3dEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dEXT"));
SET_SecondaryColor3dvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dvEXT"));
SET_SecondaryColor3fEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fEXT"));
SET_SecondaryColor3fvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fvEXT"));
SET_SecondaryColor3iEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3iEXT"));
SET_SecondaryColor3ivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ivEXT"));
SET_SecondaryColor3sEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3sEXT"));
SET_SecondaryColor3svEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3svEXT"));
SET_SecondaryColor3ubEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubEXT"));
SET_SecondaryColor3ubvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubvEXT"));
SET_SecondaryColor3uiEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uiEXT"));
SET_SecondaryColor3uivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uivEXT"));
SET_SecondaryColor3usEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usEXT"));
SET_SecondaryColor3usvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usvEXT"));
SET_SecondaryColorPointerEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColorPointerEXT"));
/* GL_EXT_stencil_two_side */
SET_ActiveStencilFaceEXT(__ogl_framework_api, dlsym(handle, "glActiveStencilFaceEXT"));
/* GL_EXT_timer_query */
SET_GetQueryObjecti64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjecti64vEXT"));
SET_GetQueryObjectui64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjectui64vEXT"));
/* GL_EXT_vertex_array */
SET_ColorPointerEXT(__ogl_framework_api, dlsym(handle, "glColorPointerEXT"));
SET_EdgeFlagPointerEXT(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointerEXT"));
SET_IndexPointerEXT(__ogl_framework_api, dlsym(handle, "glIndexPointerEXT"));
SET_NormalPointerEXT(__ogl_framework_api, dlsym(handle, "glNormalPointerEXT"));
SET_TexCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glTexCoordPointerEXT"));
SET_VertexPointerEXT(__ogl_framework_api, dlsym(handle, "glVertexPointerEXT"));
/* GL_IBM_multimode_draw_arrays */
SET_MultiModeDrawArraysIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawArraysIBM"));
SET_MultiModeDrawElementsIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawElementsIBM"));
/* GL_MESA_resize_buffers */
SET_ResizeBuffersMESA(__ogl_framework_api, dlsym(handle, "glResizeBuffersMESA"));
/* GL_MESA_window_pos */
SET_WindowPos4dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dMESA"));
SET_WindowPos4dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dvMESA"));
SET_WindowPos4fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fMESA"));
SET_WindowPos4fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fvMESA"));
SET_WindowPos4iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4iMESA"));
SET_WindowPos4ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4ivMESA"));
SET_WindowPos4sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4sMESA"));
SET_WindowPos4svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4svMESA"));
/* GL_NV_fence */
SET_DeleteFencesNV(__ogl_framework_api, dlsym(handle, "glDeleteFencesNV"));
SET_FinishFenceNV(__ogl_framework_api, dlsym(handle, "glFinishFenceNV"));
SET_GenFencesNV(__ogl_framework_api, dlsym(handle, "glGenFencesNV"));
SET_GetFenceivNV(__ogl_framework_api, dlsym(handle, "glGetFenceivNV"));
SET_IsFenceNV(__ogl_framework_api, dlsym(handle, "glIsFenceNV"));
SET_SetFenceNV(__ogl_framework_api, dlsym(handle, "glSetFenceNV"));
SET_TestFenceNV(__ogl_framework_api, dlsym(handle, "glTestFenceNV"));
/* GL_NV_fragment_program */
SET_GetProgramNamedParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterdvNV"));
SET_GetProgramNamedParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterfvNV"));
SET_ProgramNamedParameter4dNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dNV"));
SET_ProgramNamedParameter4dvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dvNV"));
SET_ProgramNamedParameter4fNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fNV"));
SET_ProgramNamedParameter4fvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fvNV"));
/* GL_NV_geometry_program4 */
SET_FramebufferTextureLayerEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTextureLayerEXT"));
/* GL_NV_point_sprite */
SET_PointParameteriNV(__ogl_framework_api, dlsym(handle, "glPointParameteriNV"));
SET_PointParameterivNV(__ogl_framework_api, dlsym(handle, "glPointParameterivNV"));
/* GL_NV_register_combiners */
SET_CombinerInputNV(__ogl_framework_api, dlsym(handle, "glCombinerInputNV"));
SET_CombinerOutputNV(__ogl_framework_api, dlsym(handle, "glCombinerOutputNV"));
SET_CombinerParameterfNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfNV"));
SET_CombinerParameterfvNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfvNV"));
SET_CombinerParameteriNV(__ogl_framework_api, dlsym(handle, "glCombinerParameteriNV"));
SET_CombinerParameterivNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterivNV"));
SET_FinalCombinerInputNV(__ogl_framework_api, dlsym(handle, "glFinalCombinerInputNV"));
SET_GetCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterfvNV"));
SET_GetCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterivNV"));
SET_GetCombinerOutputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterfvNV"));
SET_GetCombinerOutputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterivNV"));
SET_GetFinalCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterfvNV"));
SET_GetFinalCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterivNV"));
/* GL_NV_vertex_array_range */
SET_FlushVertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glFlushVertexArrayRangeNV"));
SET_VertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glVertexArrayRangeNV"));
/* GL_NV_vertex_program */
SET_AreProgramsResidentNV(__ogl_framework_api, dlsym(handle, "glAreProgramsResidentNV"));
SET_BindProgramNV(__ogl_framework_api, dlsym(handle, "glBindProgramNV"));
SET_DeleteProgramsNV(__ogl_framework_api, dlsym(handle, "glDeleteProgramsNV"));
SET_ExecuteProgramNV(__ogl_framework_api, dlsym(handle, "glExecuteProgramNV"));
SET_GenProgramsNV(__ogl_framework_api, dlsym(handle, "glGenProgramsNV"));
SET_GetProgramParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterdvNV"));
SET_GetProgramParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterfvNV"));
SET_GetProgramStringNV(__ogl_framework_api, dlsym(handle, "glGetProgramStringNV"));
SET_GetProgramivNV(__ogl_framework_api, dlsym(handle, "glGetProgramivNV"));
SET_GetTrackMatrixivNV(__ogl_framework_api, dlsym(handle, "glGetTrackMatrixivNV"));
SET_GetVertexAttribPointervNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribPointervNV"));
SET_GetVertexAttribdvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvNV"));
SET_GetVertexAttribfvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvNV"));
SET_GetVertexAttribivNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivNV"));
SET_IsProgramNV(__ogl_framework_api, dlsym(handle, "glIsProgramNV"));
SET_LoadProgramNV(__ogl_framework_api, dlsym(handle, "glLoadProgramNV"));
SET_ProgramParameters4dvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4dvNV"));
SET_ProgramParameters4fvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4fvNV"));
SET_RequestResidentProgramsNV(__ogl_framework_api, dlsym(handle, "glRequestResidentProgramsNV"));
SET_TrackMatrixNV(__ogl_framework_api, dlsym(handle, "glTrackMatrixNV"));
SET_VertexAttrib1dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dNV"));
SET_VertexAttrib1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvNV"));
SET_VertexAttrib1fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fNV"));
SET_VertexAttrib1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvNV"));
SET_VertexAttrib1sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sNV"));
SET_VertexAttrib1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svNV"));
SET_VertexAttrib2dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dNV"));
SET_VertexAttrib2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvNV"));
SET_VertexAttrib2fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fNV"));
SET_VertexAttrib2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvNV"));
SET_VertexAttrib2sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sNV"));
SET_VertexAttrib2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svNV"));
SET_VertexAttrib3dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dNV"));
SET_VertexAttrib3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvNV"));
SET_VertexAttrib3fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fNV"));
SET_VertexAttrib3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvNV"));
SET_VertexAttrib3sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sNV"));
SET_VertexAttrib3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svNV"));
SET_VertexAttrib4dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dNV"));
SET_VertexAttrib4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvNV"));
SET_VertexAttrib4fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fNV"));
SET_VertexAttrib4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvNV"));
SET_VertexAttrib4sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sNV"));
SET_VertexAttrib4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svNV"));
SET_VertexAttrib4ubNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubNV"));
SET_VertexAttrib4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvNV"));
SET_VertexAttribPointerNV(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerNV"));
SET_VertexAttribs1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1dvNV"));
SET_VertexAttribs1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1fvNV"));
SET_VertexAttribs1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1svNV"));
SET_VertexAttribs2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2dvNV"));
SET_VertexAttribs2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2fvNV"));
SET_VertexAttribs2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2svNV"));
SET_VertexAttribs3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3dvNV"));
SET_VertexAttribs3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3fvNV"));
SET_VertexAttribs3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3svNV"));
SET_VertexAttribs4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4dvNV"));
SET_VertexAttribs4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4fvNV"));
SET_VertexAttribs4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4svNV"));
SET_VertexAttribs4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4ubvNV"));
/* GL_SGIS_multisample */
SET_SampleMaskSGIS(__ogl_framework_api, dlsym(handle, "glSampleMaskSGIS"));
SET_SamplePatternSGIS(__ogl_framework_api, dlsym(handle, "glSamplePatternSGIS"));
/* GL_SGIS_pixel_texture */
SET_GetPixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterfvSGIS"));
SET_GetPixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterivSGIS"));
SET_PixelTexGenParameterfSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfSGIS"));
SET_PixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfvSGIS"));
SET_PixelTexGenParameteriSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameteriSGIS"));
SET_PixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterivSGIS"));
SET_PixelTexGenSGIX(__ogl_framework_api, dlsym(handle, "glPixelTexGenSGIX"));
__applegl_api = malloc(sizeof(struct _glapi_table));
assert(__applegl_api);
memcpy(__applegl_api, __ogl_framework_api, sizeof(struct _glapi_table));
SET_ReadPixels(__applegl_api, __applegl_glReadPixels);
SET_CopyPixels(__applegl_api, __applegl_glCopyPixels);
SET_CopyColorTable(__applegl_api, __applegl_glCopyColorTable);
SET_DrawBuffer(__applegl_api, __applegl_glDrawBuffer);
SET_DrawBuffersARB(__applegl_api, __applegl_glDrawBuffersARB);
SET_Viewport(__applegl_api, __applegl_glViewport);
_glapi_set_dispatch(__applegl_api);
}
|