forked from Ixiko/AHK-libs-and-classes-collection
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathagl.ahk
3923 lines (3764 loc) · 272 KB
/
agl.ahk
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
; AutoHotkey header file for OpenGL.
; agl.ahk last updated Date: 2011-03-11 (Friday, 11 Mar 2011)
; Written by: Bentschi
;=============================================================
GLptr := (A_PtrSize) ? "ptr" : "uint" ;AutoHotkey definition
GLastr := (A_IsUnicode) ? "astr" : "str" ;AutoHotkey definition
;aglInit loads the librarys opengl32.dll and glu32.dll.
aglInit()
{
global
local astr, ptr, error, hgl, hglu, PFNGETPROCADDRESSPROC
astr := (A_IsUnicode) ? "astr" : "str"
ptr := (A_PtrSize) ? "ptr" : "uint"
error := A_LastError
hgl := DllCall("LoadLibrary", "str", "opengl32", ptr)
hglu := DllCall("LoadLibrary", "str", "glu32", ptr)
if ((hgl) && (hglu))
{
DllCall("SetLastError", "uint", error)
PFNGETPROCADDRESSPROC := DllCall("GetProcAddress", ptr, DllCall("GetModuleHandle", "str", "kernel32", ptr), astr, "GetProcAddress", ptr)
PFNGLACCUMPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glAccum", ptr)
PFNGLALPHAFUNCPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glAlphaFunc", ptr)
PFNGLARETEXTURESRESIDENTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glAreTexturesResident", ptr)
PFNGLARRAYELEMENTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glArrayElement", ptr)
PFNGLBEGINPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glBegin", ptr)
PFNGLBINDTEXTUREPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glBindTexture", ptr)
PFNGLBITMAPPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glBitmap", ptr)
PFNGLBLENDFUNCPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glBlendFunc", ptr)
PFNGLCALLLISTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCallList", ptr)
PFNGLCALLLISTSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCallLists", ptr)
PFNGLCLEARPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClear", ptr)
PFNGLCLEARACCUMPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClearAccum", ptr)
PFNGLCLEARCOLORPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClearColor", ptr)
PFNGLCLEARDEPTHPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClearDepth", ptr)
PFNGLCLEARINDEXPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClearIndex", ptr)
PFNGLCLEARSTENCILPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClearStencil", ptr)
PFNGLCLIPPLANEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glClipPlane", ptr)
PFNGLCOLOR3BPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3b", ptr)
PFNGLCOLOR3BVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3bv", ptr)
PFNGLCOLOR3DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3d", ptr)
PFNGLCOLOR3DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3dv", ptr)
PFNGLCOLOR3FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3f", ptr)
PFNGLCOLOR3FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3fv", ptr)
PFNGLCOLOR3IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3i", ptr)
PFNGLCOLOR3IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3iv", ptr)
PFNGLCOLOR3SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3s", ptr)
PFNGLCOLOR3SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3sv", ptr)
PFNGLCOLOR3UBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3ub", ptr)
PFNGLCOLOR3UBVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3ubv", ptr)
PFNGLCOLOR3UIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3ui", ptr)
PFNGLCOLOR3UIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3uiv", ptr)
PFNGLCOLOR3USPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3us", ptr)
PFNGLCOLOR3USVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor3usv", ptr)
PFNGLCOLOR4BPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4b", ptr)
PFNGLCOLOR4BVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4bv", ptr)
PFNGLCOLOR4DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4d", ptr)
PFNGLCOLOR4DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4dv", ptr)
PFNGLCOLOR4FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4f", ptr)
PFNGLCOLOR4FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4fv", ptr)
PFNGLCOLOR4IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4i", ptr)
PFNGLCOLOR4IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4iv", ptr)
PFNGLCOLOR4SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4s", ptr)
PFNGLCOLOR4SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4sv", ptr)
PFNGLCOLOR4UBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4ub", ptr)
PFNGLCOLOR4UBVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4ubv", ptr)
PFNGLCOLOR4UIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4ui", ptr)
PFNGLCOLOR4UIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4uiv", ptr)
PFNGLCOLOR4USPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4us", ptr)
PFNGLCOLOR4USVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColor4usv", ptr)
PFNGLCOLORMASKPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColorMask", ptr)
PFNGLCOLORMATERIALPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColorMaterial", ptr)
PFNGLCOLORPOINTERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glColorPointer", ptr)
PFNGLCOPYPIXELSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCopyPixels", ptr)
PFNGLCOPYTEXIMAGE1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCopyTexImage1D", ptr)
PFNGLCOPYTEXIMAGE2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCopyTexImage2D", ptr)
PFNGLCOPYTEXSUBIMAGE1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCopyTexSubImage1D", ptr)
PFNGLCOPYTEXSUBIMAGE2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCopyTexSubImage2D", ptr)
PFNGLCULLFACEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glCullFace", ptr)
PFNGLDELETELISTSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDeleteLists", ptr)
PFNGLDELETETEXTURESPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDeleteTextures", ptr)
PFNGLDEPTHFUNCPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDepthFunc", ptr)
PFNGLDEPTHMASKPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDepthMask", ptr)
PFNGLDEPTHRANGEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDepthRange", ptr)
PFNGLDISABLEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDisable", ptr)
PFNGLDISABLECLIENTSTATEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDisableClientState", ptr)
PFNGLDRAWARRAYSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDrawArrays", ptr)
PFNGLDRAWBUFFERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDrawBuffer", ptr)
PFNGLDRAWELEMENTSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDrawElements", ptr)
PFNGLDRAWPIXELSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glDrawPixels", ptr)
PFNGLEDGEFLAGPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEdgeFlag", ptr)
PFNGLEDGEFLAGPOINTERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEdgeFlagPointer", ptr)
PFNGLEDGEFLAGVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEdgeFlagv", ptr)
PFNGLENABLEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEnable", ptr)
PFNGLENABLECLIENTSTATEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEnableClientState", ptr)
PFNGLENDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEnd", ptr)
PFNGLENDLISTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEndList", ptr)
PFNGLEVALCOORD1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord1d", ptr)
PFNGLEVALCOORD1DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord1dv", ptr)
PFNGLEVALCOORD1FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord1f", ptr)
PFNGLEVALCOORD1FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord1fv", ptr)
PFNGLEVALCOORD2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord2d", ptr)
PFNGLEVALCOORD2DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord2dv", ptr)
PFNGLEVALCOORD2FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord2f", ptr)
PFNGLEVALCOORD2FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalCoord2fv", ptr)
PFNGLEVALMESH1PROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalMesh1", ptr)
PFNGLEVALMESH2PROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalMesh2", ptr)
PFNGLEVALPOINT1PROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalPoint1", ptr)
PFNGLEVALPOINT2PROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glEvalPoint2", ptr)
PFNGLFEEDBACKBUFFERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFeedbackBuffer", ptr)
PFNGLFINISHPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFinish", ptr)
PFNGLFLUSHPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFlush", ptr)
PFNGLFOGFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFogf", ptr)
PFNGLFOGFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFogfv", ptr)
PFNGLFOGIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFogi", ptr)
PFNGLFOGIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFogiv", ptr)
PFNGLFRONTFACEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFrontFace", ptr)
PFNGLFRUSTUMPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glFrustum", ptr)
PFNGLGENLISTSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGenLists", ptr)
PFNGLGENTEXTURESPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGenTextures", ptr)
PFNGLGETBOOLEANVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetBooleanv", ptr)
PFNGLGETCLIPPLANEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetClipPlane", ptr)
PFNGLGETDOUBLEVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetDoublev", ptr)
PFNGLGETERRORPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetError", ptr)
PFNGLGETFLOATVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetFloatv", ptr)
PFNGLGETINTEGERVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetIntegerv", ptr)
PFNGLGETLIGHTFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetLightfv", ptr)
PFNGLGETLIGHTIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetLightiv", ptr)
PFNGLGETMAPDVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetMapdv", ptr)
PFNGLGETMAPFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetMapfv", ptr)
PFNGLGETMAPIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetMapiv", ptr)
PFNGLGETMATERIALFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetMaterialfv", ptr)
PFNGLGETMATERIALIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetMaterialiv", ptr)
PFNGLGETPIXELMAPFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetPixelMapfv", ptr)
PFNGLGETPIXELMAPUIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetPixelMapuiv", ptr)
PFNGLGETPIXELMAPUSVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetPixelMapusv", ptr)
PFNGLGETPOINTERVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetPointerv", ptr)
PFNGLGETPOLYGONSTIPPLEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetPolygonStipple", ptr)
PFNGLGETSTRINGPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetString", ptr)
PFNGLGETTEXENVFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexEnvfv", ptr)
PFNGLGETTEXENVIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexEnviv", ptr)
PFNGLGETTEXGENDVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexGendv", ptr)
PFNGLGETTEXGENFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexGenfv", ptr)
PFNGLGETTEXGENIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexGeniv", ptr)
PFNGLGETTEXIMAGEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexImage", ptr)
PFNGLGETTEXLEVELPARAMETERFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexLevelParameterfv", ptr)
PFNGLGETTEXLEVELPARAMETERIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexLevelParameteriv", ptr)
PFNGLGETTEXPARAMETERFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexParameterfv", ptr)
PFNGLGETTEXPARAMETERIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glGetTexParameteriv", ptr)
PFNGLHINTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glHint", ptr)
PFNGLINDEXMASKPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexMask", ptr)
PFNGLINDEXPOINTERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexPointer", ptr)
PFNGLINDEXDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexd", ptr)
PFNGLINDEXDVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexdv", ptr)
PFNGLINDEXFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexf", ptr)
PFNGLINDEXFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexfv", ptr)
PFNGLINDEXIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexi", ptr)
PFNGLINDEXIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexiv", ptr)
PFNGLINDEXSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexs", ptr)
PFNGLINDEXSVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexsv", ptr)
PFNGLINDEXUBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexub", ptr)
PFNGLINDEXUBVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIndexubv", ptr)
PFNGLINITNAMESPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glInitNames", ptr)
PFNGLINTERLEAVEDARRAYSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glInterleavedArrays", ptr)
PFNGLISENABLEDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIsEnabled", ptr)
PFNGLISLISTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIsList", ptr)
PFNGLISTEXTUREPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glIsTexture", ptr)
PFNGLLIGHTMODELFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightModelf", ptr)
PFNGLLIGHTMODELFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightModelfv", ptr)
PFNGLLIGHTMODELIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightModeli", ptr)
PFNGLLIGHTMODELIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightModeliv", ptr)
PFNGLLIGHTFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightf", ptr)
PFNGLLIGHTFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightfv", ptr)
PFNGLLIGHTIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLighti", ptr)
PFNGLLIGHTIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLightiv", ptr)
PFNGLLINESTIPPLEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLineStipple", ptr)
PFNGLLINEWIDTHPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLineWidth", ptr)
PFNGLLISTBASEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glListBase", ptr)
PFNGLLOADIDENTITYPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLoadIdentity", ptr)
PFNGLLOADMATRIXDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLoadMatrixd", ptr)
PFNGLLOADMATRIXFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLoadMatrixf", ptr)
PFNGLLOADNAMEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLoadName", ptr)
PFNGLLOGICOPPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glLogicOp", ptr)
PFNGLMAP1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMap1d", ptr)
PFNGLMAP1FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMap1f", ptr)
PFNGLMAP2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMap2d", ptr)
PFNGLMAP2FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMap2f", ptr)
PFNGLMAPGRID1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMapGrid1d", ptr)
PFNGLMAPGRID1FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMapGrid1f", ptr)
PFNGLMAPGRID2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMapGrid2d", ptr)
PFNGLMAPGRID2FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMapGrid2f", ptr)
PFNGLMATERIALFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMaterialf", ptr)
PFNGLMATERIALFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMaterialfv", ptr)
PFNGLMATERIALIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMateriali", ptr)
PFNGLMATERIALIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMaterialiv", ptr)
PFNGLMATRIXMODEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMatrixMode", ptr)
PFNGLMULTMATRIXDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMultMatrixd", ptr)
PFNGLMULTMATRIXFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glMultMatrixf", ptr)
PFNGLNEWLISTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNewList", ptr)
PFNGLNORMAL3BPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3b", ptr)
PFNGLNORMAL3BVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3bv", ptr)
PFNGLNORMAL3DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3d", ptr)
PFNGLNORMAL3DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3dv", ptr)
PFNGLNORMAL3FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3f", ptr)
PFNGLNORMAL3FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3fv", ptr)
PFNGLNORMAL3IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3i", ptr)
PFNGLNORMAL3IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3iv", ptr)
PFNGLNORMAL3SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3s", ptr)
PFNGLNORMAL3SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormal3sv", ptr)
PFNGLNORMALPOINTERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glNormalPointer", ptr)
PFNGLORTHOPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glOrtho", ptr)
PFNGLPASSTHROUGHPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPassThrough", ptr)
PFNGLPIXELMAPFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelMapfv", ptr)
PFNGLPIXELMAPUIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelMapuiv", ptr)
PFNGLPIXELMAPUSVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelMapusv", ptr)
PFNGLPIXELSTOREFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelStoref", ptr)
PFNGLPIXELSTOREIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelStorei", ptr)
PFNGLPIXELTRANSFERFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelTransferf", ptr)
PFNGLPIXELTRANSFERIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelTransferi", ptr)
PFNGLPIXELZOOMPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPixelZoom", ptr)
PFNGLPOINTSIZEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPointSize", ptr)
PFNGLPOLYGONMODEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPolygonMode", ptr)
PFNGLPOLYGONOFFSETPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPolygonOffset", ptr)
PFNGLPOLYGONSTIPPLEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPolygonStipple", ptr)
PFNGLPOPATTRIBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPopAttrib", ptr)
PFNGLPOPCLIENTATTRIBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPopClientAttrib", ptr)
PFNGLPOPMATRIXPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPopMatrix", ptr)
PFNGLPOPNAMEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPopName", ptr)
PFNGLPRIORITIZETEXTURESPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPrioritizeTextures", ptr)
PFNGLPUSHATTRIBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPushAttrib", ptr)
PFNGLPUSHCLIENTATTRIBPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPushClientAttrib", ptr)
PFNGLPUSHMATRIXPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPushMatrix", ptr)
PFNGLPUSHNAMEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glPushName", ptr)
PFNGLRASTERPOS2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2d", ptr)
PFNGLRASTERPOS2DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2dv", ptr)
PFNGLRASTERPOS2FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2f", ptr)
PFNGLRASTERPOS2FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2fv", ptr)
PFNGLRASTERPOS2IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2i", ptr)
PFNGLRASTERPOS2IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2iv", ptr)
PFNGLRASTERPOS2SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2s", ptr)
PFNGLRASTERPOS2SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos2sv", ptr)
PFNGLRASTERPOS3DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3d", ptr)
PFNGLRASTERPOS3DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3dv", ptr)
PFNGLRASTERPOS3FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3f", ptr)
PFNGLRASTERPOS3FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3fv", ptr)
PFNGLRASTERPOS3IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3i", ptr)
PFNGLRASTERPOS3IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3iv", ptr)
PFNGLRASTERPOS3SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3s", ptr)
PFNGLRASTERPOS3SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos3sv", ptr)
PFNGLRASTERPOS4DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4d", ptr)
PFNGLRASTERPOS4DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4dv", ptr)
PFNGLRASTERPOS4FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4f", ptr)
PFNGLRASTERPOS4FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4fv", ptr)
PFNGLRASTERPOS4IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4i", ptr)
PFNGLRASTERPOS4IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4iv", ptr)
PFNGLRASTERPOS4SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4s", ptr)
PFNGLRASTERPOS4SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRasterPos4sv", ptr)
PFNGLREADBUFFERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glReadBuffer", ptr)
PFNGLREADPIXELSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glReadPixels", ptr)
PFNGLRECTDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRectd", ptr)
PFNGLRECTDVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRectdv", ptr)
PFNGLRECTFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRectf", ptr)
PFNGLRECTFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRectfv", ptr)
PFNGLRECTIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRecti", ptr)
PFNGLRECTIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRectiv", ptr)
PFNGLRECTSPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRects", ptr)
PFNGLRECTSVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRectsv", ptr)
PFNGLRENDERMODEPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRenderMode", ptr)
PFNGLROTATEDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRotated", ptr)
PFNGLROTATEFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glRotatef", ptr)
PFNGLSCALEDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glScaled", ptr)
PFNGLSCALEFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glScalef", ptr)
PFNGLSCISSORPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glScissor", ptr)
PFNGLSELECTBUFFERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glSelectBuffer", ptr)
PFNGLSHADEMODELPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glShadeModel", ptr)
PFNGLSTENCILFUNCPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glStencilFunc", ptr)
PFNGLSTENCILMASKPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glStencilMask", ptr)
PFNGLSTENCILOPPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glStencilOp", ptr)
PFNGLTEXCOORD1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1d", ptr)
PFNGLTEXCOORD1DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1dv", ptr)
PFNGLTEXCOORD1FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1f", ptr)
PFNGLTEXCOORD1FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1fv", ptr)
PFNGLTEXCOORD1IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1i", ptr)
PFNGLTEXCOORD1IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1iv", ptr)
PFNGLTEXCOORD1SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1s", ptr)
PFNGLTEXCOORD1SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord1sv", ptr)
PFNGLTEXCOORD2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2d", ptr)
PFNGLTEXCOORD2DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2dv", ptr)
PFNGLTEXCOORD2FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2f", ptr)
PFNGLTEXCOORD2FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2fv", ptr)
PFNGLTEXCOORD2IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2i", ptr)
PFNGLTEXCOORD2IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2iv", ptr)
PFNGLTEXCOORD2SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2s", ptr)
PFNGLTEXCOORD2SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord2sv", ptr)
PFNGLTEXCOORD3DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3d", ptr)
PFNGLTEXCOORD3DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3dv", ptr)
PFNGLTEXCOORD3FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3f", ptr)
PFNGLTEXCOORD3FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3fv", ptr)
PFNGLTEXCOORD3IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3i", ptr)
PFNGLTEXCOORD3IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3iv", ptr)
PFNGLTEXCOORD3SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3s", ptr)
PFNGLTEXCOORD3SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord3sv", ptr)
PFNGLTEXCOORD4DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4d", ptr)
PFNGLTEXCOORD4DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4dv", ptr)
PFNGLTEXCOORD4FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4f", ptr)
PFNGLTEXCOORD4FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4fv", ptr)
PFNGLTEXCOORD4IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4i", ptr)
PFNGLTEXCOORD4IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4iv", ptr)
PFNGLTEXCOORD4SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4s", ptr)
PFNGLTEXCOORD4SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoord4sv", ptr)
PFNGLTEXCOORDPOINTERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexCoordPointer", ptr)
PFNGLTEXENVFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexEnvf", ptr)
PFNGLTEXENVFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexEnvfv", ptr)
PFNGLTEXENVIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexEnvi", ptr)
PFNGLTEXENVIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexEnviv", ptr)
PFNGLTEXGENDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexGend", ptr)
PFNGLTEXGENDVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexGendv", ptr)
PFNGLTEXGENFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexGenf", ptr)
PFNGLTEXGENFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexGenfv", ptr)
PFNGLTEXGENIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexGeni", ptr)
PFNGLTEXGENIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexGeniv", ptr)
PFNGLTEXIMAGE1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexImage1D", ptr)
PFNGLTEXIMAGE2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexImage2D", ptr)
PFNGLTEXPARAMETERFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexParameterf", ptr)
PFNGLTEXPARAMETERFVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexParameterfv", ptr)
PFNGLTEXPARAMETERIPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexParameteri", ptr)
PFNGLTEXPARAMETERIVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexParameteriv", ptr)
PFNGLTEXSUBIMAGE1DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexSubImage1D", ptr)
PFNGLTEXSUBIMAGE2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTexSubImage2D", ptr)
PFNGLTRANSLATEDPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTranslated", ptr)
PFNGLTRANSLATEFPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glTranslatef", ptr)
PFNGLVERTEX2DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2d", ptr)
PFNGLVERTEX2DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2dv", ptr)
PFNGLVERTEX2FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2f", ptr)
PFNGLVERTEX2FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2fv", ptr)
PFNGLVERTEX2IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2i", ptr)
PFNGLVERTEX2IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2iv", ptr)
PFNGLVERTEX2SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2s", ptr)
PFNGLVERTEX2SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex2sv", ptr)
PFNGLVERTEX3DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3d", ptr)
PFNGLVERTEX3DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3dv", ptr)
PFNGLVERTEX3FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3f", ptr)
PFNGLVERTEX3FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3fv", ptr)
PFNGLVERTEX3IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3i", ptr)
PFNGLVERTEX3IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3iv", ptr)
PFNGLVERTEX3SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3s", ptr)
PFNGLVERTEX3SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex3sv", ptr)
PFNGLVERTEX4DPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4d", ptr)
PFNGLVERTEX4DVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4dv", ptr)
PFNGLVERTEX4FPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4f", ptr)
PFNGLVERTEX4FVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4fv", ptr)
PFNGLVERTEX4IPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4i", ptr)
PFNGLVERTEX4IVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4iv", ptr)
PFNGLVERTEX4SPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4s", ptr)
PFNGLVERTEX4SVPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertex4sv", ptr)
PFNGLVERTEXPOINTERPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glVertexPointer", ptr)
PFNGLVIEWPORTPROC := DllCall(PFNGETPROCADDRESSPROC, ptr, hgl, astr, "glViewport", ptr)
return 1
}
return 0
}
;aglFree frees the librarys, which was loaded using aglInit
aglFree()
{
ptr := (A_PtrSize) ? "ptr" : "uint"
DllCall("FreeLibrary", ptr, DllCall("GetModuleHandle", "str", "opengl32", ptr))
DllCall("FreeLibrary", ptr, DllCall("GetModuleHandle", "str", "glu32", ptr))
return 1
}
;aglCleanup is the same as aglFree, it frees the librarys, which was loaded using aglInit
aglCleanup()
{
return aglFree()
}
;aglUseGui creates a rendercontext on an AutoHotkey-Gui.
;nGui - the Guinumber, or 0 for the "default" Gui.
;return - the handle of the created rendercontext (HGLRC) or 0 if the rendercontext could not been created.
;First use aglInit, otherwise the function returns an error!
;Use aglUseGui after the Gui is visible, otherwise you must set the viewport
;If a rendercontext was created, the rendercontext will be the current.
;The rendercontext will use the flags PFD_DOUBLEBUFFER, PFD_DRAW_TO_WINDOW and PFD_SUPPORT_OPENGL (defined in wgl.ahk)
;and use 24 colorbits, no alphabits, 32 accumbits, 24 depthbits and 8 stencilbits.
;If PFD_DOUBLEBUFFER is used in flags, glFlush will not work.
;In this case use SwapBuffers (defined in wgl.ahk) instead.
aglUseGui(nGui=0, flags=0x25, colorbits=24, alphabits=0, accumbits=32, depthbits=24, stencilbits=8)
{
if (nGui!=0)
Gui, %nGui%: +LastFound
else
Gui, +LastFound
return aglUseWindow(WinExist(), flags, colorbits, accumbits, depthbits, stencilbits)
}
;aglUseGuiControl creates a rendercontext on an AutoHotkey-GuiControl.
;vLabel - the vLabel of the GuiControl (use a static Control, such as text or pic).
;nGui - the Guinumber, or 0 for the "default" Gui.
;return - the handle of the created rendercontext (HGLRC) or 0 if the rendercontext could not been created.
;First use aglInit, otherwise the function returns an error!
;Use aglUseGuiControl after the Gui is visible, otherwise you must set the viewport
;If a rendercontext was created, the rendercontext will be the current.
;The rendercontext will use the flags PFD_DOUBLEBUFFER, PFD_DRAW_TO_WINDOW and PFD_SUPPORT_OPENGL (defined in wgl.ahk)
;and use 24 colorbits, no alphabits, 32 accumbits, 24 depthbits and 8 stencilbits.
;If PFD_DOUBLEBUFFER is used in flags, glFlush will not work.
;In this case use SwapBuffers (defined in wgl.ahk) instead.
aglUseGuiControl(vLabel, nGui=0, flags=0x25, colorbits=24, alphabits=0, accumbits=32, depthbits=24, stencilbits=8)
{
if (nGui!=0)
GuiControlGet, hWnd, %nGui%:hWnd, % vLabel
else
GuiControlGet, hWnd, hWnd, % vLabel
return aglUseWindow(hWnd, flags, colorbits, accumbits, depthbits, stencilbits)
}
;aglUseWindow creates a rendercontext on a window.
;hWnd - the handle (unique identifer) of the window.
;return - the handle of the created rendercontext (HGLRC) or 0 if the rendercontext could not been created.
;First use aglInit, otherwise the function returns an error!
;If a rendercontext was created, the rendercontext will be the current.
;The rendercontext will use the flags PFD_DOUBLEBUFFER, PFD_DRAW_TO_WINDOW and PFD_SUPPORT_OPENGL (defined in wgl.ahk)
;and use 24 colorbits, no alphabits, 32 accumbits, 24 depthbits and 8 stencilbits.
;If PFD_DOUBLEBUFFER is used in flags, glFlush will not work.
;In this case use SwapBuffers (defined in wgl.ahk) instead.
aglUseWindow(hWnd, flags=0x25, colorbits=24, alphabits=0, accumbits=32, depthbits=24, stencilbits=8)
{
ptr := (A_PtrSize) ? "ptr" : "uint"
if (!(hDC := DllCall("GetDC", ptr, hWnd, ptr)))
return 0
WinSet, Style, +0x04000000, ahk_id %hWnd% ;WS_CLIPSIBLINGS
WinSet, Style, +0x02000000, ahk_id %hWnd% ;WS_CLIPCHILDREN
VarSetCapacity(pfd, 40, 0)
NumPut(40, pfd, 0, "short")
NumPut(1, pfd, 2, "short")
NumPut(flags, pfd, 4, "uint")
NumPut(colorbits, pfd, 9, "uchar")
NumPut(alphabits, pfd, 16, "uchar")
NumPut(accumbits, pfd, 18, "uchar")
NumPut(depthbits, pfd, 23, "uchar")
NumPut(stencilbits, pfd, 24, "uchar")
if (!DllCall("GetModuleHandle", "str", "opengl32", ptr))
aglInit()
if (!(pf := DllCall("ChoosePixelFormat", ptr, hDC, ptr, &pfd, "int")))
return 0
if (!DllCall("SetPixelFormat", ptr, hDC, "int", pf, ptr, &pfd, "uint"))
return 0
if (!(hRC := DllCall("opengl32\wglCreateContext", ptr, hDC, ptr)))
return 0
DllCall("opengl32\wglMakeCurrent", ptr, hDC, ptr, hRC)
return hRC
}
aglIsMultisampleSupported(multisample=0)
{
ptr := (A_PtrSize) ? "ptr" : "uint"
astr := (A_IsUnicode) ? "astr" : "str"
old_hDC := DllCall("opengl32\glGetCurrentDC", ptr)
old_hRC := DllCall("opengl32\glGetCurrentContext", ptr)
max := 0
if (hWnd := DllCall("CreateWindowEx", "uint", 0, "str", "STATIC", "str", "", "uint", 0, "int", 0, "int", 0, "int", 1, "int", 1, ptr, 0, ptr, 0, ptr, 0, ptr, 0, ptr))
{
if (hRC := aglUseWindow(hWnd))
{
if (aglIsWglExt("WGL_ARB_multisample"))
{
if (PFNWGLCHOOSEPIXELFORMATARBPROC := DllCall("opengl32\wglGetProcAddress", astr, "wglChoosePixelFormatARB", ptr))
{
success_init := 1
hDC := DllCall("opengl32\glGetCurrentDC", ptr)
DllCall("opengl32\wglMakeCurrent", ptr, 0, ptr, 0)
DllCall("opengl32\wglDeleteContext", ptr, hRC)
DllCall("ReleaseDC", ptr, hDC)
hDC := DllCall("GetDC", ptr, hWnd, ptr)
VarSetCapacity(fAttributes, 8, 0)
VarSetCapacity(iAttributes, 96, 0)
NumPut(0x2001, iAttributes, 0, "int") NumPut(1, iAttributes, 4, "int") ;WGL_DRAW_TO_WINDOW_ARB
NumPut(0x2010, iAttributes, 8, "int") NumPut(1, iAttributes, 12, "int") ;WGL_SUPPORT_OPENGL_ARB
NumPut(0x2003, iAttributes, 16, "int") NumPut(0x2027, iAttributes, 20, "int") ;WGL_ACCELERATION_ARB - WGL_FULL_ACCELERATION_ARB
NumPut(0x2014, iAttributes, 24, "int") NumPut(24, iAttributes, 28, "int") ;WGL_COLOR_BITS_ARB
NumPut(0x201B, iAttributes, 32, "int") NumPut(8, iAttributes, 36, "int") ;WGL_ALPHA_BITS_ARB
NumPut(0x201D, iAttributes, 40, "int") NumPut(32, iAttributes, 44, "int") ;WGL_ACCUM_BITS_ARB
NumPut(0x2022, iAttributes, 48, "int") NumPut(24, iAttributes, 52, "int") ;WGL_DEPTH_BITS_ARB
NumPut(0x2023, iAttributes, 56, "int") NumPut(8, iAttributes, 60, "int") ;WGL_STENCIL_BITS_ARB
NumPut(0x2011, iAttributes, 64, "int") NumPut(1, iAttributes, 68, "int") ;WGL_DOUBLE_BUFFER_ARB
NumPut(0x2041, iAttributes, 72, "int") NumPut(1, iAttributes, 76, "int") ;WGL_SAMPLE_BUFFERS_ARB
NumPut(0x2042, iAttributes, 80, "int") NumPut(multisample, iAttributes, 84, "int") ;WGL_SAMPLES_ARB
VarSetCapacity(pf, 4, 0)
if (!multisample)
{
test := "32 16 8 4 2"
Loop, parse, test, % " "
{
NumPut(A_LoopField, iAttributes, 84, "int")
result := DllCall(PFNWGLCHOOSEPIXELFORMATARBPROC, ptr, hDC, ptr, &iAttributes, ptr, &fAttributes, "uint", 1, ptr, &pf, "uint*", nf)
if ((result) && (nf >= 1))
{
max := A_LoopField
break
}
}
}
else
{
result := DllCall(PFNWGLCHOOSEPIXELFORMATARBPROC, ptr, hDC, ptr, &iAttributes, ptr, &fAttributes, "uint", 1, ptr, &pf, "uint*", nf)
max := ((result) && (nf >= 1)) ? 1 : 0
}
}
DllCall("ReleaseDC", ptr, hDC)
}
if (!success_init)
{
hDC := DllCall("opengl32\glGetCurrentDC", ptr)
DllCall("opengl32\wglMakeCurrent", ptr, 0, ptr, 0)
DllCall("opengl32\wglDeleteContext", ptr, hRC)
DllCall("ReleaseDC", ptr, hDC)
}
DllCall("opengl32\wglMakeCurrent", ptr, old_hDC, ptr, old_hRC)
}
DllCall("DestroyWindow", ptr, hWnd)
}
return max
}
aglUseGuiMultisample(nGui=0, multisample=2, colorbits=24, alphabits=0, accumbits=32, depthbits=24, stencilbits=8)
{
if (nGui!=0)
Gui, %nGui%: +LastFound
else
Gui, +LastFound
return aglUseWindowMultisample(WinExist(), multisample, colorbits, alphabits, accumbits, depthbits, stencilbits)
}
aglUseGuiControlMultisample(vLabel, nGui=0, multisample=2, colorbits=24, alphabits=0, accumbits=32, depthbits=24, stencilbits=8)
{
if (nGui!=0)
GuiControlGet, hWnd, %nGui%:hWnd, % vLabel
else
GuiControlGet, hWnd, hWnd, % vLabel
return aglUseWindowMultisample(hWnd, multisample, colorbits, accumbits, depthbits, stencilbits)
}
aglUseWindowMultisample(hWnd, multisample=2, colorbits=24, alphabits=0, accumbits=32, depthbits=24, stencilbits=8)
{
ptr := (A_PtrSize) ? "ptr" : "uint"
astr := (A_IsUnicode) ? "astr" : "str"
if ((!multisample) || (!aglIsMultisampleSupported(multisample)))
return aglUseWindow(hWnd, 0x25, colorbits, alphabits, accumbits, depthbits, stencilbits)
if (!(hRC := aglUseWindow(hWnd, 0x25, colorbits, alphabits, accumbits, depthbits, stencilbits)))
return 0
VarSetCapacity(fAttributes, 8, 0)
VarSetCapacity(iAttributes, 96, 0)
NumPut(0x2001, iAttributes, 0, "int") NumPut(1, iAttributes, 4, "int") ;WGL_DRAW_TO_WINDOW_ARB
NumPut(0x2010, iAttributes, 8, "int") NumPut(1, iAttributes, 12, "int") ;WGL_SUPPORT_OPENGL_ARB
NumPut(0x2003, iAttributes, 16, "int") NumPut(0x2027, iAttributes, 20, "int") ;WGL_ACCELERATION_ARB - WGL_FULL_ACCELERATION_ARB
NumPut(0x2014, iAttributes, 24, "int") NumPut(colorbits, iAttributes, 28, "int") ;WGL_COLOR_BITS_ARB
NumPut(0x201B, iAttributes, 32, "int") NumPut(alphabits, iAttributes, 36, "int") ;WGL_ALPHA_BITS_ARB
NumPut(0x201D, iAttributes, 40, "int") NumPut(accumbits, iAttributes, 44, "int") ;WGL_ACCUM_BITS_ARB
NumPut(0x2022, iAttributes, 48, "int") NumPut(depthbits, iAttributes, 52, "int") ;WGL_DEPTH_BITS_ARB
NumPut(0x2023, iAttributes, 56, "int") NumPut(stencilbits, iAttributes, 60, "int") ;WGL_STENCIL_BITS_ARB
NumPut(0x2011, iAttributes, 64, "int") NumPut(1, iAttributes, 68, "int") ;WGL_DOUBLE_BUFFER_ARB
NumPut(0x2041, iAttributes, 72, "int") NumPut(1, iAttributes, 76, "int") ;WGL_SAMPLE_BUFFERS_ARB
NumPut(0x2042, iAttributes, 80, "int") NumPut(multisample, iAttributes, 84, "int") ;WGL_SAMPLES_ARB
PFNWGLCHOOSEPIXELFORMATARBPROC := DllCall("opengl32\wglGetProcAddress", astr, "wglChoosePixelFormatARB", ptr)
hDC := DllCall("opengl32\glGetCurrentDC", ptr)
DllCall("opengl32\wglMakeCurrent", ptr, 0, ptr, 0)
DllCall("opengl32\wglDeleteContext", ptr, hRC)
DllCall("ReleaseDC", ptr, hDC)
hDC := DllCall("GetDC", ptr, hWnd, ptr)
result := DllCall(PFNWGLCHOOSEPIXELFORMATARBPROC, ptr, hDC, ptr, &iAttributes, ptr, &fAttributes, "uint", 1, "int*", pf, "uint*", nf)
if ((!result) || (nf = 0))
return aglUseWindow(hWnd, 0x25, colorbits, alphabits, accumbits, depthbits, stencilbits)
VarSetCapacity(pfd, 40, 0)
NumPut(40, pfd, 0, "short")
NumPut(1, pfd, 2, "short")
if (!DllCall("DescribePixelFormat", ptr, hDC, "int", pf, "uint", 40, ptr, &pfd))
{
DllCall("ReleaseDC", ptr, hDC)
return aglUseWindow(hWnd, 0x25, colorbits, alphabits, accumbits, depthbits, stencilbits)
}
NumPut(colorbits, pfd, 9, "uchar")
NumPut(alphabits, pfd, 16, "uchar")
NumPut(accumbits, pfd, 18, "uchar")
NumPut(depthbits, pfd, 23, "uchar")
NumPut(stencilbits, pfd, 24, "uchar")
if (!DllCall("SetPixelFormat", ptr, hDC, "int", pf, ptr, &pfd, "uint"))
{
DllCall("ReleaseDC", ptr, hDC)
return aglUseWindow(hWnd, 0x25, colorbits, alphabits, accumbits, depthbits, stencilbits)
}
if (!(hRC := DllCall("opengl32\wglCreateContext", ptr, hDC, ptr)))
{
DllCall("ReleaseDC", ptr, hDC)
return aglUseWindow(hWnd, 0x25, colorbits, alphabits, accumbits, depthbits, stencilbits)
}
DllCall("opengl32\wglMakeCurrent", ptr, hDC, ptr, hRC)
DllCall("ReleaseDC", ptr, hDC)
DllCall("opengl32\glEnable", "uint", 0x809D) ;GL_MULTISAMPLE[_ARB]
return hRC
}
;aglGetDC returns the handle to the devicecontext of a window.
;The devicecontext must be released, by using aglReleaseDC.
aglGetDC(hWnd)
{
ptr := (A_PtrSize) ? "ptr" : "uint"
return DllCall("GetDC", ptr, hWnd, ptr)
}
;aglReleaseDC releases a devicecontext.
aglReleaseDC(hDC)
{
ptr := (A_PtrSize) ? "ptr" : "uint"
return DllCall("ReleaseDC", ptr, hDC, "uint")
}
;aglInitExt initializes all procaddresses of the functions defined in glext.ahk.
;Call this function AFTER you created a rendercontext, if you need the extensions.
;return - 1 on success or 0 on failure.
aglInitExt()
{
global
local wglGetProcAddress, ptr, astr
ptr := (A_PtrSize) ? "ptr" : "uint"
astr := (A_IsUnicode) ? "astr" : "str"
if (!(wglGetProcAddress := DllCall("GetProcAddress", ptr, DllCall("GetModuleHandle", "str", "opengl32", ptr), astr, "wglGetProcAddress", ptr)))
return 0
GLDEBUGPROCARB := DllCall(wglGetProcAddress, astr, "glDebugProcARB", ptr)
GLDEBUGPROCAMD := DllCall(wglGetProcAddress, astr, "glDebugProcAMD", ptr)
PFNGLBLENDCOLORPROC := DllCall(wglGetProcAddress, astr, "glBlendColor", ptr)
PFNGLBLENDEQUATIONPROC := DllCall(wglGetProcAddress, astr, "glBlendEquation", ptr)
PFNGLDRAWRANGEELEMENTSPROC := DllCall(wglGetProcAddress, astr, "glDrawRangeElements", ptr)
PFNGLTEXIMAGE3DPROC := DllCall(wglGetProcAddress, astr, "glTexImage3D", ptr)
PFNGLTEXSUBIMAGE3DPROC := DllCall(wglGetProcAddress, astr, "glTexSubImage3D", ptr)
PFNGLCOPYTEXSUBIMAGE3DPROC := DllCall(wglGetProcAddress, astr, "glCopyTexSubImage3D", ptr)
PFNGLCOLORTABLEPROC := DllCall(wglGetProcAddress, astr, "glColorTable", ptr)
PFNGLCOLORTABLEPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glColorTableParameterfv", ptr)
PFNGLCOLORTABLEPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glColorTableParameteriv", ptr)
PFNGLCOPYCOLORTABLEPROC := DllCall(wglGetProcAddress, astr, "glCopyColorTable", ptr)
PFNGLGETCOLORTABLEPROC := DllCall(wglGetProcAddress, astr, "glGetColorTable", ptr)
PFNGLGETCOLORTABLEPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glGetColorTableParameterfv", ptr)
PFNGLGETCOLORTABLEPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glGetColorTableParameteriv", ptr)
PFNGLCOLORSUBTABLEPROC := DllCall(wglGetProcAddress, astr, "glColorSubTable", ptr)
PFNGLCOPYCOLORSUBTABLEPROC := DllCall(wglGetProcAddress, astr, "glCopyColorSubTable", ptr)
PFNGLCONVOLUTIONFILTER1DPROC := DllCall(wglGetProcAddress, astr, "glConvolutionFilter1D", ptr)
PFNGLCONVOLUTIONFILTER2DPROC := DllCall(wglGetProcAddress, astr, "glConvolutionFilter2D", ptr)
PFNGLCONVOLUTIONPARAMETERFPROC := DllCall(wglGetProcAddress, astr, "glConvolutionParameterf", ptr)
PFNGLCONVOLUTIONPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glConvolutionParameterfv", ptr)
PFNGLCONVOLUTIONPARAMETERIPROC := DllCall(wglGetProcAddress, astr, "glConvolutionParameteri", ptr)
PFNGLCONVOLUTIONPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glConvolutionParameteriv", ptr)
PFNGLCOPYCONVOLUTIONFILTER1DPROC := DllCall(wglGetProcAddress, astr, "glCopyConvolutionFilter1D", ptr)
PFNGLCOPYCONVOLUTIONFILTER2DPROC := DllCall(wglGetProcAddress, astr, "glCopyConvolutionFilter2D", ptr)
PFNGLGETCONVOLUTIONFILTERPROC := DllCall(wglGetProcAddress, astr, "glGetConvolutionFilter", ptr)
PFNGLGETCONVOLUTIONPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glGetConvolutionParameterfv", ptr)
PFNGLGETCONVOLUTIONPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glGetConvolutionParameteriv", ptr)
PFNGLGETSEPARABLEFILTERPROC := DllCall(wglGetProcAddress, astr, "glGetSeparableFilter", ptr)
PFNGLSEPARABLEFILTER2DPROC := DllCall(wglGetProcAddress, astr, "glSeparableFilter2D", ptr)
PFNGLGETHISTOGRAMPROC := DllCall(wglGetProcAddress, astr, "glGetHistogram", ptr)
PFNGLGETHISTOGRAMPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glGetHistogramParameterfv", ptr)
PFNGLGETHISTOGRAMPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glGetHistogramParameteriv", ptr)
PFNGLGETMINMAXPROC := DllCall(wglGetProcAddress, astr, "glGetMinmax", ptr)
PFNGLGETMINMAXPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glGetMinmaxParameterfv", ptr)
PFNGLGETMINMAXPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glGetMinmaxParameteriv", ptr)
PFNGLHISTOGRAMPROC := DllCall(wglGetProcAddress, astr, "glHistogram", ptr)
PFNGLMINMAXPROC := DllCall(wglGetProcAddress, astr, "glMinmax", ptr)
PFNGLRESETHISTOGRAMPROC := DllCall(wglGetProcAddress, astr, "glResetHistogram", ptr)
PFNGLRESETMINMAXPROC := DllCall(wglGetProcAddress, astr, "glResetMinmax", ptr)
PFNGLACTIVETEXTUREPROC := DllCall(wglGetProcAddress, astr, "glActiveTexture", ptr)
PFNGLSAMPLECOVERAGEPROC := DllCall(wglGetProcAddress, astr, "glSampleCoverage", ptr)
PFNGLCOMPRESSEDTEXIMAGE3DPROC := DllCall(wglGetProcAddress, astr, "glCompressedTexImage3D", ptr)
PFNGLCOMPRESSEDTEXIMAGE2DPROC := DllCall(wglGetProcAddress, astr, "glCompressedTexImage2D", ptr)
PFNGLCOMPRESSEDTEXIMAGE1DPROC := DllCall(wglGetProcAddress, astr, "glCompressedTexImage1D", ptr)
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC := DllCall(wglGetProcAddress, astr, "glCompressedTexSubImage3D", ptr)
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC := DllCall(wglGetProcAddress, astr, "glCompressedTexSubImage2D", ptr)
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC := DllCall(wglGetProcAddress, astr, "glCompressedTexSubImage1D", ptr)
PFNGLGETCOMPRESSEDTEXIMAGEPROC := DllCall(wglGetProcAddress, astr, "glGetCompressedTexImage", ptr)
PFNGLCLIENTACTIVETEXTUREPROC := DllCall(wglGetProcAddress, astr, "glClientActiveTexture", ptr)
PFNGLMULTITEXCOORD1DPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1d", ptr)
PFNGLMULTITEXCOORD1DVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1dv", ptr)
PFNGLMULTITEXCOORD1FPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1f", ptr)
PFNGLMULTITEXCOORD1FVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1fv", ptr)
PFNGLMULTITEXCOORD1IPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1i", ptr)
PFNGLMULTITEXCOORD1IVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1iv", ptr)
PFNGLMULTITEXCOORD1SPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1s", ptr)
PFNGLMULTITEXCOORD1SVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1sv", ptr)
PFNGLMULTITEXCOORD2DPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2d", ptr)
PFNGLMULTITEXCOORD2DVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2dv", ptr)
PFNGLMULTITEXCOORD2FPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2f", ptr)
PFNGLMULTITEXCOORD2FVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2fv", ptr)
PFNGLMULTITEXCOORD2IPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2i", ptr)
PFNGLMULTITEXCOORD2IVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2iv", ptr)
PFNGLMULTITEXCOORD2SPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2s", ptr)
PFNGLMULTITEXCOORD2SVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2sv", ptr)
PFNGLMULTITEXCOORD3DPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3d", ptr)
PFNGLMULTITEXCOORD3DVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3dv", ptr)
PFNGLMULTITEXCOORD3FPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3f", ptr)
PFNGLMULTITEXCOORD3FVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3fv", ptr)
PFNGLMULTITEXCOORD3IPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3i", ptr)
PFNGLMULTITEXCOORD3IVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3iv", ptr)
PFNGLMULTITEXCOORD3SPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3s", ptr)
PFNGLMULTITEXCOORD3SVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3sv", ptr)
PFNGLMULTITEXCOORD4DPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4d", ptr)
PFNGLMULTITEXCOORD4DVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4dv", ptr)
PFNGLMULTITEXCOORD4FPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4f", ptr)
PFNGLMULTITEXCOORD4FVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4fv", ptr)
PFNGLMULTITEXCOORD4IPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4i", ptr)
PFNGLMULTITEXCOORD4IVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4iv", ptr)
PFNGLMULTITEXCOORD4SPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4s", ptr)
PFNGLMULTITEXCOORD4SVPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4sv", ptr)
PFNGLLOADTRANSPOSEMATRIXFPROC := DllCall(wglGetProcAddress, astr, "glLoadTransposeMatrixf", ptr)
PFNGLLOADTRANSPOSEMATRIXDPROC := DllCall(wglGetProcAddress, astr, "glLoadTransposeMatrixd", ptr)
PFNGLMULTTRANSPOSEMATRIXFPROC := DllCall(wglGetProcAddress, astr, "glMultTransposeMatrixf", ptr)
PFNGLMULTTRANSPOSEMATRIXDPROC := DllCall(wglGetProcAddress, astr, "glMultTransposeMatrixd", ptr)
PFNGLBLENDFUNCSEPARATEPROC := DllCall(wglGetProcAddress, astr, "glBlendFuncSeparate", ptr)
PFNGLMULTIDRAWARRAYSPROC := DllCall(wglGetProcAddress, astr, "glMultiDrawArrays", ptr)
PFNGLMULTIDRAWELEMENTSPROC := DllCall(wglGetProcAddress, astr, "glMultiDrawElements", ptr)
PFNGLPOINTPARAMETERFPROC := DllCall(wglGetProcAddress, astr, "glPointParameterf", ptr)
PFNGLPOINTPARAMETERFVPROC := DllCall(wglGetProcAddress, astr, "glPointParameterfv", ptr)
PFNGLPOINTPARAMETERIPROC := DllCall(wglGetProcAddress, astr, "glPointParameteri", ptr)
PFNGLPOINTPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glPointParameteriv", ptr)
PFNGLFOGCOORDFPROC := DllCall(wglGetProcAddress, astr, "glFogCoordf", ptr)
PFNGLFOGCOORDFVPROC := DllCall(wglGetProcAddress, astr, "glFogCoordfv", ptr)
PFNGLFOGCOORDDPROC := DllCall(wglGetProcAddress, astr, "glFogCoordd", ptr)
PFNGLFOGCOORDDVPROC := DllCall(wglGetProcAddress, astr, "glFogCoorddv", ptr)
PFNGLFOGCOORDPOINTERPROC := DllCall(wglGetProcAddress, astr, "glFogCoordPointer", ptr)
PFNGLSECONDARYCOLOR3BPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3b", ptr)
PFNGLSECONDARYCOLOR3BVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3bv", ptr)
PFNGLSECONDARYCOLOR3DPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3d", ptr)
PFNGLSECONDARYCOLOR3DVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3dv", ptr)
PFNGLSECONDARYCOLOR3FPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3f", ptr)
PFNGLSECONDARYCOLOR3FVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3fv", ptr)
PFNGLSECONDARYCOLOR3IPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3i", ptr)
PFNGLSECONDARYCOLOR3IVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3iv", ptr)
PFNGLSECONDARYCOLOR3SPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3s", ptr)
PFNGLSECONDARYCOLOR3SVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3sv", ptr)
PFNGLSECONDARYCOLOR3UBPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3ub", ptr)
PFNGLSECONDARYCOLOR3UBVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3ubv", ptr)
PFNGLSECONDARYCOLOR3UIPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3ui", ptr)
PFNGLSECONDARYCOLOR3UIVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3uiv", ptr)
PFNGLSECONDARYCOLOR3USPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3us", ptr)
PFNGLSECONDARYCOLOR3USVPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColor3usv", ptr)
PFNGLSECONDARYCOLORPOINTERPROC := DllCall(wglGetProcAddress, astr, "glSecondaryColorPointer", ptr)
PFNGLWINDOWPOS2DPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2d", ptr)
PFNGLWINDOWPOS2DVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2dv", ptr)
PFNGLWINDOWPOS2FPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2f", ptr)
PFNGLWINDOWPOS2FVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2fv", ptr)
PFNGLWINDOWPOS2IPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2i", ptr)
PFNGLWINDOWPOS2IVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2iv", ptr)
PFNGLWINDOWPOS2SPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2s", ptr)
PFNGLWINDOWPOS2SVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos2sv", ptr)
PFNGLWINDOWPOS3DPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3d", ptr)
PFNGLWINDOWPOS3DVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3dv", ptr)
PFNGLWINDOWPOS3FPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3f", ptr)
PFNGLWINDOWPOS3FVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3fv", ptr)
PFNGLWINDOWPOS3IPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3i", ptr)
PFNGLWINDOWPOS3IVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3iv", ptr)
PFNGLWINDOWPOS3SPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3s", ptr)
PFNGLWINDOWPOS3SVPROC := DllCall(wglGetProcAddress, astr, "glWindowPos3sv", ptr)
PFNGLGENQUERIESPROC := DllCall(wglGetProcAddress, astr, "glGenQueries", ptr)
PFNGLDELETEQUERIESPROC := DllCall(wglGetProcAddress, astr, "glDeleteQueries", ptr)
PFNGLISQUERYPROC := DllCall(wglGetProcAddress, astr, "glIsQuery", ptr)
PFNGLBEGINQUERYPROC := DllCall(wglGetProcAddress, astr, "glBeginQuery", ptr)
PFNGLENDQUERYPROC := DllCall(wglGetProcAddress, astr, "glEndQuery", ptr)
PFNGLGETQUERYIVPROC := DllCall(wglGetProcAddress, astr, "glGetQueryiv", ptr)
PFNGLGETQUERYOBJECTIVPROC := DllCall(wglGetProcAddress, astr, "glGetQueryObjectiv", ptr)
PFNGLGETQUERYOBJECTUIVPROC := DllCall(wglGetProcAddress, astr, "glGetQueryObjectuiv", ptr)
PFNGLBINDBUFFERPROC := DllCall(wglGetProcAddress, astr, "glBindBuffer", ptr)
PFNGLDELETEBUFFERSPROC := DllCall(wglGetProcAddress, astr, "glDeleteBuffers", ptr)
PFNGLGENBUFFERSPROC := DllCall(wglGetProcAddress, astr, "glGenBuffers", ptr)
PFNGLISBUFFERPROC := DllCall(wglGetProcAddress, astr, "glIsBuffer", ptr)
PFNGLBUFFERDATAPROC := DllCall(wglGetProcAddress, astr, "glBufferData", ptr)
PFNGLBUFFERSUBDATAPROC := DllCall(wglGetProcAddress, astr, "glBufferSubData", ptr)
PFNGLGETBUFFERSUBDATAPROC := DllCall(wglGetProcAddress, astr, "glGetBufferSubData", ptr)
PFNGLGETBUFFERPARAMETERIVPROC := DllCall(wglGetProcAddress, astr, "glGetBufferParameteriv", ptr)
PFNGLGETBUFFERPOINTERVPROC := DllCall(wglGetProcAddress, astr, "glGetBufferPointerv", ptr)
PFNGLBLENDEQUATIONSEPARATEPROC := DllCall(wglGetProcAddress, astr, "glBlendEquationSeparate", ptr)
PFNGLDRAWBUFFERSPROC := DllCall(wglGetProcAddress, astr, "glDrawBuffers", ptr)
PFNGLSTENCILOPSEPARATEPROC := DllCall(wglGetProcAddress, astr, "glStencilOpSeparate", ptr)
PFNGLSTENCILFUNCSEPARATEPROC := DllCall(wglGetProcAddress, astr, "glStencilFuncSeparate", ptr)
PFNGLSTENCILMASKSEPARATEPROC := DllCall(wglGetProcAddress, astr, "glStencilMaskSeparate", ptr)
PFNGLATTACHSHADERPROC := DllCall(wglGetProcAddress, astr, "glAttachShader", ptr)
PFNGLBINDATTRIBLOCATIONPROC := DllCall(wglGetProcAddress, astr, "glBindAttribLocation", ptr)
PFNGLCOMPILESHADERPROC := DllCall(wglGetProcAddress, astr, "glCompileShader", ptr)
PFNGLDELETEPROGRAMPROC := DllCall(wglGetProcAddress, astr, "glDeleteProgram", ptr)
PFNGLDELETESHADERPROC := DllCall(wglGetProcAddress, astr, "glDeleteShader", ptr)
PFNGLDETACHSHADERPROC := DllCall(wglGetProcAddress, astr, "glDetachShader", ptr)
PFNGLDISABLEVERTEXATTRIBARRAYPROC := DllCall(wglGetProcAddress, astr, "glDisableVertexAttribArray", ptr)
PFNGLENABLEVERTEXATTRIBARRAYPROC := DllCall(wglGetProcAddress, astr, "glEnableVertexAttribArray", ptr)
PFNGLGETACTIVEATTRIBPROC := DllCall(wglGetProcAddress, astr, "glGetActiveAttrib", ptr)
PFNGLGETACTIVEUNIFORMPROC := DllCall(wglGetProcAddress, astr, "glGetActiveUniform", ptr)
PFNGLGETATTACHEDSHADERSPROC := DllCall(wglGetProcAddress, astr, "glGetAttachedShaders", ptr)
PFNGLGETPROGRAMIVPROC := DllCall(wglGetProcAddress, astr, "glGetProgramiv", ptr)
PFNGLGETPROGRAMINFOLOGPROC := DllCall(wglGetProcAddress, astr, "glGetProgramInfoLog", ptr)
PFNGLGETSHADERIVPROC := DllCall(wglGetProcAddress, astr, "glGetShaderiv", ptr)
PFNGLGETSHADERINFOLOGPROC := DllCall(wglGetProcAddress, astr, "glGetShaderInfoLog", ptr)
PFNGLGETSHADERSOURCEPROC := DllCall(wglGetProcAddress, astr, "glGetShaderSource", ptr)
PFNGLGETUNIFORMFVPROC := DllCall(wglGetProcAddress, astr, "glGetUniformfv", ptr)
PFNGLGETUNIFORMIVPROC := DllCall(wglGetProcAddress, astr, "glGetUniformiv", ptr)
PFNGLGETVERTEXATTRIBDVPROC := DllCall(wglGetProcAddress, astr, "glGetVertexAttribdv", ptr)
PFNGLGETVERTEXATTRIBFVPROC := DllCall(wglGetProcAddress, astr, "glGetVertexAttribfv", ptr)
PFNGLGETVERTEXATTRIBIVPROC := DllCall(wglGetProcAddress, astr, "glGetVertexAttribiv", ptr)
PFNGLGETVERTEXATTRIBPOINTERVPROC := DllCall(wglGetProcAddress, astr, "glGetVertexAttribPointerv", ptr)
PFNGLLINKPROGRAMPROC := DllCall(wglGetProcAddress, astr, "glLinkProgram", ptr)
PFNGLSHADERSOURCEPROC := DllCall(wglGetProcAddress, astr, "glShaderSource", ptr)
PFNGLUSEPROGRAMPROC := DllCall(wglGetProcAddress, astr, "glUseProgram", ptr)
PFNGLUNIFORM1FPROC := DllCall(wglGetProcAddress, astr, "glUniform1f", ptr)
PFNGLUNIFORM2FPROC := DllCall(wglGetProcAddress, astr, "glUniform2f", ptr)
PFNGLUNIFORM3FPROC := DllCall(wglGetProcAddress, astr, "glUniform3f", ptr)
PFNGLUNIFORM4FPROC := DllCall(wglGetProcAddress, astr, "glUniform4f", ptr)
PFNGLUNIFORM1IPROC := DllCall(wglGetProcAddress, astr, "glUniform1i", ptr)
PFNGLUNIFORM2IPROC := DllCall(wglGetProcAddress, astr, "glUniform2i", ptr)
PFNGLUNIFORM3IPROC := DllCall(wglGetProcAddress, astr, "glUniform3i", ptr)
PFNGLUNIFORM4IPROC := DllCall(wglGetProcAddress, astr, "glUniform4i", ptr)
PFNGLUNIFORM1FVPROC := DllCall(wglGetProcAddress, astr, "glUniform1fv", ptr)
PFNGLUNIFORM2FVPROC := DllCall(wglGetProcAddress, astr, "glUniform2fv", ptr)
PFNGLUNIFORM3FVPROC := DllCall(wglGetProcAddress, astr, "glUniform3fv", ptr)
PFNGLUNIFORM4FVPROC := DllCall(wglGetProcAddress, astr, "glUniform4fv", ptr)
PFNGLUNIFORM1IVPROC := DllCall(wglGetProcAddress, astr, "glUniform1iv", ptr)
PFNGLUNIFORM2IVPROC := DllCall(wglGetProcAddress, astr, "glUniform2iv", ptr)
PFNGLUNIFORM3IVPROC := DllCall(wglGetProcAddress, astr, "glUniform3iv", ptr)
PFNGLUNIFORM4IVPROC := DllCall(wglGetProcAddress, astr, "glUniform4iv", ptr)
PFNGLUNIFORMMATRIX2FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix2fv", ptr)
PFNGLUNIFORMMATRIX3FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix3fv", ptr)
PFNGLUNIFORMMATRIX4FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix4fv", ptr)
PFNGLVALIDATEPROGRAMPROC := DllCall(wglGetProcAddress, astr, "glValidateProgram", ptr)
PFNGLVERTEXATTRIB1DPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib1d", ptr)
PFNGLVERTEXATTRIB1DVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib1dv", ptr)
PFNGLVERTEXATTRIB1FPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib1f", ptr)
PFNGLVERTEXATTRIB1FVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib1fv", ptr)
PFNGLVERTEXATTRIB1SPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib1s", ptr)
PFNGLVERTEXATTRIB1SVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib1sv", ptr)
PFNGLVERTEXATTRIB2DPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib2d", ptr)
PFNGLVERTEXATTRIB2DVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib2dv", ptr)
PFNGLVERTEXATTRIB2FPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib2f", ptr)
PFNGLVERTEXATTRIB2FVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib2fv", ptr)
PFNGLVERTEXATTRIB2SPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib2s", ptr)
PFNGLVERTEXATTRIB2SVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib2sv", ptr)
PFNGLVERTEXATTRIB3DPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib3d", ptr)
PFNGLVERTEXATTRIB3DVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib3dv", ptr)
PFNGLVERTEXATTRIB3FPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib3f", ptr)
PFNGLVERTEXATTRIB3FVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib3fv", ptr)
PFNGLVERTEXATTRIB3SPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib3s", ptr)
PFNGLVERTEXATTRIB3SVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib3sv", ptr)
PFNGLVERTEXATTRIB4NBVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Nbv", ptr)
PFNGLVERTEXATTRIB4NIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Niv", ptr)
PFNGLVERTEXATTRIB4NSVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Nsv", ptr)
PFNGLVERTEXATTRIB4NUBPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Nub", ptr)
PFNGLVERTEXATTRIB4NUBVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Nubv", ptr)
PFNGLVERTEXATTRIB4NUIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Nuiv", ptr)
PFNGLVERTEXATTRIB4NUSVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4Nusv", ptr)
PFNGLVERTEXATTRIB4BVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4bv", ptr)
PFNGLVERTEXATTRIB4DPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4d", ptr)
PFNGLVERTEXATTRIB4DVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4dv", ptr)
PFNGLVERTEXATTRIB4FPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4f", ptr)
PFNGLVERTEXATTRIB4FVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4fv", ptr)
PFNGLVERTEXATTRIB4IVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4iv", ptr)
PFNGLVERTEXATTRIB4SPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4s", ptr)
PFNGLVERTEXATTRIB4SVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4sv", ptr)
PFNGLVERTEXATTRIB4UBVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4ubv", ptr)
PFNGLVERTEXATTRIB4UIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4uiv", ptr)
PFNGLVERTEXATTRIB4USVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttrib4usv", ptr)
PFNGLVERTEXATTRIBPOINTERPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribPointer", ptr)
PFNGLUNIFORMMATRIX2X3FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix2x3fv", ptr)
PFNGLUNIFORMMATRIX3X2FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix3x2fv", ptr)
PFNGLUNIFORMMATRIX2X4FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix2x4fv", ptr)
PFNGLUNIFORMMATRIX4X2FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix4x2fv", ptr)
PFNGLUNIFORMMATRIX3X4FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix3x4fv", ptr)
PFNGLUNIFORMMATRIX4X3FVPROC := DllCall(wglGetProcAddress, astr, "glUniformMatrix4x3fv", ptr)
PFNGLCOLORMASKIPROC := DllCall(wglGetProcAddress, astr, "glColorMaski", ptr)
PFNGLGETBOOLEANI_VPROC := DllCall(wglGetProcAddress, astr, "glGetBooleani_v", ptr)
PFNGLGETINTEGERI_VPROC := DllCall(wglGetProcAddress, astr, "glGetIntegeri_v", ptr)
PFNGLENABLEIPROC := DllCall(wglGetProcAddress, astr, "glEnablei", ptr)
PFNGLDISABLEIPROC := DllCall(wglGetProcAddress, astr, "glDisablei", ptr)
PFNGLBEGINTRANSFORMFEEDBACKPROC := DllCall(wglGetProcAddress, astr, "glBeginTransformFeedback", ptr)
PFNGLENDTRANSFORMFEEDBACKPROC := DllCall(wglGetProcAddress, astr, "glEndTransformFeedback", ptr)
PFNGLBINDBUFFERRANGEPROC := DllCall(wglGetProcAddress, astr, "glBindBufferRange", ptr)
PFNGLBINDBUFFERBASEPROC := DllCall(wglGetProcAddress, astr, "glBindBufferBase", ptr)
PFNGLTRANSFORMFEEDBACKVARYINGSPROC := DllCall(wglGetProcAddress, astr, "glTransformFeedbackVaryings", ptr)
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC := DllCall(wglGetProcAddress, astr, "glGetTransformFeedbackVarying", ptr)
PFNGLCLAMPCOLORPROC := DllCall(wglGetProcAddress, astr, "glClampColor", ptr)
PFNGLBEGINCONDITIONALRENDERPROC := DllCall(wglGetProcAddress, astr, "glBeginConditionalRender", ptr)
PFNGLENDCONDITIONALRENDERPROC := DllCall(wglGetProcAddress, astr, "glEndConditionalRender", ptr)
PFNGLVERTEXATTRIBIPOINTERPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribIPointer", ptr)
PFNGLGETVERTEXATTRIBIIVPROC := DllCall(wglGetProcAddress, astr, "glGetVertexAttribIiv", ptr)
PFNGLGETVERTEXATTRIBIUIVPROC := DllCall(wglGetProcAddress, astr, "glGetVertexAttribIuiv", ptr)
PFNGLVERTEXATTRIBI1IPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI1i", ptr)
PFNGLVERTEXATTRIBI2IPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI2i", ptr)
PFNGLVERTEXATTRIBI3IPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI3i", ptr)
PFNGLVERTEXATTRIBI4IPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4i", ptr)
PFNGLVERTEXATTRIBI1UIPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI1ui", ptr)
PFNGLVERTEXATTRIBI2UIPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI2ui", ptr)
PFNGLVERTEXATTRIBI3UIPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI3ui", ptr)
PFNGLVERTEXATTRIBI4UIPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4ui", ptr)
PFNGLVERTEXATTRIBI1IVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI1iv", ptr)
PFNGLVERTEXATTRIBI2IVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI2iv", ptr)
PFNGLVERTEXATTRIBI3IVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI3iv", ptr)
PFNGLVERTEXATTRIBI4IVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4iv", ptr)
PFNGLVERTEXATTRIBI1UIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI1uiv", ptr)
PFNGLVERTEXATTRIBI2UIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI2uiv", ptr)
PFNGLVERTEXATTRIBI3UIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI3uiv", ptr)
PFNGLVERTEXATTRIBI4UIVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4uiv", ptr)
PFNGLVERTEXATTRIBI4BVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4bv", ptr)
PFNGLVERTEXATTRIBI4SVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4sv", ptr)
PFNGLVERTEXATTRIBI4UBVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4ubv", ptr)
PFNGLVERTEXATTRIBI4USVPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribI4usv", ptr)
PFNGLGETUNIFORMUIVPROC := DllCall(wglGetProcAddress, astr, "glGetUniformuiv", ptr)
PFNGLBINDFRAGDATALOCATIONPROC := DllCall(wglGetProcAddress, astr, "glBindFragDataLocation", ptr)
PFNGLUNIFORM1UIPROC := DllCall(wglGetProcAddress, astr, "glUniform1ui", ptr)
PFNGLUNIFORM2UIPROC := DllCall(wglGetProcAddress, astr, "glUniform2ui", ptr)
PFNGLUNIFORM3UIPROC := DllCall(wglGetProcAddress, astr, "glUniform3ui", ptr)
PFNGLUNIFORM4UIPROC := DllCall(wglGetProcAddress, astr, "glUniform4ui", ptr)
PFNGLUNIFORM1UIVPROC := DllCall(wglGetProcAddress, astr, "glUniform1uiv", ptr)
PFNGLUNIFORM2UIVPROC := DllCall(wglGetProcAddress, astr, "glUniform2uiv", ptr)
PFNGLUNIFORM3UIVPROC := DllCall(wglGetProcAddress, astr, "glUniform3uiv", ptr)
PFNGLUNIFORM4UIVPROC := DllCall(wglGetProcAddress, astr, "glUniform4uiv", ptr)
PFNGLTEXPARAMETERIIVPROC := DllCall(wglGetProcAddress, astr, "glTexParameterIiv", ptr)
PFNGLTEXPARAMETERIUIVPROC := DllCall(wglGetProcAddress, astr, "glTexParameterIuiv", ptr)
PFNGLGETTEXPARAMETERIIVPROC := DllCall(wglGetProcAddress, astr, "glGetTexParameterIiv", ptr)
PFNGLGETTEXPARAMETERIUIVPROC := DllCall(wglGetProcAddress, astr, "glGetTexParameterIuiv", ptr)
PFNGLCLEARBUFFERIVPROC := DllCall(wglGetProcAddress, astr, "glClearBufferiv", ptr)
PFNGLCLEARBUFFERUIVPROC := DllCall(wglGetProcAddress, astr, "glClearBufferuiv", ptr)
PFNGLCLEARBUFFERFVPROC := DllCall(wglGetProcAddress, astr, "glClearBufferfv", ptr)
PFNGLCLEARBUFFERFIPROC := DllCall(wglGetProcAddress, astr, "glClearBufferfi", ptr)
PFNGLDRAWARRAYSINSTANCEDPROC := DllCall(wglGetProcAddress, astr, "glDrawArraysInstanced", ptr)
PFNGLDRAWELEMENTSINSTANCEDPROC := DllCall(wglGetProcAddress, astr, "glDrawElementsInstanced", ptr)
PFNGLTEXBUFFERPROC := DllCall(wglGetProcAddress, astr, "glTexBuffer", ptr)
PFNGLPRIMITIVERESTARTINDEXPROC := DllCall(wglGetProcAddress, astr, "glPrimitiveRestartIndex", ptr)
PFNGLGETINTEGER64I_VPROC := DllCall(wglGetProcAddress, astr, "glGetInteger64i_v", ptr)
PFNGLGETBUFFERPARAMETERI64VPROC := DllCall(wglGetProcAddress, astr, "glGetBufferParameteri64v", ptr)
PFNGLFRAMEBUFFERTEXTUREPROC := DllCall(wglGetProcAddress, astr, "glFramebufferTexture", ptr)
PFNGLVERTEXATTRIBDIVISORPROC := DllCall(wglGetProcAddress, astr, "glVertexAttribDivisor", ptr)
PFNGLMINSAMPLESHADINGPROC := DllCall(wglGetProcAddress, astr, "glMinSampleShading", ptr)
PFNGLBLENDEQUATIONIPROC := DllCall(wglGetProcAddress, astr, "glBlendEquationi", ptr)
PFNGLBLENDEQUATIONSEPARATEIPROC := DllCall(wglGetProcAddress, astr, "glBlendEquationSeparatei", ptr)
PFNGLBLENDFUNCIPROC := DllCall(wglGetProcAddress, astr, "glBlendFunci", ptr)
PFNGLBLENDFUNCSEPARATEIPROC := DllCall(wglGetProcAddress, astr, "glBlendFuncSeparatei", ptr)
PFNGLACTIVETEXTUREARBPROC := DllCall(wglGetProcAddress, astr, "glActiveTextureARB", ptr)
PFNGLCLIENTACTIVETEXTUREARBPROC := DllCall(wglGetProcAddress, astr, "glClientActiveTextureARB", ptr)
PFNGLMULTITEXCOORD1DARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1dARB", ptr)
PFNGLMULTITEXCOORD1DVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1dvARB", ptr)
PFNGLMULTITEXCOORD1FARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1fARB", ptr)
PFNGLMULTITEXCOORD1FVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1fvARB", ptr)
PFNGLMULTITEXCOORD1IARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1iARB", ptr)
PFNGLMULTITEXCOORD1IVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1ivARB", ptr)
PFNGLMULTITEXCOORD1SARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1sARB", ptr)
PFNGLMULTITEXCOORD1SVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord1svARB", ptr)
PFNGLMULTITEXCOORD2DARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2dARB", ptr)
PFNGLMULTITEXCOORD2DVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2dvARB", ptr)
PFNGLMULTITEXCOORD2FARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2fARB", ptr)
PFNGLMULTITEXCOORD2FVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2fvARB", ptr)
PFNGLMULTITEXCOORD2IARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2iARB", ptr)
PFNGLMULTITEXCOORD2IVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2ivARB", ptr)
PFNGLMULTITEXCOORD2SARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2sARB", ptr)
PFNGLMULTITEXCOORD2SVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord2svARB", ptr)
PFNGLMULTITEXCOORD3DARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3dARB", ptr)
PFNGLMULTITEXCOORD3DVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3dvARB", ptr)
PFNGLMULTITEXCOORD3FARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3fARB", ptr)
PFNGLMULTITEXCOORD3FVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3fvARB", ptr)
PFNGLMULTITEXCOORD3IARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3iARB", ptr)
PFNGLMULTITEXCOORD3IVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3ivARB", ptr)
PFNGLMULTITEXCOORD3SARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3sARB", ptr)
PFNGLMULTITEXCOORD3SVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord3svARB", ptr)
PFNGLMULTITEXCOORD4DARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4dARB", ptr)
PFNGLMULTITEXCOORD4DVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4dvARB", ptr)
PFNGLMULTITEXCOORD4FARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4fARB", ptr)
PFNGLMULTITEXCOORD4FVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4fvARB", ptr)
PFNGLMULTITEXCOORD4IARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4iARB", ptr)
PFNGLMULTITEXCOORD4IVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4ivARB", ptr)
PFNGLMULTITEXCOORD4SARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4sARB", ptr)
PFNGLMULTITEXCOORD4SVARBPROC := DllCall(wglGetProcAddress, astr, "glMultiTexCoord4svARB", ptr)
PFNGLLOADTRANSPOSEMATRIXFARBPROC := DllCall(wglGetProcAddress, astr, "glLoadTransposeMatrixfARB", ptr)
PFNGLLOADTRANSPOSEMATRIXDARBPROC := DllCall(wglGetProcAddress, astr, "glLoadTransposeMatrixdARB", ptr)
PFNGLMULTTRANSPOSEMATRIXFARBPROC := DllCall(wglGetProcAddress, astr, "glMultTransposeMatrixfARB", ptr)
PFNGLMULTTRANSPOSEMATRIXDARBPROC := DllCall(wglGetProcAddress, astr, "glMultTransposeMatrixdARB", ptr)