forked from Wren6991/Ship-Sandbox
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathglad.c
1718 lines (1671 loc) · 91.9 KB
/
glad.c
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
/*
OpenGL loader generated by glad 0.1.16a0 on Tue Feb 13 08:16:12 2018.
Language/Generator: C/C++
Specification: gl
APIs: gl=2.1
Profile: core
Extensions:
GL_3DFX_texture_compression_FXT1,
GL_ARB_color_buffer_float,
GL_ARB_depth_texture,
GL_ARB_draw_buffers,
GL_ARB_fragment_program,
GL_ARB_fragment_shader,
GL_ARB_half_float_pixel,
GL_ARB_multisample,
GL_ARB_multitexture,
GL_ARB_occlusion_query,
GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters,
GL_ARB_point_sprite,
GL_ARB_shader_objects,
GL_ARB_shading_language_100,
GL_ARB_shadow,
GL_ARB_texture_border_clamp,
GL_ARB_texture_compression,
GL_ARB_texture_cube_map,
GL_ARB_texture_env_add,
GL_ARB_texture_env_combine,
GL_ARB_texture_env_crossbar,
GL_ARB_texture_env_dot3,
GL_ARB_texture_float,
GL_ARB_texture_mirrored_repeat,
GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle,
GL_ARB_transpose_matrix,
GL_ARB_vertex_buffer_object,
GL_ARB_vertex_program,
GL_ARB_vertex_shader,
GL_ARB_window_pos,
GL_ATI_separate_stencil,
GL_EXT_abgr,
GL_EXT_bgra,
GL_EXT_blend_color,
GL_EXT_blend_equation_separate,
GL_EXT_blend_func_separate,
GL_EXT_blend_logic_op,
GL_EXT_blend_minmax,
GL_EXT_blend_subtract,
GL_EXT_clip_volume_hint,
GL_EXT_compiled_vertex_array,
GL_EXT_copy_texture,
GL_EXT_draw_range_elements,
GL_EXT_fog_coord,
GL_EXT_framebuffer_object,
GL_EXT_multi_draw_arrays,
GL_EXT_packed_pixels,
GL_EXT_point_parameters,
GL_EXT_polygon_offset,
GL_EXT_rescale_normal,
GL_EXT_secondary_color,
GL_EXT_separate_specular_color,
GL_EXT_shadow_funcs,
GL_EXT_stencil_two_side,
GL_EXT_stencil_wrap,
GL_EXT_subtexture,
GL_EXT_texture,
GL_EXT_texture3D,
GL_EXT_texture_compression_s3tc,
GL_EXT_texture_env_add,
GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic,
GL_EXT_texture_lod_bias,
GL_EXT_texture_object,
GL_EXT_texture_sRGB,
GL_EXT_vertex_array,
GL_IBM_texture_mirrored_repeat,
GL_NV_blend_square,
GL_NV_point_sprite,
GL_NV_texgen_reflection,
GL_NV_texture_rectangle,
GL_S3_s3tc,
GL_SGIS_generate_mipmap,
GL_SGIS_texture_edge_clamp,
GL_SGIS_texture_lod,
GL_SGIX_depth_texture
Loader: True
Local files: False
Omit khrplatform: False
Commandline:
--profile="core" --api="gl=2.1" --generator="c" --spec="gl" --extensions="GL_3DFX_texture_compression_FXT1,GL_ARB_color_buffer_float,GL_ARB_depth_texture,GL_ARB_draw_buffers,GL_ARB_fragment_program,GL_ARB_fragment_shader,GL_ARB_half_float_pixel,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_shader_objects,GL_ARB_shading_language_100,GL_ARB_shadow,GL_ARB_texture_border_clamp,GL_ARB_texture_compression,GL_ARB_texture_cube_map,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_float,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_non_power_of_two,GL_ARB_texture_rectangle,GL_ARB_transpose_matrix,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_window_pos,GL_ATI_separate_stencil,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_compiled_vertex_array,GL_EXT_copy_texture,GL_EXT_draw_range_elements,GL_EXT_fog_coord,GL_EXT_framebuffer_object,GL_EXT_multi_draw_arrays,GL_EXT_packed_pixels,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_separate_specular_color,GL_EXT_shadow_funcs,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_compression_s3tc,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_lod_bias,GL_EXT_texture_object,GL_EXT_texture_sRGB,GL_EXT_vertex_array,GL_IBM_texture_mirrored_repeat,GL_NV_blend_square,GL_NV_point_sprite,GL_NV_texgen_reflection,GL_NV_texture_rectangle,GL_S3_s3tc,GL_SGIS_generate_mipmap,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_lod,GL_SGIX_depth_texture"
Online:
Too many extensions
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glad/glad.h>
static void* get_proc(const char *namez);
#ifdef _WIN32
#include <windows.h>
static HMODULE libGL;
typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
static
int open_gl(void) {
libGL = LoadLibraryW(L"opengl32.dll");
if(libGL != NULL) {
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
libGL, "wglGetProcAddress");
return gladGetProcAddressPtr != NULL;
}
return 0;
}
static
void close_gl(void) {
if(libGL != NULL) {
FreeLibrary(libGL);
libGL = NULL;
}
}
#else
#include <dlfcn.h>
static void* libGL;
#ifndef __APPLE__
typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
#endif
static
int open_gl(void) {
#ifdef __APPLE__
static const char *NAMES[] = {
"../Frameworks/OpenGL.framework/OpenGL",
"/Library/Frameworks/OpenGL.framework/OpenGL",
"/System/Library/Frameworks/OpenGL.framework/OpenGL",
"/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
};
#else
static const char *NAMES[] = {"libGL.so.1", "libGL.so"};
#endif
unsigned int index = 0;
for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) {
libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
if(libGL != NULL) {
#ifdef __APPLE__
return 1;
#else
gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
"glXGetProcAddressARB");
return gladGetProcAddressPtr != NULL;
#endif
}
}
return 0;
}
static
void close_gl(void) {
if(libGL != NULL) {
dlclose(libGL);
libGL = NULL;
}
}
#endif
static
void* get_proc(const char *namez) {
void* result = NULL;
if(libGL == NULL) return NULL;
#ifndef __APPLE__
if(gladGetProcAddressPtr != NULL) {
result = gladGetProcAddressPtr(namez);
}
#endif
if(result == NULL) {
#ifdef _WIN32
result = (void*)GetProcAddress(libGL, namez);
#else
result = dlsym(libGL, namez);
#endif
}
return result;
}
int gladLoadGL(void) {
int status = 0;
if(open_gl()) {
status = gladLoadGLLoader(&get_proc);
close_gl();
}
return status;
}
struct gladGLversionStruct GLVersion;
#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
#define _GLAD_IS_SOME_NEW_VERSION 1
#endif
static int max_loaded_major;
static int max_loaded_minor;
static const char *exts = NULL;
static int num_exts_i = 0;
static const char **exts_i = NULL;
static int get_exts(void) {
#ifdef _GLAD_IS_SOME_NEW_VERSION
if(max_loaded_major < 3) {
#endif
exts = (const char *)glGetString(GL_EXTENSIONS);
#ifdef _GLAD_IS_SOME_NEW_VERSION
} else {
unsigned int index;
num_exts_i = 0;
glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
if (num_exts_i > 0) {
exts_i = (const char **)realloc((void *)exts_i, (size_t)num_exts_i * (sizeof *exts_i));
}
if (exts_i == NULL) {
return 0;
}
for(index = 0; index < (unsigned)num_exts_i; index++) {
const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index);
size_t len = strlen(gl_str_tmp);
char *local_str = (char*)malloc((len+1) * sizeof(*exts_i));
if(local_str != NULL) {
#if _MSC_VER >= 1400
strncpy_s(local_str, len+1, gl_str_tmp, len);
#else
strncpy(local_str, gl_str_tmp, len+1);
#endif
}
exts_i[index] = local_str;
}
}
#endif
return 1;
}
static void free_exts(void) {
if (exts_i != NULL) {
int index;
for(index = 0; index < num_exts_i; index++) {
free((char *)exts_i[index]);
}
free((void *)exts_i);
exts_i = NULL;
}
}
static int has_ext(const char *ext) {
#ifdef _GLAD_IS_SOME_NEW_VERSION
if(max_loaded_major < 3) {
#endif
const char *extensions;
const char *loc;
const char *terminator;
extensions = exts;
if(extensions == NULL || ext == NULL) {
return 0;
}
while(1) {
loc = strstr(extensions, ext);
if(loc == NULL) {
return 0;
}
terminator = loc + strlen(ext);
if((loc == extensions || *(loc - 1) == ' ') &&
(*terminator == ' ' || *terminator == '\0')) {
return 1;
}
extensions = terminator;
}
#ifdef _GLAD_IS_SOME_NEW_VERSION
} else {
int index;
if(exts_i == NULL) return 0;
for(index = 0; index < num_exts_i; index++) {
const char *e = exts_i[index];
if(exts_i[index] != NULL && strcmp(e, ext) == 0) {
return 1;
}
}
}
#endif
return 0;
}
int GLAD_GL_VERSION_1_0;
int GLAD_GL_VERSION_1_1;
int GLAD_GL_VERSION_1_2;
int GLAD_GL_VERSION_1_3;
int GLAD_GL_VERSION_1_4;
int GLAD_GL_VERSION_1_5;
int GLAD_GL_VERSION_2_0;
int GLAD_GL_VERSION_2_1;
PFNGLFLUSHPROC glad_glFlush;
PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
PFNGLCLEARCOLORPROC glad_glClearColor;
PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
PFNGLLINKPROGRAMPROC glad_glLinkProgram;
PFNGLBINDTEXTUREPROC glad_glBindTexture;
PFNGLGETSTRINGPROC glad_glGetString;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
PFNGLDETACHSHADERPROC glad_glDetachShader;
PFNGLGENBUFFERSPROC glad_glGenBuffers;
PFNGLENDQUERYPROC glad_glEndQuery;
PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
PFNGLLINEWIDTHPROC glad_glLineWidth;
PFNGLUNIFORM2FVPROC glad_glUniform2fv;
PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
PFNGLCOMPILESHADERPROC glad_glCompileShader;
PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
PFNGLPOLYGONMODEPROC glad_glPolygonMode;
PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
PFNGLUNIFORM4IVPROC glad_glUniform4iv;
PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
PFNGLCLEARSTENCILPROC glad_glClearStencil;
PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
PFNGLGENTEXTURESPROC glad_glGenTextures;
PFNGLDEPTHFUNCPROC glad_glDepthFunc;
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
PFNGLUNIFORM1FPROC glad_glUniform1f;
PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
PFNGLCREATESHADERPROC glad_glCreateShader;
PFNGLISBUFFERPROC glad_glIsBuffer;
PFNGLUNIFORM1IPROC glad_glUniform1i;
PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
PFNGLDISABLEPROC glad_glDisable;
PFNGLUNIFORM2IPROC glad_glUniform2i;
PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
PFNGLLOGICOPPROC glad_glLogicOp;
PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
PFNGLCOLORMASKPROC glad_glColorMask;
PFNGLHINTPROC glad_glHint;
PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
PFNGLCULLFACEPROC glad_glCullFace;
PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
PFNGLUNIFORM4FVPROC glad_glUniform4fv;
PFNGLPOINTSIZEPROC glad_glPointSize;
PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
PFNGLGENQUERIESPROC glad_glGenQueries;
PFNGLATTACHSHADERPROC glad_glAttachShader;
PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
PFNGLUNIFORM3IPROC glad_glUniform3i;
PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
PFNGLUNIFORM3FPROC glad_glUniform3f;
PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
PFNGLDRAWELEMENTSPROC glad_glDrawElements;
PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
PFNGLUNIFORM1IVPROC glad_glUniform1iv;
PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
PFNGLREADBUFFERPROC glad_glReadBuffer;
PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
PFNGLGETSHADERIVPROC glad_glGetShaderiv;
PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
PFNGLBLENDCOLORPROC glad_glBlendColor;
PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
PFNGLDEPTHMASKPROC glad_glDepthMask;
PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
PFNGLGETDOUBLEVPROC glad_glGetDoublev;
PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
PFNGLSHADERSOURCEPROC glad_glShaderSource;
PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
PFNGLDRAWARRAYSPROC glad_glDrawArrays;
PFNGLISPROGRAMPROC glad_glIsProgram;
PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
PFNGLUNIFORM4IPROC glad_glUniform4i;
PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
PFNGLCLEARPROC glad_glClear;
PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
PFNGLUNIFORM2FPROC glad_glUniform2f;
PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
PFNGLBEGINQUERYPROC glad_glBeginQuery;
PFNGLUNIFORM2IVPROC glad_glUniform2iv;
PFNGLBINDBUFFERPROC glad_glBindBuffer;
PFNGLISENABLEDPROC glad_glIsEnabled;
PFNGLSTENCILOPPROC glad_glStencilOp;
PFNGLREADPIXELSPROC glad_glReadPixels;
PFNGLCLEARDEPTHPROC glad_glClearDepth;
PFNGLUNIFORM4FPROC glad_glUniform4f;
PFNGLMAPBUFFERPROC glad_glMapBuffer;
PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
PFNGLUNIFORM3FVPROC glad_glUniform3fv;
PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
PFNGLBUFFERDATAPROC glad_glBufferData;
PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
PFNGLGETERRORPROC glad_glGetError;
PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
PFNGLGETFLOATVPROC glad_glGetFloatv;
PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
PFNGLUNIFORM3IVPROC glad_glUniform3iv;
PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
PFNGLUSEPROGRAMPROC glad_glUseProgram;
PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
PFNGLSTENCILFUNCPROC glad_glStencilFunc;
PFNGLGETINTEGERVPROC glad_glGetIntegerv;
PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
PFNGLUNIFORM1FVPROC glad_glUniform1fv;
PFNGLISQUERYPROC glad_glIsQuery;
PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
PFNGLGETQUERYIVPROC glad_glGetQueryiv;
PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
PFNGLSTENCILMASKPROC glad_glStencilMask;
PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
PFNGLISTEXTUREPROC glad_glIsTexture;
PFNGLISSHADERPROC glad_glIsShader;
PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
PFNGLENABLEPROC glad_glEnable;
PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
PFNGLFINISHPROC glad_glFinish;
PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
PFNGLDELETESHADERPROC glad_glDeleteShader;
PFNGLBLENDFUNCPROC glad_glBlendFunc;
PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
PFNGLVIEWPORTPROC glad_glViewport;
PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
PFNGLDEPTHRANGEPROC glad_glDepthRange;
PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
PFNGLFRONTFACEPROC glad_glFrontFace;
PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
PFNGLSCISSORPROC glad_glScissor;
PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
PFNGLPIXELSTOREIPROC glad_glPixelStorei;
PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
PFNGLPIXELSTOREFPROC glad_glPixelStoref;
int GLAD_GL_ARB_texture_compression;
int GLAD_GL_NV_point_sprite;
int GLAD_GL_EXT_blend_logic_op;
int GLAD_GL_SGIX_depth_texture;
int GLAD_GL_EXT_texture_sRGB;
int GLAD_GL_EXT_stencil_two_side;
int GLAD_GL_EXT_blend_color;
int GLAD_GL_EXT_blend_subtract;
int GLAD_GL_EXT_subtexture;
int GLAD_GL_NV_texgen_reflection;
int GLAD_GL_ARB_color_buffer_float;
int GLAD_GL_EXT_texture_object;
int GLAD_GL_EXT_vertex_array;
int GLAD_GL_IBM_texture_mirrored_repeat;
int GLAD_GL_ARB_window_pos;
int GLAD_GL_EXT_multi_draw_arrays;
int GLAD_GL_EXT_compiled_vertex_array;
int GLAD_GL_ARB_shadow;
int GLAD_GL_ARB_texture_mirrored_repeat;
int GLAD_GL_EXT_texture_compression_s3tc;
int GLAD_GL_ARB_vertex_program;
int GLAD_GL_ATI_separate_stencil;
int GLAD_GL_ARB_texture_env_dot3;
int GLAD_GL_3DFX_texture_compression_FXT1;
int GLAD_GL_EXT_bgra;
int GLAD_GL_SGIS_texture_edge_clamp;
int GLAD_GL_ARB_texture_float;
int GLAD_GL_ARB_depth_texture;
int GLAD_GL_EXT_copy_texture;
int GLAD_GL_S3_s3tc;
int GLAD_GL_ARB_texture_env_combine;
int GLAD_GL_ARB_fragment_shader;
int GLAD_GL_EXT_abgr;
int GLAD_GL_ARB_vertex_buffer_object;
int GLAD_GL_EXT_rescale_normal;
int GLAD_GL_EXT_shadow_funcs;
int GLAD_GL_EXT_point_parameters;
int GLAD_GL_NV_texture_rectangle;
int GLAD_GL_ARB_fragment_program;
int GLAD_GL_ARB_shader_objects;
int GLAD_GL_EXT_framebuffer_object;
int GLAD_GL_EXT_texture_env_add;
int GLAD_GL_EXT_texture3D;
int GLAD_GL_EXT_packed_pixels;
int GLAD_GL_ARB_multitexture;
int GLAD_GL_NV_blend_square;
int GLAD_GL_EXT_secondary_color;
int GLAD_GL_EXT_blend_func_separate;
int GLAD_GL_ARB_texture_non_power_of_two;
int GLAD_GL_EXT_texture;
int GLAD_GL_EXT_texture_env_combine;
int GLAD_GL_EXT_blend_equation_separate;
int GLAD_GL_ARB_texture_rectangle;
int GLAD_GL_ARB_occlusion_query;
int GLAD_GL_SGIS_texture_lod;
int GLAD_GL_ARB_transpose_matrix;
int GLAD_GL_ARB_point_sprite;
int GLAD_GL_EXT_separate_specular_color;
int GLAD_GL_ARB_shading_language_100;
int GLAD_GL_EXT_stencil_wrap;
int GLAD_GL_ARB_texture_env_add;
int GLAD_GL_ARB_vertex_shader;
int GLAD_GL_ARB_multisample;
int GLAD_GL_SGIS_generate_mipmap;
int GLAD_GL_ARB_texture_border_clamp;
int GLAD_GL_ARB_half_float_pixel;
int GLAD_GL_EXT_polygon_offset;
int GLAD_GL_EXT_texture_filter_anisotropic;
int GLAD_GL_EXT_blend_minmax;
int GLAD_GL_EXT_clip_volume_hint;
int GLAD_GL_ARB_texture_cube_map;
int GLAD_GL_ARB_draw_buffers;
int GLAD_GL_ARB_texture_env_crossbar;
int GLAD_GL_EXT_texture_lod_bias;
int GLAD_GL_EXT_draw_range_elements;
int GLAD_GL_ARB_pixel_buffer_object;
int GLAD_GL_EXT_fog_coord;
int GLAD_GL_ARB_point_parameters;
int GLAD_GL_EXT_texture_env_dot3;
PFNGLCLAMPCOLORARBPROC glad_glClampColorARB;
PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB;
PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB;
PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB;
PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB;
PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB;
PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB;
PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB;
PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB;
PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB;
PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB;
PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB;
PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB;
PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB;
PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB;
PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB;
PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB;
PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB;
PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB;
PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB;
PFNGLISPROGRAMARBPROC glad_glIsProgramARB;
PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB;
PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB;
PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB;
PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB;
PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB;
PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB;
PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB;
PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB;
PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB;
PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB;
PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB;
PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB;
PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB;
PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB;
PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB;
PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB;
PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB;
PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB;
PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB;
PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB;
PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB;
PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB;
PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB;
PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB;
PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB;
PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB;
PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB;
PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB;
PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB;
PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB;
PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB;
PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB;
PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB;
PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB;
PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB;
PFNGLGENQUERIESARBPROC glad_glGenQueriesARB;
PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB;
PFNGLISQUERYARBPROC glad_glIsQueryARB;
PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB;
PFNGLENDQUERYARBPROC glad_glEndQueryARB;
PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB;
PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB;
PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB;
PFNGLPOINTPARAMETERFARBPROC glad_glPointParameterfARB;
PFNGLPOINTPARAMETERFVARBPROC glad_glPointParameterfvARB;
PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB;
PFNGLGETHANDLEARBPROC glad_glGetHandleARB;
PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB;
PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB;
PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB;
PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB;
PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB;
PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB;
PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB;
PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB;
PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB;
PFNGLUNIFORM1FARBPROC glad_glUniform1fARB;
PFNGLUNIFORM2FARBPROC glad_glUniform2fARB;
PFNGLUNIFORM3FARBPROC glad_glUniform3fARB;
PFNGLUNIFORM4FARBPROC glad_glUniform4fARB;
PFNGLUNIFORM1IARBPROC glad_glUniform1iARB;
PFNGLUNIFORM2IARBPROC glad_glUniform2iARB;
PFNGLUNIFORM3IARBPROC glad_glUniform3iARB;
PFNGLUNIFORM4IARBPROC glad_glUniform4iARB;
PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB;
PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB;
PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB;
PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB;
PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB;
PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB;
PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB;
PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB;
PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB;
PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB;
PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB;
PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB;
PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB;
PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB;
PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB;
PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB;
PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB;
PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB;
PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB;
PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB;
PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB;
PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB;
PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB;
PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB;
PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB;
PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB;
PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB;
PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB;
PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB;
PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB;
PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB;
PFNGLBINDBUFFERARBPROC glad_glBindBufferARB;
PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB;
PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB;
PFNGLISBUFFERARBPROC glad_glIsBufferARB;
PFNGLBUFFERDATAARBPROC glad_glBufferDataARB;
PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB;
PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB;
PFNGLMAPBUFFERARBPROC glad_glMapBufferARB;
PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB;
PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB;
PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB;
PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB;
PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB;
PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB;
PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB;
PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB;
PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB;
PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB;
PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB;
PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB;
PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB;
PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB;
PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB;
PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB;
PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB;
PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB;
PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB;
PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB;
PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB;
PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB;
PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB;
PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB;
PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB;
PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB;
PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB;
PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB;
PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB;
PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB;
PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB;
PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB;
PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB;
PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB;
PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB;
PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB;
PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB;
PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB;
PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB;
PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB;
PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB;
PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB;
PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB;
PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB;
PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB;
PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB;
PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB;
PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB;
PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB;
PFNGLWINDOWPOS2DARBPROC glad_glWindowPos2dARB;
PFNGLWINDOWPOS2DVARBPROC glad_glWindowPos2dvARB;
PFNGLWINDOWPOS2FARBPROC glad_glWindowPos2fARB;
PFNGLWINDOWPOS2FVARBPROC glad_glWindowPos2fvARB;
PFNGLWINDOWPOS2IARBPROC glad_glWindowPos2iARB;
PFNGLWINDOWPOS2IVARBPROC glad_glWindowPos2ivARB;
PFNGLWINDOWPOS2SARBPROC glad_glWindowPos2sARB;
PFNGLWINDOWPOS2SVARBPROC glad_glWindowPos2svARB;
PFNGLWINDOWPOS3DARBPROC glad_glWindowPos3dARB;
PFNGLWINDOWPOS3DVARBPROC glad_glWindowPos3dvARB;
PFNGLWINDOWPOS3FARBPROC glad_glWindowPos3fARB;
PFNGLWINDOWPOS3FVARBPROC glad_glWindowPos3fvARB;
PFNGLWINDOWPOS3IARBPROC glad_glWindowPos3iARB;
PFNGLWINDOWPOS3IVARBPROC glad_glWindowPos3ivARB;
PFNGLWINDOWPOS3SARBPROC glad_glWindowPos3sARB;
PFNGLWINDOWPOS3SVARBPROC glad_glWindowPos3svARB;
PFNGLSTENCILOPSEPARATEATIPROC glad_glStencilOpSeparateATI;
PFNGLSTENCILFUNCSEPARATEATIPROC glad_glStencilFuncSeparateATI;
PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT;
PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT;
PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
PFNGLBLENDEQUATIONEXTPROC glad_glBlendEquationEXT;
PFNGLLOCKARRAYSEXTPROC glad_glLockArraysEXT;
PFNGLUNLOCKARRAYSEXTPROC glad_glUnlockArraysEXT;
PFNGLCOPYTEXIMAGE1DEXTPROC glad_glCopyTexImage1DEXT;
PFNGLCOPYTEXIMAGE2DEXTPROC glad_glCopyTexImage2DEXT;
PFNGLCOPYTEXSUBIMAGE1DEXTPROC glad_glCopyTexSubImage1DEXT;
PFNGLCOPYTEXSUBIMAGE2DEXTPROC glad_glCopyTexSubImage2DEXT;
PFNGLCOPYTEXSUBIMAGE3DEXTPROC glad_glCopyTexSubImage3DEXT;
PFNGLDRAWRANGEELEMENTSEXTPROC glad_glDrawRangeElementsEXT;
PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT;
PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT;
PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT;
PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT;
PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT;
PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
PFNGLMULTIDRAWARRAYSEXTPROC glad_glMultiDrawArraysEXT;
PFNGLMULTIDRAWELEMENTSEXTPROC glad_glMultiDrawElementsEXT;
PFNGLPOINTPARAMETERFEXTPROC glad_glPointParameterfEXT;
PFNGLPOINTPARAMETERFVEXTPROC glad_glPointParameterfvEXT;
PFNGLPOLYGONOFFSETEXTPROC glad_glPolygonOffsetEXT;
PFNGLSECONDARYCOLOR3BEXTPROC glad_glSecondaryColor3bEXT;
PFNGLSECONDARYCOLOR3BVEXTPROC glad_glSecondaryColor3bvEXT;
PFNGLSECONDARYCOLOR3DEXTPROC glad_glSecondaryColor3dEXT;
PFNGLSECONDARYCOLOR3DVEXTPROC glad_glSecondaryColor3dvEXT;
PFNGLSECONDARYCOLOR3FEXTPROC glad_glSecondaryColor3fEXT;
PFNGLSECONDARYCOLOR3FVEXTPROC glad_glSecondaryColor3fvEXT;
PFNGLSECONDARYCOLOR3IEXTPROC glad_glSecondaryColor3iEXT;
PFNGLSECONDARYCOLOR3IVEXTPROC glad_glSecondaryColor3ivEXT;
PFNGLSECONDARYCOLOR3SEXTPROC glad_glSecondaryColor3sEXT;
PFNGLSECONDARYCOLOR3SVEXTPROC glad_glSecondaryColor3svEXT;
PFNGLSECONDARYCOLOR3UBEXTPROC glad_glSecondaryColor3ubEXT;
PFNGLSECONDARYCOLOR3UBVEXTPROC glad_glSecondaryColor3ubvEXT;
PFNGLSECONDARYCOLOR3UIEXTPROC glad_glSecondaryColor3uiEXT;
PFNGLSECONDARYCOLOR3UIVEXTPROC glad_glSecondaryColor3uivEXT;
PFNGLSECONDARYCOLOR3USEXTPROC glad_glSecondaryColor3usEXT;
PFNGLSECONDARYCOLOR3USVEXTPROC glad_glSecondaryColor3usvEXT;
PFNGLSECONDARYCOLORPOINTEREXTPROC glad_glSecondaryColorPointerEXT;
PFNGLACTIVESTENCILFACEEXTPROC glad_glActiveStencilFaceEXT;
PFNGLTEXSUBIMAGE1DEXTPROC glad_glTexSubImage1DEXT;
PFNGLTEXSUBIMAGE2DEXTPROC glad_glTexSubImage2DEXT;
PFNGLTEXIMAGE3DEXTPROC glad_glTexImage3DEXT;
PFNGLTEXSUBIMAGE3DEXTPROC glad_glTexSubImage3DEXT;
PFNGLARETEXTURESRESIDENTEXTPROC glad_glAreTexturesResidentEXT;
PFNGLBINDTEXTUREEXTPROC glad_glBindTextureEXT;
PFNGLDELETETEXTURESEXTPROC glad_glDeleteTexturesEXT;
PFNGLGENTEXTURESEXTPROC glad_glGenTexturesEXT;
PFNGLISTEXTUREEXTPROC glad_glIsTextureEXT;
PFNGLPRIORITIZETEXTURESEXTPROC glad_glPrioritizeTexturesEXT;
PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT;
PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT;
PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT;
PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT;
PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT;
PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT;
PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT;
PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT;
PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT;
PFNGLPOINTPARAMETERINVPROC glad_glPointParameteriNV;
PFNGLPOINTPARAMETERIVNVPROC glad_glPointParameterivNV;
static void load_GL_VERSION_1_0(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_0) return;
glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace");
glad_glHint = (PFNGLHINTPROC)load("glHint");
glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth");
glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize");
glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode");
glad_glScissor = (PFNGLSCISSORPROC)load("glScissor");
glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf");
glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv");
glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri");
glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv");
glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D");
glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D");
glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer");
glad_glClear = (PFNGLCLEARPROC)load("glClear");
glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor");
glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil");
glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth");
glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask");
glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask");
glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask");
glad_glDisable = (PFNGLDISABLEPROC)load("glDisable");
glad_glEnable = (PFNGLENABLEPROC)load("glEnable");
glad_glFinish = (PFNGLFINISHPROC)load("glFinish");
glad_glFlush = (PFNGLFLUSHPROC)load("glFlush");
glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc");
glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp");
glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc");
glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp");
glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc");
glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref");
glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei");
glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer");
glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels");
glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv");
glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev");
glad_glGetError = (PFNGLGETERRORPROC)load("glGetError");
glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv");
glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv");
glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage");
glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv");
glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv");
glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv");
glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv");
glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled");
glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange");
glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport");
}
static void load_GL_VERSION_1_1(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_1) return;
glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays");
glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements");
glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset");
glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D");
glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D");
glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D");
glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D");
glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D");
glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D");
glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture");
glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures");
glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures");
glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture");
}
static void load_GL_VERSION_1_2(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_2) return;
glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements");
glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D");
glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D");
glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D");
}
static void load_GL_VERSION_1_3(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_3) return;
glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture");
glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage");
glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D");
glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D");
glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D");
glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D");
glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D");
glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D");
glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage");
}
static void load_GL_VERSION_1_4(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_4) return;
glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate");
glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays");
glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements");
glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf");
glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv");
glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri");
glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv");
glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor");
glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation");
}
static void load_GL_VERSION_1_5(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_5) return;
glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries");
glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries");
glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery");
glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery");
glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery");
glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv");
glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv");
glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv");
glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer");
glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers");
glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers");
glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer");
glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData");
glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData");
glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData");
glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer");
glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer");
glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv");
glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv");
}
static void load_GL_VERSION_2_0(GLADloadproc load) {
if(!GLAD_GL_VERSION_2_0) return;
glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate");
glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers");
glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate");
glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate");
glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate");
glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader");