-
Notifications
You must be signed in to change notification settings - Fork 1
/
opengl.cpp
1413 lines (1408 loc) · 121 KB
/
opengl.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
// Gives a definition to all the OpenGL functions
#include "opengl.h"
void (GLAPIENTRYP glCullFace)(GLenum mode);
void (GLAPIENTRYP glFrontFace)(GLenum mode);
void (GLAPIENTRYP glHint)(GLenum target, GLenum mode);
void (GLAPIENTRYP glLineWidth)(GLfloat width);
void (GLAPIENTRYP glPointSize)(GLfloat size);
void (GLAPIENTRYP glPolygonMode)(GLenum face, GLenum mode);
void (GLAPIENTRYP glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
void (GLAPIENTRYP glTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
void (GLAPIENTRYP glTexParameteri)(GLenum target, GLenum pname, GLint param);
void (GLAPIENTRYP glTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
void (GLAPIENTRYP glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glDrawBuffer)(GLenum buf);
void (GLAPIENTRYP glClear)(GLbitfield mask);
void (GLAPIENTRYP glClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void (GLAPIENTRYP glClearStencil)(GLint s);
void (GLAPIENTRYP glClearDepth)(GLdouble depth);
void (GLAPIENTRYP glStencilMask)(GLuint mask);
void (GLAPIENTRYP glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
void (GLAPIENTRYP glDepthMask)(GLboolean flag);
void (GLAPIENTRYP glDisable)(GLenum cap);
void (GLAPIENTRYP glEnable)(GLenum cap);
void (GLAPIENTRYP glFinish)(void);
void (GLAPIENTRYP glFlush)(void);
void (GLAPIENTRYP glBlendFunc)(GLenum sfactor, GLenum dfactor);
void (GLAPIENTRYP glLogicOp)(GLenum opcode);
void (GLAPIENTRYP glStencilFunc)(GLenum func, GLint ref, GLuint mask);
void (GLAPIENTRYP glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
void (GLAPIENTRYP glDepthFunc)(GLenum func);
void (GLAPIENTRYP glPixelStoref)(GLenum pname, GLfloat param);
void (GLAPIENTRYP glPixelStorei)(GLenum pname, GLint param);
void (GLAPIENTRYP glReadBuffer)(GLenum src);
void (GLAPIENTRYP glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
void (GLAPIENTRYP glGetBooleanv)(GLenum pname, GLboolean *data);
void (GLAPIENTRYP glGetDoublev)(GLenum pname, GLdouble *data);
GLenum(GLAPIENTRYP glGetError)(void);
void (GLAPIENTRYP glGetFloatv)(GLenum pname, GLfloat *data);
void (GLAPIENTRYP glGetIntegerv)(GLenum pname, GLint *data);
const GLubyte *(GLAPIENTRYP glGetString)(GLenum name);
void (GLAPIENTRYP glGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
void (GLAPIENTRYP glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
void (GLAPIENTRYP glGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
void (GLAPIENTRYP glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
GLboolean(GLAPIENTRYP glIsEnabled)(GLenum cap);
void (GLAPIENTRYP glDepthRange)(GLdouble near, GLdouble far);
void (GLAPIENTRYP glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glDrawArrays)(GLenum mode, GLint first, GLsizei count);
void (GLAPIENTRYP glDrawElements)(GLenum mode, GLsizei count, GLenum type, const void *indices);
void (GLAPIENTRYP glGetPointerv)(GLenum pname, void **params);
void (GLAPIENTRYP glPolygonOffset)(GLfloat factor, GLfloat units);
void (GLAPIENTRYP glCopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
void (GLAPIENTRYP glCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void (GLAPIENTRYP glCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void (GLAPIENTRYP glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glBindTexture)(GLenum target, GLuint texture);
void (GLAPIENTRYP glDeleteTextures)(GLsizei n, const GLuint *textures);
void (GLAPIENTRYP glGenTextures)(GLsizei n, GLuint *textures);
GLboolean(GLAPIENTRYP glIsTexture)(GLuint texture);
void (GLAPIENTRYP glDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
void (GLAPIENTRYP glTexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glActiveTexture)(GLenum texture);
void (GLAPIENTRYP glSampleCoverage)(GLfloat value, GLboolean invert);
void (GLAPIENTRYP glCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glGetCompressedTexImage)(GLenum target, GLint level, void *img);
void (GLAPIENTRYP glBlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
void (GLAPIENTRYP glMultiDrawArrays)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
void (GLAPIENTRYP glMultiDrawElements)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
void (GLAPIENTRYP glPointParameterf)(GLenum pname, GLfloat param);
void (GLAPIENTRYP glPointParameterfv)(GLenum pname, const GLfloat *params);
void (GLAPIENTRYP glPointParameteri)(GLenum pname, GLint param);
void (GLAPIENTRYP glPointParameteriv)(GLenum pname, const GLint *params);
void (GLAPIENTRYP glBlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void (GLAPIENTRYP glBlendEquation)(GLenum mode);
void (GLAPIENTRYP glGenQueries)(GLsizei n, GLuint *ids);
void (GLAPIENTRYP glDeleteQueries)(GLsizei n, const GLuint *ids);
GLboolean(GLAPIENTRYP glIsQuery)(GLuint id);
void (GLAPIENTRYP glBeginQuery)(GLenum target, GLuint id);
void (GLAPIENTRYP glEndQuery)(GLenum target);
void (GLAPIENTRYP glGetQueryiv)(GLenum target, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetQueryObjectiv)(GLuint id, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetQueryObjectuiv)(GLuint id, GLenum pname, GLuint *params);
void (GLAPIENTRYP glBindBuffer)(GLenum target, GLuint buffer);
void (GLAPIENTRYP glDeleteBuffers)(GLsizei n, const GLuint *buffers);
void (GLAPIENTRYP glGenBuffers)(GLsizei n, GLuint *buffers);
GLboolean(GLAPIENTRYP glIsBuffer)(GLuint buffer);
void (GLAPIENTRYP glBufferData)(GLenum target, GLsizeiptr size, const void *data, GLenum usage);
void (GLAPIENTRYP glBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
void (GLAPIENTRYP glGetBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, void *data);
void *(GLAPIENTRYP glMapBuffer)(GLenum target, GLenum access);
GLboolean(GLAPIENTRYP glUnmapBuffer)(GLenum target);
void (GLAPIENTRYP glGetBufferParameteriv)(GLenum target, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetBufferPointerv)(GLenum target, GLenum pname, void **params);
void (GLAPIENTRYP glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
void (GLAPIENTRYP glDrawBuffers)(GLsizei n, const GLenum *bufs);
void (GLAPIENTRYP glStencilOpSeparate)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
void (GLAPIENTRYP glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
void (GLAPIENTRYP glStencilMaskSeparate)(GLenum face, GLuint mask);
void (GLAPIENTRYP glAttachShader)(GLuint program, GLuint shader);
void (GLAPIENTRYP glBindAttribLocation)(GLuint program, GLuint index, const GLchar *name);
void (GLAPIENTRYP glCompileShader)(GLuint shader);
GLuint(GLAPIENTRYP glCreateProgram)(void);
GLuint(GLAPIENTRYP glCreateShader)(GLenum type);
void (GLAPIENTRYP glDeleteProgram)(GLuint program);
void (GLAPIENTRYP glDeleteShader)(GLuint shader);
void (GLAPIENTRYP glDetachShader)(GLuint program, GLuint shader);
void (GLAPIENTRYP glDisableVertexAttribArray)(GLuint index);
void (GLAPIENTRYP glEnableVertexAttribArray)(GLuint index);
void (GLAPIENTRYP glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
void (GLAPIENTRYP glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
void (GLAPIENTRYP glGetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
GLint(GLAPIENTRYP glGetAttribLocation)(GLuint program, const GLchar *name);
void (GLAPIENTRYP glGetProgramiv)(GLuint program, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
void (GLAPIENTRYP glGetShaderiv)(GLuint shader, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
void (GLAPIENTRYP glGetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
GLint(GLAPIENTRYP glGetUniformLocation)(GLuint program, const GLchar *name);
void (GLAPIENTRYP glGetUniformfv)(GLuint program, GLint location, GLfloat *params);
void (GLAPIENTRYP glGetUniformiv)(GLuint program, GLint location, GLint *params);
void (GLAPIENTRYP glGetVertexAttribdv)(GLuint index, GLenum pname, GLdouble *params);
void (GLAPIENTRYP glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat *params);
void (GLAPIENTRYP glGetVertexAttribiv)(GLuint index, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetVertexAttribPointerv)(GLuint index, GLenum pname, void **pointer);
GLboolean(GLAPIENTRYP glIsProgram)(GLuint program);
GLboolean(GLAPIENTRYP glIsShader)(GLuint shader);
void (GLAPIENTRYP glLinkProgram)(GLuint program);
void (GLAPIENTRYP glShaderSource)(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
void (GLAPIENTRYP glUseProgram)(GLuint program);
void (GLAPIENTRYP glUniform1f)(GLint location, GLfloat v0);
void (GLAPIENTRYP glUniform2f)(GLint location, GLfloat v0, GLfloat v1);
void (GLAPIENTRYP glUniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
void (GLAPIENTRYP glUniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
void (GLAPIENTRYP glUniform1i)(GLint location, GLint v0);
void (GLAPIENTRYP glUniform2i)(GLint location, GLint v0, GLint v1);
void (GLAPIENTRYP glUniform3i)(GLint location, GLint v0, GLint v1, GLint v2);
void (GLAPIENTRYP glUniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
void (GLAPIENTRYP glUniform1fv)(GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glUniform2fv)(GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glUniform3fv)(GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glUniform4fv)(GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glUniform1iv)(GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glUniform2iv)(GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glUniform3iv)(GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glUniform4iv)(GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glValidateProgram)(GLuint program);
void (GLAPIENTRYP glVertexAttrib1d)(GLuint index, GLdouble x);
void (GLAPIENTRYP glVertexAttrib1dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttrib1f)(GLuint index, GLfloat x);
void (GLAPIENTRYP glVertexAttrib1fv)(GLuint index, const GLfloat *v);
void (GLAPIENTRYP glVertexAttrib1s)(GLuint index, GLshort x);
void (GLAPIENTRYP glVertexAttrib1sv)(GLuint index, const GLshort *v);
void (GLAPIENTRYP glVertexAttrib2d)(GLuint index, GLdouble x, GLdouble y);
void (GLAPIENTRYP glVertexAttrib2dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttrib2f)(GLuint index, GLfloat x, GLfloat y);
void (GLAPIENTRYP glVertexAttrib2fv)(GLuint index, const GLfloat *v);
void (GLAPIENTRYP glVertexAttrib2s)(GLuint index, GLshort x, GLshort y);
void (GLAPIENTRYP glVertexAttrib2sv)(GLuint index, const GLshort *v);
void (GLAPIENTRYP glVertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
void (GLAPIENTRYP glVertexAttrib3dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttrib3f)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
void (GLAPIENTRYP glVertexAttrib3fv)(GLuint index, const GLfloat *v);
void (GLAPIENTRYP glVertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z);
void (GLAPIENTRYP glVertexAttrib3sv)(GLuint index, const GLshort *v);
void (GLAPIENTRYP glVertexAttrib4Nbv)(GLuint index, const GLbyte *v);
void (GLAPIENTRYP glVertexAttrib4Niv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glVertexAttrib4Nsv)(GLuint index, const GLshort *v);
void (GLAPIENTRYP glVertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
void (GLAPIENTRYP glVertexAttrib4Nubv)(GLuint index, const GLubyte *v);
void (GLAPIENTRYP glVertexAttrib4Nuiv)(GLuint index, const GLuint *v);
void (GLAPIENTRYP glVertexAttrib4Nusv)(GLuint index, const GLushort *v);
void (GLAPIENTRYP glVertexAttrib4bv)(GLuint index, const GLbyte *v);
void (GLAPIENTRYP glVertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void (GLAPIENTRYP glVertexAttrib4dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttrib4f)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void (GLAPIENTRYP glVertexAttrib4fv)(GLuint index, const GLfloat *v);
void (GLAPIENTRYP glVertexAttrib4iv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glVertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
void (GLAPIENTRYP glVertexAttrib4sv)(GLuint index, const GLshort *v);
void (GLAPIENTRYP glVertexAttrib4ubv)(GLuint index, const GLubyte *v);
void (GLAPIENTRYP glVertexAttrib4uiv)(GLuint index, const GLuint *v);
void (GLAPIENTRYP glVertexAttrib4usv)(GLuint index, const GLushort *v);
void (GLAPIENTRYP glVertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
void (GLAPIENTRYP glUniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glUniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glColorMaski)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
void (GLAPIENTRYP glGetBooleani_v)(GLenum target, GLuint index, GLboolean *data);
void (GLAPIENTRYP glGetIntegeri_v)(GLenum target, GLuint index, GLint *data);
void (GLAPIENTRYP glEnablei)(GLenum target, GLuint index);
void (GLAPIENTRYP glDisablei)(GLenum target, GLuint index);
GLboolean(GLAPIENTRYP glIsEnabledi)(GLenum target, GLuint index);
void (GLAPIENTRYP glBeginTransformFeedback)(GLenum primitiveMode);
void (GLAPIENTRYP glEndTransformFeedback)(void);
void (GLAPIENTRYP glBindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
void (GLAPIENTRYP glBindBufferBase)(GLenum target, GLuint index, GLuint buffer);
void (GLAPIENTRYP glTransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
void (GLAPIENTRYP glGetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
void (GLAPIENTRYP glClampColor)(GLenum target, GLenum clamp);
void (GLAPIENTRYP glBeginConditionalRender)(GLuint id, GLenum mode);
void (GLAPIENTRYP glEndConditionalRender)(void);
void (GLAPIENTRYP glVertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
void (GLAPIENTRYP glGetVertexAttribIiv)(GLuint index, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint *params);
void (GLAPIENTRYP glVertexAttribI1i)(GLuint index, GLint x);
void (GLAPIENTRYP glVertexAttribI2i)(GLuint index, GLint x, GLint y);
void (GLAPIENTRYP glVertexAttribI3i)(GLuint index, GLint x, GLint y, GLint z);
void (GLAPIENTRYP glVertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w);
void (GLAPIENTRYP glVertexAttribI1ui)(GLuint index, GLuint x);
void (GLAPIENTRYP glVertexAttribI2ui)(GLuint index, GLuint x, GLuint y);
void (GLAPIENTRYP glVertexAttribI3ui)(GLuint index, GLuint x, GLuint y, GLuint z);
void (GLAPIENTRYP glVertexAttribI4ui)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
void (GLAPIENTRYP glVertexAttribI1iv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glVertexAttribI2iv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glVertexAttribI3iv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glVertexAttribI4iv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glVertexAttribI1uiv)(GLuint index, const GLuint *v);
void (GLAPIENTRYP glVertexAttribI2uiv)(GLuint index, const GLuint *v);
void (GLAPIENTRYP glVertexAttribI3uiv)(GLuint index, const GLuint *v);
void (GLAPIENTRYP glVertexAttribI4uiv)(GLuint index, const GLuint *v);
void (GLAPIENTRYP glVertexAttribI4bv)(GLuint index, const GLbyte *v);
void (GLAPIENTRYP glVertexAttribI4sv)(GLuint index, const GLshort *v);
void (GLAPIENTRYP glVertexAttribI4ubv)(GLuint index, const GLubyte *v);
void (GLAPIENTRYP glVertexAttribI4usv)(GLuint index, const GLushort *v);
void (GLAPIENTRYP glGetUniformuiv)(GLuint program, GLint location, GLuint *params);
void (GLAPIENTRYP glBindFragDataLocation)(GLuint program, GLuint color, const GLchar *name);
GLint(GLAPIENTRYP glGetFragDataLocation)(GLuint program, const GLchar *name);
void (GLAPIENTRYP glUniform1ui)(GLint location, GLuint v0);
void (GLAPIENTRYP glUniform2ui)(GLint location, GLuint v0, GLuint v1);
void (GLAPIENTRYP glUniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2);
void (GLAPIENTRYP glUniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
void (GLAPIENTRYP glUniform1uiv)(GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glUniform2uiv)(GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glUniform3uiv)(GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glUniform4uiv)(GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glTexParameterIiv)(GLenum target, GLenum pname, const GLint *params);
void (GLAPIENTRYP glTexParameterIuiv)(GLenum target, GLenum pname, const GLuint *params);
void (GLAPIENTRYP glGetTexParameterIiv)(GLenum target, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetTexParameterIuiv)(GLenum target, GLenum pname, GLuint *params);
void (GLAPIENTRYP glClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint *value);
void (GLAPIENTRYP glClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint *value);
void (GLAPIENTRYP glClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat *value);
void (GLAPIENTRYP glClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
const GLubyte *(GLAPIENTRYP glGetStringi)(GLenum name, GLuint index);
GLboolean(GLAPIENTRYP glIsRenderbuffer)(GLuint renderbuffer);
void (GLAPIENTRYP glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
void (GLAPIENTRYP glDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers);
void (GLAPIENTRYP glGenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
void (GLAPIENTRYP glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
void (GLAPIENTRYP glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params);
GLboolean(GLAPIENTRYP glIsFramebuffer)(GLuint framebuffer);
void (GLAPIENTRYP glBindFramebuffer)(GLenum target, GLuint framebuffer);
void (GLAPIENTRYP glDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers);
void (GLAPIENTRYP glGenFramebuffers)(GLsizei n, GLuint *framebuffers);
GLenum(GLAPIENTRYP glCheckFramebufferStatus)(GLenum target);
void (GLAPIENTRYP glFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void (GLAPIENTRYP glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void (GLAPIENTRYP glFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
void (GLAPIENTRYP glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void (GLAPIENTRYP glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
void (GLAPIENTRYP glGenerateMipmap)(GLenum target);
void (GLAPIENTRYP glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
void (GLAPIENTRYP glRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
void (GLAPIENTRYP glFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
void *(GLAPIENTRYP glMapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
void (GLAPIENTRYP glFlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length);
void (GLAPIENTRYP glBindVertexArray)(GLuint array);
void (GLAPIENTRYP glDeleteVertexArrays)(GLsizei n, const GLuint *arrays);
void (GLAPIENTRYP glGenVertexArrays)(GLsizei n, GLuint *arrays);
GLboolean(GLAPIENTRYP glIsVertexArray)(GLuint array);
void (GLAPIENTRYP glDrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
void (GLAPIENTRYP glDrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
void (GLAPIENTRYP glTexBuffer)(GLenum target, GLenum internalformat, GLuint buffer);
void (GLAPIENTRYP glPrimitiveRestartIndex)(GLuint index);
void (GLAPIENTRYP glCopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void (GLAPIENTRYP glGetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
void (GLAPIENTRYP glGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
GLuint(GLAPIENTRYP glGetUniformBlockIndex)(GLuint program, const GLchar *uniformBlockName);
void (GLAPIENTRYP glGetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
void (GLAPIENTRYP glUniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
void (GLAPIENTRYP glDrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
void (GLAPIENTRYP glDrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
void (GLAPIENTRYP glDrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
void (GLAPIENTRYP glMultiDrawElementsBaseVertex)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
void (GLAPIENTRYP glProvokingVertex)(GLenum mode);
GLsync(GLAPIENTRYP glFenceSync)(GLenum condition, GLbitfield flags);
GLboolean(GLAPIENTRYP glIsSync)(GLsync sync);
void (GLAPIENTRYP glDeleteSync)(GLsync sync);
GLenum(GLAPIENTRYP glClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout);
void (GLAPIENTRYP glWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout);
void (GLAPIENTRYP glGetInteger64v)(GLenum pname, GLint64 *data);
void (GLAPIENTRYP glGetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
void (GLAPIENTRYP glGetInteger64i_v)(GLenum target, GLuint index, GLint64 *data);
void (GLAPIENTRYP glGetBufferParameteri64v)(GLenum target, GLenum pname, GLint64 *params);
void (GLAPIENTRYP glFramebufferTexture)(GLenum target, GLenum attachment, GLuint texture, GLint level);
void (GLAPIENTRYP glTexImage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void (GLAPIENTRYP glTexImage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void (GLAPIENTRYP glGetMultisamplefv)(GLenum pname, GLuint index, GLfloat *val);
void (GLAPIENTRYP glSampleMaski)(GLuint maskNumber, GLbitfield mask);
void (GLAPIENTRYP glBindFragDataLocationIndexed)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
GLint(GLAPIENTRYP glGetFragDataIndex)(GLuint program, const GLchar *name);
void (GLAPIENTRYP glGenSamplers)(GLsizei count, GLuint *samplers);
void (GLAPIENTRYP glDeleteSamplers)(GLsizei count, const GLuint *samplers);
GLboolean(GLAPIENTRYP glIsSampler)(GLuint sampler);
void (GLAPIENTRYP glBindSampler)(GLuint unit, GLuint sampler);
void (GLAPIENTRYP glSamplerParameteri)(GLuint sampler, GLenum pname, GLint param);
void (GLAPIENTRYP glSamplerParameteriv)(GLuint sampler, GLenum pname, const GLint *param);
void (GLAPIENTRYP glSamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param);
void (GLAPIENTRYP glSamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat *param);
void (GLAPIENTRYP glSamplerParameterIiv)(GLuint sampler, GLenum pname, const GLint *param);
void (GLAPIENTRYP glSamplerParameterIuiv)(GLuint sampler, GLenum pname, const GLuint *param);
void (GLAPIENTRYP glGetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetSamplerParameterIiv)(GLuint sampler, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat *params);
void (GLAPIENTRYP glGetSamplerParameterIuiv)(GLuint sampler, GLenum pname, GLuint *params);
void (GLAPIENTRYP glQueryCounter)(GLuint id, GLenum target);
void (GLAPIENTRYP glGetQueryObjecti64v)(GLuint id, GLenum pname, GLint64 *params);
void (GLAPIENTRYP glGetQueryObjectui64v)(GLuint id, GLenum pname, GLuint64 *params);
void (GLAPIENTRYP glVertexAttribDivisor)(GLuint index, GLuint divisor);
void (GLAPIENTRYP glVertexAttribP1ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void (GLAPIENTRYP glVertexAttribP1uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void (GLAPIENTRYP glVertexAttribP2ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void (GLAPIENTRYP glVertexAttribP2uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void (GLAPIENTRYP glVertexAttribP3ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void (GLAPIENTRYP glVertexAttribP3uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void (GLAPIENTRYP glVertexAttribP4ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void (GLAPIENTRYP glVertexAttribP4uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void (GLAPIENTRYP glMinSampleShading)(GLfloat value);
void (GLAPIENTRYP glBlendEquationi)(GLuint buf, GLenum mode);
void (GLAPIENTRYP glBlendEquationSeparatei)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
void (GLAPIENTRYP glBlendFunci)(GLuint buf, GLenum src, GLenum dst);
void (GLAPIENTRYP glBlendFuncSeparatei)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
void (GLAPIENTRYP glDrawArraysIndirect)(GLenum mode, const void *indirect);
void (GLAPIENTRYP glDrawElementsIndirect)(GLenum mode, GLenum type, const void *indirect);
void (GLAPIENTRYP glUniform1d)(GLint location, GLdouble x);
void (GLAPIENTRYP glUniform2d)(GLint location, GLdouble x, GLdouble y);
void (GLAPIENTRYP glUniform3d)(GLint location, GLdouble x, GLdouble y, GLdouble z);
void (GLAPIENTRYP glUniform4d)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void (GLAPIENTRYP glUniform1dv)(GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glUniform2dv)(GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glUniform3dv)(GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glUniform4dv)(GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix2x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix2x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix3x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix3x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix4x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glUniformMatrix4x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glGetUniformdv)(GLuint program, GLint location, GLdouble *params);
GLint(GLAPIENTRYP glGetSubroutineUniformLocation)(GLuint program, GLenum shadertype, const GLchar *name);
GLuint(GLAPIENTRYP glGetSubroutineIndex)(GLuint program, GLenum shadertype, const GLchar *name);
void (GLAPIENTRYP glGetActiveSubroutineUniformiv)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
void (GLAPIENTRYP glGetActiveSubroutineUniformName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
void (GLAPIENTRYP glGetActiveSubroutineName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
void (GLAPIENTRYP glUniformSubroutinesuiv)(GLenum shadertype, GLsizei count, const GLuint *indices);
void (GLAPIENTRYP glGetUniformSubroutineuiv)(GLenum shadertype, GLint location, GLuint *params);
void (GLAPIENTRYP glGetProgramStageiv)(GLuint program, GLenum shadertype, GLenum pname, GLint *values);
void (GLAPIENTRYP glPatchParameteri)(GLenum pname, GLint value);
void (GLAPIENTRYP glPatchParameterfv)(GLenum pname, const GLfloat *values);
void (GLAPIENTRYP glBindTransformFeedback)(GLenum target, GLuint id);
void (GLAPIENTRYP glDeleteTransformFeedbacks)(GLsizei n, const GLuint *ids);
void (GLAPIENTRYP glGenTransformFeedbacks)(GLsizei n, GLuint *ids);
GLboolean(GLAPIENTRYP glIsTransformFeedback)(GLuint id);
void (GLAPIENTRYP glPauseTransformFeedback)(void);
void (GLAPIENTRYP glResumeTransformFeedback)(void);
void (GLAPIENTRYP glDrawTransformFeedback)(GLenum mode, GLuint id);
void (GLAPIENTRYP glDrawTransformFeedbackStream)(GLenum mode, GLuint id, GLuint stream);
void (GLAPIENTRYP glBeginQueryIndexed)(GLenum target, GLuint index, GLuint id);
void (GLAPIENTRYP glEndQueryIndexed)(GLenum target, GLuint index);
void (GLAPIENTRYP glGetQueryIndexediv)(GLenum target, GLuint index, GLenum pname, GLint *params);
void (GLAPIENTRYP glReleaseShaderCompiler)(void);
void (GLAPIENTRYP glShaderBinary)(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
void (GLAPIENTRYP glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
void (GLAPIENTRYP glDepthRangef)(GLfloat n, GLfloat f);
void (GLAPIENTRYP glClearDepthf)(GLfloat d);
void (GLAPIENTRYP glGetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
void (GLAPIENTRYP glProgramBinary)(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
void (GLAPIENTRYP glProgramParameteri)(GLuint program, GLenum pname, GLint value);
void (GLAPIENTRYP glUseProgramStages)(GLuint pipeline, GLbitfield stages, GLuint program);
void (GLAPIENTRYP glActiveShaderProgram)(GLuint pipeline, GLuint program);
GLuint(GLAPIENTRYP glCreateShaderProgramv)(GLenum type, GLsizei count, const GLchar *const*strings);
void (GLAPIENTRYP glBindProgramPipeline)(GLuint pipeline);
void (GLAPIENTRYP glDeleteProgramPipelines)(GLsizei n, const GLuint *pipelines);
void (GLAPIENTRYP glGenProgramPipelines)(GLsizei n, GLuint *pipelines);
GLboolean(GLAPIENTRYP glIsProgramPipeline)(GLuint pipeline);
void (GLAPIENTRYP glGetProgramPipelineiv)(GLuint pipeline, GLenum pname, GLint *params);
void (GLAPIENTRYP glProgramUniform1i)(GLuint program, GLint location, GLint v0);
void (GLAPIENTRYP glProgramUniform1iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glProgramUniform1f)(GLuint program, GLint location, GLfloat v0);
void (GLAPIENTRYP glProgramUniform1fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glProgramUniform1d)(GLuint program, GLint location, GLdouble v0);
void (GLAPIENTRYP glProgramUniform1dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glProgramUniform1ui)(GLuint program, GLint location, GLuint v0);
void (GLAPIENTRYP glProgramUniform1uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glProgramUniform2i)(GLuint program, GLint location, GLint v0, GLint v1);
void (GLAPIENTRYP glProgramUniform2iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glProgramUniform2f)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
void (GLAPIENTRYP glProgramUniform2fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glProgramUniform2d)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
void (GLAPIENTRYP glProgramUniform2dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glProgramUniform2ui)(GLuint program, GLint location, GLuint v0, GLuint v1);
void (GLAPIENTRYP glProgramUniform2uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glProgramUniform3i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
void (GLAPIENTRYP glProgramUniform3iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glProgramUniform3f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
void (GLAPIENTRYP glProgramUniform3fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glProgramUniform3d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
void (GLAPIENTRYP glProgramUniform3dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glProgramUniform3ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
void (GLAPIENTRYP glProgramUniform3uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glProgramUniform4i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
void (GLAPIENTRYP glProgramUniform4iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
void (GLAPIENTRYP glProgramUniform4f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
void (GLAPIENTRYP glProgramUniform4fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void (GLAPIENTRYP glProgramUniform4d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
void (GLAPIENTRYP glProgramUniform4dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void (GLAPIENTRYP glProgramUniform4ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
void (GLAPIENTRYP glProgramUniform4uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
void (GLAPIENTRYP glProgramUniformMatrix2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix2x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix3x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix2x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix4x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix3x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix4x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void (GLAPIENTRYP glProgramUniformMatrix2x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix3x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix2x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix4x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix3x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glProgramUniformMatrix4x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void (GLAPIENTRYP glValidateProgramPipeline)(GLuint pipeline);
void (GLAPIENTRYP glGetProgramPipelineInfoLog)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
void (GLAPIENTRYP glVertexAttribL1d)(GLuint index, GLdouble x);
void (GLAPIENTRYP glVertexAttribL2d)(GLuint index, GLdouble x, GLdouble y);
void (GLAPIENTRYP glVertexAttribL3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
void (GLAPIENTRYP glVertexAttribL4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void (GLAPIENTRYP glVertexAttribL1dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttribL2dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttribL3dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttribL4dv)(GLuint index, const GLdouble *v);
void (GLAPIENTRYP glVertexAttribLPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
void (GLAPIENTRYP glGetVertexAttribLdv)(GLuint index, GLenum pname, GLdouble *params);
void (GLAPIENTRYP glViewportArrayv)(GLuint first, GLsizei count, const GLfloat *v);
void (GLAPIENTRYP glViewportIndexedf)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
void (GLAPIENTRYP glViewportIndexedfv)(GLuint index, const GLfloat *v);
void (GLAPIENTRYP glScissorArrayv)(GLuint first, GLsizei count, const GLint *v);
void (GLAPIENTRYP glScissorIndexed)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
void (GLAPIENTRYP glScissorIndexedv)(GLuint index, const GLint *v);
void (GLAPIENTRYP glDepthRangeArrayv)(GLuint first, GLsizei count, const GLdouble *v);
void (GLAPIENTRYP glDepthRangeIndexed)(GLuint index, GLdouble n, GLdouble f);
void (GLAPIENTRYP glGetFloati_v)(GLenum target, GLuint index, GLfloat *data);
void (GLAPIENTRYP glGetDoublei_v)(GLenum target, GLuint index, GLdouble *data);
void (GLAPIENTRYP glDrawArraysInstancedBaseInstance)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
void (GLAPIENTRYP glDrawElementsInstancedBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
void (GLAPIENTRYP glDrawElementsInstancedBaseVertexBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
void (GLAPIENTRYP glGetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
void (GLAPIENTRYP glGetActiveAtomicCounterBufferiv)(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
void (GLAPIENTRYP glBindImageTexture)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
void (GLAPIENTRYP glMemoryBarrier)(GLbitfield barriers);
void (GLAPIENTRYP glTexStorage1D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
void (GLAPIENTRYP glTexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
void (GLAPIENTRYP glTexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void (GLAPIENTRYP glDrawTransformFeedbackInstanced)(GLenum mode, GLuint id, GLsizei instancecount);
void (GLAPIENTRYP glDrawTransformFeedbackStreamInstanced)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
void (GLAPIENTRYP glClearBufferData)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
void (GLAPIENTRYP glClearBufferSubData)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void (GLAPIENTRYP glDispatchCompute)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
void (GLAPIENTRYP glDispatchComputeIndirect)(GLintptr indirect);
void (GLAPIENTRYP glCopyImageSubData)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
void (GLAPIENTRYP glFramebufferParameteri)(GLenum target, GLenum pname, GLint param);
void (GLAPIENTRYP glGetFramebufferParameteriv)(GLenum target, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetInternalformati64v)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
void (GLAPIENTRYP glInvalidateTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
void (GLAPIENTRYP glInvalidateTexImage)(GLuint texture, GLint level);
void (GLAPIENTRYP glInvalidateBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr length);
void (GLAPIENTRYP glInvalidateBufferData)(GLuint buffer);
void (GLAPIENTRYP glInvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum *attachments);
void (GLAPIENTRYP glInvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glMultiDrawArraysIndirect)(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
void (GLAPIENTRYP glMultiDrawElementsIndirect)(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
void (GLAPIENTRYP glGetProgramInterfaceiv)(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
GLuint(GLAPIENTRYP glGetProgramResourceIndex)(GLuint program, GLenum programInterface, const GLchar *name);
void (GLAPIENTRYP glGetProgramResourceName)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
void (GLAPIENTRYP glGetProgramResourceiv)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
GLint(GLAPIENTRYP glGetProgramResourceLocation)(GLuint program, GLenum programInterface, const GLchar *name);
GLint(GLAPIENTRYP glGetProgramResourceLocationIndex)(GLuint program, GLenum programInterface, const GLchar *name);
void (GLAPIENTRYP glShaderStorageBlockBinding)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
void (GLAPIENTRYP glTexBufferRange)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
void (GLAPIENTRYP glTexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void (GLAPIENTRYP glTexStorage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void (GLAPIENTRYP glTextureView)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
void (GLAPIENTRYP glBindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
void (GLAPIENTRYP glVertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void (GLAPIENTRYP glVertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void (GLAPIENTRYP glVertexAttribLFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void (GLAPIENTRYP glVertexAttribBinding)(GLuint attribindex, GLuint bindingindex);
void (GLAPIENTRYP glVertexBindingDivisor)(GLuint bindingindex, GLuint divisor);
void (GLAPIENTRYP glDebugMessageControl)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
void (GLAPIENTRYP glDebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
void (GLAPIENTRYP glDebugMessageCallback)(GLDEBUGPROC callback, const void *userParam);
GLuint(GLAPIENTRYP glGetDebugMessageLog)(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
void (GLAPIENTRYP glPushDebugGroup)(GLenum source, GLuint id, GLsizei length, const GLchar *message);
void (GLAPIENTRYP glPopDebugGroup)(void);
void (GLAPIENTRYP glObjectLabel)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
void (GLAPIENTRYP glGetObjectLabel)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
void (GLAPIENTRYP glObjectPtrLabel)(const void *ptr, GLsizei length, const GLchar *label);
void (GLAPIENTRYP glGetObjectPtrLabel)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
void (GLAPIENTRYP glBufferStorage)(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
void (GLAPIENTRYP glClearTexImage)(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
void (GLAPIENTRYP glClearTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
void (GLAPIENTRYP glBindBuffersBase)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
void (GLAPIENTRYP glBindBuffersRange)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
void (GLAPIENTRYP glBindTextures)(GLuint first, GLsizei count, const GLuint *textures);
void (GLAPIENTRYP glBindSamplers)(GLuint first, GLsizei count, const GLuint *samplers);
void (GLAPIENTRYP glBindImageTextures)(GLuint first, GLsizei count, const GLuint *textures);
void (GLAPIENTRYP glBindVertexBuffers)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
void (GLAPIENTRYP glClipControl)(GLenum origin, GLenum depth);
void (GLAPIENTRYP glCreateTransformFeedbacks)(GLsizei n, GLuint *ids);
void (GLAPIENTRYP glTransformFeedbackBufferBase)(GLuint xfb, GLuint index, GLuint buffer);
void (GLAPIENTRYP glTransformFeedbackBufferRange)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
void (GLAPIENTRYP glGetTransformFeedbackiv)(GLuint xfb, GLenum pname, GLint *param);
void (GLAPIENTRYP glGetTransformFeedbacki_v)(GLuint xfb, GLenum pname, GLuint index, GLint *param);
void (GLAPIENTRYP glGetTransformFeedbacki64_v)(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
void (GLAPIENTRYP glCreateBuffers)(GLsizei n, GLuint *buffers);
void (GLAPIENTRYP glNamedBufferStorage)(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
void (GLAPIENTRYP glNamedBufferData)(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
void (GLAPIENTRYP glNamedBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
void (GLAPIENTRYP glCopyNamedBufferSubData)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void (GLAPIENTRYP glClearNamedBufferData)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
void (GLAPIENTRYP glClearNamedBufferSubData)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void *(GLAPIENTRYP glMapNamedBuffer)(GLuint buffer, GLenum access);
void *(GLAPIENTRYP glMapNamedBufferRange)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
GLboolean(GLAPIENTRYP glUnmapNamedBuffer)(GLuint buffer);
void (GLAPIENTRYP glFlushMappedNamedBufferRange)(GLuint buffer, GLintptr offset, GLsizeiptr length);
void (GLAPIENTRYP glGetNamedBufferParameteriv)(GLuint buffer, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetNamedBufferParameteri64v)(GLuint buffer, GLenum pname, GLint64 *params);
void (GLAPIENTRYP glGetNamedBufferPointerv)(GLuint buffer, GLenum pname, void **params);
void (GLAPIENTRYP glGetNamedBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
void (GLAPIENTRYP glCreateFramebuffers)(GLsizei n, GLuint *framebuffers);
void (GLAPIENTRYP glNamedFramebufferRenderbuffer)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void (GLAPIENTRYP glNamedFramebufferParameteri)(GLuint framebuffer, GLenum pname, GLint param);
void (GLAPIENTRYP glNamedFramebufferTexture)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
void (GLAPIENTRYP glNamedFramebufferTextureLayer)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
void (GLAPIENTRYP glNamedFramebufferDrawBuffer)(GLuint framebuffer, GLenum buf);
void (GLAPIENTRYP glNamedFramebufferDrawBuffers)(GLuint framebuffer, GLsizei n, const GLenum *bufs);
void (GLAPIENTRYP glNamedFramebufferReadBuffer)(GLuint framebuffer, GLenum src);
void (GLAPIENTRYP glInvalidateNamedFramebufferData)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
void (GLAPIENTRYP glInvalidateNamedFramebufferSubData)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glClearNamedFramebufferiv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
void (GLAPIENTRYP glClearNamedFramebufferuiv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
void (GLAPIENTRYP glClearNamedFramebufferfv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
void (GLAPIENTRYP glClearNamedFramebufferfi)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
void (GLAPIENTRYP glBlitNamedFramebuffer)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
GLenum(GLAPIENTRYP glCheckNamedFramebufferStatus)(GLuint framebuffer, GLenum target);
void (GLAPIENTRYP glGetNamedFramebufferParameteriv)(GLuint framebuffer, GLenum pname, GLint *param);
void (GLAPIENTRYP glGetNamedFramebufferAttachmentParameteriv)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
void (GLAPIENTRYP glCreateRenderbuffers)(GLsizei n, GLuint *renderbuffers);
void (GLAPIENTRYP glNamedRenderbufferStorage)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
void (GLAPIENTRYP glNamedRenderbufferStorageMultisample)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
void (GLAPIENTRYP glGetNamedRenderbufferParameteriv)(GLuint renderbuffer, GLenum pname, GLint *params);
void (GLAPIENTRYP glCreateTextures)(GLenum target, GLsizei n, GLuint *textures);
void (GLAPIENTRYP glTextureBuffer)(GLuint texture, GLenum internalformat, GLuint buffer);
void (GLAPIENTRYP glTextureBufferRange)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
void (GLAPIENTRYP glTextureStorage1D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
void (GLAPIENTRYP glTextureStorage2D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
void (GLAPIENTRYP glTextureStorage3D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void (GLAPIENTRYP glTextureStorage2DMultisample)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void (GLAPIENTRYP glTextureStorage3DMultisample)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void (GLAPIENTRYP glTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
void (GLAPIENTRYP glCompressedTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCompressedTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
void (GLAPIENTRYP glCopyTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void (GLAPIENTRYP glCopyTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glCopyTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void (GLAPIENTRYP glTextureParameterf)(GLuint texture, GLenum pname, GLfloat param);
void (GLAPIENTRYP glTextureParameterfv)(GLuint texture, GLenum pname, const GLfloat *param);
void (GLAPIENTRYP glTextureParameteri)(GLuint texture, GLenum pname, GLint param);
void (GLAPIENTRYP glTextureParameterIiv)(GLuint texture, GLenum pname, const GLint *params);
void (GLAPIENTRYP glTextureParameterIuiv)(GLuint texture, GLenum pname, const GLuint *params);
void (GLAPIENTRYP glTextureParameteriv)(GLuint texture, GLenum pname, const GLint *param);
void (GLAPIENTRYP glGenerateTextureMipmap)(GLuint texture);
void (GLAPIENTRYP glBindTextureUnit)(GLuint unit, GLuint texture);
void (GLAPIENTRYP glGetTextureImage)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
void (GLAPIENTRYP glGetCompressedTextureImage)(GLuint texture, GLint level, GLsizei bufSize, void *pixels);
void (GLAPIENTRYP glGetTextureLevelParameterfv)(GLuint texture, GLint level, GLenum pname, GLfloat *params);
void (GLAPIENTRYP glGetTextureLevelParameteriv)(GLuint texture, GLint level, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetTextureParameterfv)(GLuint texture, GLenum pname, GLfloat *params);
void (GLAPIENTRYP glGetTextureParameterIiv)(GLuint texture, GLenum pname, GLint *params);
void (GLAPIENTRYP glGetTextureParameterIuiv)(GLuint texture, GLenum pname, GLuint *params);
void (GLAPIENTRYP glGetTextureParameteriv)(GLuint texture, GLenum pname, GLint *params);
void (GLAPIENTRYP glCreateVertexArrays)(GLsizei n, GLuint *arrays);
void (GLAPIENTRYP glDisableVertexArrayAttrib)(GLuint vaobj, GLuint index);
void (GLAPIENTRYP glEnableVertexArrayAttrib)(GLuint vaobj, GLuint index);
void (GLAPIENTRYP glVertexArrayElementBuffer)(GLuint vaobj, GLuint buffer);
void (GLAPIENTRYP glVertexArrayVertexBuffer)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
void (GLAPIENTRYP glVertexArrayVertexBuffers)(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
void (GLAPIENTRYP glVertexArrayAttribBinding)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
void (GLAPIENTRYP glVertexArrayAttribFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void (GLAPIENTRYP glVertexArrayAttribIFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void (GLAPIENTRYP glVertexArrayAttribLFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void (GLAPIENTRYP glVertexArrayBindingDivisor)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
void (GLAPIENTRYP glGetVertexArrayiv)(GLuint vaobj, GLenum pname, GLint *param);
void (GLAPIENTRYP glGetVertexArrayIndexediv)(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
void (GLAPIENTRYP glGetVertexArrayIndexed64iv)(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
void (GLAPIENTRYP glCreateSamplers)(GLsizei n, GLuint *samplers);
void (GLAPIENTRYP glCreateProgramPipelines)(GLsizei n, GLuint *pipelines);
void (GLAPIENTRYP glCreateQueries)(GLenum target, GLsizei n, GLuint *ids);
void (GLAPIENTRYP glGetQueryBufferObjecti64v)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void (GLAPIENTRYP glGetQueryBufferObjectiv)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void (GLAPIENTRYP glGetQueryBufferObjectui64v)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void (GLAPIENTRYP glGetQueryBufferObjectuiv)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void (GLAPIENTRYP glMemoryBarrierByRegion)(GLbitfield barriers);
void (GLAPIENTRYP glGetTextureSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
void (GLAPIENTRYP glGetCompressedTextureSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
GLenum(GLAPIENTRYP glGetGraphicsResetStatus)(void);
void (GLAPIENTRYP glGetnCompressedTexImage)(GLenum target, GLint lod, GLsizei bufSize, void *pixels);
void (GLAPIENTRYP glGetnTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
void (GLAPIENTRYP glGetnUniformdv)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
void (GLAPIENTRYP glGetnUniformfv)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
void (GLAPIENTRYP glGetnUniformiv)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
void (GLAPIENTRYP glGetnUniformuiv)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
void (GLAPIENTRYP glReadnPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
void (GLAPIENTRYP glTextureBarrier)(void);
GLuint64(GLAPIENTRYP glGetTextureHandleARB)(GLuint texture);
GLuint64(GLAPIENTRYP glGetTextureSamplerHandleARB)(GLuint texture, GLuint sampler);
void (GLAPIENTRYP glMakeTextureHandleResidentARB)(GLuint64 handle);
void (GLAPIENTRYP glMakeTextureHandleNonResidentARB)(GLuint64 handle);
GLuint64(GLAPIENTRYP glGetImageHandleARB)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
void (GLAPIENTRYP glMakeImageHandleResidentARB)(GLuint64 handle, GLenum access);
void (GLAPIENTRYP glMakeImageHandleNonResidentARB)(GLuint64 handle);
void (GLAPIENTRYP glUniformHandleui64ARB)(GLint location, GLuint64 value);
void (GLAPIENTRYP glUniformHandleui64vARB)(GLint location, GLsizei count, const GLuint64 *value);
void (GLAPIENTRYP glProgramUniformHandleui64ARB)(GLuint program, GLint location, GLuint64 value);
void (GLAPIENTRYP glProgramUniformHandleui64vARB)(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
GLboolean(GLAPIENTRYP glIsTextureHandleResidentARB)(GLuint64 handle);
GLboolean(GLAPIENTRYP glIsImageHandleResidentARB)(GLuint64 handle);
void (GLAPIENTRYP glVertexAttribL1ui64ARB)(GLuint index, GLuint64EXT x);
void (GLAPIENTRYP glVertexAttribL1ui64vARB)(GLuint index, const GLuint64EXT *v);
void (GLAPIENTRYP glGetVertexAttribLui64vARB)(GLuint index, GLenum pname, GLuint64EXT *params);
GLsync(GLAPIENTRYP glCreateSyncFromCLeventARB)(struct _cl_context *context, struct _cl_event *event, GLbitfield flags);
void (GLAPIENTRYP glDispatchComputeGroupSizeARB)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
void (GLAPIENTRYP glDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
void (GLAPIENTRYP glDebugMessageInsertARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
void (GLAPIENTRYP glDebugMessageCallbackARB)(GLDEBUGPROCARB callback, const void *userParam);
GLuint(GLAPIENTRYP glGetDebugMessageLogARB)(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
void (GLAPIENTRYP glBlendEquationiARB)(GLuint buf, GLenum mode);
void (GLAPIENTRYP glBlendEquationSeparateiARB)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
void (GLAPIENTRYP glBlendFunciARB)(GLuint buf, GLenum src, GLenum dst);
void (GLAPIENTRYP glBlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
void (GLAPIENTRYP glMultiDrawArraysIndirectCountARB)(GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
void (GLAPIENTRYP glMultiDrawElementsIndirectCountARB)(GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
GLenum(GLAPIENTRYP glGetGraphicsResetStatusARB)(void);
void (GLAPIENTRYP glGetnTexImageARB)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img);
void (GLAPIENTRYP glReadnPixelsARB)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
void (GLAPIENTRYP glGetnCompressedTexImageARB)(GLenum target, GLint lod, GLsizei bufSize, void *img);
void (GLAPIENTRYP glGetnUniformfvARB)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
void (GLAPIENTRYP glGetnUniformivARB)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
void (GLAPIENTRYP glGetnUniformuivARB)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
void (GLAPIENTRYP glGetnUniformdvARB)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
void (GLAPIENTRYP glMinSampleShadingARB)(GLfloat value);
void (GLAPIENTRYP glNamedStringARB)(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
void (GLAPIENTRYP glDeleteNamedStringARB)(GLint namelen, const GLchar *name);
void (GLAPIENTRYP glCompileShaderIncludeARB)(GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length);
GLboolean(GLAPIENTRYP glIsNamedStringARB)(GLint namelen, const GLchar *name);
void (GLAPIENTRYP glGetNamedStringARB)(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
void (GLAPIENTRYP glGetNamedStringivARB)(GLint namelen, const GLchar *name, GLenum pname, GLint *params);
void (GLAPIENTRYP glBufferPageCommitmentARB)(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
void (GLAPIENTRYP glNamedBufferPageCommitmentEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
void (GLAPIENTRYP glNamedBufferPageCommitmentARB)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
void (GLAPIENTRYP glTexPageCommitmentARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
#include <SDL.h>
// C++ doesn't like implicit function pointer casts, so here's a workaround.
#define PROC_CAST *(void**)&
void OpenGL_Init()
{
PROC_CAST glCullFace = SDL_GL_GetProcAddress("glCullFace");
PROC_CAST glFrontFace = SDL_GL_GetProcAddress("glFrontFace");
PROC_CAST glHint = SDL_GL_GetProcAddress("glHint");
PROC_CAST glLineWidth = SDL_GL_GetProcAddress("glLineWidth");
PROC_CAST glPointSize = SDL_GL_GetProcAddress("glPointSize");
PROC_CAST glPolygonMode = SDL_GL_GetProcAddress("glPolygonMode");
PROC_CAST glScissor = SDL_GL_GetProcAddress("glScissor");
PROC_CAST glTexParameterf = SDL_GL_GetProcAddress("glTexParameterf");
PROC_CAST glTexParameterfv = SDL_GL_GetProcAddress("glTexParameterfv");
PROC_CAST glTexParameteri = SDL_GL_GetProcAddress("glTexParameteri");
PROC_CAST glTexParameteriv = SDL_GL_GetProcAddress("glTexParameteriv");
PROC_CAST glTexImage1D = SDL_GL_GetProcAddress("glTexImage1D");
PROC_CAST glTexImage2D = SDL_GL_GetProcAddress("glTexImage2D");
PROC_CAST glDrawBuffer = SDL_GL_GetProcAddress("glDrawBuffer");
PROC_CAST glClear = SDL_GL_GetProcAddress("glClear");
PROC_CAST glClearColor = SDL_GL_GetProcAddress("glClearColor");
PROC_CAST glClearStencil = SDL_GL_GetProcAddress("glClearStencil");
PROC_CAST glClearDepth = SDL_GL_GetProcAddress("glClearDepth");
PROC_CAST glStencilMask = SDL_GL_GetProcAddress("glStencilMask");
PROC_CAST glColorMask = SDL_GL_GetProcAddress("glColorMask");
PROC_CAST glDepthMask = SDL_GL_GetProcAddress("glDepthMask");
PROC_CAST glDisable = SDL_GL_GetProcAddress("glDisable");
PROC_CAST glEnable = SDL_GL_GetProcAddress("glEnable");
PROC_CAST glFinish = SDL_GL_GetProcAddress("glFinish");
PROC_CAST glFlush = SDL_GL_GetProcAddress("glFlush");
PROC_CAST glBlendFunc = SDL_GL_GetProcAddress("glBlendFunc");
PROC_CAST glLogicOp = SDL_GL_GetProcAddress("glLogicOp");
PROC_CAST glStencilFunc = SDL_GL_GetProcAddress("glStencilFunc");
PROC_CAST glStencilOp = SDL_GL_GetProcAddress("glStencilOp");
PROC_CAST glDepthFunc = SDL_GL_GetProcAddress("glDepthFunc");
PROC_CAST glPixelStoref = SDL_GL_GetProcAddress("glPixelStoref");
PROC_CAST glPixelStorei = SDL_GL_GetProcAddress("glPixelStorei");
PROC_CAST glReadBuffer = SDL_GL_GetProcAddress("glReadBuffer");
PROC_CAST glReadPixels = SDL_GL_GetProcAddress("glReadPixels");
PROC_CAST glGetBooleanv = SDL_GL_GetProcAddress("glGetBooleanv");
PROC_CAST glGetDoublev = SDL_GL_GetProcAddress("glGetDoublev");
PROC_CAST glGetError = SDL_GL_GetProcAddress("glGetError");
PROC_CAST glGetFloatv = SDL_GL_GetProcAddress("glGetFloatv");
PROC_CAST glGetIntegerv = SDL_GL_GetProcAddress("glGetIntegerv");
PROC_CAST glGetString = SDL_GL_GetProcAddress("glGetString");
PROC_CAST glGetTexImage = SDL_GL_GetProcAddress("glGetTexImage");
PROC_CAST glGetTexParameterfv = SDL_GL_GetProcAddress("glGetTexParameterfv");
PROC_CAST glGetTexParameteriv = SDL_GL_GetProcAddress("glGetTexParameteriv");
PROC_CAST glGetTexLevelParameterfv = SDL_GL_GetProcAddress("glGetTexLevelParameterfv");
PROC_CAST glGetTexLevelParameteriv = SDL_GL_GetProcAddress("glGetTexLevelParameteriv");
PROC_CAST glIsEnabled = SDL_GL_GetProcAddress("glIsEnabled");
PROC_CAST glDepthRange = SDL_GL_GetProcAddress("glDepthRange");
PROC_CAST glViewport = SDL_GL_GetProcAddress("glViewport");
PROC_CAST glDrawArrays = SDL_GL_GetProcAddress("glDrawArrays");
PROC_CAST glDrawElements = SDL_GL_GetProcAddress("glDrawElements");
PROC_CAST glGetPointerv = SDL_GL_GetProcAddress("glGetPointerv");
PROC_CAST glPolygonOffset = SDL_GL_GetProcAddress("glPolygonOffset");
PROC_CAST glCopyTexImage1D = SDL_GL_GetProcAddress("glCopyTexImage1D");
PROC_CAST glCopyTexImage2D = SDL_GL_GetProcAddress("glCopyTexImage2D");
PROC_CAST glCopyTexSubImage1D = SDL_GL_GetProcAddress("glCopyTexSubImage1D");
PROC_CAST glCopyTexSubImage2D = SDL_GL_GetProcAddress("glCopyTexSubImage2D");
PROC_CAST glTexSubImage1D = SDL_GL_GetProcAddress("glTexSubImage1D");
PROC_CAST glTexSubImage2D = SDL_GL_GetProcAddress("glTexSubImage2D");
PROC_CAST glBindTexture = SDL_GL_GetProcAddress("glBindTexture");
PROC_CAST glDeleteTextures = SDL_GL_GetProcAddress("glDeleteTextures");
PROC_CAST glGenTextures = SDL_GL_GetProcAddress("glGenTextures");
PROC_CAST glIsTexture = SDL_GL_GetProcAddress("glIsTexture");
PROC_CAST glDrawRangeElements = SDL_GL_GetProcAddress("glDrawRangeElements");
PROC_CAST glTexImage3D = SDL_GL_GetProcAddress("glTexImage3D");
PROC_CAST glTexSubImage3D = SDL_GL_GetProcAddress("glTexSubImage3D");
PROC_CAST glCopyTexSubImage3D = SDL_GL_GetProcAddress("glCopyTexSubImage3D");
PROC_CAST glActiveTexture = SDL_GL_GetProcAddress("glActiveTexture");
PROC_CAST glSampleCoverage = SDL_GL_GetProcAddress("glSampleCoverage");
PROC_CAST glCompressedTexImage3D = SDL_GL_GetProcAddress("glCompressedTexImage3D");
PROC_CAST glCompressedTexImage2D = SDL_GL_GetProcAddress("glCompressedTexImage2D");
PROC_CAST glCompressedTexImage1D = SDL_GL_GetProcAddress("glCompressedTexImage1D");
PROC_CAST glCompressedTexSubImage3D = SDL_GL_GetProcAddress("glCompressedTexSubImage3D");
PROC_CAST glCompressedTexSubImage2D = SDL_GL_GetProcAddress("glCompressedTexSubImage2D");
PROC_CAST glCompressedTexSubImage1D = SDL_GL_GetProcAddress("glCompressedTexSubImage1D");
PROC_CAST glGetCompressedTexImage = SDL_GL_GetProcAddress("glGetCompressedTexImage");
PROC_CAST glBlendFuncSeparate = SDL_GL_GetProcAddress("glBlendFuncSeparate");
PROC_CAST glMultiDrawArrays = SDL_GL_GetProcAddress("glMultiDrawArrays");
PROC_CAST glMultiDrawElements = SDL_GL_GetProcAddress("glMultiDrawElements");
PROC_CAST glPointParameterf = SDL_GL_GetProcAddress("glPointParameterf");
PROC_CAST glPointParameterfv = SDL_GL_GetProcAddress("glPointParameterfv");
PROC_CAST glPointParameteri = SDL_GL_GetProcAddress("glPointParameteri");
PROC_CAST glPointParameteriv = SDL_GL_GetProcAddress("glPointParameteriv");
PROC_CAST glBlendColor = SDL_GL_GetProcAddress("glBlendColor");
PROC_CAST glBlendEquation = SDL_GL_GetProcAddress("glBlendEquation");
PROC_CAST glGenQueries = SDL_GL_GetProcAddress("glGenQueries");
PROC_CAST glDeleteQueries = SDL_GL_GetProcAddress("glDeleteQueries");
PROC_CAST glIsQuery = SDL_GL_GetProcAddress("glIsQuery");
PROC_CAST glBeginQuery = SDL_GL_GetProcAddress("glBeginQuery");
PROC_CAST glEndQuery = SDL_GL_GetProcAddress("glEndQuery");
PROC_CAST glGetQueryiv = SDL_GL_GetProcAddress("glGetQueryiv");
PROC_CAST glGetQueryObjectiv = SDL_GL_GetProcAddress("glGetQueryObjectiv");
PROC_CAST glGetQueryObjectuiv = SDL_GL_GetProcAddress("glGetQueryObjectuiv");
PROC_CAST glBindBuffer = SDL_GL_GetProcAddress("glBindBuffer");
PROC_CAST glDeleteBuffers = SDL_GL_GetProcAddress("glDeleteBuffers");
PROC_CAST glGenBuffers = SDL_GL_GetProcAddress("glGenBuffers");
PROC_CAST glIsBuffer = SDL_GL_GetProcAddress("glIsBuffer");
PROC_CAST glBufferData = SDL_GL_GetProcAddress("glBufferData");
PROC_CAST glBufferSubData = SDL_GL_GetProcAddress("glBufferSubData");
PROC_CAST glGetBufferSubData = SDL_GL_GetProcAddress("glGetBufferSubData");
PROC_CAST glMapBuffer = SDL_GL_GetProcAddress("glMapBuffer");
PROC_CAST glUnmapBuffer = SDL_GL_GetProcAddress("glUnmapBuffer");
PROC_CAST glGetBufferParameteriv = SDL_GL_GetProcAddress("glGetBufferParameteriv");
PROC_CAST glGetBufferPointerv = SDL_GL_GetProcAddress("glGetBufferPointerv");
PROC_CAST glBlendEquationSeparate = SDL_GL_GetProcAddress("glBlendEquationSeparate");
PROC_CAST glDrawBuffers = SDL_GL_GetProcAddress("glDrawBuffers");
PROC_CAST glStencilOpSeparate = SDL_GL_GetProcAddress("glStencilOpSeparate");
PROC_CAST glStencilFuncSeparate = SDL_GL_GetProcAddress("glStencilFuncSeparate");
PROC_CAST glStencilMaskSeparate = SDL_GL_GetProcAddress("glStencilMaskSeparate");
PROC_CAST glAttachShader = SDL_GL_GetProcAddress("glAttachShader");
PROC_CAST glBindAttribLocation = SDL_GL_GetProcAddress("glBindAttribLocation");
PROC_CAST glCompileShader = SDL_GL_GetProcAddress("glCompileShader");
PROC_CAST glCreateProgram = SDL_GL_GetProcAddress("glCreateProgram");
PROC_CAST glCreateShader = SDL_GL_GetProcAddress("glCreateShader");
PROC_CAST glDeleteProgram = SDL_GL_GetProcAddress("glDeleteProgram");
PROC_CAST glDeleteShader = SDL_GL_GetProcAddress("glDeleteShader");
PROC_CAST glDetachShader = SDL_GL_GetProcAddress("glDetachShader");
PROC_CAST glDisableVertexAttribArray = SDL_GL_GetProcAddress("glDisableVertexAttribArray");
PROC_CAST glEnableVertexAttribArray = SDL_GL_GetProcAddress("glEnableVertexAttribArray");
PROC_CAST glGetActiveAttrib = SDL_GL_GetProcAddress("glGetActiveAttrib");
PROC_CAST glGetActiveUniform = SDL_GL_GetProcAddress("glGetActiveUniform");
PROC_CAST glGetAttachedShaders = SDL_GL_GetProcAddress("glGetAttachedShaders");
PROC_CAST glGetAttribLocation = SDL_GL_GetProcAddress("glGetAttribLocation");
PROC_CAST glGetProgramiv = SDL_GL_GetProcAddress("glGetProgramiv");
PROC_CAST glGetProgramInfoLog = SDL_GL_GetProcAddress("glGetProgramInfoLog");
PROC_CAST glGetShaderiv = SDL_GL_GetProcAddress("glGetShaderiv");
PROC_CAST glGetShaderInfoLog = SDL_GL_GetProcAddress("glGetShaderInfoLog");
PROC_CAST glGetShaderSource = SDL_GL_GetProcAddress("glGetShaderSource");
PROC_CAST glGetUniformLocation = SDL_GL_GetProcAddress("glGetUniformLocation");
PROC_CAST glGetUniformfv = SDL_GL_GetProcAddress("glGetUniformfv");
PROC_CAST glGetUniformiv = SDL_GL_GetProcAddress("glGetUniformiv");
PROC_CAST glGetVertexAttribdv = SDL_GL_GetProcAddress("glGetVertexAttribdv");
PROC_CAST glGetVertexAttribfv = SDL_GL_GetProcAddress("glGetVertexAttribfv");
PROC_CAST glGetVertexAttribiv = SDL_GL_GetProcAddress("glGetVertexAttribiv");
PROC_CAST glGetVertexAttribPointerv = SDL_GL_GetProcAddress("glGetVertexAttribPointerv");
PROC_CAST glIsProgram = SDL_GL_GetProcAddress("glIsProgram");
PROC_CAST glIsShader = SDL_GL_GetProcAddress("glIsShader");
PROC_CAST glLinkProgram = SDL_GL_GetProcAddress("glLinkProgram");
PROC_CAST glShaderSource = SDL_GL_GetProcAddress("glShaderSource");
PROC_CAST glUseProgram = SDL_GL_GetProcAddress("glUseProgram");
PROC_CAST glUniform1f = SDL_GL_GetProcAddress("glUniform1f");
PROC_CAST glUniform2f = SDL_GL_GetProcAddress("glUniform2f");
PROC_CAST glUniform3f = SDL_GL_GetProcAddress("glUniform3f");
PROC_CAST glUniform4f = SDL_GL_GetProcAddress("glUniform4f");
PROC_CAST glUniform1i = SDL_GL_GetProcAddress("glUniform1i");
PROC_CAST glUniform2i = SDL_GL_GetProcAddress("glUniform2i");
PROC_CAST glUniform3i = SDL_GL_GetProcAddress("glUniform3i");
PROC_CAST glUniform4i = SDL_GL_GetProcAddress("glUniform4i");
PROC_CAST glUniform1fv = SDL_GL_GetProcAddress("glUniform1fv");
PROC_CAST glUniform2fv = SDL_GL_GetProcAddress("glUniform2fv");
PROC_CAST glUniform3fv = SDL_GL_GetProcAddress("glUniform3fv");
PROC_CAST glUniform4fv = SDL_GL_GetProcAddress("glUniform4fv");
PROC_CAST glUniform1iv = SDL_GL_GetProcAddress("glUniform1iv");
PROC_CAST glUniform2iv = SDL_GL_GetProcAddress("glUniform2iv");
PROC_CAST glUniform3iv = SDL_GL_GetProcAddress("glUniform3iv");
PROC_CAST glUniform4iv = SDL_GL_GetProcAddress("glUniform4iv");
PROC_CAST glUniformMatrix2fv = SDL_GL_GetProcAddress("glUniformMatrix2fv");
PROC_CAST glUniformMatrix3fv = SDL_GL_GetProcAddress("glUniformMatrix3fv");
PROC_CAST glUniformMatrix4fv = SDL_GL_GetProcAddress("glUniformMatrix4fv");
PROC_CAST glValidateProgram = SDL_GL_GetProcAddress("glValidateProgram");
PROC_CAST glVertexAttrib1d = SDL_GL_GetProcAddress("glVertexAttrib1d");
PROC_CAST glVertexAttrib1dv = SDL_GL_GetProcAddress("glVertexAttrib1dv");
PROC_CAST glVertexAttrib1f = SDL_GL_GetProcAddress("glVertexAttrib1f");
PROC_CAST glVertexAttrib1fv = SDL_GL_GetProcAddress("glVertexAttrib1fv");
PROC_CAST glVertexAttrib1s = SDL_GL_GetProcAddress("glVertexAttrib1s");
PROC_CAST glVertexAttrib1sv = SDL_GL_GetProcAddress("glVertexAttrib1sv");
PROC_CAST glVertexAttrib2d = SDL_GL_GetProcAddress("glVertexAttrib2d");
PROC_CAST glVertexAttrib2dv = SDL_GL_GetProcAddress("glVertexAttrib2dv");
PROC_CAST glVertexAttrib2f = SDL_GL_GetProcAddress("glVertexAttrib2f");
PROC_CAST glVertexAttrib2fv = SDL_GL_GetProcAddress("glVertexAttrib2fv");
PROC_CAST glVertexAttrib2s = SDL_GL_GetProcAddress("glVertexAttrib2s");
PROC_CAST glVertexAttrib2sv = SDL_GL_GetProcAddress("glVertexAttrib2sv");
PROC_CAST glVertexAttrib3d = SDL_GL_GetProcAddress("glVertexAttrib3d");
PROC_CAST glVertexAttrib3dv = SDL_GL_GetProcAddress("glVertexAttrib3dv");
PROC_CAST glVertexAttrib3f = SDL_GL_GetProcAddress("glVertexAttrib3f");
PROC_CAST glVertexAttrib3fv = SDL_GL_GetProcAddress("glVertexAttrib3fv");
PROC_CAST glVertexAttrib3s = SDL_GL_GetProcAddress("glVertexAttrib3s");
PROC_CAST glVertexAttrib3sv = SDL_GL_GetProcAddress("glVertexAttrib3sv");
PROC_CAST glVertexAttrib4Nbv = SDL_GL_GetProcAddress("glVertexAttrib4Nbv");
PROC_CAST glVertexAttrib4Niv = SDL_GL_GetProcAddress("glVertexAttrib4Niv");
PROC_CAST glVertexAttrib4Nsv = SDL_GL_GetProcAddress("glVertexAttrib4Nsv");
PROC_CAST glVertexAttrib4Nub = SDL_GL_GetProcAddress("glVertexAttrib4Nub");
PROC_CAST glVertexAttrib4Nubv = SDL_GL_GetProcAddress("glVertexAttrib4Nubv");
PROC_CAST glVertexAttrib4Nuiv = SDL_GL_GetProcAddress("glVertexAttrib4Nuiv");
PROC_CAST glVertexAttrib4Nusv = SDL_GL_GetProcAddress("glVertexAttrib4Nusv");
PROC_CAST glVertexAttrib4bv = SDL_GL_GetProcAddress("glVertexAttrib4bv");
PROC_CAST glVertexAttrib4d = SDL_GL_GetProcAddress("glVertexAttrib4d");
PROC_CAST glVertexAttrib4dv = SDL_GL_GetProcAddress("glVertexAttrib4dv");
PROC_CAST glVertexAttrib4f = SDL_GL_GetProcAddress("glVertexAttrib4f");
PROC_CAST glVertexAttrib4fv = SDL_GL_GetProcAddress("glVertexAttrib4fv");
PROC_CAST glVertexAttrib4iv = SDL_GL_GetProcAddress("glVertexAttrib4iv");
PROC_CAST glVertexAttrib4s = SDL_GL_GetProcAddress("glVertexAttrib4s");
PROC_CAST glVertexAttrib4sv = SDL_GL_GetProcAddress("glVertexAttrib4sv");
PROC_CAST glVertexAttrib4ubv = SDL_GL_GetProcAddress("glVertexAttrib4ubv");
PROC_CAST glVertexAttrib4uiv = SDL_GL_GetProcAddress("glVertexAttrib4uiv");
PROC_CAST glVertexAttrib4usv = SDL_GL_GetProcAddress("glVertexAttrib4usv");
PROC_CAST glVertexAttribPointer = SDL_GL_GetProcAddress("glVertexAttribPointer");
PROC_CAST glUniformMatrix2x3fv = SDL_GL_GetProcAddress("glUniformMatrix2x3fv");
PROC_CAST glUniformMatrix3x2fv = SDL_GL_GetProcAddress("glUniformMatrix3x2fv");
PROC_CAST glUniformMatrix2x4fv = SDL_GL_GetProcAddress("glUniformMatrix2x4fv");
PROC_CAST glUniformMatrix4x2fv = SDL_GL_GetProcAddress("glUniformMatrix4x2fv");
PROC_CAST glUniformMatrix3x4fv = SDL_GL_GetProcAddress("glUniformMatrix3x4fv");
PROC_CAST glUniformMatrix4x3fv = SDL_GL_GetProcAddress("glUniformMatrix4x3fv");
PROC_CAST glColorMaski = SDL_GL_GetProcAddress("glColorMaski");
PROC_CAST glGetBooleani_v = SDL_GL_GetProcAddress("glGetBooleani_v");
PROC_CAST glGetIntegeri_v = SDL_GL_GetProcAddress("glGetIntegeri_v");
PROC_CAST glEnablei = SDL_GL_GetProcAddress("glEnablei");
PROC_CAST glDisablei = SDL_GL_GetProcAddress("glDisablei");
PROC_CAST glIsEnabledi = SDL_GL_GetProcAddress("glIsEnabledi");
PROC_CAST glBeginTransformFeedback = SDL_GL_GetProcAddress("glBeginTransformFeedback");
PROC_CAST glEndTransformFeedback = SDL_GL_GetProcAddress("glEndTransformFeedback");
PROC_CAST glBindBufferRange = SDL_GL_GetProcAddress("glBindBufferRange");
PROC_CAST glBindBufferBase = SDL_GL_GetProcAddress("glBindBufferBase");
PROC_CAST glTransformFeedbackVaryings = SDL_GL_GetProcAddress("glTransformFeedbackVaryings");
PROC_CAST glGetTransformFeedbackVarying = SDL_GL_GetProcAddress("glGetTransformFeedbackVarying");
PROC_CAST glClampColor = SDL_GL_GetProcAddress("glClampColor");
PROC_CAST glBeginConditionalRender = SDL_GL_GetProcAddress("glBeginConditionalRender");
PROC_CAST glEndConditionalRender = SDL_GL_GetProcAddress("glEndConditionalRender");
PROC_CAST glVertexAttribIPointer = SDL_GL_GetProcAddress("glVertexAttribIPointer");
PROC_CAST glGetVertexAttribIiv = SDL_GL_GetProcAddress("glGetVertexAttribIiv");
PROC_CAST glGetVertexAttribIuiv = SDL_GL_GetProcAddress("glGetVertexAttribIuiv");
PROC_CAST glVertexAttribI1i = SDL_GL_GetProcAddress("glVertexAttribI1i");
PROC_CAST glVertexAttribI2i = SDL_GL_GetProcAddress("glVertexAttribI2i");
PROC_CAST glVertexAttribI3i = SDL_GL_GetProcAddress("glVertexAttribI3i");
PROC_CAST glVertexAttribI4i = SDL_GL_GetProcAddress("glVertexAttribI4i");
PROC_CAST glVertexAttribI1ui = SDL_GL_GetProcAddress("glVertexAttribI1ui");
PROC_CAST glVertexAttribI2ui = SDL_GL_GetProcAddress("glVertexAttribI2ui");
PROC_CAST glVertexAttribI3ui = SDL_GL_GetProcAddress("glVertexAttribI3ui");
PROC_CAST glVertexAttribI4ui = SDL_GL_GetProcAddress("glVertexAttribI4ui");
PROC_CAST glVertexAttribI1iv = SDL_GL_GetProcAddress("glVertexAttribI1iv");
PROC_CAST glVertexAttribI2iv = SDL_GL_GetProcAddress("glVertexAttribI2iv");
PROC_CAST glVertexAttribI3iv = SDL_GL_GetProcAddress("glVertexAttribI3iv");
PROC_CAST glVertexAttribI4iv = SDL_GL_GetProcAddress("glVertexAttribI4iv");
PROC_CAST glVertexAttribI1uiv = SDL_GL_GetProcAddress("glVertexAttribI1uiv");
PROC_CAST glVertexAttribI2uiv = SDL_GL_GetProcAddress("glVertexAttribI2uiv");
PROC_CAST glVertexAttribI3uiv = SDL_GL_GetProcAddress("glVertexAttribI3uiv");
PROC_CAST glVertexAttribI4uiv = SDL_GL_GetProcAddress("glVertexAttribI4uiv");
PROC_CAST glVertexAttribI4bv = SDL_GL_GetProcAddress("glVertexAttribI4bv");
PROC_CAST glVertexAttribI4sv = SDL_GL_GetProcAddress("glVertexAttribI4sv");
PROC_CAST glVertexAttribI4ubv = SDL_GL_GetProcAddress("glVertexAttribI4ubv");
PROC_CAST glVertexAttribI4usv = SDL_GL_GetProcAddress("glVertexAttribI4usv");
PROC_CAST glGetUniformuiv = SDL_GL_GetProcAddress("glGetUniformuiv");
PROC_CAST glBindFragDataLocation = SDL_GL_GetProcAddress("glBindFragDataLocation");
PROC_CAST glGetFragDataLocation = SDL_GL_GetProcAddress("glGetFragDataLocation");
PROC_CAST glUniform1ui = SDL_GL_GetProcAddress("glUniform1ui");
PROC_CAST glUniform2ui = SDL_GL_GetProcAddress("glUniform2ui");
PROC_CAST glUniform3ui = SDL_GL_GetProcAddress("glUniform3ui");
PROC_CAST glUniform4ui = SDL_GL_GetProcAddress("glUniform4ui");
PROC_CAST glUniform1uiv = SDL_GL_GetProcAddress("glUniform1uiv");
PROC_CAST glUniform2uiv = SDL_GL_GetProcAddress("glUniform2uiv");
PROC_CAST glUniform3uiv = SDL_GL_GetProcAddress("glUniform3uiv");
PROC_CAST glUniform4uiv = SDL_GL_GetProcAddress("glUniform4uiv");
PROC_CAST glTexParameterIiv = SDL_GL_GetProcAddress("glTexParameterIiv");
PROC_CAST glTexParameterIuiv = SDL_GL_GetProcAddress("glTexParameterIuiv");
PROC_CAST glGetTexParameterIiv = SDL_GL_GetProcAddress("glGetTexParameterIiv");
PROC_CAST glGetTexParameterIuiv = SDL_GL_GetProcAddress("glGetTexParameterIuiv");
PROC_CAST glClearBufferiv = SDL_GL_GetProcAddress("glClearBufferiv");
PROC_CAST glClearBufferuiv = SDL_GL_GetProcAddress("glClearBufferuiv");
PROC_CAST glClearBufferfv = SDL_GL_GetProcAddress("glClearBufferfv");
PROC_CAST glClearBufferfi = SDL_GL_GetProcAddress("glClearBufferfi");
PROC_CAST glGetStringi = SDL_GL_GetProcAddress("glGetStringi");
PROC_CAST glIsRenderbuffer = SDL_GL_GetProcAddress("glIsRenderbuffer");
PROC_CAST glBindRenderbuffer = SDL_GL_GetProcAddress("glBindRenderbuffer");
PROC_CAST glDeleteRenderbuffers = SDL_GL_GetProcAddress("glDeleteRenderbuffers");
PROC_CAST glGenRenderbuffers = SDL_GL_GetProcAddress("glGenRenderbuffers");
PROC_CAST glRenderbufferStorage = SDL_GL_GetProcAddress("glRenderbufferStorage");
PROC_CAST glGetRenderbufferParameteriv = SDL_GL_GetProcAddress("glGetRenderbufferParameteriv");
PROC_CAST glIsFramebuffer = SDL_GL_GetProcAddress("glIsFramebuffer");
PROC_CAST glBindFramebuffer = SDL_GL_GetProcAddress("glBindFramebuffer");
PROC_CAST glDeleteFramebuffers = SDL_GL_GetProcAddress("glDeleteFramebuffers");
PROC_CAST glGenFramebuffers = SDL_GL_GetProcAddress("glGenFramebuffers");
PROC_CAST glCheckFramebufferStatus = SDL_GL_GetProcAddress("glCheckFramebufferStatus");
PROC_CAST glFramebufferTexture1D = SDL_GL_GetProcAddress("glFramebufferTexture1D");
PROC_CAST glFramebufferTexture2D = SDL_GL_GetProcAddress("glFramebufferTexture2D");
PROC_CAST glFramebufferTexture3D = SDL_GL_GetProcAddress("glFramebufferTexture3D");
PROC_CAST glFramebufferRenderbuffer = SDL_GL_GetProcAddress("glFramebufferRenderbuffer");
PROC_CAST glGetFramebufferAttachmentParameteriv = SDL_GL_GetProcAddress("glGetFramebufferAttachmentParameteriv");
PROC_CAST glGenerateMipmap = SDL_GL_GetProcAddress("glGenerateMipmap");
PROC_CAST glBlitFramebuffer = SDL_GL_GetProcAddress("glBlitFramebuffer");
PROC_CAST glRenderbufferStorageMultisample = SDL_GL_GetProcAddress("glRenderbufferStorageMultisample");
PROC_CAST glFramebufferTextureLayer = SDL_GL_GetProcAddress("glFramebufferTextureLayer");
PROC_CAST glMapBufferRange = SDL_GL_GetProcAddress("glMapBufferRange");
PROC_CAST glFlushMappedBufferRange = SDL_GL_GetProcAddress("glFlushMappedBufferRange");
PROC_CAST glBindVertexArray = SDL_GL_GetProcAddress("glBindVertexArray");
PROC_CAST glDeleteVertexArrays = SDL_GL_GetProcAddress("glDeleteVertexArrays");
PROC_CAST glGenVertexArrays = SDL_GL_GetProcAddress("glGenVertexArrays");
PROC_CAST glIsVertexArray = SDL_GL_GetProcAddress("glIsVertexArray");
PROC_CAST glDrawArraysInstanced = SDL_GL_GetProcAddress("glDrawArraysInstanced");
PROC_CAST glDrawElementsInstanced = SDL_GL_GetProcAddress("glDrawElementsInstanced");