minesweeper

A minewseeper implementation to play around with Hare and Raylib
git clone https://git.tronto.net/minesweeper
Download | Log | Files | Refs | README | LICENSE

gles2.h (81113B)


      1 /**
      2  * Loader generated by glad 2.0.0-beta on Tue Aug 24 22:51:42 2021
      3  *
      4  * Generator: C/C++
      5  * Specification: gl
      6  * Extensions: 0
      7  *
      8  * APIs:
      9  *  - gles2=2.0
     10  *
     11  * Options:
     12  *  - ALIAS = False
     13  *  - DEBUG = False
     14  *  - HEADER_ONLY = True
     15  *  - LOADER = False
     16  *  - MX = False
     17  *  - MX_GLOBAL = False
     18  *  - ON_DEMAND = False
     19  *
     20  * Commandline:
     21  *    --api='gles2=2.0' --extensions='' c --header-only
     22  *
     23  * Online:
     24  *    http://glad.sh/#api=gles2%3D2.0&extensions=&generator=c&options=HEADER_ONLY
     25  *
     26  */
     27 
     28 #ifndef GLAD_GLES2_H_
     29 #define GLAD_GLES2_H_
     30 
     31 #ifdef __clang__
     32 #pragma clang diagnostic push
     33 #pragma clang diagnostic ignored "-Wreserved-id-macro"
     34 #endif
     35 #ifdef __gl2_h_
     36   #error OpenGL ES 2 header already included (API: gles2), remove previous include!
     37 #endif
     38 #define __gl2_h_ 1
     39 #ifdef __gl3_h_
     40   #error OpenGL ES 3 header already included (API: gles2), remove previous include!
     41 #endif
     42 #define __gl3_h_ 1
     43 #ifdef __clang__
     44 #pragma clang diagnostic pop
     45 #endif
     46 
     47 #define GLAD_GLES2
     48 #define GLAD_OPTION_GLES2_HEADER_ONLY
     49 
     50 #ifdef __cplusplus
     51 extern "C" {
     52 #endif
     53 
     54 #ifndef GLAD_PLATFORM_H_
     55 #define GLAD_PLATFORM_H_
     56 
     57 #ifndef GLAD_PLATFORM_WIN32
     58   #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
     59     #define GLAD_PLATFORM_WIN32 1
     60   #else
     61     #define GLAD_PLATFORM_WIN32 0
     62   #endif
     63 #endif
     64 
     65 #ifndef GLAD_PLATFORM_APPLE
     66   #ifdef __APPLE__
     67     #define GLAD_PLATFORM_APPLE 1
     68   #else
     69     #define GLAD_PLATFORM_APPLE 0
     70   #endif
     71 #endif
     72 
     73 #ifndef GLAD_PLATFORM_EMSCRIPTEN
     74   #ifdef __EMSCRIPTEN__
     75     #define GLAD_PLATFORM_EMSCRIPTEN 1
     76   #else
     77     #define GLAD_PLATFORM_EMSCRIPTEN 0
     78   #endif
     79 #endif
     80 
     81 #ifndef GLAD_PLATFORM_UWP
     82   #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
     83     #ifdef __has_include
     84       #if __has_include(<winapifamily.h>)
     85         #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
     86       #endif
     87     #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
     88       #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
     89     #endif
     90   #endif
     91 
     92   #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
     93     #include <winapifamily.h>
     94     #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
     95       #define GLAD_PLATFORM_UWP 1
     96     #endif
     97   #endif
     98 
     99   #ifndef GLAD_PLATFORM_UWP
    100     #define GLAD_PLATFORM_UWP 0
    101   #endif
    102 #endif
    103 
    104 #ifdef __GNUC__
    105   #define GLAD_GNUC_EXTENSION __extension__
    106 #else
    107   #define GLAD_GNUC_EXTENSION
    108 #endif
    109 
    110 #ifndef GLAD_API_CALL
    111   #if defined(GLAD_API_CALL_EXPORT)
    112     #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
    113       #if defined(GLAD_API_CALL_EXPORT_BUILD)
    114         #if defined(__GNUC__)
    115           #define GLAD_API_CALL __attribute__ ((dllexport)) extern
    116         #else
    117           #define GLAD_API_CALL __declspec(dllexport) extern
    118         #endif
    119       #else
    120         #if defined(__GNUC__)
    121           #define GLAD_API_CALL __attribute__ ((dllimport)) extern
    122         #else
    123           #define GLAD_API_CALL __declspec(dllimport) extern
    124         #endif
    125       #endif
    126     #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
    127       #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
    128     #else
    129       #define GLAD_API_CALL extern
    130     #endif
    131   #else
    132     #define GLAD_API_CALL extern
    133   #endif
    134 #endif
    135 
    136 #ifdef APIENTRY
    137   #define GLAD_API_PTR APIENTRY
    138 #elif GLAD_PLATFORM_WIN32
    139   #define GLAD_API_PTR __stdcall
    140 #else
    141   #define GLAD_API_PTR
    142 #endif
    143 
    144 #ifndef GLAPI
    145 #define GLAPI GLAD_API_CALL
    146 #endif
    147 
    148 #ifndef GLAPIENTRY
    149 #define GLAPIENTRY GLAD_API_PTR
    150 #endif
    151 
    152 #define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
    153 #define GLAD_VERSION_MAJOR(version) (version / 10000)
    154 #define GLAD_VERSION_MINOR(version) (version % 10000)
    155 
    156 #define GLAD_GENERATOR_VERSION "2.0.0-beta"
    157 
    158 typedef void (*GLADapiproc)(void);
    159 
    160 typedef GLADapiproc (*GLADloadfunc)(const char *name);
    161 typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
    162 
    163 typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
    164 typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
    165 
    166 #endif /* GLAD_PLATFORM_H_ */
    167 
    168 #define GL_ACTIVE_ATTRIBUTES 0x8B89
    169 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
    170 #define GL_ACTIVE_TEXTURE 0x84E0
    171 #define GL_ACTIVE_UNIFORMS 0x8B86
    172 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
    173 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
    174 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D
    175 #define GL_ALPHA 0x1906
    176 #define GL_ALPHA_BITS 0x0D55
    177 #define GL_ALWAYS 0x0207
    178 #define GL_ARRAY_BUFFER 0x8892
    179 #define GL_ARRAY_BUFFER_BINDING 0x8894
    180 #define GL_ATTACHED_SHADERS 0x8B85
    181 #define GL_BACK 0x0405
    182 #define GL_BLEND 0x0BE2
    183 #define GL_BLEND_COLOR 0x8005
    184 #define GL_BLEND_DST_ALPHA 0x80CA
    185 #define GL_BLEND_DST_RGB 0x80C8
    186 #define GL_BLEND_EQUATION 0x8009
    187 #define GL_BLEND_EQUATION_ALPHA 0x883D
    188 #define GL_BLEND_EQUATION_RGB 0x8009
    189 #define GL_BLEND_SRC_ALPHA 0x80CB
    190 #define GL_BLEND_SRC_RGB 0x80C9
    191 #define GL_BLUE_BITS 0x0D54
    192 #define GL_BOOL 0x8B56
    193 #define GL_BOOL_VEC2 0x8B57
    194 #define GL_BOOL_VEC3 0x8B58
    195 #define GL_BOOL_VEC4 0x8B59
    196 #define GL_BUFFER_SIZE 0x8764
    197 #define GL_BUFFER_USAGE 0x8765
    198 #define GL_BYTE 0x1400
    199 #define GL_CCW 0x0901
    200 #define GL_CLAMP_TO_EDGE 0x812F
    201 #define GL_COLOR_ATTACHMENT0 0x8CE0
    202 #define GL_COLOR_BUFFER_BIT 0x00004000
    203 #define GL_COLOR_CLEAR_VALUE 0x0C22
    204 #define GL_COLOR_WRITEMASK 0x0C23
    205 #define GL_COMPILE_STATUS 0x8B81
    206 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
    207 #define GL_CONSTANT_ALPHA 0x8003
    208 #define GL_CONSTANT_COLOR 0x8001
    209 #define GL_CULL_FACE 0x0B44
    210 #define GL_CULL_FACE_MODE 0x0B45
    211 #define GL_CURRENT_PROGRAM 0x8B8D
    212 #define GL_CURRENT_VERTEX_ATTRIB 0x8626
    213 #define GL_CW 0x0900
    214 #define GL_DECR 0x1E03
    215 #define GL_DECR_WRAP 0x8508
    216 #define GL_DELETE_STATUS 0x8B80
    217 #define GL_DEPTH_ATTACHMENT 0x8D00
    218 #define GL_DEPTH_BITS 0x0D56
    219 #define GL_DEPTH_BUFFER_BIT 0x00000100
    220 #define GL_DEPTH_CLEAR_VALUE 0x0B73
    221 #define GL_DEPTH_COMPONENT 0x1902
    222 #define GL_DEPTH_COMPONENT16 0x81A5
    223 #define GL_DEPTH_FUNC 0x0B74
    224 #define GL_DEPTH_RANGE 0x0B70
    225 #define GL_DEPTH_TEST 0x0B71
    226 #define GL_DEPTH_WRITEMASK 0x0B72
    227 #define GL_DITHER 0x0BD0
    228 #define GL_DONT_CARE 0x1100
    229 #define GL_DST_ALPHA 0x0304
    230 #define GL_DST_COLOR 0x0306
    231 #define GL_DYNAMIC_DRAW 0x88E8
    232 #define GL_ELEMENT_ARRAY_BUFFER 0x8893
    233 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
    234 #define GL_EQUAL 0x0202
    235 #define GL_EXTENSIONS 0x1F03
    236 #define GL_FALSE 0
    237 #define GL_FASTEST 0x1101
    238 #define GL_FIXED 0x140C
    239 #define GL_FLOAT 0x1406
    240 #define GL_FLOAT_MAT2 0x8B5A
    241 #define GL_FLOAT_MAT3 0x8B5B
    242 #define GL_FLOAT_MAT4 0x8B5C
    243 #define GL_FLOAT_VEC2 0x8B50
    244 #define GL_FLOAT_VEC3 0x8B51
    245 #define GL_FLOAT_VEC4 0x8B52
    246 #define GL_FRAGMENT_SHADER 0x8B30
    247 #define GL_FRAMEBUFFER 0x8D40
    248 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
    249 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
    250 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
    251 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
    252 #define GL_FRAMEBUFFER_BINDING 0x8CA6
    253 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
    254 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
    255 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
    256 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
    257 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
    258 #define GL_FRONT 0x0404
    259 #define GL_FRONT_AND_BACK 0x0408
    260 #define GL_FRONT_FACE 0x0B46
    261 #define GL_FUNC_ADD 0x8006
    262 #define GL_FUNC_REVERSE_SUBTRACT 0x800B
    263 #define GL_FUNC_SUBTRACT 0x800A
    264 #define GL_GENERATE_MIPMAP_HINT 0x8192
    265 #define GL_GEQUAL 0x0206
    266 #define GL_GREATER 0x0204
    267 #define GL_GREEN_BITS 0x0D53
    268 #define GL_HIGH_FLOAT 0x8DF2
    269 #define GL_HIGH_INT 0x8DF5
    270 #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
    271 #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
    272 #define GL_INCR 0x1E02
    273 #define GL_INCR_WRAP 0x8507
    274 #define GL_INFO_LOG_LENGTH 0x8B84
    275 #define GL_INT 0x1404
    276 #define GL_INT_VEC2 0x8B53
    277 #define GL_INT_VEC3 0x8B54
    278 #define GL_INT_VEC4 0x8B55
    279 #define GL_INVALID_ENUM 0x0500
    280 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
    281 #define GL_INVALID_OPERATION 0x0502
    282 #define GL_INVALID_VALUE 0x0501
    283 #define GL_INVERT 0x150A
    284 #define GL_KEEP 0x1E00
    285 #define GL_LEQUAL 0x0203
    286 #define GL_LESS 0x0201
    287 #define GL_LINEAR 0x2601
    288 #define GL_LINEAR_MIPMAP_LINEAR 0x2703
    289 #define GL_LINEAR_MIPMAP_NEAREST 0x2701
    290 #define GL_LINES 0x0001
    291 #define GL_LINE_LOOP 0x0002
    292 #define GL_LINE_STRIP 0x0003
    293 #define GL_LINE_WIDTH 0x0B21
    294 #define GL_LINK_STATUS 0x8B82
    295 #define GL_LOW_FLOAT 0x8DF0
    296 #define GL_LOW_INT 0x8DF3
    297 #define GL_LUMINANCE 0x1909
    298 #define GL_LUMINANCE_ALPHA 0x190A
    299 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
    300 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
    301 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
    302 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8
    303 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
    304 #define GL_MAX_TEXTURE_SIZE 0x0D33
    305 #define GL_MAX_VARYING_VECTORS 0x8DFC
    306 #define GL_MAX_VERTEX_ATTRIBS 0x8869
    307 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
    308 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
    309 #define GL_MAX_VIEWPORT_DIMS 0x0D3A
    310 #define GL_MEDIUM_FLOAT 0x8DF1
    311 #define GL_MEDIUM_INT 0x8DF4
    312 #define GL_MIRRORED_REPEAT 0x8370
    313 #define GL_NEAREST 0x2600
    314 #define GL_NEAREST_MIPMAP_LINEAR 0x2702
    315 #define GL_NEAREST_MIPMAP_NEAREST 0x2700
    316 #define GL_NEVER 0x0200
    317 #define GL_NICEST 0x1102
    318 #define GL_NONE 0
    319 #define GL_NOTEQUAL 0x0205
    320 #define GL_NO_ERROR 0
    321 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
    322 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
    323 #define GL_ONE 1
    324 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
    325 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
    326 #define GL_ONE_MINUS_DST_ALPHA 0x0305
    327 #define GL_ONE_MINUS_DST_COLOR 0x0307
    328 #define GL_ONE_MINUS_SRC_ALPHA 0x0303
    329 #define GL_ONE_MINUS_SRC_COLOR 0x0301
    330 #define GL_OUT_OF_MEMORY 0x0505
    331 #define GL_PACK_ALIGNMENT 0x0D05
    332 #define GL_POINTS 0x0000
    333 #define GL_POLYGON_OFFSET_FACTOR 0x8038
    334 #define GL_POLYGON_OFFSET_FILL 0x8037
    335 #define GL_POLYGON_OFFSET_UNITS 0x2A00
    336 #define GL_RED_BITS 0x0D52
    337 #define GL_RENDERBUFFER 0x8D41
    338 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
    339 #define GL_RENDERBUFFER_BINDING 0x8CA7
    340 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
    341 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
    342 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
    343 #define GL_RENDERBUFFER_HEIGHT 0x8D43
    344 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
    345 #define GL_RENDERBUFFER_RED_SIZE 0x8D50
    346 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
    347 #define GL_RENDERBUFFER_WIDTH 0x8D42
    348 #define GL_RENDERER 0x1F01
    349 #define GL_REPEAT 0x2901
    350 #define GL_REPLACE 0x1E01
    351 #define GL_RGB 0x1907
    352 #define GL_RGB565 0x8D62
    353 #define GL_RGB5_A1 0x8057
    354 #define GL_RGBA 0x1908
    355 #define GL_RGBA4 0x8056
    356 #define GL_SAMPLER_2D 0x8B5E
    357 #define GL_SAMPLER_CUBE 0x8B60
    358 #define GL_SAMPLES 0x80A9
    359 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
    360 #define GL_SAMPLE_BUFFERS 0x80A8
    361 #define GL_SAMPLE_COVERAGE 0x80A0
    362 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
    363 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
    364 #define GL_SCISSOR_BOX 0x0C10
    365 #define GL_SCISSOR_TEST 0x0C11
    366 #define GL_SHADER_BINARY_FORMATS 0x8DF8
    367 #define GL_SHADER_COMPILER 0x8DFA
    368 #define GL_SHADER_SOURCE_LENGTH 0x8B88
    369 #define GL_SHADER_TYPE 0x8B4F
    370 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
    371 #define GL_SHORT 0x1402
    372 #define GL_SRC_ALPHA 0x0302
    373 #define GL_SRC_ALPHA_SATURATE 0x0308
    374 #define GL_SRC_COLOR 0x0300
    375 #define GL_STATIC_DRAW 0x88E4
    376 #define GL_STENCIL_ATTACHMENT 0x8D20
    377 #define GL_STENCIL_BACK_FAIL 0x8801
    378 #define GL_STENCIL_BACK_FUNC 0x8800
    379 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
    380 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
    381 #define GL_STENCIL_BACK_REF 0x8CA3
    382 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
    383 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5
    384 #define GL_STENCIL_BITS 0x0D57
    385 #define GL_STENCIL_BUFFER_BIT 0x00000400
    386 #define GL_STENCIL_CLEAR_VALUE 0x0B91
    387 #define GL_STENCIL_FAIL 0x0B94
    388 #define GL_STENCIL_FUNC 0x0B92
    389 #define GL_STENCIL_INDEX8 0x8D48
    390 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
    391 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
    392 #define GL_STENCIL_REF 0x0B97
    393 #define GL_STENCIL_TEST 0x0B90
    394 #define GL_STENCIL_VALUE_MASK 0x0B93
    395 #define GL_STENCIL_WRITEMASK 0x0B98
    396 #define GL_STREAM_DRAW 0x88E0
    397 #define GL_SUBPIXEL_BITS 0x0D50
    398 #define GL_TEXTURE 0x1702
    399 #define GL_TEXTURE0 0x84C0
    400 #define GL_TEXTURE1 0x84C1
    401 #define GL_TEXTURE10 0x84CA
    402 #define GL_TEXTURE11 0x84CB
    403 #define GL_TEXTURE12 0x84CC
    404 #define GL_TEXTURE13 0x84CD
    405 #define GL_TEXTURE14 0x84CE
    406 #define GL_TEXTURE15 0x84CF
    407 #define GL_TEXTURE16 0x84D0
    408 #define GL_TEXTURE17 0x84D1
    409 #define GL_TEXTURE18 0x84D2
    410 #define GL_TEXTURE19 0x84D3
    411 #define GL_TEXTURE2 0x84C2
    412 #define GL_TEXTURE20 0x84D4
    413 #define GL_TEXTURE21 0x84D5
    414 #define GL_TEXTURE22 0x84D6
    415 #define GL_TEXTURE23 0x84D7
    416 #define GL_TEXTURE24 0x84D8
    417 #define GL_TEXTURE25 0x84D9
    418 #define GL_TEXTURE26 0x84DA
    419 #define GL_TEXTURE27 0x84DB
    420 #define GL_TEXTURE28 0x84DC
    421 #define GL_TEXTURE29 0x84DD
    422 #define GL_TEXTURE3 0x84C3
    423 #define GL_TEXTURE30 0x84DE
    424 #define GL_TEXTURE31 0x84DF
    425 #define GL_TEXTURE4 0x84C4
    426 #define GL_TEXTURE5 0x84C5
    427 #define GL_TEXTURE6 0x84C6
    428 #define GL_TEXTURE7 0x84C7
    429 #define GL_TEXTURE8 0x84C8
    430 #define GL_TEXTURE9 0x84C9
    431 #define GL_TEXTURE_2D 0x0DE1
    432 #define GL_TEXTURE_BINDING_2D 0x8069
    433 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
    434 #define GL_TEXTURE_CUBE_MAP 0x8513
    435 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
    436 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
    437 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
    438 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
    439 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
    440 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
    441 #define GL_TEXTURE_MAG_FILTER 0x2800
    442 #define GL_TEXTURE_MIN_FILTER 0x2801
    443 #define GL_TEXTURE_WRAP_S 0x2802
    444 #define GL_TEXTURE_WRAP_T 0x2803
    445 #define GL_TRIANGLES 0x0004
    446 #define GL_TRIANGLE_FAN 0x0006
    447 #define GL_TRIANGLE_STRIP 0x0005
    448 #define GL_TRUE 1
    449 #define GL_UNPACK_ALIGNMENT 0x0CF5
    450 #define GL_UNSIGNED_BYTE 0x1401
    451 #define GL_UNSIGNED_INT 0x1405
    452 #define GL_UNSIGNED_SHORT 0x1403
    453 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
    454 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
    455 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
    456 #define GL_VALIDATE_STATUS 0x8B83
    457 #define GL_VENDOR 0x1F00
    458 #define GL_VERSION 0x1F02
    459 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
    460 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
    461 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
    462 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
    463 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
    464 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
    465 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
    466 #define GL_VERTEX_SHADER 0x8B31
    467 #define GL_VIEWPORT 0x0BA2
    468 #define GL_ZERO 0
    469 
    470 
    471 #ifndef __khrplatform_h_
    472 #define __khrplatform_h_
    473 
    474 /*
    475 ** Copyright (c) 2008-2018 The Khronos Group Inc.
    476 **
    477 ** Permission is hereby granted, free of charge, to any person obtaining a
    478 ** copy of this software and/or associated documentation files (the
    479 ** "Materials"), to deal in the Materials without restriction, including
    480 ** without limitation the rights to use, copy, modify, merge, publish,
    481 ** distribute, sublicense, and/or sell copies of the Materials, and to
    482 ** permit persons to whom the Materials are furnished to do so, subject to
    483 ** the following conditions:
    484 **
    485 ** The above copyright notice and this permission notice shall be included
    486 ** in all copies or substantial portions of the Materials.
    487 **
    488 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    489 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    490 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    491 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    492 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    493 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    494 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    495 */
    496 
    497 /* Khronos platform-specific types and definitions.
    498  *
    499  * The master copy of khrplatform.h is maintained in the Khronos EGL
    500  * Registry repository at https://github.com/KhronosGroup/EGL-Registry
    501  * The last semantic modification to khrplatform.h was at commit ID:
    502  *      67a3e0864c2d75ea5287b9f3d2eb74a745936692
    503  *
    504  * Adopters may modify this file to suit their platform. Adopters are
    505  * encouraged to submit platform specific modifications to the Khronos
    506  * group so that they can be included in future versions of this file.
    507  * Please submit changes by filing pull requests or issues on
    508  * the EGL Registry repository linked above.
    509  *
    510  *
    511  * See the Implementer's Guidelines for information about where this file
    512  * should be located on your system and for more details of its use:
    513  *    http://www.khronos.org/registry/implementers_guide.pdf
    514  *
    515  * This file should be included as
    516  *        #include <KHR/khrplatform.h>
    517  * by Khronos client API header files that use its types and defines.
    518  *
    519  * The types in khrplatform.h should only be used to define API-specific types.
    520  *
    521  * Types defined in khrplatform.h:
    522  *    khronos_int8_t              signed   8  bit
    523  *    khronos_uint8_t             unsigned 8  bit
    524  *    khronos_int16_t             signed   16 bit
    525  *    khronos_uint16_t            unsigned 16 bit
    526  *    khronos_int32_t             signed   32 bit
    527  *    khronos_uint32_t            unsigned 32 bit
    528  *    khronos_int64_t             signed   64 bit
    529  *    khronos_uint64_t            unsigned 64 bit
    530  *    khronos_intptr_t            signed   same number of bits as a pointer
    531  *    khronos_uintptr_t           unsigned same number of bits as a pointer
    532  *    khronos_ssize_t             signed   size
    533  *    khronos_usize_t             unsigned size
    534  *    khronos_float_t             signed   32 bit floating point
    535  *    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
    536  *    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
    537  *                                         nanoseconds
    538  *    khronos_stime_nanoseconds_t signed time interval in nanoseconds
    539  *    khronos_boolean_enum_t      enumerated boolean type. This should
    540  *      only be used as a base type when a client API's boolean type is
    541  *      an enum. Client APIs which use an integer or other type for
    542  *      booleans cannot use this as the base type for their boolean.
    543  *
    544  * Tokens defined in khrplatform.h:
    545  *
    546  *    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
    547  *
    548  *    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
    549  *    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
    550  *
    551  * Calling convention macros defined in this file:
    552  *    KHRONOS_APICALL
    553  *    KHRONOS_GLAD_API_PTR
    554  *    KHRONOS_APIATTRIBUTES
    555  *
    556  * These may be used in function prototypes as:
    557  *
    558  *      KHRONOS_APICALL void KHRONOS_GLAD_API_PTR funcname(
    559  *                                  int arg1,
    560  *                                  int arg2) KHRONOS_APIATTRIBUTES;
    561  */
    562 
    563 #if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
    564 #   define KHRONOS_STATIC 1
    565 #endif
    566 
    567 /*-------------------------------------------------------------------------
    568  * Definition of KHRONOS_APICALL
    569  *-------------------------------------------------------------------------
    570  * This precedes the return type of the function in the function prototype.
    571  */
    572 #if defined(KHRONOS_STATIC)
    573     /* If the preprocessor constant KHRONOS_STATIC is defined, make the
    574      * header compatible with static linking. */
    575 #   define KHRONOS_APICALL
    576 #elif defined(_WIN32)
    577 #   define KHRONOS_APICALL __declspec(dllimport)
    578 #elif defined (__SYMBIAN32__)
    579 #   define KHRONOS_APICALL IMPORT_C
    580 #elif defined(__ANDROID__)
    581 #   define KHRONOS_APICALL __attribute__((visibility("default")))
    582 #else
    583 #   define KHRONOS_APICALL
    584 #endif
    585 
    586 /*-------------------------------------------------------------------------
    587  * Definition of KHRONOS_GLAD_API_PTR
    588  *-------------------------------------------------------------------------
    589  * This follows the return type of the function  and precedes the function
    590  * name in the function prototype.
    591  */
    592 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
    593     /* Win32 but not WinCE */
    594 #   define KHRONOS_GLAD_API_PTR __stdcall
    595 #else
    596 #   define KHRONOS_GLAD_API_PTR
    597 #endif
    598 
    599 /*-------------------------------------------------------------------------
    600  * Definition of KHRONOS_APIATTRIBUTES
    601  *-------------------------------------------------------------------------
    602  * This follows the closing parenthesis of the function prototype arguments.
    603  */
    604 #if defined (__ARMCC_2__)
    605 #define KHRONOS_APIATTRIBUTES __softfp
    606 #else
    607 #define KHRONOS_APIATTRIBUTES
    608 #endif
    609 
    610 /*-------------------------------------------------------------------------
    611  * basic type definitions
    612  *-----------------------------------------------------------------------*/
    613 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
    614 
    615 
    616 /*
    617  * Using <stdint.h>
    618  */
    619 #include <stdint.h>
    620 typedef int32_t                 khronos_int32_t;
    621 typedef uint32_t                khronos_uint32_t;
    622 typedef int64_t                 khronos_int64_t;
    623 typedef uint64_t                khronos_uint64_t;
    624 #define KHRONOS_SUPPORT_INT64   1
    625 #define KHRONOS_SUPPORT_FLOAT   1
    626 
    627 #elif defined(__VMS ) || defined(__sgi)
    628 
    629 /*
    630  * Using <inttypes.h>
    631  */
    632 #include <inttypes.h>
    633 typedef int32_t                 khronos_int32_t;
    634 typedef uint32_t                khronos_uint32_t;
    635 typedef int64_t                 khronos_int64_t;
    636 typedef uint64_t                khronos_uint64_t;
    637 #define KHRONOS_SUPPORT_INT64   1
    638 #define KHRONOS_SUPPORT_FLOAT   1
    639 
    640 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
    641 
    642 /*
    643  * Win32
    644  */
    645 typedef __int32                 khronos_int32_t;
    646 typedef unsigned __int32        khronos_uint32_t;
    647 typedef __int64                 khronos_int64_t;
    648 typedef unsigned __int64        khronos_uint64_t;
    649 #define KHRONOS_SUPPORT_INT64   1
    650 #define KHRONOS_SUPPORT_FLOAT   1
    651 
    652 #elif defined(__sun__) || defined(__digital__)
    653 
    654 /*
    655  * Sun or Digital
    656  */
    657 typedef int                     khronos_int32_t;
    658 typedef unsigned int            khronos_uint32_t;
    659 #if defined(__arch64__) || defined(_LP64)
    660 typedef long int                khronos_int64_t;
    661 typedef unsigned long int       khronos_uint64_t;
    662 #else
    663 typedef long long int           khronos_int64_t;
    664 typedef unsigned long long int  khronos_uint64_t;
    665 #endif /* __arch64__ */
    666 #define KHRONOS_SUPPORT_INT64   1
    667 #define KHRONOS_SUPPORT_FLOAT   1
    668 
    669 #elif 0
    670 
    671 /*
    672  * Hypothetical platform with no float or int64 support
    673  */
    674 typedef int                     khronos_int32_t;
    675 typedef unsigned int            khronos_uint32_t;
    676 #define KHRONOS_SUPPORT_INT64   0
    677 #define KHRONOS_SUPPORT_FLOAT   0
    678 
    679 #else
    680 
    681 /*
    682  * Generic fallback
    683  */
    684 #include <stdint.h>
    685 typedef int32_t                 khronos_int32_t;
    686 typedef uint32_t                khronos_uint32_t;
    687 typedef int64_t                 khronos_int64_t;
    688 typedef uint64_t                khronos_uint64_t;
    689 #define KHRONOS_SUPPORT_INT64   1
    690 #define KHRONOS_SUPPORT_FLOAT   1
    691 
    692 #endif
    693 
    694 
    695 /*
    696  * Types that are (so far) the same on all platforms
    697  */
    698 typedef signed   char          khronos_int8_t;
    699 typedef unsigned char          khronos_uint8_t;
    700 typedef signed   short int     khronos_int16_t;
    701 typedef unsigned short int     khronos_uint16_t;
    702 
    703 /*
    704  * Types that differ between LLP64 and LP64 architectures - in LLP64,
    705  * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
    706  * to be the only LLP64 architecture in current use.
    707  */
    708 #ifdef _WIN64
    709 typedef signed   long long int khronos_intptr_t;
    710 typedef unsigned long long int khronos_uintptr_t;
    711 typedef signed   long long int khronos_ssize_t;
    712 typedef unsigned long long int khronos_usize_t;
    713 #else
    714 typedef signed   long  int     khronos_intptr_t;
    715 typedef unsigned long  int     khronos_uintptr_t;
    716 typedef signed   long  int     khronos_ssize_t;
    717 typedef unsigned long  int     khronos_usize_t;
    718 #endif
    719 
    720 #if KHRONOS_SUPPORT_FLOAT
    721 /*
    722  * Float type
    723  */
    724 typedef          float         khronos_float_t;
    725 #endif
    726 
    727 #if KHRONOS_SUPPORT_INT64
    728 /* Time types
    729  *
    730  * These types can be used to represent a time interval in nanoseconds or
    731  * an absolute Unadjusted System Time.  Unadjusted System Time is the number
    732  * of nanoseconds since some arbitrary system event (e.g. since the last
    733  * time the system booted).  The Unadjusted System Time is an unsigned
    734  * 64 bit value that wraps back to 0 every 584 years.  Time intervals
    735  * may be either signed or unsigned.
    736  */
    737 typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
    738 typedef khronos_int64_t        khronos_stime_nanoseconds_t;
    739 #endif
    740 
    741 /*
    742  * Dummy value used to pad enum types to 32 bits.
    743  */
    744 #ifndef KHRONOS_MAX_ENUM
    745 #define KHRONOS_MAX_ENUM 0x7FFFFFFF
    746 #endif
    747 
    748 /*
    749  * Enumerated boolean type
    750  *
    751  * Values other than zero should be considered to be true.  Therefore
    752  * comparisons should not be made against KHRONOS_TRUE.
    753  */
    754 typedef enum {
    755     KHRONOS_FALSE = 0,
    756     KHRONOS_TRUE  = 1,
    757     KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
    758 } khronos_boolean_enum_t;
    759 
    760 #endif /* __khrplatform_h_ */
    761 
    762 typedef unsigned int GLenum;
    763 
    764 typedef unsigned char GLboolean;
    765 
    766 typedef unsigned int GLbitfield;
    767 
    768 typedef void GLvoid;
    769 
    770 typedef khronos_int8_t GLbyte;
    771 
    772 typedef khronos_uint8_t GLubyte;
    773 
    774 typedef khronos_int16_t GLshort;
    775 
    776 typedef khronos_uint16_t GLushort;
    777 
    778 typedef int GLint;
    779 
    780 typedef unsigned int GLuint;
    781 
    782 typedef khronos_int32_t GLclampx;
    783 
    784 typedef int GLsizei;
    785 
    786 typedef khronos_float_t GLfloat;
    787 
    788 typedef khronos_float_t GLclampf;
    789 
    790 typedef double GLdouble;
    791 
    792 typedef double GLclampd;
    793 
    794 typedef void *GLeglClientBufferEXT;
    795 
    796 typedef void *GLeglImageOES;
    797 
    798 typedef char GLchar;
    799 
    800 typedef char GLcharARB;
    801 
    802 #ifdef __APPLE__
    803 typedef void *GLhandleARB;
    804 #else
    805 typedef unsigned int GLhandleARB;
    806 #endif
    807 
    808 typedef khronos_uint16_t GLhalf;
    809 
    810 typedef khronos_uint16_t GLhalfARB;
    811 
    812 typedef khronos_int32_t GLfixed;
    813 
    814 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
    815 typedef khronos_intptr_t GLintptr;
    816 #else
    817 typedef khronos_intptr_t GLintptr;
    818 #endif
    819 
    820 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
    821 typedef khronos_intptr_t GLintptrARB;
    822 #else
    823 typedef khronos_intptr_t GLintptrARB;
    824 #endif
    825 
    826 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
    827 typedef khronos_ssize_t GLsizeiptr;
    828 #else
    829 typedef khronos_ssize_t GLsizeiptr;
    830 #endif
    831 
    832 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
    833 typedef khronos_ssize_t GLsizeiptrARB;
    834 #else
    835 typedef khronos_ssize_t GLsizeiptrARB;
    836 #endif
    837 
    838 typedef khronos_int64_t GLint64;
    839 
    840 typedef khronos_int64_t GLint64EXT;
    841 
    842 typedef khronos_uint64_t GLuint64;
    843 
    844 typedef khronos_uint64_t GLuint64EXT;
    845 
    846 typedef struct __GLsync *GLsync;
    847 
    848 struct _cl_context;
    849 
    850 struct _cl_event;
    851 
    852 typedef void (GLAD_API_PTR *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
    853 
    854 typedef void (GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
    855 
    856 typedef void (GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
    857 
    858 typedef void (GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
    859 
    860 typedef unsigned short GLhalfNV;
    861 
    862 typedef GLintptr GLvdpauSurfaceNV;
    863 
    864 typedef void (GLAD_API_PTR *GLVULKANPROCNV)(void);
    865 
    866 
    867 
    868 #define GL_ES_VERSION_2_0 1
    869 GLAD_API_CALL int GLAD_GL_ES_VERSION_2_0;
    870 
    871 
    872 typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
    873 typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
    874 typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name);
    875 typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
    876 typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
    877 typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
    878 typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
    879 typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
    880 typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
    881 typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
    882 typedef void (GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
    883 typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
    884 typedef void (GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
    885 typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
    886 typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
    887 typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
    888 typedef void (GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
    889 typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d);
    890 typedef void (GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
    891 typedef void (GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
    892 typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
    893 typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
    894 typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
    895 typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
    896 typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    897 typedef GLuint (GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
    898 typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
    899 typedef void (GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
    900 typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers);
    901 typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers);
    902 typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
    903 typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers);
    904 typedef void (GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
    905 typedef void (GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures);
    906 typedef void (GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
    907 typedef void (GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
    908 typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
    909 typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
    910 typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
    911 typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
    912 typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
    913 typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
    914 typedef void (GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
    915 typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
    916 typedef void (GLAD_API_PTR *PFNGLFINISHPROC)(void);
    917 typedef void (GLAD_API_PTR *PFNGLFLUSHPROC)(void);
    918 typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
    919 typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
    920 typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
    921 typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers);
    922 typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
    923 typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
    924 typedef void (GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures);
    925 typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
    926 typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
    927 typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
    928 typedef void (GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
    929 typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name);
    930 typedef void (GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data);
    931 typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
    932 typedef GLenum (GLAD_API_PTR *PFNGLGETERRORPROC)(void);
    933 typedef void (GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data);
    934 typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
    935 typedef void (GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data);
    936 typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
    937 typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params);
    938 typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
    939 typedef void (GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
    940 typedef void (GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
    941 typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
    942 typedef void (GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params);
    943 typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
    944 typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
    945 typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
    946 typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name);
    947 typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params);
    948 typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params);
    949 typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer);
    950 typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params);
    951 typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params);
    952 typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
    953 typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
    954 typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
    955 typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
    956 typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
    957 typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
    958 typedef GLboolean (GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
    959 typedef GLboolean (GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
    960 typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
    961 typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
    962 typedef void (GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
    963 typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
    964 typedef void (GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
    965 typedef void (GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void);
    966 typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
    967 typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
    968 typedef void (GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
    969 typedef void (GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length);
    970 typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
    971 typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
    972 typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
    973 typedef void (GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
    974 typedef void (GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
    975 typedef void (GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
    976 typedef void (GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
    977 typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
    978 typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
    979 typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
    980 typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
    981 typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
    982 typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
    983 typedef void (GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
    984 typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value);
    985 typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
    986 typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value);
    987 typedef void (GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
    988 typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value);
    989 typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
    990 typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value);
    991 typedef void (GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
    992 typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value);
    993 typedef void (GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
    994 typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value);
    995 typedef void (GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
    996 typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value);
    997 typedef void (GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
    998 typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value);
    999 typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
   1000 typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
   1001 typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
   1002 typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
   1003 typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
   1004 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
   1005 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v);
   1006 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
   1007 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v);
   1008 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
   1009 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v);
   1010 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
   1011 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v);
   1012 typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
   1013 typedef void (GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
   1014 
   1015 GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
   1016 #define glActiveTexture glad_glActiveTexture
   1017 GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader;
   1018 #define glAttachShader glad_glAttachShader
   1019 GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
   1020 #define glBindAttribLocation glad_glBindAttribLocation
   1021 GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer;
   1022 #define glBindBuffer glad_glBindBuffer
   1023 GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
   1024 #define glBindFramebuffer glad_glBindFramebuffer
   1025 GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
   1026 #define glBindRenderbuffer glad_glBindRenderbuffer
   1027 GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture;
   1028 #define glBindTexture glad_glBindTexture
   1029 GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor;
   1030 #define glBlendColor glad_glBlendColor
   1031 GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
   1032 #define glBlendEquation glad_glBlendEquation
   1033 GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
   1034 #define glBlendEquationSeparate glad_glBlendEquationSeparate
   1035 GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc;
   1036 #define glBlendFunc glad_glBlendFunc
   1037 GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
   1038 #define glBlendFuncSeparate glad_glBlendFuncSeparate
   1039 GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData;
   1040 #define glBufferData glad_glBufferData
   1041 GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
   1042 #define glBufferSubData glad_glBufferSubData
   1043 GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
   1044 #define glCheckFramebufferStatus glad_glCheckFramebufferStatus
   1045 GLAD_API_CALL PFNGLCLEARPROC glad_glClear;
   1046 #define glClear glad_glClear
   1047 GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor;
   1048 #define glClearColor glad_glClearColor
   1049 GLAD_API_CALL PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
   1050 #define glClearDepthf glad_glClearDepthf
   1051 GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil;
   1052 #define glClearStencil glad_glClearStencil
   1053 GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask;
   1054 #define glColorMask glad_glColorMask
   1055 GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader;
   1056 #define glCompileShader glad_glCompileShader
   1057 GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
   1058 #define glCompressedTexImage2D glad_glCompressedTexImage2D
   1059 GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
   1060 #define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
   1061 GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
   1062 #define glCopyTexImage2D glad_glCopyTexImage2D
   1063 GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
   1064 #define glCopyTexSubImage2D glad_glCopyTexSubImage2D
   1065 GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
   1066 #define glCreateProgram glad_glCreateProgram
   1067 GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader;
   1068 #define glCreateShader glad_glCreateShader
   1069 GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace;
   1070 #define glCullFace glad_glCullFace
   1071 GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
   1072 #define glDeleteBuffers glad_glDeleteBuffers
   1073 GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
   1074 #define glDeleteFramebuffers glad_glDeleteFramebuffers
   1075 GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
   1076 #define glDeleteProgram glad_glDeleteProgram
   1077 GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
   1078 #define glDeleteRenderbuffers glad_glDeleteRenderbuffers
   1079 GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader;
   1080 #define glDeleteShader glad_glDeleteShader
   1081 GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
   1082 #define glDeleteTextures glad_glDeleteTextures
   1083 GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc;
   1084 #define glDepthFunc glad_glDepthFunc
   1085 GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask;
   1086 #define glDepthMask glad_glDepthMask
   1087 GLAD_API_CALL PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
   1088 #define glDepthRangef glad_glDepthRangef
   1089 GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader;
   1090 #define glDetachShader glad_glDetachShader
   1091 GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable;
   1092 #define glDisable glad_glDisable
   1093 GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
   1094 #define glDisableVertexAttribArray glad_glDisableVertexAttribArray
   1095 GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays;
   1096 #define glDrawArrays glad_glDrawArrays
   1097 GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements;
   1098 #define glDrawElements glad_glDrawElements
   1099 GLAD_API_CALL PFNGLENABLEPROC glad_glEnable;
   1100 #define glEnable glad_glEnable
   1101 GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
   1102 #define glEnableVertexAttribArray glad_glEnableVertexAttribArray
   1103 GLAD_API_CALL PFNGLFINISHPROC glad_glFinish;
   1104 #define glFinish glad_glFinish
   1105 GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush;
   1106 #define glFlush glad_glFlush
   1107 GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
   1108 #define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
   1109 GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
   1110 #define glFramebufferTexture2D glad_glFramebufferTexture2D
   1111 GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace;
   1112 #define glFrontFace glad_glFrontFace
   1113 GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers;
   1114 #define glGenBuffers glad_glGenBuffers
   1115 GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
   1116 #define glGenFramebuffers glad_glGenFramebuffers
   1117 GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
   1118 #define glGenRenderbuffers glad_glGenRenderbuffers
   1119 GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures;
   1120 #define glGenTextures glad_glGenTextures
   1121 GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
   1122 #define glGenerateMipmap glad_glGenerateMipmap
   1123 GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
   1124 #define glGetActiveAttrib glad_glGetActiveAttrib
   1125 GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
   1126 #define glGetActiveUniform glad_glGetActiveUniform
   1127 GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
   1128 #define glGetAttachedShaders glad_glGetAttachedShaders
   1129 GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
   1130 #define glGetAttribLocation glad_glGetAttribLocation
   1131 GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
   1132 #define glGetBooleanv glad_glGetBooleanv
   1133 GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
   1134 #define glGetBufferParameteriv glad_glGetBufferParameteriv
   1135 GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError;
   1136 #define glGetError glad_glGetError
   1137 GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv;
   1138 #define glGetFloatv glad_glGetFloatv
   1139 GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
   1140 #define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
   1141 GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv;
   1142 #define glGetIntegerv glad_glGetIntegerv
   1143 GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
   1144 #define glGetProgramInfoLog glad_glGetProgramInfoLog
   1145 GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
   1146 #define glGetProgramiv glad_glGetProgramiv
   1147 GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
   1148 #define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
   1149 GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
   1150 #define glGetShaderInfoLog glad_glGetShaderInfoLog
   1151 GLAD_API_CALL PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
   1152 #define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat
   1153 GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
   1154 #define glGetShaderSource glad_glGetShaderSource
   1155 GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv;
   1156 #define glGetShaderiv glad_glGetShaderiv
   1157 GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString;
   1158 #define glGetString glad_glGetString
   1159 GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
   1160 #define glGetTexParameterfv glad_glGetTexParameterfv
   1161 GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
   1162 #define glGetTexParameteriv glad_glGetTexParameteriv
   1163 GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
   1164 #define glGetUniformLocation glad_glGetUniformLocation
   1165 GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
   1166 #define glGetUniformfv glad_glGetUniformfv
   1167 GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
   1168 #define glGetUniformiv glad_glGetUniformiv
   1169 GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
   1170 #define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
   1171 GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
   1172 #define glGetVertexAttribfv glad_glGetVertexAttribfv
   1173 GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
   1174 #define glGetVertexAttribiv glad_glGetVertexAttribiv
   1175 GLAD_API_CALL PFNGLHINTPROC glad_glHint;
   1176 #define glHint glad_glHint
   1177 GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer;
   1178 #define glIsBuffer glad_glIsBuffer
   1179 GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled;
   1180 #define glIsEnabled glad_glIsEnabled
   1181 GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
   1182 #define glIsFramebuffer glad_glIsFramebuffer
   1183 GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram;
   1184 #define glIsProgram glad_glIsProgram
   1185 GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
   1186 #define glIsRenderbuffer glad_glIsRenderbuffer
   1187 GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader;
   1188 #define glIsShader glad_glIsShader
   1189 GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture;
   1190 #define glIsTexture glad_glIsTexture
   1191 GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth;
   1192 #define glLineWidth glad_glLineWidth
   1193 GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram;
   1194 #define glLinkProgram glad_glLinkProgram
   1195 GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei;
   1196 #define glPixelStorei glad_glPixelStorei
   1197 GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
   1198 #define glPolygonOffset glad_glPolygonOffset
   1199 GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels;
   1200 #define glReadPixels glad_glReadPixels
   1201 GLAD_API_CALL PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
   1202 #define glReleaseShaderCompiler glad_glReleaseShaderCompiler
   1203 GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
   1204 #define glRenderbufferStorage glad_glRenderbufferStorage
   1205 GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
   1206 #define glSampleCoverage glad_glSampleCoverage
   1207 GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor;
   1208 #define glScissor glad_glScissor
   1209 GLAD_API_CALL PFNGLSHADERBINARYPROC glad_glShaderBinary;
   1210 #define glShaderBinary glad_glShaderBinary
   1211 GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource;
   1212 #define glShaderSource glad_glShaderSource
   1213 GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc;
   1214 #define glStencilFunc glad_glStencilFunc
   1215 GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
   1216 #define glStencilFuncSeparate glad_glStencilFuncSeparate
   1217 GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask;
   1218 #define glStencilMask glad_glStencilMask
   1219 GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
   1220 #define glStencilMaskSeparate glad_glStencilMaskSeparate
   1221 GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp;
   1222 #define glStencilOp glad_glStencilOp
   1223 GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
   1224 #define glStencilOpSeparate glad_glStencilOpSeparate
   1225 GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
   1226 #define glTexImage2D glad_glTexImage2D
   1227 GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
   1228 #define glTexParameterf glad_glTexParameterf
   1229 GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
   1230 #define glTexParameterfv glad_glTexParameterfv
   1231 GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
   1232 #define glTexParameteri glad_glTexParameteri
   1233 GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
   1234 #define glTexParameteriv glad_glTexParameteriv
   1235 GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
   1236 #define glTexSubImage2D glad_glTexSubImage2D
   1237 GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f;
   1238 #define glUniform1f glad_glUniform1f
   1239 GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv;
   1240 #define glUniform1fv glad_glUniform1fv
   1241 GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i;
   1242 #define glUniform1i glad_glUniform1i
   1243 GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv;
   1244 #define glUniform1iv glad_glUniform1iv
   1245 GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f;
   1246 #define glUniform2f glad_glUniform2f
   1247 GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv;
   1248 #define glUniform2fv glad_glUniform2fv
   1249 GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i;
   1250 #define glUniform2i glad_glUniform2i
   1251 GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv;
   1252 #define glUniform2iv glad_glUniform2iv
   1253 GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f;
   1254 #define glUniform3f glad_glUniform3f
   1255 GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv;
   1256 #define glUniform3fv glad_glUniform3fv
   1257 GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i;
   1258 #define glUniform3i glad_glUniform3i
   1259 GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv;
   1260 #define glUniform3iv glad_glUniform3iv
   1261 GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f;
   1262 #define glUniform4f glad_glUniform4f
   1263 GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv;
   1264 #define glUniform4fv glad_glUniform4fv
   1265 GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i;
   1266 #define glUniform4i glad_glUniform4i
   1267 GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv;
   1268 #define glUniform4iv glad_glUniform4iv
   1269 GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
   1270 #define glUniformMatrix2fv glad_glUniformMatrix2fv
   1271 GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
   1272 #define glUniformMatrix3fv glad_glUniformMatrix3fv
   1273 GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
   1274 #define glUniformMatrix4fv glad_glUniformMatrix4fv
   1275 GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram;
   1276 #define glUseProgram glad_glUseProgram
   1277 GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
   1278 #define glValidateProgram glad_glValidateProgram
   1279 GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
   1280 #define glVertexAttrib1f glad_glVertexAttrib1f
   1281 GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
   1282 #define glVertexAttrib1fv glad_glVertexAttrib1fv
   1283 GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
   1284 #define glVertexAttrib2f glad_glVertexAttrib2f
   1285 GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
   1286 #define glVertexAttrib2fv glad_glVertexAttrib2fv
   1287 GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
   1288 #define glVertexAttrib3f glad_glVertexAttrib3f
   1289 GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
   1290 #define glVertexAttrib3fv glad_glVertexAttrib3fv
   1291 GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
   1292 #define glVertexAttrib4f glad_glVertexAttrib4f
   1293 GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
   1294 #define glVertexAttrib4fv glad_glVertexAttrib4fv
   1295 GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
   1296 #define glVertexAttribPointer glad_glVertexAttribPointer
   1297 GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport;
   1298 #define glViewport glad_glViewport
   1299 
   1300 
   1301 
   1302 
   1303 
   1304 GLAD_API_CALL int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr);
   1305 GLAD_API_CALL int gladLoadGLES2( GLADloadfunc load);
   1306 
   1307 
   1308 
   1309 #ifdef __cplusplus
   1310 }
   1311 #endif
   1312 #endif
   1313 
   1314 /* Source */
   1315 #ifdef GLAD_GLES2_IMPLEMENTATION
   1316 #include <stdio.h>
   1317 #include <stdlib.h>
   1318 #include <string.h>
   1319 
   1320 #ifndef GLAD_IMPL_UTIL_C_
   1321 #define GLAD_IMPL_UTIL_C_
   1322 
   1323 #ifdef _MSC_VER
   1324 #define GLAD_IMPL_UTIL_SSCANF sscanf_s
   1325 #else
   1326 #define GLAD_IMPL_UTIL_SSCANF sscanf
   1327 #endif
   1328 
   1329 #endif /* GLAD_IMPL_UTIL_C_ */
   1330 
   1331 #ifdef __cplusplus
   1332 extern "C" {
   1333 #endif
   1334 
   1335 
   1336 
   1337 int GLAD_GL_ES_VERSION_2_0 = 0;
   1338 
   1339 
   1340 
   1341 PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
   1342 PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
   1343 PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
   1344 PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
   1345 PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
   1346 PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
   1347 PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
   1348 PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
   1349 PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
   1350 PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
   1351 PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
   1352 PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
   1353 PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
   1354 PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
   1355 PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
   1356 PFNGLCLEARPROC glad_glClear = NULL;
   1357 PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
   1358 PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL;
   1359 PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
   1360 PFNGLCOLORMASKPROC glad_glColorMask = NULL;
   1361 PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
   1362 PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
   1363 PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
   1364 PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
   1365 PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
   1366 PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
   1367 PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
   1368 PFNGLCULLFACEPROC glad_glCullFace = NULL;
   1369 PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
   1370 PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
   1371 PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
   1372 PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
   1373 PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
   1374 PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
   1375 PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
   1376 PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
   1377 PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL;
   1378 PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
   1379 PFNGLDISABLEPROC glad_glDisable = NULL;
   1380 PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
   1381 PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
   1382 PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
   1383 PFNGLENABLEPROC glad_glEnable = NULL;
   1384 PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
   1385 PFNGLFINISHPROC glad_glFinish = NULL;
   1386 PFNGLFLUSHPROC glad_glFlush = NULL;
   1387 PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
   1388 PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
   1389 PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
   1390 PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
   1391 PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
   1392 PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
   1393 PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
   1394 PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
   1395 PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
   1396 PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
   1397 PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
   1398 PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
   1399 PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
   1400 PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
   1401 PFNGLGETERRORPROC glad_glGetError = NULL;
   1402 PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
   1403 PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
   1404 PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
   1405 PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
   1406 PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
   1407 PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
   1408 PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
   1409 PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL;
   1410 PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
   1411 PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
   1412 PFNGLGETSTRINGPROC glad_glGetString = NULL;
   1413 PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
   1414 PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
   1415 PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
   1416 PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
   1417 PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
   1418 PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
   1419 PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
   1420 PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
   1421 PFNGLHINTPROC glad_glHint = NULL;
   1422 PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
   1423 PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
   1424 PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
   1425 PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
   1426 PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
   1427 PFNGLISSHADERPROC glad_glIsShader = NULL;
   1428 PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
   1429 PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
   1430 PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
   1431 PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
   1432 PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
   1433 PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
   1434 PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL;
   1435 PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
   1436 PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
   1437 PFNGLSCISSORPROC glad_glScissor = NULL;
   1438 PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL;
   1439 PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
   1440 PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
   1441 PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
   1442 PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
   1443 PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
   1444 PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
   1445 PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
   1446 PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
   1447 PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
   1448 PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
   1449 PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
   1450 PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
   1451 PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
   1452 PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
   1453 PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
   1454 PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
   1455 PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
   1456 PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
   1457 PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
   1458 PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
   1459 PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
   1460 PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
   1461 PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
   1462 PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
   1463 PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
   1464 PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
   1465 PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
   1466 PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
   1467 PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
   1468 PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
   1469 PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
   1470 PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
   1471 PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
   1472 PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
   1473 PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
   1474 PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
   1475 PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
   1476 PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
   1477 PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
   1478 PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
   1479 PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
   1480 PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
   1481 PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
   1482 PFNGLVIEWPORTPROC glad_glViewport = NULL;
   1483 
   1484 
   1485 static void glad_gl_load_GL_ES_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) {
   1486     if(!GLAD_GL_ES_VERSION_2_0) return;
   1487     glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture");
   1488     glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader");
   1489     glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation");
   1490     glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer");
   1491     glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer");
   1492     glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer");
   1493     glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture");
   1494     glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor");
   1495     glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation");
   1496     glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate");
   1497     glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc");
   1498     glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate");
   1499     glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData");
   1500     glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData");
   1501     glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus");
   1502     glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear");
   1503     glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor");
   1504     glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf");
   1505     glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil");
   1506     glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask");
   1507     glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader");
   1508     glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D");
   1509     glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D");
   1510     glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D");
   1511     glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D");
   1512     glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram");
   1513     glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader");
   1514     glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace");
   1515     glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers");
   1516     glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers");
   1517     glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram");
   1518     glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers");
   1519     glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader");
   1520     glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures");
   1521     glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc");
   1522     glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask");
   1523     glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef");
   1524     glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader");
   1525     glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable");
   1526     glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray");
   1527     glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays");
   1528     glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements");
   1529     glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable");
   1530     glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray");
   1531     glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish");
   1532     glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush");
   1533     glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer");
   1534     glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D");
   1535     glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace");
   1536     glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers");
   1537     glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers");
   1538     glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers");
   1539     glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures");
   1540     glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap");
   1541     glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib");
   1542     glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform");
   1543     glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders");
   1544     glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation");
   1545     glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv");
   1546     glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv");
   1547     glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError");
   1548     glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv");
   1549     glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv");
   1550     glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv");
   1551     glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog");
   1552     glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv");
   1553     glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv");
   1554     glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog");
   1555     glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat");
   1556     glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource");
   1557     glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv");
   1558     glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
   1559     glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv");
   1560     glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv");
   1561     glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation");
   1562     glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv");
   1563     glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv");
   1564     glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv");
   1565     glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv");
   1566     glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv");
   1567     glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint");
   1568     glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer");
   1569     glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled");
   1570     glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer");
   1571     glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram");
   1572     glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer");
   1573     glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader");
   1574     glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture");
   1575     glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth");
   1576     glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram");
   1577     glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei");
   1578     glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset");
   1579     glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels");
   1580     glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler");
   1581     glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage");
   1582     glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage");
   1583     glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor");
   1584     glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary");
   1585     glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource");
   1586     glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc");
   1587     glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate");
   1588     glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask");
   1589     glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate");
   1590     glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp");
   1591     glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate");
   1592     glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D");
   1593     glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf");
   1594     glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv");
   1595     glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri");
   1596     glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv");
   1597     glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D");
   1598     glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f");
   1599     glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv");
   1600     glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i");
   1601     glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv");
   1602     glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f");
   1603     glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv");
   1604     glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i");
   1605     glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv");
   1606     glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f");
   1607     glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv");
   1608     glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i");
   1609     glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv");
   1610     glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f");
   1611     glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv");
   1612     glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i");
   1613     glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv");
   1614     glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv");
   1615     glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv");
   1616     glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv");
   1617     glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram");
   1618     glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram");
   1619     glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f");
   1620     glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv");
   1621     glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f");
   1622     glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv");
   1623     glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f");
   1624     glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv");
   1625     glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f");
   1626     glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv");
   1627     glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer");
   1628     glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport");
   1629 }
   1630 
   1631 
   1632 
   1633 #if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
   1634 #define GLAD_GL_IS_SOME_NEW_VERSION 1
   1635 #else
   1636 #define GLAD_GL_IS_SOME_NEW_VERSION 0
   1637 #endif
   1638 
   1639 static int glad_gl_get_extensions( int version, const char **out_exts, unsigned int *out_num_exts_i, char ***out_exts_i) {
   1640 #if GLAD_GL_IS_SOME_NEW_VERSION
   1641     if(GLAD_VERSION_MAJOR(version) < 3) {
   1642 #else
   1643     (void) version;
   1644     (void) out_num_exts_i;
   1645     (void) out_exts_i;
   1646 #endif
   1647         if (glad_glGetString == NULL) {
   1648             return 0;
   1649         }
   1650         *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS);
   1651 #if GLAD_GL_IS_SOME_NEW_VERSION
   1652     } else {
   1653         unsigned int index = 0;
   1654         unsigned int num_exts_i = 0;
   1655         char **exts_i = NULL;
   1656         if (glad_glGetStringi == NULL || glad_glGetIntegerv == NULL) {
   1657             return 0;
   1658         }
   1659         glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i);
   1660         if (num_exts_i > 0) {
   1661             exts_i = (char **) malloc(num_exts_i * (sizeof *exts_i));
   1662         }
   1663         if (exts_i == NULL) {
   1664             return 0;
   1665         }
   1666         for(index = 0; index < num_exts_i; index++) {
   1667             const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index);
   1668             size_t len = strlen(gl_str_tmp) + 1;
   1669 
   1670             char *local_str = (char*) malloc(len * sizeof(char));
   1671             if(local_str != NULL) {
   1672                 memcpy(local_str, gl_str_tmp, len * sizeof(char));
   1673             }
   1674 
   1675             exts_i[index] = local_str;
   1676         }
   1677 
   1678         *out_num_exts_i = num_exts_i;
   1679         *out_exts_i = exts_i;
   1680     }
   1681 #endif
   1682     return 1;
   1683 }
   1684 static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) {
   1685     if (exts_i != NULL) {
   1686         unsigned int index;
   1687         for(index = 0; index < num_exts_i; index++) {
   1688             free((void *) (exts_i[index]));
   1689         }
   1690         free((void *)exts_i);
   1691         exts_i = NULL;
   1692     }
   1693 }
   1694 static int glad_gl_has_extension(int version, const char *exts, unsigned int num_exts_i, char **exts_i, const char *ext) {
   1695     if(GLAD_VERSION_MAJOR(version) < 3 || !GLAD_GL_IS_SOME_NEW_VERSION) {
   1696         const char *extensions;
   1697         const char *loc;
   1698         const char *terminator;
   1699         extensions = exts;
   1700         if(extensions == NULL || ext == NULL) {
   1701             return 0;
   1702         }
   1703         while(1) {
   1704             loc = strstr(extensions, ext);
   1705             if(loc == NULL) {
   1706                 return 0;
   1707             }
   1708             terminator = loc + strlen(ext);
   1709             if((loc == extensions || *(loc - 1) == ' ') &&
   1710                 (*terminator == ' ' || *terminator == '\0')) {
   1711                 return 1;
   1712             }
   1713             extensions = terminator;
   1714         }
   1715     } else {
   1716         unsigned int index;
   1717         for(index = 0; index < num_exts_i; index++) {
   1718             const char *e = exts_i[index];
   1719             if(strcmp(e, ext) == 0) {
   1720                 return 1;
   1721             }
   1722         }
   1723     }
   1724     return 0;
   1725 }
   1726 
   1727 static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) {
   1728     return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
   1729 }
   1730 
   1731 static int glad_gl_find_extensions_gles2( int version) {
   1732     const char *exts = NULL;
   1733     unsigned int num_exts_i = 0;
   1734     char **exts_i = NULL;
   1735     if (!glad_gl_get_extensions(version, &exts, &num_exts_i, &exts_i)) return 0;
   1736 
   1737     (void) glad_gl_has_extension;
   1738 
   1739     glad_gl_free_extensions(exts_i, num_exts_i);
   1740 
   1741     return 1;
   1742 }
   1743 
   1744 static int glad_gl_find_core_gles2(void) {
   1745     int i;
   1746     const char* version;
   1747     const char* prefixes[] = {
   1748         "OpenGL ES-CM ",
   1749         "OpenGL ES-CL ",
   1750         "OpenGL ES ",
   1751         "OpenGL SC ",
   1752         NULL
   1753     };
   1754     int major = 0;
   1755     int minor = 0;
   1756     version = (const char*) glad_glGetString(GL_VERSION);
   1757     if (!version) return 0;
   1758     for (i = 0;  prefixes[i];  i++) {
   1759         const size_t length = strlen(prefixes[i]);
   1760         if (strncmp(version, prefixes[i], length) == 0) {
   1761             version += length;
   1762             break;
   1763         }
   1764     }
   1765 
   1766     GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
   1767 
   1768     GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
   1769 
   1770     return GLAD_MAKE_VERSION(major, minor);
   1771 }
   1772 
   1773 int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr) {
   1774     int version;
   1775 
   1776     glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
   1777     if(glad_glGetString == NULL) return 0;
   1778     if(glad_glGetString(GL_VERSION) == NULL) return 0;
   1779     version = glad_gl_find_core_gles2();
   1780 
   1781     glad_gl_load_GL_ES_VERSION_2_0(load, userptr);
   1782 
   1783     if (!glad_gl_find_extensions_gles2(version)) return 0;
   1784 
   1785 
   1786 
   1787     return version;
   1788 }
   1789 
   1790 
   1791 int gladLoadGLES2( GLADloadfunc load) {
   1792     return gladLoadGLES2UserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
   1793 }
   1794 
   1795 
   1796 
   1797  
   1798 
   1799 
   1800 #ifdef __cplusplus
   1801 }
   1802 #endif
   1803 
   1804 #endif /* GLAD_GLES2_IMPLEMENTATION */
   1805