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
glad_gl_load_GL_ES_VERSION_2_0(GLADuserptrloadfunc load,void * userptr)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
glad_gl_get_extensions(int version,const char ** out_exts,unsigned int * out_num_exts_i,char *** out_exts_i)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 }
glad_gl_free_extensions(char ** exts_i,unsigned int num_exts_i)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 }
glad_gl_has_extension(int version,const char * exts,unsigned int num_exts_i,char ** exts_i,const char * ext)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
glad_gl_get_proc_from_userptr(void * userptr,const char * name)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
glad_gl_find_extensions_gles2(int version)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
glad_gl_find_core_gles2(void)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
gladLoadGLES2UserPtr(GLADuserptrloadfunc load,void * userptr)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
gladLoadGLES2(GLADloadfunc load)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
1806