forked from lsmoura/fontstash
-
Notifications
You must be signed in to change notification settings - Fork 1
/
gl.cpp
2854 lines (2796 loc) · 181 KB
/
gl.cpp
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
#include <algorithm>
#include <vector>
#include <string.h>
#include <stddef.h>
#include "gl.hpp"
#if defined(__APPLE__)
#include <dlfcn.h>
static void* AppleGLGetProcAddress (const char *name)
{
static void* image = NULL;
if (NULL == image)
image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
return (image ? dlsym(image, name) : NULL);
}
#endif /* __APPLE__ */
#if defined(__sgi) || defined (__sun)
#include <dlfcn.h>
#include <stdio.h>
static void* SunGetProcAddress (const GLubyte* name)
{
static void* h = NULL;
static void* gpa;
if (h == NULL)
{
if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
gpa = dlsym(h, "glXGetProcAddress");
}
if (gpa != NULL)
return ((void*(*)(const GLubyte*))gpa)(name);
else
return dlsym(h, (const char*)name);
}
#endif /* __sgi || __sun */
#if defined(_WIN32)
#ifdef _MSC_VER
#pragma warning(disable: 4055)
#pragma warning(disable: 4054)
#pragma warning(disable: 4996)
#endif
static int TestPointer(const PROC pTest)
{
ptrdiff_t iTest;
if(!pTest) return 0;
iTest = (ptrdiff_t)pTest;
if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
return 1;
}
static PROC WinGetProcAddress(const char *name)
{
HMODULE glMod = NULL;
PROC pFunc = wglGetProcAddress((LPCSTR)name);
if(TestPointer(pFunc))
{
return pFunc;
}
glMod = GetModuleHandleA("OpenGL32.dll");
return (PROC)GetProcAddress(glMod, (LPCSTR)name);
}
#define IntGetProcAddress(name) WinGetProcAddress(name)
#else
#if defined(__APPLE__)
#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
#else
#if defined(__sgi) || defined(__sun)
#define IntGetProcAddress(name) SunGetProcAddress(name)
#else /* GLX */
#include <GL/glx.h>
#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
#endif
#endif
#endif
namespace gl
{
namespace exts
{
} //namespace exts
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNC)(GLenum, GLenum);
PFNBLENDFUNC BlendFunc = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEAR)(GLbitfield);
PFNCLEAR Clear = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARCOLOR)(GLfloat, GLfloat, GLfloat, GLfloat);
PFNCLEARCOLOR ClearColor = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARDEPTH)(GLdouble);
PFNCLEARDEPTH ClearDepth = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARSTENCIL)(GLint);
PFNCLEARSTENCIL ClearStencil = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOLORMASK)(GLboolean, GLboolean, GLboolean, GLboolean);
PFNCOLORMASK ColorMask = 0;
typedef void (CODEGEN_FUNCPTR *PFNCULLFACE)(GLenum);
PFNCULLFACE CullFace = 0;
typedef void (CODEGEN_FUNCPTR *PFNDEPTHFUNC)(GLenum);
PFNDEPTHFUNC DepthFunc = 0;
typedef void (CODEGEN_FUNCPTR *PFNDEPTHMASK)(GLboolean);
PFNDEPTHMASK DepthMask = 0;
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGE)(GLdouble, GLdouble);
PFNDEPTHRANGE DepthRange = 0;
typedef void (CODEGEN_FUNCPTR *PFNDISABLE)(GLenum);
PFNDISABLE Disable = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWBUFFER)(GLenum);
PFNDRAWBUFFER DrawBuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNENABLE)(GLenum);
PFNENABLE Enable = 0;
typedef void (CODEGEN_FUNCPTR *PFNFINISH)(void);
PFNFINISH Finish = 0;
typedef void (CODEGEN_FUNCPTR *PFNFLUSH)(void);
PFNFLUSH Flush = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRONTFACE)(GLenum);
PFNFRONTFACE FrontFace = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETBOOLEANV)(GLenum, GLboolean *);
PFNGETBOOLEANV GetBooleanv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETDOUBLEV)(GLenum, GLdouble *);
PFNGETDOUBLEV GetDoublev = 0;
typedef GLenum (CODEGEN_FUNCPTR *PFNGETERROR)(void);
PFNGETERROR GetError = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETFLOATV)(GLenum, GLfloat *);
PFNGETFLOATV GetFloatv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGERV)(GLenum, GLint *);
PFNGETINTEGERV GetIntegerv = 0;
typedef const GLubyte * (CODEGEN_FUNCPTR *PFNGETSTRING)(GLenum);
PFNGETSTRING GetString = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXIMAGE)(GLenum, GLint, GLenum, GLenum, void *);
PFNGETTEXIMAGE GetTexImage = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXLEVELPARAMETERFV)(GLenum, GLint, GLenum, GLfloat *);
PFNGETTEXLEVELPARAMETERFV GetTexLevelParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXLEVELPARAMETERIV)(GLenum, GLint, GLenum, GLint *);
PFNGETTEXLEVELPARAMETERIV GetTexLevelParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERFV)(GLenum, GLenum, GLfloat *);
PFNGETTEXPARAMETERFV GetTexParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERIV)(GLenum, GLenum, GLint *);
PFNGETTEXPARAMETERIV GetTexParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNHINT)(GLenum, GLenum);
PFNHINT Hint = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISENABLED)(GLenum);
PFNISENABLED IsEnabled = 0;
typedef void (CODEGEN_FUNCPTR *PFNLINEWIDTH)(GLfloat);
PFNLINEWIDTH LineWidth = 0;
typedef void (CODEGEN_FUNCPTR *PFNLOGICOP)(GLenum);
PFNLOGICOP LogicOp = 0;
typedef void (CODEGEN_FUNCPTR *PFNPIXELSTOREF)(GLenum, GLfloat);
PFNPIXELSTOREF PixelStoref = 0;
typedef void (CODEGEN_FUNCPTR *PFNPIXELSTOREI)(GLenum, GLint);
PFNPIXELSTOREI PixelStorei = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOINTSIZE)(GLfloat);
PFNPOINTSIZE PointSize = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOLYGONMODE)(GLenum, GLenum);
PFNPOLYGONMODE PolygonMode = 0;
typedef void (CODEGEN_FUNCPTR *PFNREADBUFFER)(GLenum);
PFNREADBUFFER ReadBuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNREADPIXELS)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void *);
PFNREADPIXELS ReadPixels = 0;
typedef void (CODEGEN_FUNCPTR *PFNSCISSOR)(GLint, GLint, GLsizei, GLsizei);
PFNSCISSOR Scissor = 0;
typedef void (CODEGEN_FUNCPTR *PFNSTENCILFUNC)(GLenum, GLint, GLuint);
PFNSTENCILFUNC StencilFunc = 0;
typedef void (CODEGEN_FUNCPTR *PFNSTENCILMASK)(GLuint);
PFNSTENCILMASK StencilMask = 0;
typedef void (CODEGEN_FUNCPTR *PFNSTENCILOP)(GLenum, GLenum, GLenum);
PFNSTENCILOP StencilOp = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const void *);
PFNTEXIMAGE1D TexImage1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const void *);
PFNTEXIMAGE2D TexImage2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERF)(GLenum, GLenum, GLfloat);
PFNTEXPARAMETERF TexParameterf = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERFV)(GLenum, GLenum, const GLfloat *);
PFNTEXPARAMETERFV TexParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERI)(GLenum, GLenum, GLint);
PFNTEXPARAMETERI TexParameteri = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIV)(GLenum, GLenum, const GLint *);
PFNTEXPARAMETERIV TexParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVIEWPORT)(GLint, GLint, GLsizei, GLsizei);
PFNVIEWPORT Viewport = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDTEXTURE)(GLenum, GLuint);
PFNBINDTEXTURE BindTexture = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXIMAGE1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
PFNCOPYTEXIMAGE1D CopyTexImage1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXIMAGE2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
PFNCOPYTEXIMAGE2D CopyTexImage2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXSUBIMAGE1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
PFNCOPYTEXSUBIMAGE1D CopyTexSubImage1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXSUBIMAGE2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
PFNCOPYTEXSUBIMAGE2D CopyTexSubImage2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETETEXTURES)(GLsizei, const GLuint *);
PFNDELETETEXTURES DeleteTextures = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYS)(GLenum, GLint, GLsizei);
PFNDRAWARRAYS DrawArrays = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTS)(GLenum, GLsizei, GLenum, const void *);
PFNDRAWELEMENTS DrawElements = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENTEXTURES)(GLsizei, GLuint *);
PFNGENTEXTURES GenTextures = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPOINTERV)(GLenum, void **);
PFNGETPOINTERV GetPointerv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISTEXTURE)(GLuint);
PFNISTEXTURE IsTexture = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOLYGONOFFSET)(GLfloat, GLfloat);
PFNPOLYGONOFFSET PolygonOffset = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXSUBIMAGE1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const void *);
PFNTEXSUBIMAGE1D TexSubImage1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXSUBIMAGE2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const void *);
PFNTEXSUBIMAGE2D TexSubImage2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXSUBIMAGE3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
PFNCOPYTEXSUBIMAGE3D CopyTexSubImage3D = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWRANGEELEMENTS)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *);
PFNDRAWRANGEELEMENTS DrawRangeElements = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const void *);
PFNTEXIMAGE3D TexImage3D = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXSUBIMAGE3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *);
PFNTEXSUBIMAGE3D TexSubImage3D = 0;
typedef void (CODEGEN_FUNCPTR *PFNACTIVETEXTURE)(GLenum);
PFNACTIVETEXTURE ActiveTexture = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXIMAGE1D)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const void *);
PFNCOMPRESSEDTEXIMAGE1D CompressedTexImage1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXIMAGE2D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const void *);
PFNCOMPRESSEDTEXIMAGE2D CompressedTexImage2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXIMAGE3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const void *);
PFNCOMPRESSEDTEXIMAGE3D CompressedTexImage3D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXSUBIMAGE1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const void *);
PFNCOMPRESSEDTEXSUBIMAGE1D CompressedTexSubImage1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXSUBIMAGE2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const void *);
PFNCOMPRESSEDTEXSUBIMAGE2D CompressedTexSubImage2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXSUBIMAGE3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const void *);
PFNCOMPRESSEDTEXSUBIMAGE3D CompressedTexSubImage3D = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETCOMPRESSEDTEXIMAGE)(GLenum, GLint, void *);
PFNGETCOMPRESSEDTEXIMAGE GetCompressedTexImage = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLECOVERAGE)(GLfloat, GLboolean);
PFNSAMPLECOVERAGE SampleCoverage = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDCOLOR)(GLfloat, GLfloat, GLfloat, GLfloat);
PFNBLENDCOLOR BlendColor = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATION)(GLenum);
PFNBLENDEQUATION BlendEquation = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCSEPARATE)(GLenum, GLenum, GLenum, GLenum);
PFNBLENDFUNCSEPARATE BlendFuncSeparate = 0;
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWARRAYS)(GLenum, const GLint *, const GLsizei *, GLsizei);
PFNMULTIDRAWARRAYS MultiDrawArrays = 0;
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWELEMENTS)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei);
PFNMULTIDRAWELEMENTS MultiDrawElements = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERF)(GLenum, GLfloat);
PFNPOINTPARAMETERF PointParameterf = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERFV)(GLenum, const GLfloat *);
PFNPOINTPARAMETERFV PointParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERI)(GLenum, GLint);
PFNPOINTPARAMETERI PointParameteri = 0;
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERIV)(GLenum, const GLint *);
PFNPOINTPARAMETERIV PointParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNBEGINQUERY)(GLenum, GLuint);
PFNBEGINQUERY BeginQuery = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFER)(GLenum, GLuint);
PFNBINDBUFFER BindBuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNBUFFERDATA)(GLenum, GLsizeiptr, const void *, GLenum);
PFNBUFFERDATA BufferData = 0;
typedef void (CODEGEN_FUNCPTR *PFNBUFFERSUBDATA)(GLenum, GLintptr, GLsizeiptr, const void *);
PFNBUFFERSUBDATA BufferSubData = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETEBUFFERS)(GLsizei, const GLuint *);
PFNDELETEBUFFERS DeleteBuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETEQUERIES)(GLsizei, const GLuint *);
PFNDELETEQUERIES DeleteQueries = 0;
typedef void (CODEGEN_FUNCPTR *PFNENDQUERY)(GLenum);
PFNENDQUERY EndQuery = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENBUFFERS)(GLsizei, GLuint *);
PFNGENBUFFERS GenBuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENQUERIES)(GLsizei, GLuint *);
PFNGENQUERIES GenQueries = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERPARAMETERIV)(GLenum, GLenum, GLint *);
PFNGETBUFFERPARAMETERIV GetBufferParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERPOINTERV)(GLenum, GLenum, void **);
PFNGETBUFFERPOINTERV GetBufferPointerv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERSUBDATA)(GLenum, GLintptr, GLsizeiptr, void *);
PFNGETBUFFERSUBDATA GetBufferSubData = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTIV)(GLuint, GLenum, GLint *);
PFNGETQUERYOBJECTIV GetQueryObjectiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTUIV)(GLuint, GLenum, GLuint *);
PFNGETQUERYOBJECTUIV GetQueryObjectuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYIV)(GLenum, GLenum, GLint *);
PFNGETQUERYIV GetQueryiv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISBUFFER)(GLuint);
PFNISBUFFER IsBuffer = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISQUERY)(GLuint);
PFNISQUERY IsQuery = 0;
typedef void * (CODEGEN_FUNCPTR *PFNMAPBUFFER)(GLenum, GLenum);
PFNMAPBUFFER MapBuffer = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNUNMAPBUFFER)(GLenum);
PFNUNMAPBUFFER UnmapBuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNATTACHSHADER)(GLuint, GLuint);
PFNATTACHSHADER AttachShader = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDATTRIBLOCATION)(GLuint, GLuint, const GLchar *);
PFNBINDATTRIBLOCATION BindAttribLocation = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONSEPARATE)(GLenum, GLenum);
PFNBLENDEQUATIONSEPARATE BlendEquationSeparate = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOMPILESHADER)(GLuint);
PFNCOMPILESHADER CompileShader = 0;
typedef GLuint (CODEGEN_FUNCPTR *PFNCREATEPROGRAM)(void);
PFNCREATEPROGRAM CreateProgram = 0;
typedef GLuint (CODEGEN_FUNCPTR *PFNCREATESHADER)(GLenum);
PFNCREATESHADER CreateShader = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETEPROGRAM)(GLuint);
PFNDELETEPROGRAM DeleteProgram = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETESHADER)(GLuint);
PFNDELETESHADER DeleteShader = 0;
typedef void (CODEGEN_FUNCPTR *PFNDETACHSHADER)(GLuint, GLuint);
PFNDETACHSHADER DetachShader = 0;
typedef void (CODEGEN_FUNCPTR *PFNDISABLEVERTEXATTRIBARRAY)(GLuint);
PFNDISABLEVERTEXATTRIBARRAY DisableVertexAttribArray = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWBUFFERS)(GLsizei, const GLenum *);
PFNDRAWBUFFERS DrawBuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNENABLEVERTEXATTRIBARRAY)(GLuint);
PFNENABLEVERTEXATTRIBARRAY EnableVertexAttribArray = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEATTRIB)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
PFNGETACTIVEATTRIB GetActiveAttrib = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORM)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
PFNGETACTIVEUNIFORM GetActiveUniform = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETATTACHEDSHADERS)(GLuint, GLsizei, GLsizei *, GLuint *);
PFNGETATTACHEDSHADERS GetAttachedShaders = 0;
typedef GLint (CODEGEN_FUNCPTR *PFNGETATTRIBLOCATION)(GLuint, const GLchar *);
PFNGETATTRIBLOCATION GetAttribLocation = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMINFOLOG)(GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETPROGRAMINFOLOG GetProgramInfoLog = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMIV)(GLuint, GLenum, GLint *);
PFNGETPROGRAMIV GetProgramiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERINFOLOG)(GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETSHADERINFOLOG GetShaderInfoLog = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERSOURCE)(GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETSHADERSOURCE GetShaderSource = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERIV)(GLuint, GLenum, GLint *);
PFNGETSHADERIV GetShaderiv = 0;
typedef GLint (CODEGEN_FUNCPTR *PFNGETUNIFORMLOCATION)(GLuint, const GLchar *);
PFNGETUNIFORMLOCATION GetUniformLocation = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMFV)(GLuint, GLint, GLfloat *);
PFNGETUNIFORMFV GetUniformfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMIV)(GLuint, GLint, GLint *);
PFNGETUNIFORMIV GetUniformiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBPOINTERV)(GLuint, GLenum, void **);
PFNGETVERTEXATTRIBPOINTERV GetVertexAttribPointerv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBDV)(GLuint, GLenum, GLdouble *);
PFNGETVERTEXATTRIBDV GetVertexAttribdv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBFV)(GLuint, GLenum, GLfloat *);
PFNGETVERTEXATTRIBFV GetVertexAttribfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBIV)(GLuint, GLenum, GLint *);
PFNGETVERTEXATTRIBIV GetVertexAttribiv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISPROGRAM)(GLuint);
PFNISPROGRAM IsProgram = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISSHADER)(GLuint);
PFNISSHADER IsShader = 0;
typedef void (CODEGEN_FUNCPTR *PFNLINKPROGRAM)(GLuint);
PFNLINKPROGRAM LinkProgram = 0;
typedef void (CODEGEN_FUNCPTR *PFNSHADERSOURCE)(GLuint, GLsizei, const GLchar *const*, const GLint *);
PFNSHADERSOURCE ShaderSource = 0;
typedef void (CODEGEN_FUNCPTR *PFNSTENCILFUNCSEPARATE)(GLenum, GLenum, GLint, GLuint);
PFNSTENCILFUNCSEPARATE StencilFuncSeparate = 0;
typedef void (CODEGEN_FUNCPTR *PFNSTENCILMASKSEPARATE)(GLenum, GLuint);
PFNSTENCILMASKSEPARATE StencilMaskSeparate = 0;
typedef void (CODEGEN_FUNCPTR *PFNSTENCILOPSEPARATE)(GLenum, GLenum, GLenum, GLenum);
PFNSTENCILOPSEPARATE StencilOpSeparate = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1F)(GLint, GLfloat);
PFNUNIFORM1F Uniform1f = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1FV)(GLint, GLsizei, const GLfloat *);
PFNUNIFORM1FV Uniform1fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1I)(GLint, GLint);
PFNUNIFORM1I Uniform1i = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1IV)(GLint, GLsizei, const GLint *);
PFNUNIFORM1IV Uniform1iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2F)(GLint, GLfloat, GLfloat);
PFNUNIFORM2F Uniform2f = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2FV)(GLint, GLsizei, const GLfloat *);
PFNUNIFORM2FV Uniform2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2I)(GLint, GLint, GLint);
PFNUNIFORM2I Uniform2i = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2IV)(GLint, GLsizei, const GLint *);
PFNUNIFORM2IV Uniform2iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3F)(GLint, GLfloat, GLfloat, GLfloat);
PFNUNIFORM3F Uniform3f = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3FV)(GLint, GLsizei, const GLfloat *);
PFNUNIFORM3FV Uniform3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3I)(GLint, GLint, GLint, GLint);
PFNUNIFORM3I Uniform3i = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3IV)(GLint, GLsizei, const GLint *);
PFNUNIFORM3IV Uniform3iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4F)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
PFNUNIFORM4F Uniform4f = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4FV)(GLint, GLsizei, const GLfloat *);
PFNUNIFORM4FV Uniform4fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4I)(GLint, GLint, GLint, GLint, GLint);
PFNUNIFORM4I Uniform4i = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4IV)(GLint, GLsizei, const GLint *);
PFNUNIFORM4IV Uniform4iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX2FV UniformMatrix2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX3FV UniformMatrix3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX4FV UniformMatrix4fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUSEPROGRAM)(GLuint);
PFNUSEPROGRAM UseProgram = 0;
typedef void (CODEGEN_FUNCPTR *PFNVALIDATEPROGRAM)(GLuint);
PFNVALIDATEPROGRAM ValidateProgram = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1D)(GLuint, GLdouble);
PFNVERTEXATTRIB1D VertexAttrib1d = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1DV)(GLuint, const GLdouble *);
PFNVERTEXATTRIB1DV VertexAttrib1dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1F)(GLuint, GLfloat);
PFNVERTEXATTRIB1F VertexAttrib1f = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1FV)(GLuint, const GLfloat *);
PFNVERTEXATTRIB1FV VertexAttrib1fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1S)(GLuint, GLshort);
PFNVERTEXATTRIB1S VertexAttrib1s = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1SV)(GLuint, const GLshort *);
PFNVERTEXATTRIB1SV VertexAttrib1sv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2D)(GLuint, GLdouble, GLdouble);
PFNVERTEXATTRIB2D VertexAttrib2d = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2DV)(GLuint, const GLdouble *);
PFNVERTEXATTRIB2DV VertexAttrib2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2F)(GLuint, GLfloat, GLfloat);
PFNVERTEXATTRIB2F VertexAttrib2f = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2FV)(GLuint, const GLfloat *);
PFNVERTEXATTRIB2FV VertexAttrib2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2S)(GLuint, GLshort, GLshort);
PFNVERTEXATTRIB2S VertexAttrib2s = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2SV)(GLuint, const GLshort *);
PFNVERTEXATTRIB2SV VertexAttrib2sv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3D)(GLuint, GLdouble, GLdouble, GLdouble);
PFNVERTEXATTRIB3D VertexAttrib3d = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3DV)(GLuint, const GLdouble *);
PFNVERTEXATTRIB3DV VertexAttrib3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3F)(GLuint, GLfloat, GLfloat, GLfloat);
PFNVERTEXATTRIB3F VertexAttrib3f = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3FV)(GLuint, const GLfloat *);
PFNVERTEXATTRIB3FV VertexAttrib3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3S)(GLuint, GLshort, GLshort, GLshort);
PFNVERTEXATTRIB3S VertexAttrib3s = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3SV)(GLuint, const GLshort *);
PFNVERTEXATTRIB3SV VertexAttrib3sv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NBV)(GLuint, const GLbyte *);
PFNVERTEXATTRIB4NBV VertexAttrib4Nbv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NIV)(GLuint, const GLint *);
PFNVERTEXATTRIB4NIV VertexAttrib4Niv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NSV)(GLuint, const GLshort *);
PFNVERTEXATTRIB4NSV VertexAttrib4Nsv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUB)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
PFNVERTEXATTRIB4NUB VertexAttrib4Nub = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUBV)(GLuint, const GLubyte *);
PFNVERTEXATTRIB4NUBV VertexAttrib4Nubv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUIV)(GLuint, const GLuint *);
PFNVERTEXATTRIB4NUIV VertexAttrib4Nuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUSV)(GLuint, const GLushort *);
PFNVERTEXATTRIB4NUSV VertexAttrib4Nusv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4BV)(GLuint, const GLbyte *);
PFNVERTEXATTRIB4BV VertexAttrib4bv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4D)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
PFNVERTEXATTRIB4D VertexAttrib4d = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4DV)(GLuint, const GLdouble *);
PFNVERTEXATTRIB4DV VertexAttrib4dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4F)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
PFNVERTEXATTRIB4F VertexAttrib4f = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4FV)(GLuint, const GLfloat *);
PFNVERTEXATTRIB4FV VertexAttrib4fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4IV)(GLuint, const GLint *);
PFNVERTEXATTRIB4IV VertexAttrib4iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4S)(GLuint, GLshort, GLshort, GLshort, GLshort);
PFNVERTEXATTRIB4S VertexAttrib4s = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4SV)(GLuint, const GLshort *);
PFNVERTEXATTRIB4SV VertexAttrib4sv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4UBV)(GLuint, const GLubyte *);
PFNVERTEXATTRIB4UBV VertexAttrib4ubv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4UIV)(GLuint, const GLuint *);
PFNVERTEXATTRIB4UIV VertexAttrib4uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4USV)(GLuint, const GLushort *);
PFNVERTEXATTRIB4USV VertexAttrib4usv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBPOINTER)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void *);
PFNVERTEXATTRIBPOINTER VertexAttribPointer = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X3FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX2X3FV UniformMatrix2x3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X4FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX2X4FV UniformMatrix2x4fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X2FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX3X2FV UniformMatrix3x2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X4FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX3X4FV UniformMatrix3x4fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X2FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX4X2FV UniformMatrix4x2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X3FV)(GLint, GLsizei, GLboolean, const GLfloat *);
PFNUNIFORMMATRIX4X3FV UniformMatrix4x3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNBEGINCONDITIONALRENDER)(GLuint, GLenum);
PFNBEGINCONDITIONALRENDER BeginConditionalRender = 0;
typedef void (CODEGEN_FUNCPTR *PFNBEGINTRANSFORMFEEDBACK)(GLenum);
PFNBEGINTRANSFORMFEEDBACK BeginTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERBASE)(GLenum, GLuint, GLuint);
PFNBINDBUFFERBASE BindBufferBase = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERRANGE)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
PFNBINDBUFFERRANGE BindBufferRange = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDFRAGDATALOCATION)(GLuint, GLuint, const GLchar *);
PFNBINDFRAGDATALOCATION BindFragDataLocation = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDFRAMEBUFFER)(GLenum, GLuint);
PFNBINDFRAMEBUFFER BindFramebuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDRENDERBUFFER)(GLenum, GLuint);
PFNBINDRENDERBUFFER BindRenderbuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDVERTEXARRAY)(GLuint);
PFNBINDVERTEXARRAY BindVertexArray = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLITFRAMEBUFFER)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
PFNBLITFRAMEBUFFER BlitFramebuffer = 0;
typedef GLenum (CODEGEN_FUNCPTR *PFNCHECKFRAMEBUFFERSTATUS)(GLenum);
PFNCHECKFRAMEBUFFERSTATUS CheckFramebufferStatus = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLAMPCOLOR)(GLenum, GLenum);
PFNCLAMPCOLOR ClampColor = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERFI)(GLenum, GLint, GLfloat, GLint);
PFNCLEARBUFFERFI ClearBufferfi = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERFV)(GLenum, GLint, const GLfloat *);
PFNCLEARBUFFERFV ClearBufferfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERIV)(GLenum, GLint, const GLint *);
PFNCLEARBUFFERIV ClearBufferiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERUIV)(GLenum, GLint, const GLuint *);
PFNCLEARBUFFERUIV ClearBufferuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOLORMASKI)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
PFNCOLORMASKI ColorMaski = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETEFRAMEBUFFERS)(GLsizei, const GLuint *);
PFNDELETEFRAMEBUFFERS DeleteFramebuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETERENDERBUFFERS)(GLsizei, const GLuint *);
PFNDELETERENDERBUFFERS DeleteRenderbuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETEVERTEXARRAYS)(GLsizei, const GLuint *);
PFNDELETEVERTEXARRAYS DeleteVertexArrays = 0;
typedef void (CODEGEN_FUNCPTR *PFNDISABLEI)(GLenum, GLuint);
PFNDISABLEI Disablei = 0;
typedef void (CODEGEN_FUNCPTR *PFNENABLEI)(GLenum, GLuint);
PFNENABLEI Enablei = 0;
typedef void (CODEGEN_FUNCPTR *PFNENDCONDITIONALRENDER)(void);
PFNENDCONDITIONALRENDER EndConditionalRender = 0;
typedef void (CODEGEN_FUNCPTR *PFNENDTRANSFORMFEEDBACK)(void);
PFNENDTRANSFORMFEEDBACK EndTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNFLUSHMAPPEDBUFFERRANGE)(GLenum, GLintptr, GLsizeiptr);
PFNFLUSHMAPPEDBUFFERRANGE FlushMappedBufferRange = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERRENDERBUFFER)(GLenum, GLenum, GLenum, GLuint);
PFNFRAMEBUFFERRENDERBUFFER FramebufferRenderbuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE1D)(GLenum, GLenum, GLenum, GLuint, GLint);
PFNFRAMEBUFFERTEXTURE1D FramebufferTexture1D = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE2D)(GLenum, GLenum, GLenum, GLuint, GLint);
PFNFRAMEBUFFERTEXTURE2D FramebufferTexture2D = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint);
PFNFRAMEBUFFERTEXTURE3D FramebufferTexture3D = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURELAYER)(GLenum, GLenum, GLuint, GLint, GLint);
PFNFRAMEBUFFERTEXTURELAYER FramebufferTextureLayer = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENFRAMEBUFFERS)(GLsizei, GLuint *);
PFNGENFRAMEBUFFERS GenFramebuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENRENDERBUFFERS)(GLsizei, GLuint *);
PFNGENRENDERBUFFERS GenRenderbuffers = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENVERTEXARRAYS)(GLsizei, GLuint *);
PFNGENVERTEXARRAYS GenVertexArrays = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENERATEMIPMAP)(GLenum);
PFNGENERATEMIPMAP GenerateMipmap = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETBOOLEANI_V)(GLenum, GLuint, GLboolean *);
PFNGETBOOLEANI_V GetBooleani_v = 0;
typedef GLint (CODEGEN_FUNCPTR *PFNGETFRAGDATALOCATION)(GLuint, const GLchar *);
PFNGETFRAGDATALOCATION GetFragDataLocation = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETFRAMEBUFFERATTACHMENTPARAMETERIV)(GLenum, GLenum, GLenum, GLint *);
PFNGETFRAMEBUFFERATTACHMENTPARAMETERIV GetFramebufferAttachmentParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGERI_V)(GLenum, GLuint, GLint *);
PFNGETINTEGERI_V GetIntegeri_v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETRENDERBUFFERPARAMETERIV)(GLenum, GLenum, GLint *);
PFNGETRENDERBUFFERPARAMETERIV GetRenderbufferParameteriv = 0;
typedef const GLubyte * (CODEGEN_FUNCPTR *PFNGETSTRINGI)(GLenum, GLuint);
PFNGETSTRINGI GetStringi = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERIIV)(GLenum, GLenum, GLint *);
PFNGETTEXPARAMETERIIV GetTexParameterIiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERIUIV)(GLenum, GLenum, GLuint *);
PFNGETTEXPARAMETERIUIV GetTexParameterIuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETTRANSFORMFEEDBACKVARYING)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
PFNGETTRANSFORMFEEDBACKVARYING GetTransformFeedbackVarying = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMUIV)(GLuint, GLint, GLuint *);
PFNGETUNIFORMUIV GetUniformuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBIIV)(GLuint, GLenum, GLint *);
PFNGETVERTEXATTRIBIIV GetVertexAttribIiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBIUIV)(GLuint, GLenum, GLuint *);
PFNGETVERTEXATTRIBIUIV GetVertexAttribIuiv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISENABLEDI)(GLenum, GLuint);
PFNISENABLEDI IsEnabledi = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISFRAMEBUFFER)(GLuint);
PFNISFRAMEBUFFER IsFramebuffer = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISRENDERBUFFER)(GLuint);
PFNISRENDERBUFFER IsRenderbuffer = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISVERTEXARRAY)(GLuint);
PFNISVERTEXARRAY IsVertexArray = 0;
typedef void * (CODEGEN_FUNCPTR *PFNMAPBUFFERRANGE)(GLenum, GLintptr, GLsizeiptr, GLbitfield);
PFNMAPBUFFERRANGE MapBufferRange = 0;
typedef void (CODEGEN_FUNCPTR *PFNRENDERBUFFERSTORAGE)(GLenum, GLenum, GLsizei, GLsizei);
PFNRENDERBUFFERSTORAGE RenderbufferStorage = 0;
typedef void (CODEGEN_FUNCPTR *PFNRENDERBUFFERSTORAGEMULTISAMPLE)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
PFNRENDERBUFFERSTORAGEMULTISAMPLE RenderbufferStorageMultisample = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIIV)(GLenum, GLenum, const GLint *);
PFNTEXPARAMETERIIV TexParameterIiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIUIV)(GLenum, GLenum, const GLuint *);
PFNTEXPARAMETERIUIV TexParameterIuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNTRANSFORMFEEDBACKVARYINGS)(GLuint, GLsizei, const GLchar *const*, GLenum);
PFNTRANSFORMFEEDBACKVARYINGS TransformFeedbackVaryings = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1UI)(GLint, GLuint);
PFNUNIFORM1UI Uniform1ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1UIV)(GLint, GLsizei, const GLuint *);
PFNUNIFORM1UIV Uniform1uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2UI)(GLint, GLuint, GLuint);
PFNUNIFORM2UI Uniform2ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2UIV)(GLint, GLsizei, const GLuint *);
PFNUNIFORM2UIV Uniform2uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3UI)(GLint, GLuint, GLuint, GLuint);
PFNUNIFORM3UI Uniform3ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3UIV)(GLint, GLsizei, const GLuint *);
PFNUNIFORM3UIV Uniform3uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4UI)(GLint, GLuint, GLuint, GLuint, GLuint);
PFNUNIFORM4UI Uniform4ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4UIV)(GLint, GLsizei, const GLuint *);
PFNUNIFORM4UIV Uniform4uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1I)(GLuint, GLint);
PFNVERTEXATTRIBI1I VertexAttribI1i = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1IV)(GLuint, const GLint *);
PFNVERTEXATTRIBI1IV VertexAttribI1iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1UI)(GLuint, GLuint);
PFNVERTEXATTRIBI1UI VertexAttribI1ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1UIV)(GLuint, const GLuint *);
PFNVERTEXATTRIBI1UIV VertexAttribI1uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2I)(GLuint, GLint, GLint);
PFNVERTEXATTRIBI2I VertexAttribI2i = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2IV)(GLuint, const GLint *);
PFNVERTEXATTRIBI2IV VertexAttribI2iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2UI)(GLuint, GLuint, GLuint);
PFNVERTEXATTRIBI2UI VertexAttribI2ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2UIV)(GLuint, const GLuint *);
PFNVERTEXATTRIBI2UIV VertexAttribI2uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3I)(GLuint, GLint, GLint, GLint);
PFNVERTEXATTRIBI3I VertexAttribI3i = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3IV)(GLuint, const GLint *);
PFNVERTEXATTRIBI3IV VertexAttribI3iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3UI)(GLuint, GLuint, GLuint, GLuint);
PFNVERTEXATTRIBI3UI VertexAttribI3ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3UIV)(GLuint, const GLuint *);
PFNVERTEXATTRIBI3UIV VertexAttribI3uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4BV)(GLuint, const GLbyte *);
PFNVERTEXATTRIBI4BV VertexAttribI4bv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4I)(GLuint, GLint, GLint, GLint, GLint);
PFNVERTEXATTRIBI4I VertexAttribI4i = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4IV)(GLuint, const GLint *);
PFNVERTEXATTRIBI4IV VertexAttribI4iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4SV)(GLuint, const GLshort *);
PFNVERTEXATTRIBI4SV VertexAttribI4sv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4UBV)(GLuint, const GLubyte *);
PFNVERTEXATTRIBI4UBV VertexAttribI4ubv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4UI)(GLuint, GLuint, GLuint, GLuint, GLuint);
PFNVERTEXATTRIBI4UI VertexAttribI4ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4UIV)(GLuint, const GLuint *);
PFNVERTEXATTRIBI4UIV VertexAttribI4uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4USV)(GLuint, const GLushort *);
PFNVERTEXATTRIBI4USV VertexAttribI4usv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBIPOINTER)(GLuint, GLint, GLenum, GLsizei, const void *);
PFNVERTEXATTRIBIPOINTER VertexAttribIPointer = 0;
typedef void (CODEGEN_FUNCPTR *PFNCOPYBUFFERSUBDATA)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
PFNCOPYBUFFERSUBDATA CopyBufferSubData = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYSINSTANCED)(GLenum, GLint, GLsizei, GLsizei);
PFNDRAWARRAYSINSTANCED DrawArraysInstanced = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINSTANCED)(GLenum, GLsizei, GLenum, const void *, GLsizei);
PFNDRAWELEMENTSINSTANCED DrawElementsInstanced = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMBLOCKNAME)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETACTIVEUNIFORMBLOCKNAME GetActiveUniformBlockName = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMBLOCKIV)(GLuint, GLuint, GLenum, GLint *);
PFNGETACTIVEUNIFORMBLOCKIV GetActiveUniformBlockiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMNAME)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETACTIVEUNIFORMNAME GetActiveUniformName = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMSIV)(GLuint, GLsizei, const GLuint *, GLenum, GLint *);
PFNGETACTIVEUNIFORMSIV GetActiveUniformsiv = 0;
typedef GLuint (CODEGEN_FUNCPTR *PFNGETUNIFORMBLOCKINDEX)(GLuint, const GLchar *);
PFNGETUNIFORMBLOCKINDEX GetUniformBlockIndex = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMINDICES)(GLuint, GLsizei, const GLchar *const*, GLuint *);
PFNGETUNIFORMINDICES GetUniformIndices = 0;
typedef void (CODEGEN_FUNCPTR *PFNPRIMITIVERESTARTINDEX)(GLuint);
PFNPRIMITIVERESTARTINDEX PrimitiveRestartIndex = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXBUFFER)(GLenum, GLenum, GLuint);
PFNTEXBUFFER TexBuffer = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMBLOCKBINDING)(GLuint, GLuint, GLuint);
PFNUNIFORMBLOCKBINDING UniformBlockBinding = 0;
typedef GLenum (CODEGEN_FUNCPTR *PFNCLIENTWAITSYNC)(GLsync, GLbitfield, GLuint64);
PFNCLIENTWAITSYNC ClientWaitSync = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETESYNC)(GLsync);
PFNDELETESYNC DeleteSync = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSBASEVERTEX)(GLenum, GLsizei, GLenum, const void *, GLint);
PFNDRAWELEMENTSBASEVERTEX DrawElementsBaseVertex = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINSTANCEDBASEVERTEX)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint);
PFNDRAWELEMENTSINSTANCEDBASEVERTEX DrawElementsInstancedBaseVertex = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWRANGEELEMENTSBASEVERTEX)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint);
PFNDRAWRANGEELEMENTSBASEVERTEX DrawRangeElementsBaseVertex = 0;
typedef GLsync (CODEGEN_FUNCPTR *PFNFENCESYNC)(GLenum, GLbitfield);
PFNFENCESYNC FenceSync = 0;
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE)(GLenum, GLenum, GLuint, GLint);
PFNFRAMEBUFFERTEXTURE FramebufferTexture = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERPARAMETERI64V)(GLenum, GLenum, GLint64 *);
PFNGETBUFFERPARAMETERI64V GetBufferParameteri64v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGER64I_V)(GLenum, GLuint, GLint64 *);
PFNGETINTEGER64I_V GetInteger64i_v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGER64V)(GLenum, GLint64 *);
PFNGETINTEGER64V GetInteger64v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETMULTISAMPLEFV)(GLenum, GLuint, GLfloat *);
PFNGETMULTISAMPLEFV GetMultisamplefv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSYNCIV)(GLsync, GLenum, GLsizei, GLsizei *, GLint *);
PFNGETSYNCIV GetSynciv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISSYNC)(GLsync);
PFNISSYNC IsSync = 0;
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWELEMENTSBASEVERTEX)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *);
PFNMULTIDRAWELEMENTSBASEVERTEX MultiDrawElementsBaseVertex = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROVOKINGVERTEX)(GLenum);
PFNPROVOKINGVERTEX ProvokingVertex = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLEMASKI)(GLuint, GLbitfield);
PFNSAMPLEMASKI SampleMaski = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE2DMULTISAMPLE)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
PFNTEXIMAGE2DMULTISAMPLE TexImage2DMultisample = 0;
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE3DMULTISAMPLE)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean);
PFNTEXIMAGE3DMULTISAMPLE TexImage3DMultisample = 0;
typedef void (CODEGEN_FUNCPTR *PFNWAITSYNC)(GLsync, GLbitfield, GLuint64);
PFNWAITSYNC WaitSync = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDFRAGDATALOCATIONINDEXED)(GLuint, GLuint, GLuint, const GLchar *);
PFNBINDFRAGDATALOCATIONINDEXED BindFragDataLocationIndexed = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDSAMPLER)(GLuint, GLuint);
PFNBINDSAMPLER BindSampler = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETESAMPLERS)(GLsizei, const GLuint *);
PFNDELETESAMPLERS DeleteSamplers = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENSAMPLERS)(GLsizei, GLuint *);
PFNGENSAMPLERS GenSamplers = 0;
typedef GLint (CODEGEN_FUNCPTR *PFNGETFRAGDATAINDEX)(GLuint, const GLchar *);
PFNGETFRAGDATAINDEX GetFragDataIndex = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTI64V)(GLuint, GLenum, GLint64 *);
PFNGETQUERYOBJECTI64V GetQueryObjecti64v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTUI64V)(GLuint, GLenum, GLuint64 *);
PFNGETQUERYOBJECTUI64V GetQueryObjectui64v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERIIV)(GLuint, GLenum, GLint *);
PFNGETSAMPLERPARAMETERIIV GetSamplerParameterIiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERIUIV)(GLuint, GLenum, GLuint *);
PFNGETSAMPLERPARAMETERIUIV GetSamplerParameterIuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERFV)(GLuint, GLenum, GLfloat *);
PFNGETSAMPLERPARAMETERFV GetSamplerParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERIV)(GLuint, GLenum, GLint *);
PFNGETSAMPLERPARAMETERIV GetSamplerParameteriv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISSAMPLER)(GLuint);
PFNISSAMPLER IsSampler = 0;
typedef void (CODEGEN_FUNCPTR *PFNQUERYCOUNTER)(GLuint, GLenum);
PFNQUERYCOUNTER QueryCounter = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIIV)(GLuint, GLenum, const GLint *);
PFNSAMPLERPARAMETERIIV SamplerParameterIiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIUIV)(GLuint, GLenum, const GLuint *);
PFNSAMPLERPARAMETERIUIV SamplerParameterIuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERF)(GLuint, GLenum, GLfloat);
PFNSAMPLERPARAMETERF SamplerParameterf = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERFV)(GLuint, GLenum, const GLfloat *);
PFNSAMPLERPARAMETERFV SamplerParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERI)(GLuint, GLenum, GLint);
PFNSAMPLERPARAMETERI SamplerParameteri = 0;
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIV)(GLuint, GLenum, const GLint *);
PFNSAMPLERPARAMETERIV SamplerParameteriv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBDIVISOR)(GLuint, GLuint);
PFNVERTEXATTRIBDIVISOR VertexAttribDivisor = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP1UI)(GLuint, GLenum, GLboolean, GLuint);
PFNVERTEXATTRIBP1UI VertexAttribP1ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP1UIV)(GLuint, GLenum, GLboolean, const GLuint *);
PFNVERTEXATTRIBP1UIV VertexAttribP1uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP2UI)(GLuint, GLenum, GLboolean, GLuint);
PFNVERTEXATTRIBP2UI VertexAttribP2ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP2UIV)(GLuint, GLenum, GLboolean, const GLuint *);
PFNVERTEXATTRIBP2UIV VertexAttribP2uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP3UI)(GLuint, GLenum, GLboolean, GLuint);
PFNVERTEXATTRIBP3UI VertexAttribP3ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP3UIV)(GLuint, GLenum, GLboolean, const GLuint *);
PFNVERTEXATTRIBP3UIV VertexAttribP3uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP4UI)(GLuint, GLenum, GLboolean, GLuint);
PFNVERTEXATTRIBP4UI VertexAttribP4ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP4UIV)(GLuint, GLenum, GLboolean, const GLuint *);
PFNVERTEXATTRIBP4UIV VertexAttribP4uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNBEGINQUERYINDEXED)(GLenum, GLuint, GLuint);
PFNBEGINQUERYINDEXED BeginQueryIndexed = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDTRANSFORMFEEDBACK)(GLenum, GLuint);
PFNBINDTRANSFORMFEEDBACK BindTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONSEPARATEI)(GLuint, GLenum, GLenum);
PFNBLENDEQUATIONSEPARATEI BlendEquationSeparatei = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONI)(GLuint, GLenum);
PFNBLENDEQUATIONI BlendEquationi = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCSEPARATEI)(GLuint, GLenum, GLenum, GLenum, GLenum);
PFNBLENDFUNCSEPARATEI BlendFuncSeparatei = 0;
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCI)(GLuint, GLenum, GLenum);
PFNBLENDFUNCI BlendFunci = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETETRANSFORMFEEDBACKS)(GLsizei, const GLuint *);
PFNDELETETRANSFORMFEEDBACKS DeleteTransformFeedbacks = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYSINDIRECT)(GLenum, const void *);
PFNDRAWARRAYSINDIRECT DrawArraysIndirect = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINDIRECT)(GLenum, GLenum, const void *);
PFNDRAWELEMENTSINDIRECT DrawElementsIndirect = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWTRANSFORMFEEDBACK)(GLenum, GLuint);
PFNDRAWTRANSFORMFEEDBACK DrawTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNDRAWTRANSFORMFEEDBACKSTREAM)(GLenum, GLuint, GLuint);
PFNDRAWTRANSFORMFEEDBACKSTREAM DrawTransformFeedbackStream = 0;
typedef void (CODEGEN_FUNCPTR *PFNENDQUERYINDEXED)(GLenum, GLuint);
PFNENDQUERYINDEXED EndQueryIndexed = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENTRANSFORMFEEDBACKS)(GLsizei, GLuint *);
PFNGENTRANSFORMFEEDBACKS GenTransformFeedbacks = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVESUBROUTINENAME)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETACTIVESUBROUTINENAME GetActiveSubroutineName = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVESUBROUTINEUNIFORMNAME)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETACTIVESUBROUTINEUNIFORMNAME GetActiveSubroutineUniformName = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVESUBROUTINEUNIFORMIV)(GLuint, GLenum, GLuint, GLenum, GLint *);
PFNGETACTIVESUBROUTINEUNIFORMIV GetActiveSubroutineUniformiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMSTAGEIV)(GLuint, GLenum, GLenum, GLint *);
PFNGETPROGRAMSTAGEIV GetProgramStageiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYINDEXEDIV)(GLenum, GLuint, GLenum, GLint *);
PFNGETQUERYINDEXEDIV GetQueryIndexediv = 0;
typedef GLuint (CODEGEN_FUNCPTR *PFNGETSUBROUTINEINDEX)(GLuint, GLenum, const GLchar *);
PFNGETSUBROUTINEINDEX GetSubroutineIndex = 0;
typedef GLint (CODEGEN_FUNCPTR *PFNGETSUBROUTINEUNIFORMLOCATION)(GLuint, GLenum, const GLchar *);
PFNGETSUBROUTINEUNIFORMLOCATION GetSubroutineUniformLocation = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMSUBROUTINEUIV)(GLenum, GLint, GLuint *);
PFNGETUNIFORMSUBROUTINEUIV GetUniformSubroutineuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMDV)(GLuint, GLint, GLdouble *);
PFNGETUNIFORMDV GetUniformdv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISTRANSFORMFEEDBACK)(GLuint);
PFNISTRANSFORMFEEDBACK IsTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNMINSAMPLESHADING)(GLfloat);
PFNMINSAMPLESHADING MinSampleShading = 0;
typedef void (CODEGEN_FUNCPTR *PFNPATCHPARAMETERFV)(GLenum, const GLfloat *);
PFNPATCHPARAMETERFV PatchParameterfv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPATCHPARAMETERI)(GLenum, GLint);
PFNPATCHPARAMETERI PatchParameteri = 0;
typedef void (CODEGEN_FUNCPTR *PFNPAUSETRANSFORMFEEDBACK)(void);
PFNPAUSETRANSFORMFEEDBACK PauseTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNRESUMETRANSFORMFEEDBACK)(void);
PFNRESUMETRANSFORMFEEDBACK ResumeTransformFeedback = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1D)(GLint, GLdouble);
PFNUNIFORM1D Uniform1d = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1DV)(GLint, GLsizei, const GLdouble *);
PFNUNIFORM1DV Uniform1dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2D)(GLint, GLdouble, GLdouble);
PFNUNIFORM2D Uniform2d = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2DV)(GLint, GLsizei, const GLdouble *);
PFNUNIFORM2DV Uniform2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3D)(GLint, GLdouble, GLdouble, GLdouble);
PFNUNIFORM3D Uniform3d = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3DV)(GLint, GLsizei, const GLdouble *);
PFNUNIFORM3DV Uniform3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4D)(GLint, GLdouble, GLdouble, GLdouble, GLdouble);
PFNUNIFORM4D Uniform4d = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4DV)(GLint, GLsizei, const GLdouble *);
PFNUNIFORM4DV Uniform4dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX2DV UniformMatrix2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X3DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX2X3DV UniformMatrix2x3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X4DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX2X4DV UniformMatrix2x4dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX3DV UniformMatrix3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X2DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX3X2DV UniformMatrix3x2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X4DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX3X4DV UniformMatrix3x4dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX4DV UniformMatrix4dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X2DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX4X2DV UniformMatrix4x2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X3DV)(GLint, GLsizei, GLboolean, const GLdouble *);
PFNUNIFORMMATRIX4X3DV UniformMatrix4x3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMSUBROUTINESUIV)(GLenum, GLsizei, const GLuint *);
PFNUNIFORMSUBROUTINESUIV UniformSubroutinesuiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNACTIVESHADERPROGRAM)(GLuint, GLuint);
PFNACTIVESHADERPROGRAM ActiveShaderProgram = 0;
typedef void (CODEGEN_FUNCPTR *PFNBINDPROGRAMPIPELINE)(GLuint);
PFNBINDPROGRAMPIPELINE BindProgramPipeline = 0;
typedef void (CODEGEN_FUNCPTR *PFNCLEARDEPTHF)(GLfloat);
PFNCLEARDEPTHF ClearDepthf = 0;
typedef GLuint (CODEGEN_FUNCPTR *PFNCREATESHADERPROGRAMV)(GLenum, GLsizei, const GLchar *const*);
PFNCREATESHADERPROGRAMV CreateShaderProgramv = 0;
typedef void (CODEGEN_FUNCPTR *PFNDELETEPROGRAMPIPELINES)(GLsizei, const GLuint *);
PFNDELETEPROGRAMPIPELINES DeleteProgramPipelines = 0;
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEARRAYV)(GLuint, GLsizei, const GLdouble *);
PFNDEPTHRANGEARRAYV DepthRangeArrayv = 0;
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEINDEXED)(GLuint, GLdouble, GLdouble);
PFNDEPTHRANGEINDEXED DepthRangeIndexed = 0;
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEF)(GLfloat, GLfloat);
PFNDEPTHRANGEF DepthRangef = 0;
typedef void (CODEGEN_FUNCPTR *PFNGENPROGRAMPIPELINES)(GLsizei, GLuint *);
PFNGENPROGRAMPIPELINES GenProgramPipelines = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETDOUBLEI_V)(GLenum, GLuint, GLdouble *);
PFNGETDOUBLEI_V GetDoublei_v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETFLOATI_V)(GLenum, GLuint, GLfloat *);
PFNGETFLOATI_V GetFloati_v = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMBINARY)(GLuint, GLsizei, GLsizei *, GLenum *, void *);
PFNGETPROGRAMBINARY GetProgramBinary = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMPIPELINEINFOLOG)(GLuint, GLsizei, GLsizei *, GLchar *);
PFNGETPROGRAMPIPELINEINFOLOG GetProgramPipelineInfoLog = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMPIPELINEIV)(GLuint, GLenum, GLint *);
PFNGETPROGRAMPIPELINEIV GetProgramPipelineiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERPRECISIONFORMAT)(GLenum, GLenum, GLint *, GLint *);
PFNGETSHADERPRECISIONFORMAT GetShaderPrecisionFormat = 0;
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBLDV)(GLuint, GLenum, GLdouble *);
PFNGETVERTEXATTRIBLDV GetVertexAttribLdv = 0;
typedef GLboolean (CODEGEN_FUNCPTR *PFNISPROGRAMPIPELINE)(GLuint);
PFNISPROGRAMPIPELINE IsProgramPipeline = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMBINARY)(GLuint, GLenum, const void *, GLsizei);
PFNPROGRAMBINARY ProgramBinary = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMPARAMETERI)(GLuint, GLenum, GLint);
PFNPROGRAMPARAMETERI ProgramParameteri = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1D)(GLuint, GLint, GLdouble);
PFNPROGRAMUNIFORM1D ProgramUniform1d = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1DV)(GLuint, GLint, GLsizei, const GLdouble *);
PFNPROGRAMUNIFORM1DV ProgramUniform1dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1F)(GLuint, GLint, GLfloat);
PFNPROGRAMUNIFORM1F ProgramUniform1f = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1FV)(GLuint, GLint, GLsizei, const GLfloat *);
PFNPROGRAMUNIFORM1FV ProgramUniform1fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1I)(GLuint, GLint, GLint);
PFNPROGRAMUNIFORM1I ProgramUniform1i = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1IV)(GLuint, GLint, GLsizei, const GLint *);
PFNPROGRAMUNIFORM1IV ProgramUniform1iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1UI)(GLuint, GLint, GLuint);
PFNPROGRAMUNIFORM1UI ProgramUniform1ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1UIV)(GLuint, GLint, GLsizei, const GLuint *);
PFNPROGRAMUNIFORM1UIV ProgramUniform1uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2D)(GLuint, GLint, GLdouble, GLdouble);
PFNPROGRAMUNIFORM2D ProgramUniform2d = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2DV)(GLuint, GLint, GLsizei, const GLdouble *);
PFNPROGRAMUNIFORM2DV ProgramUniform2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2F)(GLuint, GLint, GLfloat, GLfloat);
PFNPROGRAMUNIFORM2F ProgramUniform2f = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2FV)(GLuint, GLint, GLsizei, const GLfloat *);
PFNPROGRAMUNIFORM2FV ProgramUniform2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2I)(GLuint, GLint, GLint, GLint);
PFNPROGRAMUNIFORM2I ProgramUniform2i = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2IV)(GLuint, GLint, GLsizei, const GLint *);
PFNPROGRAMUNIFORM2IV ProgramUniform2iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2UI)(GLuint, GLint, GLuint, GLuint);
PFNPROGRAMUNIFORM2UI ProgramUniform2ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2UIV)(GLuint, GLint, GLsizei, const GLuint *);
PFNPROGRAMUNIFORM2UIV ProgramUniform2uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3D)(GLuint, GLint, GLdouble, GLdouble, GLdouble);
PFNPROGRAMUNIFORM3D ProgramUniform3d = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3DV)(GLuint, GLint, GLsizei, const GLdouble *);
PFNPROGRAMUNIFORM3DV ProgramUniform3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3F)(GLuint, GLint, GLfloat, GLfloat, GLfloat);
PFNPROGRAMUNIFORM3F ProgramUniform3f = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3FV)(GLuint, GLint, GLsizei, const GLfloat *);
PFNPROGRAMUNIFORM3FV ProgramUniform3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3I)(GLuint, GLint, GLint, GLint, GLint);
PFNPROGRAMUNIFORM3I ProgramUniform3i = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3IV)(GLuint, GLint, GLsizei, const GLint *);
PFNPROGRAMUNIFORM3IV ProgramUniform3iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3UI)(GLuint, GLint, GLuint, GLuint, GLuint);
PFNPROGRAMUNIFORM3UI ProgramUniform3ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3UIV)(GLuint, GLint, GLsizei, const GLuint *);
PFNPROGRAMUNIFORM3UIV ProgramUniform3uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4D)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble);
PFNPROGRAMUNIFORM4D ProgramUniform4d = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4DV)(GLuint, GLint, GLsizei, const GLdouble *);
PFNPROGRAMUNIFORM4DV ProgramUniform4dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4F)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
PFNPROGRAMUNIFORM4F ProgramUniform4f = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4FV)(GLuint, GLint, GLsizei, const GLfloat *);
PFNPROGRAMUNIFORM4FV ProgramUniform4fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4I)(GLuint, GLint, GLint, GLint, GLint, GLint);
PFNPROGRAMUNIFORM4I ProgramUniform4i = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4IV)(GLuint, GLint, GLsizei, const GLint *);
PFNPROGRAMUNIFORM4IV ProgramUniform4iv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4UI)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint);
PFNPROGRAMUNIFORM4UI ProgramUniform4ui = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4UIV)(GLuint, GLint, GLsizei, const GLuint *);
PFNPROGRAMUNIFORM4UIV ProgramUniform4uiv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2DV)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
PFNPROGRAMUNIFORMMATRIX2DV ProgramUniformMatrix2dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2FV)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
PFNPROGRAMUNIFORMMATRIX2FV ProgramUniformMatrix2fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X3DV)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
PFNPROGRAMUNIFORMMATRIX2X3DV ProgramUniformMatrix2x3dv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X3FV)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
PFNPROGRAMUNIFORMMATRIX2X3FV ProgramUniformMatrix2x3fv = 0;
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X4DV)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
PFNPROGRAMUNIFORMMATRIX2X4DV ProgramUniformMatrix2x4dv = 0;