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