diff --git a/.gitignore b/.gitignore index 5524392..c9fb766 100644 --- a/.gitignore +++ b/.gitignore @@ -18,13 +18,16 @@ build Debug/* scripts/__pycache__ -src/gles_api.json + +src/wasmbind/gles_api.json src/bindgen_core_api.c src/bindgen_gles_api.c -sdk/io_stubs.c -sdk/orca_surface.c -sdk/gl31.h +src/graphics/glsl_shaders.h +src/io_stubs.c +src/orca_surface.c +src/graphics/orca_gl31.h *bind_gen.c +*_stubs.c gles_gen.log .vscode/launch.json @@ -32,3 +35,5 @@ gles_gen.log __pycache__ scripts/files + +ext/angle \ No newline at end of file diff --git a/cstdlib/include/assert.h b/cstdlib/include/assert.h deleted file mode 100644 index d14ec94..0000000 --- a/cstdlib/include/assert.h +++ /dev/null @@ -1,23 +0,0 @@ -#include - -#undef assert - -#ifdef NDEBUG -#define assert(x) (void)0 -#else -#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0))) -#endif - -#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus) -#define static_assert _Static_assert -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_Noreturn void __assert_fail (const char *, const char *, int, const char *); - -#ifdef __cplusplus -} -#endif diff --git a/cstdlib/include/stdio.h b/cstdlib/include/stdio.h deleted file mode 100644 index 53a3f35..0000000 --- a/cstdlib/include/stdio.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _STDIO_H -#define _STDIO_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct _IO_FILE { char __x; }; -typedef struct _IO_FILE FILE; - -extern FILE *const stdin; -extern FILE *const stdout; -extern FILE *const stderr; - -#define stdin (stdin) -#define stdout (stdout) -#define stderr (stderr) - -int fprintf(FILE *__restrict, const char *__restrict, ...); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/cstdlib/include/string.h b/cstdlib/include/string.h deleted file mode 100644 index e69de29..0000000 diff --git a/cstdlib/src/abort.c b/cstdlib/src/abort.c deleted file mode 100644 index 73c342a..0000000 --- a/cstdlib/src/abort.c +++ /dev/null @@ -1,6 +0,0 @@ -// NOTE(orca): This is a clang intrinsic. I hope it generates a wasm unreachable. I have not verified this. -// TODO(orca): Verify this. -_Noreturn void abort(void) -{ - __builtin_unreachable(); -} diff --git a/cstdlib/src/assert.c b/cstdlib/src/assert.c deleted file mode 100644 index 5c7cc9a..0000000 --- a/cstdlib/src/assert.c +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include - -_Noreturn void __assert_fail(const char *expr, const char *file, int line, const char *func) -{ - // TODO(orca) - // fprintf(stderr, "Assertion failed: %s (%s: %s: %d)\n", expr, file, func, line); - abort(); -} diff --git a/cstdlib/src/fprintf.c b/cstdlib/src/fprintf.c deleted file mode 100644 index d6a9fc0..0000000 --- a/cstdlib/src/fprintf.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -// #include -#include - -int fprintf(FILE *restrict f, const char *restrict fmt, ...) -{ - // TODO(orca) - abort(); - - // int ret; - // va_list ap; - // va_start(ap, fmt); - // ret = vfprintf(f, fmt, ap); - // va_end(ap); - // return ret; -} diff --git a/milepost/ext/GL/glcorearb.h b/ext/GL/glcorearb.h similarity index 100% rename from milepost/ext/GL/glcorearb.h rename to ext/GL/glcorearb.h diff --git a/milepost/ext/GL/glext.h b/ext/GL/glext.h similarity index 100% rename from milepost/ext/GL/glext.h rename to ext/GL/glext.h diff --git a/milepost/ext/GL/wglext.h b/ext/GL/wglext.h similarity index 100% rename from milepost/ext/GL/wglext.h rename to ext/GL/wglext.h diff --git a/milepost/ext/KHR/khrplatform.h b/ext/KHR/khrplatform.h similarity index 100% rename from milepost/ext/KHR/khrplatform.h rename to ext/KHR/khrplatform.h diff --git a/milepost/ext/gl.xml b/ext/gl.xml similarity index 100% rename from milepost/ext/gl.xml rename to ext/gl.xml diff --git a/milepost/ext/stb_image.h b/ext/stb/stb_image.h similarity index 100% rename from milepost/ext/stb_image.h rename to ext/stb/stb_image.h diff --git a/milepost/ext/stb_sprintf.h b/ext/stb/stb_sprintf.h similarity index 100% rename from milepost/ext/stb_sprintf.h rename to ext/stb/stb_sprintf.h diff --git a/milepost/ext/stb_truetype.h b/ext/stb/stb_truetype.h similarity index 100% rename from milepost/ext/stb_truetype.h rename to ext/stb/stb_truetype.h diff --git a/milepost/.gitignore b/milepost/.gitignore deleted file mode 100644 index 4efd5e4..0000000 --- a/milepost/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -.DS_Store -*.dSYM -bin -build -*.metallib - -*.pdb -*.exe -*.ilk -*.vs -*.obj -*.lib -*.dll -*.sln - -Debug/* -src/glsl_shaders.h -scripts/__pycache__ \ No newline at end of file diff --git a/milepost/ext/GLES3/gl3.h b/milepost/ext/GLES3/gl3.h deleted file mode 100644 index eaf5efd..0000000 --- a/milepost/ext/GLES3/gl3.h +++ /dev/null @@ -1,1192 +0,0 @@ -#ifndef __gles2_gl3_h_ -#define __gles2_gl3_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20220530 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.0 - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/GLES3/gl31.h b/milepost/ext/GLES3/gl31.h deleted file mode 100644 index 502d6fe..0000000 --- a/milepost/ext/GLES3/gl31.h +++ /dev/null @@ -1,1507 +0,0 @@ -#ifndef __gles2_gl31_h_ -#define __gles2_gl31_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20191013 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[01] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/GLES3/gl32.h b/milepost/ext/GLES3/gl32.h deleted file mode 100644 index ae56b0e..0000000 --- a/milepost/ext/GLES3/gl32.h +++ /dev/null @@ -1,1808 +0,0 @@ -#ifndef __gles2_gl32_h_ -#define __gles2_gl32_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20191013 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[012] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifndef GL_ES_VERSION_3_2 -#define GL_ES_VERSION_3_2 1 -typedef void (GL_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_MULTISAMPLE_LINE_WIDTH_RANGE 0x9381 -#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY 0x9382 -#define GL_MULTIPLY 0x9294 -#define GL_SCREEN 0x9295 -#define GL_OVERLAY 0x9296 -#define GL_DARKEN 0x9297 -#define GL_LIGHTEN 0x9298 -#define GL_COLORDODGE 0x9299 -#define GL_COLORBURN 0x929A -#define GL_HARDLIGHT 0x929B -#define GL_SOFTLIGHT 0x929C -#define GL_DIFFERENCE 0x929E -#define GL_EXCLUSION 0x92A0 -#define GL_HSL_HUE 0x92AD -#define GL_HSL_SATURATION 0x92AE -#define GL_HSL_COLOR 0x92AF -#define GL_HSL_LUMINOSITY 0x92B0 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_PRIMITIVE_BOUNDING_BOX 0x92BE -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 -#define GL_CONTEXT_FLAGS 0x821E -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_CONTEXT_LOST 0x0507 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_QUADS 0x0007 -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERPROC) (void); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrier (void); -GL_APICALL void GL_APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroup (void); -GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glEnablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnabledi (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBox (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatus (void); -GL_APICALL void GL_APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GL_APICALL void GL_APIENTRY glMinSampleShading (GLfloat value); -GL_APICALL void GL_APIENTRY glPatchParameteri (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_ES_VERSION_3_2 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/GLES3/gl3platform.h b/milepost/ext/GLES3/gl3platform.h deleted file mode 100644 index 8699212..0000000 --- a/milepost/ext/GLES3/gl3platform.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __gl3platform_h_ -#define __gl3platform_h_ - -/* -** Copyright 2017-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for OpenGL ES 3.X gl3.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * Please contribute modifications back to Khronos as pull requests on the - * public github repository: - * https://github.com/KhronosGroup/OpenGL-Registry - */ - -#include - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl3platform_h_ */ diff --git a/milepost/ext/angle_headers/CL/.clang-format b/milepost/ext/angle_headers/CL/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/CL/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/CL/README.md b/milepost/ext/angle_headers/CL/README.md deleted file mode 100644 index 99b5456..0000000 --- a/milepost/ext/angle_headers/CL/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# ANGLE OpenCL Headers - -The OpenCL headers ANGLE uses are the original headers from Khronos. - -### Updating headers - -1. Clone [https://github.com/KhronosGroup/OpenCL-Headers.git](https://github.com/KhronosGroup/OpenCL-Headers.git). -1. Inspect the differences between all headers from `OpenCL-Headers/CL/` and this folder. - * Changes of supported enums have to be updated in `src/common/packed_cl_enums.json`. - * Changes of supported entry points have to be updated in `src/libGLESv2/cl_stubs.cpp`. -1. Copy all headers from `OpenCL-Headers/CL/` over to this folder. diff --git a/milepost/ext/angle_headers/CL/cl.h b/milepost/ext/angle_headers/CL/cl.h deleted file mode 100644 index 0018a0f..0000000 --- a/milepost/ext/angle_headers/CL/cl.h +++ /dev/null @@ -1,1929 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_H -#define __OPENCL_CL_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/******************************************************************************/ - -typedef struct _cl_platform_id * cl_platform_id; -typedef struct _cl_device_id * cl_device_id; -typedef struct _cl_context * cl_context; -typedef struct _cl_command_queue * cl_command_queue; -typedef struct _cl_mem * cl_mem; -typedef struct _cl_program * cl_program; -typedef struct _cl_kernel * cl_kernel; -typedef struct _cl_event * cl_event; -typedef struct _cl_sampler * cl_sampler; - -typedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */ -typedef cl_ulong cl_bitfield; -typedef cl_ulong cl_properties; -typedef cl_bitfield cl_device_type; -typedef cl_uint cl_platform_info; -typedef cl_uint cl_device_info; -typedef cl_bitfield cl_device_fp_config; -typedef cl_uint cl_device_mem_cache_type; -typedef cl_uint cl_device_local_mem_type; -typedef cl_bitfield cl_device_exec_capabilities; -#ifdef CL_VERSION_2_0 -typedef cl_bitfield cl_device_svm_capabilities; -#endif -typedef cl_bitfield cl_command_queue_properties; -#ifdef CL_VERSION_1_2 -typedef intptr_t cl_device_partition_property; -typedef cl_bitfield cl_device_affinity_domain; -#endif - -typedef intptr_t cl_context_properties; -typedef cl_uint cl_context_info; -#ifdef CL_VERSION_2_0 -typedef cl_properties cl_queue_properties; -#endif -typedef cl_uint cl_command_queue_info; -typedef cl_uint cl_channel_order; -typedef cl_uint cl_channel_type; -typedef cl_bitfield cl_mem_flags; -#ifdef CL_VERSION_2_0 -typedef cl_bitfield cl_svm_mem_flags; -#endif -typedef cl_uint cl_mem_object_type; -typedef cl_uint cl_mem_info; -#ifdef CL_VERSION_1_2 -typedef cl_bitfield cl_mem_migration_flags; -#endif -typedef cl_uint cl_image_info; -#ifdef CL_VERSION_1_1 -typedef cl_uint cl_buffer_create_type; -#endif -typedef cl_uint cl_addressing_mode; -typedef cl_uint cl_filter_mode; -typedef cl_uint cl_sampler_info; -typedef cl_bitfield cl_map_flags; -#ifdef CL_VERSION_2_0 -typedef intptr_t cl_pipe_properties; -typedef cl_uint cl_pipe_info; -#endif -typedef cl_uint cl_program_info; -typedef cl_uint cl_program_build_info; -#ifdef CL_VERSION_1_2 -typedef cl_uint cl_program_binary_type; -#endif -typedef cl_int cl_build_status; -typedef cl_uint cl_kernel_info; -#ifdef CL_VERSION_1_2 -typedef cl_uint cl_kernel_arg_info; -typedef cl_uint cl_kernel_arg_address_qualifier; -typedef cl_uint cl_kernel_arg_access_qualifier; -typedef cl_bitfield cl_kernel_arg_type_qualifier; -#endif -typedef cl_uint cl_kernel_work_group_info; -#ifdef CL_VERSION_2_1 -typedef cl_uint cl_kernel_sub_group_info; -#endif -typedef cl_uint cl_event_info; -typedef cl_uint cl_command_type; -typedef cl_uint cl_profiling_info; -#ifdef CL_VERSION_2_0 -typedef cl_properties cl_sampler_properties; -typedef cl_uint cl_kernel_exec_info; -#endif -#ifdef CL_VERSION_3_0 -typedef cl_bitfield cl_device_atomic_capabilities; -typedef cl_bitfield cl_device_device_enqueue_capabilities; -typedef cl_uint cl_khronos_vendor_id; -typedef cl_properties cl_mem_properties; -typedef cl_uint cl_version; -#endif - -typedef struct _cl_image_format { - cl_channel_order image_channel_order; - cl_channel_type image_channel_data_type; -} cl_image_format; - -#ifdef CL_VERSION_1_2 - -typedef struct _cl_image_desc { - cl_mem_object_type image_type; - size_t image_width; - size_t image_height; - size_t image_depth; - size_t image_array_size; - size_t image_row_pitch; - size_t image_slice_pitch; - cl_uint num_mip_levels; - cl_uint num_samples; -#ifdef CL_VERSION_2_0 -#if defined(__GNUC__) - __extension__ /* Prevents warnings about anonymous union in -pedantic builds */ -#endif -#if defined(_MSC_VER) && !defined(__STDC__) -#pragma warning( push ) -#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 builds */ -#endif -#if defined(_MSC_VER) && defined(__STDC__) - /* Anonymous unions are not supported in /Za builds */ -#else - union { -#endif -#endif - cl_mem buffer; -#ifdef CL_VERSION_2_0 -#if defined(_MSC_VER) && defined(__STDC__) - /* Anonymous unions are not supported in /Za builds */ -#else - cl_mem mem_object; - }; -#endif -#if defined(_MSC_VER) && !defined(__STDC__) -#pragma warning( pop ) -#endif -#endif -} cl_image_desc; - -#endif - -#ifdef CL_VERSION_1_1 - -typedef struct _cl_buffer_region { - size_t origin; - size_t size; -} cl_buffer_region; - -#endif - -#ifdef CL_VERSION_3_0 - -#define CL_NAME_VERSION_MAX_NAME_SIZE 64 - -typedef struct _cl_name_version { - cl_version version; - char name[CL_NAME_VERSION_MAX_NAME_SIZE]; -} cl_name_version; - -#endif - -/******************************************************************************/ - -/* Error Codes */ -#define CL_SUCCESS 0 -#define CL_DEVICE_NOT_FOUND -1 -#define CL_DEVICE_NOT_AVAILABLE -2 -#define CL_COMPILER_NOT_AVAILABLE -3 -#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4 -#define CL_OUT_OF_RESOURCES -5 -#define CL_OUT_OF_HOST_MEMORY -6 -#define CL_PROFILING_INFO_NOT_AVAILABLE -7 -#define CL_MEM_COPY_OVERLAP -8 -#define CL_IMAGE_FORMAT_MISMATCH -9 -#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10 -#define CL_BUILD_PROGRAM_FAILURE -11 -#define CL_MAP_FAILURE -12 -#ifdef CL_VERSION_1_1 -#define CL_MISALIGNED_SUB_BUFFER_OFFSET -13 -#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14 -#endif -#ifdef CL_VERSION_1_2 -#define CL_COMPILE_PROGRAM_FAILURE -15 -#define CL_LINKER_NOT_AVAILABLE -16 -#define CL_LINK_PROGRAM_FAILURE -17 -#define CL_DEVICE_PARTITION_FAILED -18 -#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19 -#endif - -#define CL_INVALID_VALUE -30 -#define CL_INVALID_DEVICE_TYPE -31 -#define CL_INVALID_PLATFORM -32 -#define CL_INVALID_DEVICE -33 -#define CL_INVALID_CONTEXT -34 -#define CL_INVALID_QUEUE_PROPERTIES -35 -#define CL_INVALID_COMMAND_QUEUE -36 -#define CL_INVALID_HOST_PTR -37 -#define CL_INVALID_MEM_OBJECT -38 -#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39 -#define CL_INVALID_IMAGE_SIZE -40 -#define CL_INVALID_SAMPLER -41 -#define CL_INVALID_BINARY -42 -#define CL_INVALID_BUILD_OPTIONS -43 -#define CL_INVALID_PROGRAM -44 -#define CL_INVALID_PROGRAM_EXECUTABLE -45 -#define CL_INVALID_KERNEL_NAME -46 -#define CL_INVALID_KERNEL_DEFINITION -47 -#define CL_INVALID_KERNEL -48 -#define CL_INVALID_ARG_INDEX -49 -#define CL_INVALID_ARG_VALUE -50 -#define CL_INVALID_ARG_SIZE -51 -#define CL_INVALID_KERNEL_ARGS -52 -#define CL_INVALID_WORK_DIMENSION -53 -#define CL_INVALID_WORK_GROUP_SIZE -54 -#define CL_INVALID_WORK_ITEM_SIZE -55 -#define CL_INVALID_GLOBAL_OFFSET -56 -#define CL_INVALID_EVENT_WAIT_LIST -57 -#define CL_INVALID_EVENT -58 -#define CL_INVALID_OPERATION -59 -#define CL_INVALID_GL_OBJECT -60 -#define CL_INVALID_BUFFER_SIZE -61 -#define CL_INVALID_MIP_LEVEL -62 -#define CL_INVALID_GLOBAL_WORK_SIZE -63 -#ifdef CL_VERSION_1_1 -#define CL_INVALID_PROPERTY -64 -#endif -#ifdef CL_VERSION_1_2 -#define CL_INVALID_IMAGE_DESCRIPTOR -65 -#define CL_INVALID_COMPILER_OPTIONS -66 -#define CL_INVALID_LINKER_OPTIONS -67 -#define CL_INVALID_DEVICE_PARTITION_COUNT -68 -#endif -#ifdef CL_VERSION_2_0 -#define CL_INVALID_PIPE_SIZE -69 -#define CL_INVALID_DEVICE_QUEUE -70 -#endif -#ifdef CL_VERSION_2_2 -#define CL_INVALID_SPEC_ID -71 -#define CL_MAX_SIZE_RESTRICTION_EXCEEDED -72 -#endif - - -/* cl_bool */ -#define CL_FALSE 0 -#define CL_TRUE 1 -#ifdef CL_VERSION_1_2 -#define CL_BLOCKING CL_TRUE -#define CL_NON_BLOCKING CL_FALSE -#endif - -/* cl_platform_info */ -#define CL_PLATFORM_PROFILE 0x0900 -#define CL_PLATFORM_VERSION 0x0901 -#define CL_PLATFORM_NAME 0x0902 -#define CL_PLATFORM_VENDOR 0x0903 -#define CL_PLATFORM_EXTENSIONS 0x0904 -#ifdef CL_VERSION_2_1 -#define CL_PLATFORM_HOST_TIMER_RESOLUTION 0x0905 -#endif -#ifdef CL_VERSION_3_0 -#define CL_PLATFORM_NUMERIC_VERSION 0x0906 -#define CL_PLATFORM_EXTENSIONS_WITH_VERSION 0x0907 -#endif - -/* cl_device_type - bitfield */ -#define CL_DEVICE_TYPE_DEFAULT (1 << 0) -#define CL_DEVICE_TYPE_CPU (1 << 1) -#define CL_DEVICE_TYPE_GPU (1 << 2) -#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) -#ifdef CL_VERSION_1_2 -#define CL_DEVICE_TYPE_CUSTOM (1 << 4) -#endif -#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF - -/* cl_device_info */ -#define CL_DEVICE_TYPE 0x1000 -#define CL_DEVICE_VENDOR_ID 0x1001 -#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 -#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003 -#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004 -#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005 -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006 -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007 -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008 -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009 -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B -#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C -#define CL_DEVICE_ADDRESS_BITS 0x100D -#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E -#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F -#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010 -#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011 -#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012 -#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013 -#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014 -#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015 -#define CL_DEVICE_IMAGE_SUPPORT 0x1016 -#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017 -#define CL_DEVICE_MAX_SAMPLERS 0x1018 -#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019 -#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A -#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B -#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C -#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D -#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E -#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F -#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020 -#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021 -#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022 -#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023 -#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024 -#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025 -#define CL_DEVICE_ENDIAN_LITTLE 0x1026 -#define CL_DEVICE_AVAILABLE 0x1027 -#define CL_DEVICE_COMPILER_AVAILABLE 0x1028 -#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029 -#define CL_DEVICE_QUEUE_PROPERTIES 0x102A /* deprecated */ -#ifdef CL_VERSION_2_0 -#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES 0x102A -#endif -#define CL_DEVICE_NAME 0x102B -#define CL_DEVICE_VENDOR 0x102C -#define CL_DRIVER_VERSION 0x102D -#define CL_DEVICE_PROFILE 0x102E -#define CL_DEVICE_VERSION 0x102F -#define CL_DEVICE_EXTENSIONS 0x1030 -#define CL_DEVICE_PLATFORM 0x1031 -#ifdef CL_VERSION_1_2 -#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 -#endif -/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG which is already defined in "cl_ext.h" */ -#ifdef CL_VERSION_1_1 -#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034 -#define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035 /* deprecated */ -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036 -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037 -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038 -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039 -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B -#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C -#define CL_DEVICE_OPENCL_C_VERSION 0x103D -#endif -#ifdef CL_VERSION_1_2 -#define CL_DEVICE_LINKER_AVAILABLE 0x103E -#define CL_DEVICE_BUILT_IN_KERNELS 0x103F -#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040 -#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041 -#define CL_DEVICE_PARENT_DEVICE 0x1042 -#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043 -#define CL_DEVICE_PARTITION_PROPERTIES 0x1044 -#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045 -#define CL_DEVICE_PARTITION_TYPE 0x1046 -#define CL_DEVICE_REFERENCE_COUNT 0x1047 -#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048 -#define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049 -#endif -#ifdef CL_VERSION_2_0 -#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A -#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B -#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS 0x104C -#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE 0x104D -#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES 0x104E -#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE 0x104F -#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE 0x1050 -#define CL_DEVICE_MAX_ON_DEVICE_QUEUES 0x1051 -#define CL_DEVICE_MAX_ON_DEVICE_EVENTS 0x1052 -#define CL_DEVICE_SVM_CAPABILITIES 0x1053 -#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE 0x1054 -#define CL_DEVICE_MAX_PIPE_ARGS 0x1055 -#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS 0x1056 -#define CL_DEVICE_PIPE_MAX_PACKET_SIZE 0x1057 -#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT 0x1058 -#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT 0x1059 -#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT 0x105A -#endif -#ifdef CL_VERSION_2_1 -#define CL_DEVICE_IL_VERSION 0x105B -#define CL_DEVICE_MAX_NUM_SUB_GROUPS 0x105C -#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D -#endif -#ifdef CL_VERSION_3_0 -#define CL_DEVICE_NUMERIC_VERSION 0x105E -#define CL_DEVICE_EXTENSIONS_WITH_VERSION 0x1060 -#define CL_DEVICE_ILS_WITH_VERSION 0x1061 -#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION 0x1062 -#define CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES 0x1063 -#define CL_DEVICE_ATOMIC_FENCE_CAPABILITIES 0x1064 -#define CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT 0x1065 -#define CL_DEVICE_OPENCL_C_ALL_VERSIONS 0x1066 -#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x1067 -#define CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT 0x1068 -#define CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT 0x1069 -/* 0x106A to 0x106E - Reserved for upcoming KHR extension */ -#define CL_DEVICE_OPENCL_C_FEATURES 0x106F -#define CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES 0x1070 -#define CL_DEVICE_PIPE_SUPPORT 0x1071 -#define CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED 0x1072 -#endif - -/* cl_device_fp_config - bitfield */ -#define CL_FP_DENORM (1 << 0) -#define CL_FP_INF_NAN (1 << 1) -#define CL_FP_ROUND_TO_NEAREST (1 << 2) -#define CL_FP_ROUND_TO_ZERO (1 << 3) -#define CL_FP_ROUND_TO_INF (1 << 4) -#define CL_FP_FMA (1 << 5) -#ifdef CL_VERSION_1_1 -#define CL_FP_SOFT_FLOAT (1 << 6) -#endif -#ifdef CL_VERSION_1_2 -#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7) -#endif - -/* cl_device_mem_cache_type */ -#define CL_NONE 0x0 -#define CL_READ_ONLY_CACHE 0x1 -#define CL_READ_WRITE_CACHE 0x2 - -/* cl_device_local_mem_type */ -#define CL_LOCAL 0x1 -#define CL_GLOBAL 0x2 - -/* cl_device_exec_capabilities - bitfield */ -#define CL_EXEC_KERNEL (1 << 0) -#define CL_EXEC_NATIVE_KERNEL (1 << 1) - -/* cl_command_queue_properties - bitfield */ -#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0) -#define CL_QUEUE_PROFILING_ENABLE (1 << 1) -#ifdef CL_VERSION_2_0 -#define CL_QUEUE_ON_DEVICE (1 << 2) -#define CL_QUEUE_ON_DEVICE_DEFAULT (1 << 3) -#endif - -/* cl_context_info */ -#define CL_CONTEXT_REFERENCE_COUNT 0x1080 -#define CL_CONTEXT_DEVICES 0x1081 -#define CL_CONTEXT_PROPERTIES 0x1082 -#ifdef CL_VERSION_1_1 -#define CL_CONTEXT_NUM_DEVICES 0x1083 -#endif - -/* cl_context_properties */ -#define CL_CONTEXT_PLATFORM 0x1084 -#ifdef CL_VERSION_1_2 -#define CL_CONTEXT_INTEROP_USER_SYNC 0x1085 -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_device_partition_property */ -#define CL_DEVICE_PARTITION_EQUALLY 0x1086 -#define CL_DEVICE_PARTITION_BY_COUNTS 0x1087 -#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0 -#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088 - -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_device_affinity_domain */ -#define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0) -#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1) -#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2) -#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3) -#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4) -#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5) - -#endif - -#ifdef CL_VERSION_2_0 - -/* cl_device_svm_capabilities */ -#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER (1 << 0) -#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER (1 << 1) -#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM (1 << 2) -#define CL_DEVICE_SVM_ATOMICS (1 << 3) - -#endif - -/* cl_command_queue_info */ -#define CL_QUEUE_CONTEXT 0x1090 -#define CL_QUEUE_DEVICE 0x1091 -#define CL_QUEUE_REFERENCE_COUNT 0x1092 -#define CL_QUEUE_PROPERTIES 0x1093 -#ifdef CL_VERSION_2_0 -#define CL_QUEUE_SIZE 0x1094 -#endif -#ifdef CL_VERSION_2_1 -#define CL_QUEUE_DEVICE_DEFAULT 0x1095 -#endif -#ifdef CL_VERSION_3_0 -#define CL_QUEUE_PROPERTIES_ARRAY 0x1098 -#endif - -/* cl_mem_flags and cl_svm_mem_flags - bitfield */ -#define CL_MEM_READ_WRITE (1 << 0) -#define CL_MEM_WRITE_ONLY (1 << 1) -#define CL_MEM_READ_ONLY (1 << 2) -#define CL_MEM_USE_HOST_PTR (1 << 3) -#define CL_MEM_ALLOC_HOST_PTR (1 << 4) -#define CL_MEM_COPY_HOST_PTR (1 << 5) -/* reserved (1 << 6) */ -#ifdef CL_VERSION_1_2 -#define CL_MEM_HOST_WRITE_ONLY (1 << 7) -#define CL_MEM_HOST_READ_ONLY (1 << 8) -#define CL_MEM_HOST_NO_ACCESS (1 << 9) -#endif -#ifdef CL_VERSION_2_0 -#define CL_MEM_SVM_FINE_GRAIN_BUFFER (1 << 10) /* used by cl_svm_mem_flags only */ -#define CL_MEM_SVM_ATOMICS (1 << 11) /* used by cl_svm_mem_flags only */ -#define CL_MEM_KERNEL_READ_AND_WRITE (1 << 12) -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_mem_migration_flags - bitfield */ -#define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0) -#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1) - -#endif - -/* cl_channel_order */ -#define CL_R 0x10B0 -#define CL_A 0x10B1 -#define CL_RG 0x10B2 -#define CL_RA 0x10B3 -#define CL_RGB 0x10B4 -#define CL_RGBA 0x10B5 -#define CL_BGRA 0x10B6 -#define CL_ARGB 0x10B7 -#define CL_INTENSITY 0x10B8 -#define CL_LUMINANCE 0x10B9 -#ifdef CL_VERSION_1_1 -#define CL_Rx 0x10BA -#define CL_RGx 0x10BB -#define CL_RGBx 0x10BC -#endif -#ifdef CL_VERSION_1_2 -#define CL_DEPTH 0x10BD -#define CL_DEPTH_STENCIL 0x10BE -#endif -#ifdef CL_VERSION_2_0 -#define CL_sRGB 0x10BF -#define CL_sRGBx 0x10C0 -#define CL_sRGBA 0x10C1 -#define CL_sBGRA 0x10C2 -#define CL_ABGR 0x10C3 -#endif - -/* cl_channel_type */ -#define CL_SNORM_INT8 0x10D0 -#define CL_SNORM_INT16 0x10D1 -#define CL_UNORM_INT8 0x10D2 -#define CL_UNORM_INT16 0x10D3 -#define CL_UNORM_SHORT_565 0x10D4 -#define CL_UNORM_SHORT_555 0x10D5 -#define CL_UNORM_INT_101010 0x10D6 -#define CL_SIGNED_INT8 0x10D7 -#define CL_SIGNED_INT16 0x10D8 -#define CL_SIGNED_INT32 0x10D9 -#define CL_UNSIGNED_INT8 0x10DA -#define CL_UNSIGNED_INT16 0x10DB -#define CL_UNSIGNED_INT32 0x10DC -#define CL_HALF_FLOAT 0x10DD -#define CL_FLOAT 0x10DE -#ifdef CL_VERSION_1_2 -#define CL_UNORM_INT24 0x10DF -#endif -#ifdef CL_VERSION_2_1 -#define CL_UNORM_INT_101010_2 0x10E0 -#endif - -/* cl_mem_object_type */ -#define CL_MEM_OBJECT_BUFFER 0x10F0 -#define CL_MEM_OBJECT_IMAGE2D 0x10F1 -#define CL_MEM_OBJECT_IMAGE3D 0x10F2 -#ifdef CL_VERSION_1_2 -#define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3 -#define CL_MEM_OBJECT_IMAGE1D 0x10F4 -#define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5 -#define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6 -#endif -#ifdef CL_VERSION_2_0 -#define CL_MEM_OBJECT_PIPE 0x10F7 -#endif - -/* cl_mem_info */ -#define CL_MEM_TYPE 0x1100 -#define CL_MEM_FLAGS 0x1101 -#define CL_MEM_SIZE 0x1102 -#define CL_MEM_HOST_PTR 0x1103 -#define CL_MEM_MAP_COUNT 0x1104 -#define CL_MEM_REFERENCE_COUNT 0x1105 -#define CL_MEM_CONTEXT 0x1106 -#ifdef CL_VERSION_1_1 -#define CL_MEM_ASSOCIATED_MEMOBJECT 0x1107 -#define CL_MEM_OFFSET 0x1108 -#endif -#ifdef CL_VERSION_2_0 -#define CL_MEM_USES_SVM_POINTER 0x1109 -#endif -#ifdef CL_VERSION_3_0 -#define CL_MEM_PROPERTIES 0x110A -#endif - -/* cl_image_info */ -#define CL_IMAGE_FORMAT 0x1110 -#define CL_IMAGE_ELEMENT_SIZE 0x1111 -#define CL_IMAGE_ROW_PITCH 0x1112 -#define CL_IMAGE_SLICE_PITCH 0x1113 -#define CL_IMAGE_WIDTH 0x1114 -#define CL_IMAGE_HEIGHT 0x1115 -#define CL_IMAGE_DEPTH 0x1116 -#ifdef CL_VERSION_1_2 -#define CL_IMAGE_ARRAY_SIZE 0x1117 -#define CL_IMAGE_BUFFER 0x1118 -#define CL_IMAGE_NUM_MIP_LEVELS 0x1119 -#define CL_IMAGE_NUM_SAMPLES 0x111A -#endif - - -/* cl_pipe_info */ -#ifdef CL_VERSION_2_0 -#define CL_PIPE_PACKET_SIZE 0x1120 -#define CL_PIPE_MAX_PACKETS 0x1121 -#endif -#ifdef CL_VERSION_3_0 -#define CL_PIPE_PROPERTIES 0x1122 -#endif - -/* cl_addressing_mode */ -#define CL_ADDRESS_NONE 0x1130 -#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131 -#define CL_ADDRESS_CLAMP 0x1132 -#define CL_ADDRESS_REPEAT 0x1133 -#ifdef CL_VERSION_1_1 -#define CL_ADDRESS_MIRRORED_REPEAT 0x1134 -#endif - -/* cl_filter_mode */ -#define CL_FILTER_NEAREST 0x1140 -#define CL_FILTER_LINEAR 0x1141 - -/* cl_sampler_info */ -#define CL_SAMPLER_REFERENCE_COUNT 0x1150 -#define CL_SAMPLER_CONTEXT 0x1151 -#define CL_SAMPLER_NORMALIZED_COORDS 0x1152 -#define CL_SAMPLER_ADDRESSING_MODE 0x1153 -#define CL_SAMPLER_FILTER_MODE 0x1154 -#ifdef CL_VERSION_2_0 -/* These enumerants are for the cl_khr_mipmap_image extension. - They have since been added to cl_ext.h with an appropriate - KHR suffix, but are left here for backwards compatibility. */ -#define CL_SAMPLER_MIP_FILTER_MODE 0x1155 -#define CL_SAMPLER_LOD_MIN 0x1156 -#define CL_SAMPLER_LOD_MAX 0x1157 -#endif -#ifdef CL_VERSION_3_0 -#define CL_SAMPLER_PROPERTIES 0x1158 -#endif - -/* cl_map_flags - bitfield */ -#define CL_MAP_READ (1 << 0) -#define CL_MAP_WRITE (1 << 1) -#ifdef CL_VERSION_1_2 -#define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2) -#endif - -/* cl_program_info */ -#define CL_PROGRAM_REFERENCE_COUNT 0x1160 -#define CL_PROGRAM_CONTEXT 0x1161 -#define CL_PROGRAM_NUM_DEVICES 0x1162 -#define CL_PROGRAM_DEVICES 0x1163 -#define CL_PROGRAM_SOURCE 0x1164 -#define CL_PROGRAM_BINARY_SIZES 0x1165 -#define CL_PROGRAM_BINARIES 0x1166 -#ifdef CL_VERSION_1_2 -#define CL_PROGRAM_NUM_KERNELS 0x1167 -#define CL_PROGRAM_KERNEL_NAMES 0x1168 -#endif -#ifdef CL_VERSION_2_1 -#define CL_PROGRAM_IL 0x1169 -#endif -#ifdef CL_VERSION_2_2 -#define CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT 0x116A -#define CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT 0x116B -#endif - -/* cl_program_build_info */ -#define CL_PROGRAM_BUILD_STATUS 0x1181 -#define CL_PROGRAM_BUILD_OPTIONS 0x1182 -#define CL_PROGRAM_BUILD_LOG 0x1183 -#ifdef CL_VERSION_1_2 -#define CL_PROGRAM_BINARY_TYPE 0x1184 -#endif -#ifdef CL_VERSION_2_0 -#define CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE 0x1185 -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_program_binary_type */ -#define CL_PROGRAM_BINARY_TYPE_NONE 0x0 -#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1 -#define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2 -#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4 - -#endif - -/* cl_build_status */ -#define CL_BUILD_SUCCESS 0 -#define CL_BUILD_NONE -1 -#define CL_BUILD_ERROR -2 -#define CL_BUILD_IN_PROGRESS -3 - -/* cl_kernel_info */ -#define CL_KERNEL_FUNCTION_NAME 0x1190 -#define CL_KERNEL_NUM_ARGS 0x1191 -#define CL_KERNEL_REFERENCE_COUNT 0x1192 -#define CL_KERNEL_CONTEXT 0x1193 -#define CL_KERNEL_PROGRAM 0x1194 -#ifdef CL_VERSION_1_2 -#define CL_KERNEL_ATTRIBUTES 0x1195 -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_kernel_arg_info */ -#define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196 -#define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197 -#define CL_KERNEL_ARG_TYPE_NAME 0x1198 -#define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199 -#define CL_KERNEL_ARG_NAME 0x119A - -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_kernel_arg_address_qualifier */ -#define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B -#define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C -#define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D -#define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E - -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_kernel_arg_access_qualifier */ -#define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0 -#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1 -#define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2 -#define CL_KERNEL_ARG_ACCESS_NONE 0x11A3 - -#endif - -#ifdef CL_VERSION_1_2 - -/* cl_kernel_arg_type_qualifier */ -#define CL_KERNEL_ARG_TYPE_NONE 0 -#define CL_KERNEL_ARG_TYPE_CONST (1 << 0) -#define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1) -#define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2) -#ifdef CL_VERSION_2_0 -#define CL_KERNEL_ARG_TYPE_PIPE (1 << 3) -#endif - -#endif - -/* cl_kernel_work_group_info */ -#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0 -#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1 -#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2 -#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3 -#define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4 -#ifdef CL_VERSION_1_2 -#define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5 -#endif - -#ifdef CL_VERSION_2_1 - -/* cl_kernel_sub_group_info */ -#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033 -#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034 -#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT 0x11B8 -#define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9 -#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA - -#endif - -#ifdef CL_VERSION_2_0 - -/* cl_kernel_exec_info */ -#define CL_KERNEL_EXEC_INFO_SVM_PTRS 0x11B6 -#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM 0x11B7 - -#endif - -/* cl_event_info */ -#define CL_EVENT_COMMAND_QUEUE 0x11D0 -#define CL_EVENT_COMMAND_TYPE 0x11D1 -#define CL_EVENT_REFERENCE_COUNT 0x11D2 -#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3 -#ifdef CL_VERSION_1_1 -#define CL_EVENT_CONTEXT 0x11D4 -#endif - -/* cl_command_type */ -#define CL_COMMAND_NDRANGE_KERNEL 0x11F0 -#define CL_COMMAND_TASK 0x11F1 -#define CL_COMMAND_NATIVE_KERNEL 0x11F2 -#define CL_COMMAND_READ_BUFFER 0x11F3 -#define CL_COMMAND_WRITE_BUFFER 0x11F4 -#define CL_COMMAND_COPY_BUFFER 0x11F5 -#define CL_COMMAND_READ_IMAGE 0x11F6 -#define CL_COMMAND_WRITE_IMAGE 0x11F7 -#define CL_COMMAND_COPY_IMAGE 0x11F8 -#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9 -#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA -#define CL_COMMAND_MAP_BUFFER 0x11FB -#define CL_COMMAND_MAP_IMAGE 0x11FC -#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD -#define CL_COMMAND_MARKER 0x11FE -#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF -#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200 -#ifdef CL_VERSION_1_1 -#define CL_COMMAND_READ_BUFFER_RECT 0x1201 -#define CL_COMMAND_WRITE_BUFFER_RECT 0x1202 -#define CL_COMMAND_COPY_BUFFER_RECT 0x1203 -#define CL_COMMAND_USER 0x1204 -#endif -#ifdef CL_VERSION_1_2 -#define CL_COMMAND_BARRIER 0x1205 -#define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206 -#define CL_COMMAND_FILL_BUFFER 0x1207 -#define CL_COMMAND_FILL_IMAGE 0x1208 -#endif -#ifdef CL_VERSION_2_0 -#define CL_COMMAND_SVM_FREE 0x1209 -#define CL_COMMAND_SVM_MEMCPY 0x120A -#define CL_COMMAND_SVM_MEMFILL 0x120B -#define CL_COMMAND_SVM_MAP 0x120C -#define CL_COMMAND_SVM_UNMAP 0x120D -#endif -#ifdef CL_VERSION_3_0 -#define CL_COMMAND_SVM_MIGRATE_MEM 0x120E -#endif - -/* command execution status */ -#define CL_COMPLETE 0x0 -#define CL_RUNNING 0x1 -#define CL_SUBMITTED 0x2 -#define CL_QUEUED 0x3 - -/* cl_buffer_create_type */ -#ifdef CL_VERSION_1_1 -#define CL_BUFFER_CREATE_TYPE_REGION 0x1220 -#endif - -/* cl_profiling_info */ -#define CL_PROFILING_COMMAND_QUEUED 0x1280 -#define CL_PROFILING_COMMAND_SUBMIT 0x1281 -#define CL_PROFILING_COMMAND_START 0x1282 -#define CL_PROFILING_COMMAND_END 0x1283 -#ifdef CL_VERSION_2_0 -#define CL_PROFILING_COMMAND_COMPLETE 0x1284 -#endif - -/* cl_device_atomic_capabilities - bitfield */ -#ifdef CL_VERSION_3_0 -#define CL_DEVICE_ATOMIC_ORDER_RELAXED (1 << 0) -#define CL_DEVICE_ATOMIC_ORDER_ACQ_REL (1 << 1) -#define CL_DEVICE_ATOMIC_ORDER_SEQ_CST (1 << 2) -#define CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM (1 << 3) -#define CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP (1 << 4) -#define CL_DEVICE_ATOMIC_SCOPE_DEVICE (1 << 5) -#define CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES (1 << 6) -#endif - -/* cl_device_device_enqueue_capabilities - bitfield */ -#ifdef CL_VERSION_3_0 -#define CL_DEVICE_QUEUE_SUPPORTED (1 << 0) -#define CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT (1 << 1) -#endif - -/* cl_khronos_vendor_id */ -#define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004 - -#ifdef CL_VERSION_3_0 - -/* cl_version */ -#define CL_VERSION_MAJOR_BITS (10) -#define CL_VERSION_MINOR_BITS (10) -#define CL_VERSION_PATCH_BITS (12) - -#define CL_VERSION_MAJOR_MASK ((1 << CL_VERSION_MAJOR_BITS) - 1) -#define CL_VERSION_MINOR_MASK ((1 << CL_VERSION_MINOR_BITS) - 1) -#define CL_VERSION_PATCH_MASK ((1 << CL_VERSION_PATCH_BITS) - 1) - -#define CL_VERSION_MAJOR(version) \ - ((version) >> (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) - -#define CL_VERSION_MINOR(version) \ - (((version) >> CL_VERSION_PATCH_BITS) & CL_VERSION_MINOR_MASK) - -#define CL_VERSION_PATCH(version) ((version) & CL_VERSION_PATCH_MASK) - -#define CL_MAKE_VERSION(major, minor, patch) \ - ((((major) & CL_VERSION_MAJOR_MASK) \ - << (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) | \ - (((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \ - ((patch) & CL_VERSION_PATCH_MASK)) - -#endif - -/********************************************************************************************************/ - -/* Platform API */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetPlatformIDs(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetPlatformInfo(cl_platform_id platform, - cl_platform_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -/* Device APIs */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDs(cl_platform_id platform, - cl_device_type device_type, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceInfo(cl_device_id device, - cl_device_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clCreateSubDevices(cl_device_id in_device, - const cl_device_partition_property * properties, - cl_uint num_devices, - cl_device_id * out_devices, - cl_uint * num_devices_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; - -#endif - -#ifdef CL_VERSION_2_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetDefaultDeviceCommandQueue(cl_context context, - cl_device_id device, - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceAndHostTimer(cl_device_id device, - cl_ulong* device_timestamp, - cl_ulong* host_timestamp) CL_API_SUFFIX__VERSION_2_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetHostTimer(cl_device_id device, - cl_ulong * host_timestamp) CL_API_SUFFIX__VERSION_2_1; - -#endif - -/* Context APIs */ -extern CL_API_ENTRY cl_context CL_API_CALL -clCreateContext(const cl_context_properties * properties, - cl_uint num_devices, - const cl_device_id * devices, - void (CL_CALLBACK * pfn_notify)(const char * errinfo, - const void * private_info, - size_t cb, - void * user_data), - void * user_data, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_context CL_API_CALL -clCreateContextFromType(const cl_context_properties * properties, - cl_device_type device_type, - void (CL_CALLBACK * pfn_notify)(const char * errinfo, - const void * private_info, - size_t cb, - void * user_data), - void * user_data, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetContextInfo(cl_context context, - cl_context_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_3_0 - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetContextDestructorCallback(cl_context context, - void (CL_CALLBACK* pfn_notify)(cl_context context, - void* user_data), - void* user_data) CL_API_SUFFIX__VERSION_3_0; - -#endif - -/* Command Queue APIs */ - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY cl_command_queue CL_API_CALL -clCreateCommandQueueWithProperties(cl_context context, - cl_device_id device, - const cl_queue_properties * properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetCommandQueueInfo(cl_command_queue command_queue, - cl_command_queue_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -/* Memory Object APIs */ -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBuffer(cl_context context, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateSubBuffer(cl_mem buffer, - cl_mem_flags flags, - cl_buffer_create_type buffer_create_type, - const void * buffer_create_info, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -#endif - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateImage(cl_context context, - cl_mem_flags flags, - const cl_image_format * image_format, - const cl_image_desc * image_desc, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#endif - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreatePipe(cl_context context, - cl_mem_flags flags, - cl_uint pipe_packet_size, - cl_uint pipe_max_packets, - const cl_pipe_properties * properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; - -#endif - -#ifdef CL_VERSION_3_0 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBufferWithProperties(cl_context context, - const cl_mem_properties * properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0; - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateImageWithProperties(cl_context context, - const cl_mem_properties * properties, - cl_mem_flags flags, - const cl_image_format * image_format, - const cl_image_desc * image_desc, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_3_0; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedImageFormats(cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - cl_image_format * image_formats, - cl_uint * num_image_formats) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetMemObjectInfo(cl_mem memobj, - cl_mem_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetImageInfo(cl_mem image, - cl_image_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetPipeInfo(cl_mem pipe, - cl_pipe_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0; - -#endif - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetMemObjectDestructorCallback(cl_mem memobj, - void (CL_CALLBACK * pfn_notify)(cl_mem memobj, - void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_1_1; - -#endif - -/* SVM Allocation APIs */ - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY void * CL_API_CALL -clSVMAlloc(cl_context context, - cl_svm_mem_flags flags, - size_t size, - cl_uint alignment) CL_API_SUFFIX__VERSION_2_0; - -extern CL_API_ENTRY void CL_API_CALL -clSVMFree(cl_context context, - void * svm_pointer) CL_API_SUFFIX__VERSION_2_0; - -#endif - -/* Sampler APIs */ - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY cl_sampler CL_API_CALL -clCreateSamplerWithProperties(cl_context context, - const cl_sampler_properties * sampler_properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSamplerInfo(cl_sampler sampler, - cl_sampler_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -/* Program Object APIs */ -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithSource(cl_context context, - cl_uint count, - const char ** strings, - const size_t * lengths, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithBinary(cl_context context, - cl_uint num_devices, - const cl_device_id * device_list, - const size_t * lengths, - const unsigned char ** binaries, - cl_int * binary_status, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithBuiltInKernels(cl_context context, - cl_uint num_devices, - const cl_device_id * device_list, - const char * kernel_names, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#endif - -#ifdef CL_VERSION_2_1 - -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithIL(cl_context context, - const void* il, - size_t length, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clBuildProgram(cl_program program, - cl_uint num_devices, - const cl_device_id * device_list, - const char * options, - void (CL_CALLBACK * pfn_notify)(cl_program program, - void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clCompileProgram(cl_program program, - cl_uint num_devices, - const cl_device_id * device_list, - const char * options, - cl_uint num_input_headers, - const cl_program * input_headers, - const char ** header_include_names, - void (CL_CALLBACK * pfn_notify)(cl_program program, - void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_program CL_API_CALL -clLinkProgram(cl_context context, - cl_uint num_devices, - const cl_device_id * device_list, - const char * options, - cl_uint num_input_programs, - const cl_program * input_programs, - void (CL_CALLBACK * pfn_notify)(cl_program program, - void * user_data), - void * user_data, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#endif - -#ifdef CL_VERSION_2_2 - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL -clSetProgramReleaseCallback(cl_program program, - void (CL_CALLBACK * pfn_notify)(cl_program program, - void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_2_2_DEPRECATED; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetProgramSpecializationConstant(cl_program program, - cl_uint spec_id, - size_t spec_size, - const void* spec_value) CL_API_SUFFIX__VERSION_2_2; - -#endif - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetProgramInfo(cl_program program, - cl_program_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetProgramBuildInfo(cl_program program, - cl_device_id device, - cl_program_build_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -/* Kernel Object APIs */ -extern CL_API_ENTRY cl_kernel CL_API_CALL -clCreateKernel(cl_program program, - const char * kernel_name, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clCreateKernelsInProgram(cl_program program, - cl_uint num_kernels, - cl_kernel * kernels, - cl_uint * num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_1 - -extern CL_API_ENTRY cl_kernel CL_API_CALL -clCloneKernel(cl_kernel source_kernel, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArg(cl_kernel kernel, - cl_uint arg_index, - size_t arg_size, - const void * arg_value) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgSVMPointer(cl_kernel kernel, - cl_uint arg_index, - const void * arg_value) CL_API_SUFFIX__VERSION_2_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelExecInfo(cl_kernel kernel, - cl_kernel_exec_info param_name, - size_t param_value_size, - const void * param_value) CL_API_SUFFIX__VERSION_2_0; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelInfo(cl_kernel kernel, - cl_kernel_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelArgInfo(cl_kernel kernel, - cl_uint arg_indx, - cl_kernel_arg_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelWorkGroupInfo(cl_kernel kernel, - cl_device_id device, - cl_kernel_work_group_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfo(cl_kernel kernel, - cl_device_id device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void* input_value, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; - -#endif - -/* Event Object APIs */ -extern CL_API_ENTRY cl_int CL_API_CALL -clWaitForEvents(cl_uint num_events, - const cl_event * event_list) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetEventInfo(cl_event event, - cl_event_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateUserEvent(cl_context context, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetUserEventStatus(cl_event event, - cl_int execution_status) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetEventCallback(cl_event event, - cl_int command_exec_callback_type, - void (CL_CALLBACK * pfn_notify)(cl_event event, - cl_int event_command_status, - void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_1_1; - -#endif - -/* Profiling APIs */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetEventProfilingInfo(cl_event event, - cl_profiling_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -/* Flush and Finish APIs */ -extern CL_API_ENTRY cl_int CL_API_CALL -clFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -/* Enqueued Commands APIs */ -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReadBuffer(cl_command_queue command_queue, - cl_mem buffer, - cl_bool blocking_read, - size_t offset, - size_t size, - void * ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReadBufferRect(cl_command_queue command_queue, - cl_mem buffer, - cl_bool blocking_read, - const size_t * buffer_origin, - const size_t * host_origin, - const size_t * region, - size_t buffer_row_pitch, - size_t buffer_slice_pitch, - size_t host_row_pitch, - size_t host_slice_pitch, - void * ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_1; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWriteBuffer(cl_command_queue command_queue, - cl_mem buffer, - cl_bool blocking_write, - size_t offset, - size_t size, - const void * ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWriteBufferRect(cl_command_queue command_queue, - cl_mem buffer, - cl_bool blocking_write, - const size_t * buffer_origin, - const size_t * host_origin, - const size_t * region, - size_t buffer_row_pitch, - size_t buffer_slice_pitch, - size_t host_row_pitch, - size_t host_slice_pitch, - const void * ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_1; - -#endif - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueFillBuffer(cl_command_queue command_queue, - cl_mem buffer, - const void * pattern, - size_t pattern_size, - size_t offset, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCopyBuffer(cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_buffer, - size_t src_offset, - size_t dst_offset, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCopyBufferRect(cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_buffer, - const size_t * src_origin, - const size_t * dst_origin, - const size_t * region, - size_t src_row_pitch, - size_t src_slice_pitch, - size_t dst_row_pitch, - size_t dst_slice_pitch, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_1; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReadImage(cl_command_queue command_queue, - cl_mem image, - cl_bool blocking_read, - const size_t * origin, - const size_t * region, - size_t row_pitch, - size_t slice_pitch, - void * ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWriteImage(cl_command_queue command_queue, - cl_mem image, - cl_bool blocking_write, - const size_t * origin, - const size_t * region, - size_t input_row_pitch, - size_t input_slice_pitch, - const void * ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueFillImage(cl_command_queue command_queue, - cl_mem image, - const void * fill_color, - const size_t * origin, - const size_t * region, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCopyImage(cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, - const size_t * src_origin, - const size_t * dst_origin, - const size_t * region, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCopyImageToBuffer(cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_buffer, - const size_t * src_origin, - const size_t * region, - size_t dst_offset, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCopyBufferToImage(cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_image, - size_t src_offset, - const size_t * dst_origin, - const size_t * region, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY void * CL_API_CALL -clEnqueueMapBuffer(cl_command_queue command_queue, - cl_mem buffer, - cl_bool blocking_map, - cl_map_flags map_flags, - size_t offset, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY void * CL_API_CALL -clEnqueueMapImage(cl_command_queue command_queue, - cl_mem image, - cl_bool blocking_map, - cl_map_flags map_flags, - const size_t * origin, - const size_t * region, - size_t * image_row_pitch, - size_t * image_slice_pitch, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueUnmapMemObject(cl_command_queue command_queue, - cl_mem memobj, - void * mapped_ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemObjects(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueNDRangeKernel(cl_command_queue command_queue, - cl_kernel kernel, - cl_uint work_dim, - const size_t * global_work_offset, - const size_t * global_work_size, - const size_t * local_work_size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueNativeKernel(cl_command_queue command_queue, - void (CL_CALLBACK * user_func)(void *), - void * args, - size_t cb_args, - cl_uint num_mem_objects, - const cl_mem * mem_list, - const void ** args_mem_loc, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMarkerWithWaitList(cl_command_queue command_queue, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueBarrierWithWaitList(cl_command_queue command_queue, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -#endif - -#ifdef CL_VERSION_2_0 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMFree(cl_command_queue command_queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void * user_data), - void * user_data, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_2_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemcpy(cl_command_queue command_queue, - cl_bool blocking_copy, - void * dst_ptr, - const void * src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_2_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemFill(cl_command_queue command_queue, - void * svm_ptr, - const void * pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_2_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMap(cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, - void * svm_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_2_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMUnmap(cl_command_queue command_queue, - void * svm_ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_2_0; - -#endif - -#ifdef CL_VERSION_2_1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMigrateMem(cl_command_queue command_queue, - cl_uint num_svm_pointers, - const void ** svm_pointers, - const size_t * sizes, - cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_2_1; - -#endif - -#ifdef CL_VERSION_1_2 - -/* Extension function access - * - * Returns the extension function address for the given function name, - * or NULL if a valid function can not be found. The client must - * check to make sure the address is not NULL, before using or - * calling the returned function address. - */ -extern CL_API_ENTRY void * CL_API_CALL -clGetExtensionFunctionAddressForPlatform(cl_platform_id platform, - const char * func_name) CL_API_SUFFIX__VERSION_1_2; - -#endif - -#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS - /* - * WARNING: - * This API introduces mutable state into the OpenCL implementation. It has been REMOVED - * to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the - * OpenCL 1.1 conformance test, and consequently may not work or may not work dependably. - * It is likely to be non-performant. Use of this API is not advised. Use at your own risk. - * - * Software developers previously relying on this API are instructed to set the command queue - * properties when creating the queue, instead. - */ - extern CL_API_ENTRY cl_int CL_API_CALL - clSetCommandQueueProperty(cl_command_queue command_queue, - cl_command_queue_properties properties, - cl_bool enable, - cl_command_queue_properties * old_properties) CL_API_SUFFIX__VERSION_1_0_DEPRECATED; -#endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */ - -/* Deprecated OpenCL 1.1 APIs */ -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateImage2D(cl_context context, - cl_mem_flags flags, - const cl_image_format * image_format, - size_t image_width, - size_t image_height, - size_t image_row_pitch, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateImage3D(cl_context context, - cl_mem_flags flags, - const cl_image_format * image_format, - size_t image_width, - size_t image_height, - size_t image_depth, - size_t image_row_pitch, - size_t image_slice_pitch, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL -clEnqueueMarker(cl_command_queue command_queue, - cl_event * event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL -clEnqueueWaitForEvents(cl_command_queue command_queue, - cl_uint num_events, - const cl_event * event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL -clEnqueueBarrier(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL -clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL -clGetExtensionFunctionAddress(const char * func_name) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -/* Deprecated OpenCL 2.0 APIs */ -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL -clCreateCommandQueue(cl_context context, - cl_device_id device, - cl_command_queue_properties properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL -clCreateSampler(cl_context context, - cl_bool normalized_coords, - cl_addressing_mode addressing_mode, - cl_filter_mode filter_mode, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL -clEnqueueTask(cl_command_queue command_queue, - cl_kernel kernel, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_H */ diff --git a/milepost/ext/angle_headers/CL/cl_d3d10.h b/milepost/ext/angle_headers/CL/cl_d3d10.h deleted file mode 100644 index 6adedb0..0000000 --- a/milepost/ext/angle_headers/CL/cl_d3d10.h +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_D3D10_H -#define __OPENCL_CL_D3D10_H - -#if defined(_MSC_VER) -#if _MSC_VER >=1500 -#pragma warning( push ) -#pragma warning( disable : 4201 ) -#endif -#endif -#include -#if defined(_MSC_VER) -#if _MSC_VER >=1500 -#pragma warning( pop ) -#endif -#endif -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * cl_khr_d3d10_sharing */ -#define cl_khr_d3d10_sharing 1 - -typedef cl_uint cl_d3d10_device_source_khr; -typedef cl_uint cl_d3d10_device_set_khr; - -/******************************************************************************/ - -/* Error Codes */ -#define CL_INVALID_D3D10_DEVICE_KHR -1002 -#define CL_INVALID_D3D10_RESOURCE_KHR -1003 -#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 -#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 - -/* cl_d3d10_device_source_nv */ -#define CL_D3D10_DEVICE_KHR 0x4010 -#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 - -/* cl_d3d10_device_set_nv */ -#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 -#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 - -/* cl_context_info */ -#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 -#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C - -/* cl_mem_info */ -#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 - -/* cl_image_info */ -#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 -#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 - -/******************************************************************************/ - -typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( - cl_platform_id platform, - cl_d3d10_device_source_khr d3d_device_source, - void * d3d_object, - cl_d3d10_device_set_khr d3d_device_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Buffer * resource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Texture2D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Texture3D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_D3D10_H */ - diff --git a/milepost/ext/angle_headers/CL/cl_d3d11.h b/milepost/ext/angle_headers/CL/cl_d3d11.h deleted file mode 100644 index 50ed906..0000000 --- a/milepost/ext/angle_headers/CL/cl_d3d11.h +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_D3D11_H -#define __OPENCL_CL_D3D11_H - -#if defined(_MSC_VER) -#if _MSC_VER >=1500 -#pragma warning( push ) -#pragma warning( disable : 4201 ) -#endif -#endif -#include -#if defined(_MSC_VER) -#if _MSC_VER >=1500 -#pragma warning( pop ) -#endif -#endif -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * cl_khr_d3d11_sharing */ -#define cl_khr_d3d11_sharing 1 - -typedef cl_uint cl_d3d11_device_source_khr; -typedef cl_uint cl_d3d11_device_set_khr; - -/******************************************************************************/ - -/* Error Codes */ -#define CL_INVALID_D3D11_DEVICE_KHR -1006 -#define CL_INVALID_D3D11_RESOURCE_KHR -1007 -#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 -#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 - -/* cl_d3d11_device_source */ -#define CL_D3D11_DEVICE_KHR 0x4019 -#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A - -/* cl_d3d11_device_set */ -#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B -#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C - -/* cl_context_info */ -#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D -#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D - -/* cl_mem_info */ -#define CL_MEM_D3D11_RESOURCE_KHR 0x401E - -/* cl_image_info */ -#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 -#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 - -/******************************************************************************/ - -typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( - cl_platform_id platform, - cl_d3d11_device_source_khr d3d_device_source, - void * d3d_object, - cl_d3d11_device_set_khr d3d_device_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Buffer * resource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Texture2D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Texture3D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_D3D11_H */ - diff --git a/milepost/ext/angle_headers/CL/cl_dx9_media_sharing.h b/milepost/ext/angle_headers/CL/cl_dx9_media_sharing.h deleted file mode 100644 index b0d2b23..0000000 --- a/milepost/ext/angle_headers/CL/cl_dx9_media_sharing.h +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H -#define __OPENCL_CL_DX9_MEDIA_SHARING_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/******************************************************************************/ -/* cl_khr_dx9_media_sharing */ -#define cl_khr_dx9_media_sharing 1 - -typedef cl_uint cl_dx9_media_adapter_type_khr; -typedef cl_uint cl_dx9_media_adapter_set_khr; - -#if defined(_WIN32) -#include -typedef struct _cl_dx9_surface_info_khr -{ - IDirect3DSurface9 *resource; - HANDLE shared_handle; -} cl_dx9_surface_info_khr; -#endif - - -/******************************************************************************/ - -/* Error Codes */ -#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 -#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 -#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 -#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 - -/* cl_media_adapter_type_khr */ -#define CL_ADAPTER_D3D9_KHR 0x2020 -#define CL_ADAPTER_D3D9EX_KHR 0x2021 -#define CL_ADAPTER_DXVA_KHR 0x2022 - -/* cl_media_adapter_set_khr */ -#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 -#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 - -/* cl_context_info */ -#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 -#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 -#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 - -/* cl_mem_info */ -#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 -#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 - -/* cl_image_info */ -#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B -#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C - -/******************************************************************************/ - -typedef cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( - cl_platform_id platform, - cl_uint num_media_adapters, - cl_dx9_media_adapter_type_khr * media_adapter_type, - void * media_adapters, - cl_dx9_media_adapter_set_khr media_adapter_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( - cl_context context, - cl_mem_flags flags, - cl_dx9_media_adapter_type_khr adapter_type, - void * surface_info, - cl_uint plane, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -/*************************************** -* cl_intel_dx9_media_sharing extension * -****************************************/ - -#define cl_intel_dx9_media_sharing 1 - -typedef cl_uint cl_dx9_device_source_intel; -typedef cl_uint cl_dx9_device_set_intel; - -/* error codes */ -#define CL_INVALID_DX9_DEVICE_INTEL -1010 -#define CL_INVALID_DX9_RESOURCE_INTEL -1011 -#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012 -#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013 - -/* cl_dx9_device_source_intel */ -#define CL_D3D9_DEVICE_INTEL 0x4022 -#define CL_D3D9EX_DEVICE_INTEL 0x4070 -#define CL_DXVA_DEVICE_INTEL 0x4071 - -/* cl_dx9_device_set_intel */ -#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024 -#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025 - -/* cl_context_info */ -#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026 -#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072 -#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073 - -/* cl_mem_info */ -#define CL_MEM_DX9_RESOURCE_INTEL 0x4027 -#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074 - -/* cl_image_info */ -#define CL_IMAGE_DX9_PLANE_INTEL 0x4075 - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A -#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B -/******************************************************************************/ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromDX9INTEL( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromDX9MediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireDX9ObjectsINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseDX9ObjectsINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_1; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */ - diff --git a/milepost/ext/angle_headers/CL/cl_dx9_media_sharing_intel.h b/milepost/ext/angle_headers/CL/cl_dx9_media_sharing_intel.h deleted file mode 100644 index f6518d7..0000000 --- a/milepost/ext/angle_headers/CL/cl_dx9_media_sharing_intel.h +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#include -#pragma message("The Intel DX9 media sharing extensions have been moved into cl_dx9_media_sharing.h. Please include cl_dx9_media_sharing.h directly.") diff --git a/milepost/ext/angle_headers/CL/cl_egl.h b/milepost/ext/angle_headers/CL/cl_egl.h deleted file mode 100644 index 357a37c..0000000 --- a/milepost/ext/angle_headers/CL/cl_egl.h +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_EGL_H -#define __OPENCL_CL_EGL_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ -#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F -#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D -#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E - -/* Error type for clCreateFromEGLImageKHR */ -#define CL_INVALID_EGL_OBJECT_KHR -1093 -#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 - -/* CLeglImageKHR is an opaque handle to an EGLImage */ -typedef void* CLeglImageKHR; - -/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ -typedef void* CLeglDisplayKHR; - -/* CLeglSyncKHR is an opaque handle to an EGLSync object */ -typedef void* CLeglSyncKHR; - -/* properties passed to clCreateFromEGLImageKHR */ -typedef intptr_t cl_egl_image_properties_khr; - - -#define cl_khr_egl_image 1 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromEGLImageKHR(cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr * properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)( - cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr * properties, - cl_int * errcode_ret); - - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireEGLObjectsKHR(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseEGLObjectsKHR(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - - -#define cl_khr_egl_event 1 - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromEGLSyncKHR(cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)( - cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int * errcode_ret); - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_EGL_H */ diff --git a/milepost/ext/angle_headers/CL/cl_ext.h b/milepost/ext/angle_headers/CL/cl_ext.h deleted file mode 100644 index 4692fa1..0000000 --- a/milepost/ext/angle_headers/CL/cl_ext.h +++ /dev/null @@ -1,1668 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -/* cl_ext.h contains OpenCL extensions which don't have external */ -/* (OpenGL, D3D) dependencies. */ - -#ifndef __CL_EXT_H -#define __CL_EXT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* cl_khr_fp64 extension - no extension #define since it has no functions */ -/* CL_DEVICE_DOUBLE_FP_CONFIG is defined in CL.h for OpenCL >= 120 */ - -#if CL_TARGET_OPENCL_VERSION <= 110 -#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 -#endif - -/* cl_khr_fp16 extension - no extension #define since it has no functions */ -#define CL_DEVICE_HALF_FP_CONFIG 0x1033 - -/* Memory object destruction - * - * Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR - * - * Registers a user callback function that will be called when the memory object is deleted and its resources - * freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback - * stack associated with memobj. The registered user callback functions are called in the reverse order in - * which they were registered. The user callback functions are called and then the memory object is deleted - * and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be - * notified when the memory referenced by host_ptr, specified when the memory object is created and used as - * the storage bits for the memory object, can be reused or freed. - * - * The application may not call CL api's with the cl_mem object passed to the pfn_notify. - * - * Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) - * before using. - */ -#define cl_APPLE_SetMemObjectDestructor 1 -extern CL_API_ENTRY cl_int CL_API_CALL clSetMemObjectDestructorAPPLE( cl_mem memobj, - void (* pfn_notify)(cl_mem memobj, void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_1_0; - - -/* Context Logging Functions - * - * The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). - * Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) - * before using. - * - * clLogMessagesToSystemLog forwards on all log messages to the Apple System Logger - */ -#define cl_APPLE_ContextLoggingFunctions 1 -extern CL_API_ENTRY void CL_API_CALL clLogMessagesToSystemLogAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_API_SUFFIX__VERSION_1_0; - -/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ -extern CL_API_ENTRY void CL_API_CALL clLogMessagesToStdoutAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_API_SUFFIX__VERSION_1_0; - -/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ -extern CL_API_ENTRY void CL_API_CALL clLogMessagesToStderrAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_API_SUFFIX__VERSION_1_0; - - -/************************ -* cl_khr_icd extension * -************************/ -#define cl_khr_icd 1 - -/* cl_platform_info */ -#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 - -/* Additional Error Codes */ -#define CL_PLATFORM_NOT_FOUND_KHR -1001 - -extern CL_API_ENTRY cl_int CL_API_CALL -clIcdGetPlatformIDsKHR(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms); - -typedef cl_int -(CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms); - - -/******************************* - * cl_khr_il_program extension * - *******************************/ -#define cl_khr_il_program 1 - -/* New property to clGetDeviceInfo for retrieving supported intermediate - * languages - */ -#define CL_DEVICE_IL_VERSION_KHR 0x105B - -/* New property to clGetProgramInfo for retrieving for retrieving the IL of a - * program - */ -#define CL_PROGRAM_IL_KHR 0x1169 - -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithILKHR(cl_context context, - const void * il, - size_t length, - cl_int * errcode_ret); - -typedef cl_program -(CL_API_CALL *clCreateProgramWithILKHR_fn)(cl_context context, - const void * il, - size_t length, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -/* Extension: cl_khr_image2d_from_buffer - * - * This extension allows a 2D image to be created from a cl_mem buffer without - * a copy. The type associated with a 2D image created from a buffer in an - * OpenCL program is image2d_t. Both the sampler and sampler-less read_image - * built-in functions are supported for 2D images and 2D images created from - * a buffer. Similarly, the write_image built-ins are also supported for 2D - * images created from a buffer. - * - * When the 2D image from buffer is created, the client must specify the - * width, height, image format (i.e. channel order and channel data type) - * and optionally the row pitch. - * - * The pitch specified must be a multiple of - * CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR pixels. - * The base address of the buffer must be aligned to - * CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR pixels. - */ - -#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A -#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B - - -/************************************** - * cl_khr_initialize_memory extension * - **************************************/ - -#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 - - -/************************************** - * cl_khr_terminate_context extension * - **************************************/ - -#define CL_CONTEXT_TERMINATED_KHR -1121 - -#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 -#define CL_CONTEXT_TERMINATE_KHR 0x2032 - -#define cl_khr_terminate_context 1 -extern CL_API_ENTRY cl_int CL_API_CALL -clTerminateContextKHR(cl_context context) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int -(CL_API_CALL *clTerminateContextKHR_fn)(cl_context context) CL_API_SUFFIX__VERSION_1_2; - - -/* - * Extension: cl_khr_spir - * - * This extension adds support to create an OpenCL program object from a - * Standard Portable Intermediate Representation (SPIR) instance - */ - -#define CL_DEVICE_SPIR_VERSIONS 0x40E0 -#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 - - -/***************************************** - * cl_khr_create_command_queue extension * - *****************************************/ -#define cl_khr_create_command_queue 1 - -typedef cl_properties cl_queue_properties_khr; - -extern CL_API_ENTRY cl_command_queue CL_API_CALL -clCreateCommandQueueWithPropertiesKHR(cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_command_queue -(CL_API_CALL *clCreateCommandQueueWithPropertiesKHR_fn)(cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - - -/****************************************** -* cl_nv_device_attribute_query extension * -******************************************/ - -/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ -#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 -#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 -#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 -#define CL_DEVICE_WARP_SIZE_NV 0x4003 -#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 -#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 -#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 - - -/********************************* -* cl_amd_device_attribute_query * -*********************************/ - -#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 -#define CL_DEVICE_TOPOLOGY_AMD 0x4037 -#define CL_DEVICE_BOARD_NAME_AMD 0x4038 -#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 -#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 -#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 -#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 -#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 -#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 -#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 -#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 -#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 -#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A -#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B -#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C -#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 -#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 -#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 -#define CL_DEVICE_PCIE_ID_AMD 0x4034 - - -/********************************* -* cl_arm_printf extension -*********************************/ - -#define CL_PRINTF_CALLBACK_ARM 0x40B0 -#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 - - -/*********************************** -* cl_ext_device_fission extension -***********************************/ -#define cl_ext_device_fission 1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseDeviceEXT(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int -(CL_API_CALL *clReleaseDeviceEXT_fn)(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainDeviceEXT(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int -(CL_API_CALL *clRetainDeviceEXT_fn)(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_ulong cl_device_partition_property_ext; -extern CL_API_ENTRY cl_int CL_API_CALL -clCreateSubDevicesEXT(cl_device_id in_device, - const cl_device_partition_property_ext * properties, - cl_uint num_entries, - cl_device_id * out_devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int -(CL_API_CALL * clCreateSubDevicesEXT_fn)(cl_device_id in_device, - const cl_device_partition_property_ext * properties, - cl_uint num_entries, - cl_device_id * out_devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_1; - -/* cl_device_partition_property_ext */ -#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 -#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 -#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 -#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 - -/* clDeviceGetInfo selectors */ -#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 -#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 -#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 -#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 -#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 - -/* error codes */ -#define CL_DEVICE_PARTITION_FAILED_EXT -1057 -#define CL_INVALID_PARTITION_COUNT_EXT -1058 -#define CL_INVALID_PARTITION_NAME_EXT -1059 - -/* CL_AFFINITY_DOMAINs */ -#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 -#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 -#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 -#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 -#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 -#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 - -/* cl_device_partition_property_ext list terminators */ -#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) -#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) -#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) - - -/*********************************** - * cl_ext_migrate_memobject extension definitions - ***********************************/ -#define cl_ext_migrate_memobject 1 - -typedef cl_bitfield cl_mem_migration_flags_ext; - -#define CL_MIGRATE_MEM_OBJECT_HOST_EXT 0x1 - -#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemObjectEXT(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - -typedef cl_int -(CL_API_CALL *clEnqueueMigrateMemObjectEXT_fn)(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - - -/********************************* -* cl_ext_cxx_for_opencl extension -*********************************/ -#define cl_ext_cxx_for_opencl 1 - -#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 - -/********************************* -* cl_qcom_ext_host_ptr extension -*********************************/ -#define cl_qcom_ext_host_ptr 1 - -#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) - -#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 -#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 -#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 -#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 -#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 -#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 -#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 -#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 - -typedef cl_uint cl_image_pitch_info_qcom; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceImageInfoQCOM(cl_device_id device, - size_t image_width, - size_t image_height, - const cl_image_format *image_format, - cl_image_pitch_info_qcom param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); - -typedef struct _cl_mem_ext_host_ptr -{ - /* Type of external memory allocation. */ - /* Legal values will be defined in layered extensions. */ - cl_uint allocation_type; - - /* Host cache policy for this external memory allocation. */ - cl_uint host_cache_policy; - -} cl_mem_ext_host_ptr; - - -/******************************************* -* cl_qcom_ext_host_ptr_iocoherent extension -********************************************/ - -/* Cache policy specifying io-coherence */ -#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 - - -/********************************* -* cl_qcom_ion_host_ptr extension -*********************************/ - -#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 - -typedef struct _cl_mem_ion_host_ptr -{ - /* Type of external memory allocation. */ - /* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */ - cl_mem_ext_host_ptr ext_host_ptr; - - /* ION file descriptor */ - int ion_filedesc; - - /* Host pointer to the ION allocated memory */ - void* ion_hostptr; - -} cl_mem_ion_host_ptr; - - -/********************************* -* cl_qcom_android_native_buffer_host_ptr extension -*********************************/ - -#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 - -typedef struct _cl_mem_android_native_buffer_host_ptr -{ - /* Type of external memory allocation. */ - /* Must be CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM for Android native buffers. */ - cl_mem_ext_host_ptr ext_host_ptr; - - /* Virtual pointer to the android native buffer */ - void* anb_ptr; - -} cl_mem_android_native_buffer_host_ptr; - - -/****************************************** - * cl_img_yuv_image extension * - ******************************************/ - -/* Image formats used in clCreateImage */ -#define CL_NV21_IMG 0x40D0 -#define CL_YV12_IMG 0x40D1 - - -/****************************************** - * cl_img_cached_allocations extension * - ******************************************/ - -/* Flag values used by clCreateBuffer */ -#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) -#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) - - -/****************************************** - * cl_img_use_gralloc_ptr extension * - ******************************************/ -#define cl_img_use_gralloc_ptr 1 - -/* Flag values used by clCreateBuffer */ -#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) - -/* To be used by clGetEventInfo: */ -#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 -#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 - -/* Error codes from clEnqueueAcquireGrallocObjectsIMG and clEnqueueReleaseGrallocObjectsIMG */ -#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 -#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGrallocObjectsIMG(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGrallocObjectsIMG(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -/****************************************** - * cl_img_generate_mipmap extension * - ******************************************/ -#define cl_img_generate_mipmap 1 - -typedef cl_uint cl_mipmap_filter_mode_img; - -/* To be used by clEnqueueGenerateMipmapIMG */ -#define CL_MIPMAP_FILTER_ANY_IMG 0x0 -#define CL_MIPMAP_FILTER_BOX_IMG 0x1 - -/* To be used by clGetEventInfo */ -#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueGenerateMipmapIMG(cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, - cl_mipmap_filter_mode_img mipmap_filter_mode, - const size_t *array_region, - const size_t *mip_region, - cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -/****************************************** - * cl_img_mem_properties extension * - ******************************************/ -#define cl_img_mem_properties 1 - -/* To be used by clCreateBufferWithProperties */ -#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 - -/* To be used wiith the CL_MEM_ALLOC_FLAGS_IMG property */ -typedef cl_bitfield cl_mem_alloc_flags_img; - -/* To be used with cl_mem_alloc_flags_img */ -#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) - -/********************************* -* cl_khr_subgroups extension -*********************************/ -#define cl_khr_subgroups 1 - -#if !defined(CL_VERSION_2_1) -/* For OpenCL 2.1 and newer, cl_kernel_sub_group_info is declared in CL.h. - In hindsight, there should have been a khr suffix on this type for - the extension, but keeping it un-suffixed to maintain backwards - compatibility. */ -typedef cl_uint cl_kernel_sub_group_info; -#endif - -/* cl_kernel_sub_group_info */ -#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 -#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfoKHR(cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void * input_value, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; - -typedef cl_int -(CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void * input_value, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; - - -/********************************* -* cl_khr_mipmap_image extension -*********************************/ - -/* cl_sampler_properties */ -#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 -#define CL_SAMPLER_LOD_MIN_KHR 0x1156 -#define CL_SAMPLER_LOD_MAX_KHR 0x1157 - - -/********************************* -* cl_khr_priority_hints extension -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ -#define cl_khr_priority_hints 1 - -typedef cl_uint cl_queue_priority_khr; - -/* cl_command_queue_properties */ -#define CL_QUEUE_PRIORITY_KHR 0x1096 - -/* cl_queue_priority_khr */ -#define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0) -#define CL_QUEUE_PRIORITY_MED_KHR (1<<1) -#define CL_QUEUE_PRIORITY_LOW_KHR (1<<2) - - -/********************************* -* cl_khr_throttle_hints extension -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ -#define cl_khr_throttle_hints 1 - -typedef cl_uint cl_queue_throttle_khr; - -/* cl_command_queue_properties */ -#define CL_QUEUE_THROTTLE_KHR 0x1097 - -/* cl_queue_throttle_khr */ -#define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0) -#define CL_QUEUE_THROTTLE_MED_KHR (1<<1) -#define CL_QUEUE_THROTTLE_LOW_KHR (1<<2) - - -/********************************* -* cl_khr_subgroup_named_barrier -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ -#define cl_khr_subgroup_named_barrier 1 - -/* cl_device_info */ -#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 - - -/********************************* -* cl_khr_extended_versioning -*********************************/ - -#define cl_khr_extended_versioning 1 - -#define CL_VERSION_MAJOR_BITS_KHR (10) -#define CL_VERSION_MINOR_BITS_KHR (10) -#define CL_VERSION_PATCH_BITS_KHR (12) - -#define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) -#define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) -#define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1) - -#define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) -#define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR) -#define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR) - -#define CL_MAKE_VERSION_KHR(major, minor, patch) \ - ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \ - (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ - ((patch) & CL_VERSION_PATCH_MASK_KHR)) - -typedef cl_uint cl_version_khr; - -#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 - -typedef struct _cl_name_version_khr -{ - cl_version_khr version; - char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; -} cl_name_version_khr; - -/* cl_platform_info */ -#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 -#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 - -/* cl_device_info */ -#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E -#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F -#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 -#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 -#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 - - -/********************************* -* cl_khr_device_uuid extension -*********************************/ -#define cl_khr_device_uuid 1 - -#define CL_UUID_SIZE_KHR 16 -#define CL_LUID_SIZE_KHR 8 - -#define CL_DEVICE_UUID_KHR 0x106A -#define CL_DRIVER_UUID_KHR 0x106B -#define CL_DEVICE_LUID_VALID_KHR 0x106C -#define CL_DEVICE_LUID_KHR 0x106D -#define CL_DEVICE_NODE_MASK_KHR 0x106E - - -/********************************** - * cl_arm_import_memory extension * - **********************************/ -#define cl_arm_import_memory 1 - -typedef intptr_t cl_import_properties_arm; - -/* Default and valid proporties name for cl_arm_import_memory */ -#define CL_IMPORT_TYPE_ARM 0x40B2 - -/* Host process memory type default value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_HOST_ARM 0x40B3 - -/* DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 - -/* Protected memory property */ -#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 - -/* Android hardware buffer type value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 - -/* Data consistency with host property */ -#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 - -/* Index of plane in a multiplanar hardware buffer */ -#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF - -/* Index of layer in a multilayer hardware buffer */ -#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 - -/* Import memory size value to indicate a size for the whole buffer */ -#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX - -/* This extension adds a new function that allows for direct memory import into - * OpenCL via the clImportMemoryARM function. - * - * Memory imported through this interface will be mapped into the device's page - * tables directly, providing zero copy access. It will never fall back to copy - * operations and aliased buffers. - * - * Types of memory supported for import are specified as additional extension - * strings. - * - * This extension produces cl_mem allocations which are compatible with all other - * users of cl_mem in the standard API. - * - * This extension maps pages with the same properties as the normal buffer creation - * function clCreateBuffer. - */ -extern CL_API_ENTRY cl_mem CL_API_CALL -clImportMemoryARM( cl_context context, - cl_mem_flags flags, - const cl_import_properties_arm *properties, - void *memory, - size_t size, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - - -/****************************************** - * cl_arm_shared_virtual_memory extension * - ******************************************/ -#define cl_arm_shared_virtual_memory 1 - -/* Used by clGetDeviceInfo */ -#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 - -/* Used by clGetMemObjectInfo */ -#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 - -/* Used by clSetKernelExecInfoARM: */ -#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 -#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 - -/* To be used by clGetEventInfo: */ -#define CL_COMMAND_SVM_FREE_ARM 0x40BA -#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB -#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC -#define CL_COMMAND_SVM_MAP_ARM 0x40BD -#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE - -/* Flag values returned by clGetDeviceInfo with CL_DEVICE_SVM_CAPABILITIES_ARM as the param_name. */ -#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) -#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) -#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) -#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) - -/* Flag values used by clSVMAllocARM: */ -#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) -#define CL_MEM_SVM_ATOMICS_ARM (1 << 11) - -typedef cl_bitfield cl_svm_mem_flags_arm; -typedef cl_uint cl_kernel_exec_info_arm; -typedef cl_bitfield cl_device_svm_capabilities_arm; - -extern CL_API_ENTRY void * CL_API_CALL -clSVMAllocARM(cl_context context, - cl_svm_mem_flags_arm flags, - size_t size, - cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY void CL_API_CALL -clSVMFreeARM(cl_context context, - void * svm_pointer) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMFreeARM(cl_command_queue command_queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void * user_data), - void * user_data, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemcpyARM(cl_command_queue command_queue, - cl_bool blocking_copy, - void * dst_ptr, - const void * src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemFillARM(cl_command_queue command_queue, - void * svm_ptr, - const void * pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMapARM(cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, - void * svm_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMUnmapARM(cl_command_queue command_queue, - void * svm_ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgSVMPointerARM(cl_kernel kernel, - cl_uint arg_index, - const void * arg_value) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelExecInfoARM(cl_kernel kernel, - cl_kernel_exec_info_arm param_name, - size_t param_value_size, - const void * param_value) CL_API_SUFFIX__VERSION_1_2; - -/******************************** - * cl_arm_get_core_id extension * - ********************************/ - -#ifdef CL_VERSION_1_2 - -#define cl_arm_get_core_id 1 - -/* Device info property for bitfield of cores present */ -#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF - -#endif /* CL_VERSION_1_2 */ - -/********************************* -* cl_arm_job_slot_selection -*********************************/ - -#define cl_arm_job_slot_selection 1 - -/* cl_device_info */ -#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 - -/* cl_command_queue_properties */ -#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 - -/********************************* -* cl_arm_scheduling_controls -*********************************/ - -#define cl_arm_scheduling_controls 1 - -typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; - -/* cl_device_info */ -#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 - -#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) -#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) -#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) - -#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB - -/* cl_kernel_info */ -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 - -/* cl_queue_properties */ -#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 -#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC - -/************************************** -* cl_arm_controlled_kernel_termination -***************************************/ - -#define cl_arm_controlled_kernel_termination 1 - -/* Error code to indicate kernel terminated with failure */ -#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 - -/* cl_device_info */ -#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE - -/* Bit fields for controlled termination feature query */ -typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; - -#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) -#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) -#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) - -/* cl_event_info */ -#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED - -/* Values returned for event termination reason query */ -typedef cl_uint cl_command_termination_reason_arm; - -#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 -#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 -#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 -#define CL_COMMAND_TERMINATION_ERROR_ARM 3 - -/*************************************** -* cl_intel_thread_local_exec extension * -****************************************/ - -#define cl_intel_thread_local_exec 1 - -#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (((cl_bitfield)1) << 31) - -/*********************************************** -* cl_intel_device_partition_by_names extension * -************************************************/ - -#define cl_intel_device_partition_by_names 1 - -#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 -#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 - -/************************************************ -* cl_intel_accelerator extension * -* cl_intel_motion_estimation extension * -* cl_intel_advanced_motion_estimation extension * -*************************************************/ - -#define cl_intel_accelerator 1 -#define cl_intel_motion_estimation 1 -#define cl_intel_advanced_motion_estimation 1 - -typedef struct _cl_accelerator_intel* cl_accelerator_intel; -typedef cl_uint cl_accelerator_type_intel; -typedef cl_uint cl_accelerator_info_intel; - -typedef struct _cl_motion_estimation_desc_intel { - cl_uint mb_block_type; - cl_uint subpixel_mode; - cl_uint sad_adjust_mode; - cl_uint search_path_type; -} cl_motion_estimation_desc_intel; - -/* error codes */ -#define CL_INVALID_ACCELERATOR_INTEL -1094 -#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 -#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 -#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 - -/* cl_accelerator_type_intel */ -#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 - -/* cl_accelerator_info_intel */ -#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 -#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 -#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 -#define CL_ACCELERATOR_TYPE_INTEL 0x4093 - -/* cl_motion_detect_desc_intel flags */ -#define CL_ME_MB_TYPE_16x16_INTEL 0x0 -#define CL_ME_MB_TYPE_8x8_INTEL 0x1 -#define CL_ME_MB_TYPE_4x4_INTEL 0x2 - -#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 - -#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 - -#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 -#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 -#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 - -#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 -#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 -#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 -#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 - -#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 -#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 -#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 - -#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 -#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 -#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 -#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 -#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 - -#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 -#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 -#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 -#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 - -#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 - -#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 - -/* cl_device_info */ -#define CL_DEVICE_ME_VERSION_INTEL 0x407E - -#define CL_ME_VERSION_LEGACY_INTEL 0x0 -#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 -#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 - -extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL -clCreateAcceleratorINTEL( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_accelerator_intel (CL_API_CALL *clCreateAcceleratorINTEL_fn)( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetAcceleratorInfoINTEL( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clGetAcceleratorInfoINTEL_fn)( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clRetainAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -/****************************************** -* cl_intel_simultaneous_sharing extension * -*******************************************/ - -#define cl_intel_simultaneous_sharing 1 - -#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 -#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 - -/*********************************** -* cl_intel_egl_image_yuv extension * -************************************/ - -#define cl_intel_egl_image_yuv 1 - -#define CL_EGL_YUV_PLANE_INTEL 0x4107 - -/******************************** -* cl_intel_packed_yuv extension * -*********************************/ - -#define cl_intel_packed_yuv 1 - -#define CL_YUYV_INTEL 0x4076 -#define CL_UYVY_INTEL 0x4077 -#define CL_YVYU_INTEL 0x4078 -#define CL_VYUY_INTEL 0x4079 - -/******************************************** -* cl_intel_required_subgroup_size extension * -*********************************************/ - -#define cl_intel_required_subgroup_size 1 - -#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 -#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 -#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A - -/**************************************** -* cl_intel_driver_diagnostics extension * -*****************************************/ - -#define cl_intel_driver_diagnostics 1 - -typedef cl_uint cl_diagnostics_verbose_level; - -#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 - -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL ( 0xff ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL ( 1 ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL ( 1 << 1 ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL ( 1 << 2 ) - -/******************************** -* cl_intel_planar_yuv extension * -*********************************/ - -#define CL_NV12_INTEL 0x410E - -#define CL_MEM_NO_ACCESS_INTEL ( 1 << 24 ) -#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL ( 1 << 25 ) - -#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E -#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F - -/******************************************************* -* cl_intel_device_side_avc_motion_estimation extension * -********************************************************/ - -#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B -#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C -#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D - -#define CL_AVC_ME_VERSION_0_INTEL 0x0 /* No support. */ -#define CL_AVC_ME_VERSION_1_INTEL 0x1 /* First supported version. */ - -#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 -#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 -#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 -#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 - -#define CL_AVC_ME_MINOR_8x8_INTEL 0x0 -#define CL_AVC_ME_MINOR_8x4_INTEL 0x1 -#define CL_AVC_ME_MINOR_4x8_INTEL 0x2 -#define CL_AVC_ME_MINOR_4x4_INTEL 0x3 - -#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 -#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 -#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 - -#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 -#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E -#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D -#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B -#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 -#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F -#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F -#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F - -#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 -#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 -#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 -#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 -#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 -#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 -#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 -#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 -#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 -#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 -#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 -#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa - -#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 - -#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 - -#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 -#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 -#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 -#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B -#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 - -#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 -#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 -#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 -#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 - -#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 -#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 - -#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL ( 0x3 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL ( 0x55 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL ( 0xAA << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL ( 0xFF << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL ( 0x1 << 26 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL ( 0x2 << 26 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL ( 0x1 << 28 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL ( 0x2 << 28 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL ( 0x1 << 30 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL ( 0x2 << 30 ) - -#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 -#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 - -#define CL_AVC_ME_INTRA_16x16_INTEL 0x0 -#define CL_AVC_ME_INTRA_8x8_INTEL 0x1 -#define CL_AVC_ME_INTRA_4x4_INTEL 0x2 - -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 - -#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 - -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 - -#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 -#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 -#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 - -#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 -#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 -#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 - -#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 -#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 - -/******************************************* -* cl_intel_unified_shared_memory extension * -********************************************/ - -/* These APIs are in sync with Revision Q of the cl_intel_unified_shared_memory spec! */ - -#define cl_intel_unified_shared_memory 1 - -/* cl_device_info */ -#define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190 -#define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191 -#define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192 -#define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 -#define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 - -typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; - -/* cl_device_unified_shared_memory_capabilities_intel - bitfield */ -#define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) -#define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) -#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) -#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3) - -typedef cl_properties cl_mem_properties_intel; - -/* cl_mem_properties_intel */ -#define CL_MEM_ALLOC_FLAGS_INTEL 0x4195 - -typedef cl_bitfield cl_mem_alloc_flags_intel; - -/* cl_mem_alloc_flags_intel - bitfield */ -#define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0) - -typedef cl_uint cl_mem_info_intel; - -/* cl_mem_alloc_info_intel */ -#define CL_MEM_ALLOC_TYPE_INTEL 0x419A -#define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B -#define CL_MEM_ALLOC_SIZE_INTEL 0x419C -#define CL_MEM_ALLOC_DEVICE_INTEL 0x419D -/* Enum values 0x419E-0x419F are reserved for future queries. */ - -typedef cl_uint cl_unified_shared_memory_type_intel; - -/* cl_unified_shared_memory_type_intel */ -#define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196 -#define CL_MEM_TYPE_HOST_INTEL 0x4197 -#define CL_MEM_TYPE_DEVICE_INTEL 0x4198 -#define CL_MEM_TYPE_SHARED_INTEL 0x4199 - -typedef cl_uint cl_mem_advice_intel; - -/* cl_mem_advice_intel */ -/* Enum values 0x4208-0x420F are reserved for future memory advices. */ - -/* cl_kernel_exec_info */ -#define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200 -#define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201 -#define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202 -#define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203 - -/* cl_command_type */ -#define CL_COMMAND_MEMFILL_INTEL 0x4204 -#define CL_COMMAND_MEMCPY_INTEL 0x4205 -#define CL_COMMAND_MIGRATEMEM_INTEL 0x4206 -#define CL_COMMAND_MEMADVISE_INTEL 0x4207 - -extern CL_API_ENTRY void* CL_API_CALL -clHostMemAllocINTEL( - cl_context context, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -typedef void* (CL_API_CALL * -clHostMemAllocINTEL_fn)( - cl_context context, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -extern CL_API_ENTRY void* CL_API_CALL -clDeviceMemAllocINTEL( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -typedef void* (CL_API_CALL * -clDeviceMemAllocINTEL_fn)( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -extern CL_API_ENTRY void* CL_API_CALL -clSharedMemAllocINTEL( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -typedef void* (CL_API_CALL * -clSharedMemAllocINTEL_fn)( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL -clMemFreeINTEL( - cl_context context, - void* ptr); - -typedef cl_int (CL_API_CALL * -clMemFreeINTEL_fn)( - cl_context context, - void* ptr); - -extern CL_API_ENTRY cl_int CL_API_CALL -clMemBlockingFreeINTEL( - cl_context context, - void* ptr); - -typedef cl_int (CL_API_CALL * -clMemBlockingFreeINTEL_fn)( - cl_context context, - void* ptr); - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetMemAllocInfoINTEL( - cl_context context, - const void* ptr, - cl_mem_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret); - -typedef cl_int (CL_API_CALL * -clGetMemAllocInfoINTEL_fn)( - cl_context context, - const void* ptr, - cl_mem_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgMemPointerINTEL( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value); - -typedef cl_int (CL_API_CALL * -clSetKernelArgMemPointerINTEL_fn)( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value); - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemsetINTEL( /* Deprecated */ - cl_command_queue command_queue, - void* dst_ptr, - cl_int value, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef cl_int (CL_API_CALL * -clEnqueueMemsetINTEL_fn)( /* Deprecated */ - cl_command_queue command_queue, - void* dst_ptr, - cl_int value, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemFillINTEL( - cl_command_queue command_queue, - void* dst_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef cl_int (CL_API_CALL * -clEnqueueMemFillINTEL_fn)( - cl_command_queue command_queue, - void* dst_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemcpyINTEL( - cl_command_queue command_queue, - cl_bool blocking, - void* dst_ptr, - const void* src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef cl_int (CL_API_CALL * -clEnqueueMemcpyINTEL_fn)( - cl_command_queue command_queue, - cl_bool blocking, - void* dst_ptr, - const void* src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -#ifdef CL_VERSION_1_2 - -/* Because these APIs use cl_mem_migration_flags, they require - OpenCL 1.2: */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemINTEL( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef cl_int (CL_API_CALL * -clEnqueueMigrateMemINTEL_fn)( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemAdviseINTEL( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_advice_intel advice, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef cl_int (CL_API_CALL * -clEnqueueMemAdviseINTEL_fn)( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_advice_intel advice, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -/*************************************************** -* cl_intel_create_buffer_with_properties extension * -****************************************************/ - -#define cl_intel_create_buffer_with_properties 1 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBufferWithPropertiesINTEL( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL * -clCreateBufferWithPropertiesINTEL_fn)( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -/****************************************** -* cl_intel_mem_channel_property extension * -*******************************************/ - -#define CL_MEM_CHANNEL_INTEL 0x4213 - -/********************************* -* cl_intel_mem_force_host_memory * -**********************************/ - -#define cl_intel_mem_force_host_memory 1 - -/* cl_mem_flags */ -#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) - -/*************************************************************** -* cl_intel_command_queue_families -***************************************************************/ -#define cl_intel_command_queue_families 1 - -typedef cl_bitfield cl_command_queue_capabilities_intel; - -#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 - -typedef struct _cl_queue_family_properties_intel { - cl_command_queue_properties properties; - cl_command_queue_capabilities_intel capabilities; - cl_uint count; - char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; -} cl_queue_family_properties_intel; - -/* cl_device_info */ -#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B - -/* cl_queue_properties */ -#define CL_QUEUE_FAMILY_INTEL 0x418C -#define CL_QUEUE_INDEX_INTEL 0x418D - -/* cl_command_queue_capabilities_intel */ -#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 -#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) -#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) -#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) -#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) -#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) -#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) -#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) -#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) -#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) -#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) -#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) -#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) -#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) - -#ifdef __cplusplus -} -#endif - - -#endif /* __CL_EXT_H */ diff --git a/milepost/ext/angle_headers/CL/cl_ext_intel.h b/milepost/ext/angle_headers/CL/cl_ext_intel.h deleted file mode 100644 index a7ae87a..0000000 --- a/milepost/ext/angle_headers/CL/cl_ext_intel.h +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - -#include -#pragma message("The Intel extensions have been moved into cl_ext.h. Please include cl_ext.h directly.") diff --git a/milepost/ext/angle_headers/CL/cl_gl.h b/milepost/ext/angle_headers/CL/cl_gl.h deleted file mode 100644 index 5ea0fd8..0000000 --- a/milepost/ext/angle_headers/CL/cl_gl.h +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_GL_H -#define __OPENCL_CL_GL_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef cl_uint cl_gl_object_type; -typedef cl_uint cl_gl_texture_info; -typedef cl_uint cl_gl_platform_info; -typedef struct __GLsync *cl_GLsync; - -/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ -#define CL_GL_OBJECT_BUFFER 0x2000 -#define CL_GL_OBJECT_TEXTURE2D 0x2001 -#define CL_GL_OBJECT_TEXTURE3D 0x2002 -#define CL_GL_OBJECT_RENDERBUFFER 0x2003 -#ifdef CL_VERSION_1_2 -#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E -#define CL_GL_OBJECT_TEXTURE1D 0x200F -#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 -#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 -#endif - -/* cl_gl_texture_info */ -#define CL_GL_TEXTURE_TARGET 0x2004 -#define CL_GL_MIPMAP_LEVEL 0x2005 -#ifdef CL_VERSION_1_2 -#define CL_GL_NUM_SAMPLES 0x2012 -#endif - - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLBuffer(cl_context context, - cl_mem_flags flags, - cl_GLuint bufobj, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLTexture(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#endif - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLRenderbuffer(cl_context context, - cl_mem_flags flags, - cl_GLuint renderbuffer, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLObjectInfo(cl_mem memobj, - cl_gl_object_type * gl_object_type, - cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLTextureInfo(cl_mem memobj, - cl_gl_texture_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGLObjects(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGLObjects(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - - -/* Deprecated OpenCL 1.1 APIs */ -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateFromGLTexture2D(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateFromGLTexture3D(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -/* cl_khr_gl_sharing extension */ - -#define cl_khr_gl_sharing 1 - -typedef cl_uint cl_gl_context_info; - -/* Additional Error Codes */ -#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 - -/* cl_gl_context_info */ -#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 -#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 - -/* Additional cl_context_properties */ -#define CL_GL_CONTEXT_KHR 0x2008 -#define CL_EGL_DISPLAY_KHR 0x2009 -#define CL_GLX_DISPLAY_KHR 0x200A -#define CL_WGL_HDC_KHR 0x200B -#define CL_CGL_SHAREGROUP_KHR 0x200C - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLContextInfoKHR(const cl_context_properties * properties, - cl_gl_context_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)( - const cl_context_properties * properties, - cl_gl_context_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret); - -/* - * cl_khr_gl_event extension - */ -#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromGLsyncKHR(cl_context context, - cl_GLsync sync, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_GL_H */ diff --git a/milepost/ext/angle_headers/CL/cl_gl_ext.h b/milepost/ext/angle_headers/CL/cl_gl_ext.h deleted file mode 100644 index 8ec8181..0000000 --- a/milepost/ext/angle_headers/CL/cl_gl_ext.h +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#include -#pragma message("All OpenGL-related extensions have been moved into cl_gl.h. Please include cl_gl.h directly.") diff --git a/milepost/ext/angle_headers/CL/cl_half.h b/milepost/ext/angle_headers/CL/cl_half.h deleted file mode 100644 index ecc4223..0000000 --- a/milepost/ext/angle_headers/CL/cl_half.h +++ /dev/null @@ -1,440 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -/** - * This is a header-only utility library that provides OpenCL host code with - * routines for converting to/from cl_half values. - * - * Example usage: - * - * #include - * ... - * cl_half h = cl_half_from_float(0.5f, CL_HALF_RTE); - * cl_float f = cl_half_to_float(h); - */ - -#ifndef OPENCL_CL_HALF_H -#define OPENCL_CL_HALF_H - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * Rounding mode used when converting to cl_half. - */ -typedef enum -{ - CL_HALF_RTE, // round to nearest even - CL_HALF_RTZ, // round towards zero - CL_HALF_RTP, // round towards positive infinity - CL_HALF_RTN, // round towards negative infinity -} cl_half_rounding_mode; - - -/* Private utility macros. */ -#define CL_HALF_EXP_MASK 0x7C00 -#define CL_HALF_MAX_FINITE_MAG 0x7BFF - - -/* - * Utility to deal with values that overflow when converting to half precision. - */ -static inline cl_half cl_half_handle_overflow(cl_half_rounding_mode rounding_mode, - uint16_t sign) -{ - if (rounding_mode == CL_HALF_RTZ) - { - // Round overflow towards zero -> largest finite number (preserving sign) - return (sign << 15) | CL_HALF_MAX_FINITE_MAG; - } - else if (rounding_mode == CL_HALF_RTP && sign) - { - // Round negative overflow towards positive infinity -> most negative finite number - return (1 << 15) | CL_HALF_MAX_FINITE_MAG; - } - else if (rounding_mode == CL_HALF_RTN && !sign) - { - // Round positive overflow towards negative infinity -> largest finite number - return CL_HALF_MAX_FINITE_MAG; - } - - // Overflow to infinity - return (sign << 15) | CL_HALF_EXP_MASK; -} - -/* - * Utility to deal with values that underflow when converting to half precision. - */ -static inline cl_half cl_half_handle_underflow(cl_half_rounding_mode rounding_mode, - uint16_t sign) -{ - if (rounding_mode == CL_HALF_RTP && !sign) - { - // Round underflow towards positive infinity -> smallest positive value - return (sign << 15) | 1; - } - else if (rounding_mode == CL_HALF_RTN && sign) - { - // Round underflow towards negative infinity -> largest negative value - return (sign << 15) | 1; - } - - // Flush to zero - return (sign << 15); -} - - -/** - * Convert a cl_float to a cl_half. - */ -static inline cl_half cl_half_from_float(cl_float f, cl_half_rounding_mode rounding_mode) -{ - // Type-punning to get direct access to underlying bits - union - { - cl_float f; - uint32_t i; - } f32; - f32.f = f; - - // Extract sign bit - uint16_t sign = f32.i >> 31; - - // Extract FP32 exponent and mantissa - uint32_t f_exp = (f32.i >> (CL_FLT_MANT_DIG - 1)) & 0xFF; - uint32_t f_mant = f32.i & ((1 << (CL_FLT_MANT_DIG - 1)) - 1); - - // Remove FP32 exponent bias - int32_t exp = f_exp - CL_FLT_MAX_EXP + 1; - - // Add FP16 exponent bias - uint16_t h_exp = (uint16_t)(exp + CL_HALF_MAX_EXP - 1); - - // Position of the bit that will become the FP16 mantissa LSB - uint32_t lsb_pos = CL_FLT_MANT_DIG - CL_HALF_MANT_DIG; - - // Check for NaN / infinity - if (f_exp == 0xFF) - { - if (f_mant) - { - // NaN -> propagate mantissa and silence it - uint16_t h_mant = (uint16_t)(f_mant >> lsb_pos); - h_mant |= 0x200; - return (sign << 15) | CL_HALF_EXP_MASK | h_mant; - } - else - { - // Infinity -> zero mantissa - return (sign << 15) | CL_HALF_EXP_MASK; - } - } - - // Check for zero - if (!f_exp && !f_mant) - { - return (sign << 15); - } - - // Check for overflow - if (exp >= CL_HALF_MAX_EXP) - { - return cl_half_handle_overflow(rounding_mode, sign); - } - - // Check for underflow - if (exp < (CL_HALF_MIN_EXP - CL_HALF_MANT_DIG - 1)) - { - return cl_half_handle_underflow(rounding_mode, sign); - } - - // Check for value that will become denormal - if (exp < -14) - { - // Denormal -> include the implicit 1 from the FP32 mantissa - h_exp = 0; - f_mant |= 1 << (CL_FLT_MANT_DIG - 1); - - // Mantissa shift amount depends on exponent - lsb_pos = -exp + (CL_FLT_MANT_DIG - 25); - } - - // Generate FP16 mantissa by shifting FP32 mantissa - uint16_t h_mant = (uint16_t)(f_mant >> lsb_pos); - - // Check whether we need to round - uint32_t halfway = 1 << (lsb_pos - 1); - uint32_t mask = (halfway << 1) - 1; - switch (rounding_mode) - { - case CL_HALF_RTE: - if ((f_mant & mask) > halfway) - { - // More than halfway -> round up - h_mant += 1; - } - else if ((f_mant & mask) == halfway) - { - // Exactly halfway -> round to nearest even - if (h_mant & 0x1) - h_mant += 1; - } - break; - case CL_HALF_RTZ: - // Mantissa has already been truncated -> do nothing - break; - case CL_HALF_RTP: - if ((f_mant & mask) && !sign) - { - // Round positive numbers up - h_mant += 1; - } - break; - case CL_HALF_RTN: - if ((f_mant & mask) && sign) - { - // Round negative numbers down - h_mant += 1; - } - break; - } - - // Check for mantissa overflow - if (h_mant & 0x400) - { - h_exp += 1; - h_mant = 0; - } - - return (sign << 15) | (h_exp << 10) | h_mant; -} - - -/** - * Convert a cl_double to a cl_half. - */ -static inline cl_half cl_half_from_double(cl_double d, cl_half_rounding_mode rounding_mode) -{ - // Type-punning to get direct access to underlying bits - union - { - cl_double d; - uint64_t i; - } f64; - f64.d = d; - - // Extract sign bit - uint16_t sign = f64.i >> 63; - - // Extract FP64 exponent and mantissa - uint64_t d_exp = (f64.i >> (CL_DBL_MANT_DIG - 1)) & 0x7FF; - uint64_t d_mant = f64.i & (((uint64_t)1 << (CL_DBL_MANT_DIG - 1)) - 1); - - // Remove FP64 exponent bias - int64_t exp = d_exp - CL_DBL_MAX_EXP + 1; - - // Add FP16 exponent bias - uint16_t h_exp = (uint16_t)(exp + CL_HALF_MAX_EXP - 1); - - // Position of the bit that will become the FP16 mantissa LSB - uint32_t lsb_pos = CL_DBL_MANT_DIG - CL_HALF_MANT_DIG; - - // Check for NaN / infinity - if (d_exp == 0x7FF) - { - if (d_mant) - { - // NaN -> propagate mantissa and silence it - uint16_t h_mant = (uint16_t)(d_mant >> lsb_pos); - h_mant |= 0x200; - return (sign << 15) | CL_HALF_EXP_MASK | h_mant; - } - else - { - // Infinity -> zero mantissa - return (sign << 15) | CL_HALF_EXP_MASK; - } - } - - // Check for zero - if (!d_exp && !d_mant) - { - return (sign << 15); - } - - // Check for overflow - if (exp >= CL_HALF_MAX_EXP) - { - return cl_half_handle_overflow(rounding_mode, sign); - } - - // Check for underflow - if (exp < (CL_HALF_MIN_EXP - CL_HALF_MANT_DIG - 1)) - { - return cl_half_handle_underflow(rounding_mode, sign); - } - - // Check for value that will become denormal - if (exp < -14) - { - // Include the implicit 1 from the FP64 mantissa - h_exp = 0; - d_mant |= (uint64_t)1 << (CL_DBL_MANT_DIG - 1); - - // Mantissa shift amount depends on exponent - lsb_pos = (uint32_t)(-exp + (CL_DBL_MANT_DIG - 25)); - } - - // Generate FP16 mantissa by shifting FP64 mantissa - uint16_t h_mant = (uint16_t)(d_mant >> lsb_pos); - - // Check whether we need to round - uint64_t halfway = (uint64_t)1 << (lsb_pos - 1); - uint64_t mask = (halfway << 1) - 1; - switch (rounding_mode) - { - case CL_HALF_RTE: - if ((d_mant & mask) > halfway) - { - // More than halfway -> round up - h_mant += 1; - } - else if ((d_mant & mask) == halfway) - { - // Exactly halfway -> round to nearest even - if (h_mant & 0x1) - h_mant += 1; - } - break; - case CL_HALF_RTZ: - // Mantissa has already been truncated -> do nothing - break; - case CL_HALF_RTP: - if ((d_mant & mask) && !sign) - { - // Round positive numbers up - h_mant += 1; - } - break; - case CL_HALF_RTN: - if ((d_mant & mask) && sign) - { - // Round negative numbers down - h_mant += 1; - } - break; - } - - // Check for mantissa overflow - if (h_mant & 0x400) - { - h_exp += 1; - h_mant = 0; - } - - return (sign << 15) | (h_exp << 10) | h_mant; -} - - -/** - * Convert a cl_half to a cl_float. - */ -static inline cl_float cl_half_to_float(cl_half h) -{ - // Type-punning to get direct access to underlying bits - union - { - cl_float f; - uint32_t i; - } f32; - - // Extract sign bit - uint16_t sign = h >> 15; - - // Extract FP16 exponent and mantissa - uint16_t h_exp = (h >> (CL_HALF_MANT_DIG - 1)) & 0x1F; - uint16_t h_mant = h & 0x3FF; - - // Remove FP16 exponent bias - int32_t exp = h_exp - CL_HALF_MAX_EXP + 1; - - // Add FP32 exponent bias - uint32_t f_exp = exp + CL_FLT_MAX_EXP - 1; - - // Check for NaN / infinity - if (h_exp == 0x1F) - { - if (h_mant) - { - // NaN -> propagate mantissa and silence it - uint32_t f_mant = h_mant << (CL_FLT_MANT_DIG - CL_HALF_MANT_DIG); - f_mant |= 0x400000; - f32.i = (sign << 31) | 0x7F800000 | f_mant; - return f32.f; - } - else - { - // Infinity -> zero mantissa - f32.i = (sign << 31) | 0x7F800000; - return f32.f; - } - } - - // Check for zero / denormal - if (h_exp == 0) - { - if (h_mant == 0) - { - // Zero -> zero exponent - f_exp = 0; - } - else - { - // Denormal -> normalize it - // - Shift mantissa to make most-significant 1 implicit - // - Adjust exponent accordingly - uint32_t shift = 0; - while ((h_mant & 0x400) == 0) - { - h_mant <<= 1; - shift++; - } - h_mant &= 0x3FF; - f_exp -= shift - 1; - } - } - - f32.i = (sign << 31) | (f_exp << 23) | (h_mant << 13); - return f32.f; -} - - -#undef CL_HALF_EXP_MASK -#undef CL_HALF_MAX_FINITE_MAG - - -#ifdef __cplusplus -} -#endif - - -#endif /* OPENCL_CL_HALF_H */ diff --git a/milepost/ext/angle_headers/CL/cl_icd.h b/milepost/ext/angle_headers/CL/cl_icd.h deleted file mode 100644 index d5ac1de..0000000 --- a/milepost/ext/angle_headers/CL/cl_icd.h +++ /dev/null @@ -1,1294 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef OPENCL_CL_ICD_H -#define OPENCL_CL_ICD_H - -#include -#include -#include -#include - -#if defined(_WIN32) -#include -#include -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This file contains pointer type definitions for each of the CL API calls as - * well as a type definition for the dispatch table used by the Khronos ICD - * loader (see cl_khr_icd extension specification for background). - */ - -/* API function pointer definitions */ - -// Platform APIs -typedef cl_int(CL_API_CALL *cl_api_clGetPlatformIDs)( - cl_uint num_entries, cl_platform_id *platforms, - cl_uint *num_platforms) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetPlatformInfo)( - cl_platform_id platform, cl_platform_info param_name, - size_t param_value_size, void *param_value, - size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -// Device APIs -typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDs)( - cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, - cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetDeviceInfo)( - cl_device_id device, cl_device_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clCreateSubDevices)( - cl_device_id in_device, - const cl_device_partition_property *partition_properties, - cl_uint num_entries, cl_device_id *out_devices, cl_uint *num_devices); - -typedef cl_int(CL_API_CALL *cl_api_clRetainDevice)( - cl_device_id device) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseDevice)( - cl_device_id device) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clCreateSubDevices; -typedef void *cl_api_clRetainDevice; -typedef void *cl_api_clReleaseDevice; - -#endif - -// Context APIs -typedef cl_context(CL_API_CALL *cl_api_clCreateContext)( - const cl_context_properties *properties, cl_uint num_devices, - const cl_device_id *devices, - void(CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *), - void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_context(CL_API_CALL *cl_api_clCreateContextFromType)( - const cl_context_properties *properties, cl_device_type device_type, - void(CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *), - void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clRetainContext)( - cl_context context) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseContext)( - cl_context context) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetContextInfo)( - cl_context context, cl_context_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -// Command Queue APIs -typedef cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueue)( - cl_context context, cl_device_id device, - cl_command_queue_properties properties, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_0 - -typedef -cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueueWithProperties)( - cl_context /* context */, cl_device_id /* device */, - const cl_queue_properties * /* properties */, - cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; - -#else - -typedef void *cl_api_clCreateCommandQueueWithProperties; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clRetainCommandQueue)( - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseCommandQueue)( - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetCommandQueueInfo)( - cl_command_queue command_queue, cl_command_queue_info param_name, - size_t param_value_size, void *param_value, - size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -// Memory Object APIs -typedef cl_mem(CL_API_CALL *cl_api_clCreateBuffer)( - cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_mem(CL_API_CALL *cl_api_clCreateImage)( - cl_context context, cl_mem_flags flags, const cl_image_format *image_format, - const cl_image_desc *image_desc, void *host_ptr, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clCreateImage; - -#endif - -#ifdef CL_VERSION_3_0 - -typedef cl_mem(CL_API_CALL *cl_api_clCreateBufferWithProperties)( - cl_context context, const cl_mem_properties *properties, cl_mem_flags flags, - size_t size, void *host_ptr, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateImageWithProperties)( - cl_context context, const cl_mem_properties *properties, cl_mem_flags flags, - const cl_image_format *image_format, const cl_image_desc *image_desc, - void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0; - -typedef cl_int(CL_API_CALL* cl_api_clSetContextDestructorCallback)( - cl_context context, - void(CL_CALLBACK* pfn_notify)(cl_context context, void* user_data), - void* user_data) CL_API_SUFFIX__VERSION_3_0; - -#else - -typedef void *cl_api_clCreateBufferWithProperties; -typedef void *cl_api_clCreateImageWithProperties; -typedef void *cl_api_clSetContextDestructorCallback; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clRetainMemObject)( - cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseMemObject)( - cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetSupportedImageFormats)( - cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, - cl_uint num_entries, cl_image_format *image_formats, - cl_uint *num_image_formats) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetMemObjectInfo)( - cl_mem memobj, cl_mem_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetImageInfo)( - cl_mem image, cl_image_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_0 - -typedef cl_mem(CL_API_CALL *cl_api_clCreatePipe)( - cl_context /* context */, cl_mem_flags /* flags */, - cl_uint /* pipe_packet_size */, cl_uint /* pipe_max_packets */, - const cl_pipe_properties * /* properties */, - cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetPipeInfo)( - cl_mem /* pipe */, cl_pipe_info /* param_name */, - size_t /* param_value_size */, void * /* param_value */, - size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0; - -typedef void *(CL_API_CALL *cl_api_clSVMAlloc)( - cl_context /* context */, cl_svm_mem_flags /* flags */, size_t /* size */, - unsigned int /* alignment */)CL_API_SUFFIX__VERSION_2_0; - -typedef void(CL_API_CALL *cl_api_clSVMFree)( - cl_context /* context */, - void * /* svm_pointer */) CL_API_SUFFIX__VERSION_2_0; - -#else - -typedef void *cl_api_clCreatePipe; -typedef void *cl_api_clGetPipeInfo; -typedef void *cl_api_clSVMAlloc; -typedef void *cl_api_clSVMFree; - -#endif - -// Sampler APIs -typedef cl_sampler(CL_API_CALL *cl_api_clCreateSampler)( - cl_context context, cl_bool normalized_coords, - cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clRetainSampler)( - cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseSampler)( - cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetSamplerInfo)( - cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_0 - -typedef -cl_sampler(CL_API_CALL *cl_api_clCreateSamplerWithProperties)( - cl_context /* context */, - const cl_sampler_properties * /* sampler_properties */, - cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; - -#else - -typedef void *cl_api_clCreateSamplerWithProperties; - -#endif - -// Program Object APIs -typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithSource)( - cl_context context, cl_uint count, const char **strings, - const size_t *lengths, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithBinary)( - cl_context context, cl_uint num_devices, const cl_device_id *device_list, - const size_t *lengths, const unsigned char **binaries, - cl_int *binary_status, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef -cl_program(CL_API_CALL *cl_api_clCreateProgramWithBuiltInKernels)( - cl_context context, cl_uint num_devices, const cl_device_id *device_list, - const char *kernel_names, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clCreateProgramWithBuiltInKernels; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clRetainProgram)( - cl_program program) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseProgram)( - cl_program program) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clBuildProgram)( - cl_program program, cl_uint num_devices, const cl_device_id *device_list, - const char *options, - void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), - void *user_data) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clCompileProgram)( - cl_program program, cl_uint num_devices, const cl_device_id *device_list, - const char *options, cl_uint num_input_headers, - const cl_program *input_headers, const char **header_include_names, - void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), - void *user_data) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_program(CL_API_CALL *cl_api_clLinkProgram)( - cl_context context, cl_uint num_devices, const cl_device_id *device_list, - const char *options, cl_uint num_input_programs, - const cl_program *input_programs, - void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), - void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clCompileProgram; -typedef void *cl_api_clLinkProgram; - -#endif - -#ifdef CL_VERSION_2_2 - -typedef -cl_int(CL_API_CALL *cl_api_clSetProgramSpecializationConstant)( - cl_program program, cl_uint spec_id, size_t spec_size, - const void *spec_value) CL_API_SUFFIX__VERSION_2_2; - -typedef cl_int(CL_API_CALL *cl_api_clSetProgramReleaseCallback)( - cl_program program, - void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), - void *user_data) CL_API_SUFFIX__VERSION_2_2; - -#else - -typedef void *cl_api_clSetProgramSpecializationConstant; -typedef void *cl_api_clSetProgramReleaseCallback; - -#endif - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clUnloadPlatformCompiler)( - cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clUnloadPlatformCompiler; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clGetProgramInfo)( - cl_program program, cl_program_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetProgramBuildInfo)( - cl_program program, cl_device_id device, cl_program_build_info param_name, - size_t param_value_size, void *param_value, - size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -// Kernel Object APIs -typedef cl_kernel(CL_API_CALL *cl_api_clCreateKernel)( - cl_program program, const char *kernel_name, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clCreateKernelsInProgram)( - cl_program program, cl_uint num_kernels, cl_kernel *kernels, - cl_uint *num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clRetainKernel)( - cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseKernel)( - cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clSetKernelArg)( - cl_kernel kernel, cl_uint arg_index, size_t arg_size, - const void *arg_value) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetKernelInfo)( - cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clGetKernelArgInfo)( - cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name, - size_t param_value_size, void *param_value, - size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clGetKernelArgInfo; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clGetKernelWorkGroupInfo)( - cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, - size_t param_value_size, void *param_value, - size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_2_0 - -typedef cl_int(CL_API_CALL *cl_api_clSetKernelArgSVMPointer)( - cl_kernel /* kernel */, cl_uint /* arg_index */, - const void * /* arg_value */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clSetKernelExecInfo)( - cl_kernel /* kernel */, cl_kernel_exec_info /* param_name */, - size_t /* param_value_size */, - const void * /* param_value */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfoKHR)( - cl_kernel /* in_kernel */, cl_device_id /*in_device*/, - cl_kernel_sub_group_info /* param_name */, size_t /*input_value_size*/, - const void * /*input_value*/, size_t /*param_value_size*/, - void * /*param_value*/, - size_t * /*param_value_size_ret*/) CL_API_SUFFIX__VERSION_2_0; - -#else - -typedef void *cl_api_clSetKernelArgSVMPointer; -typedef void *cl_api_clSetKernelExecInfo; -typedef void *cl_api_clGetKernelSubGroupInfoKHR; - -#endif - -// Event Object APIs -typedef cl_int(CL_API_CALL *cl_api_clWaitForEvents)( - cl_uint num_events, const cl_event *event_list) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetEventInfo)( - cl_event event, cl_event_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clRetainEvent)(cl_event event) - CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseEvent)(cl_event event) - CL_API_SUFFIX__VERSION_1_0; - -// Profiling APIs -typedef cl_int(CL_API_CALL *cl_api_clGetEventProfilingInfo)( - cl_event event, cl_profiling_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -// Flush and Finish APIs -typedef cl_int(CL_API_CALL *cl_api_clFlush)( - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clFinish)( - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; - -// Enqueued Commands APIs -typedef cl_int(CL_API_CALL *cl_api_clEnqueueReadBuffer)( - cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, - size_t offset, size_t cb, void *ptr, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueReadBufferRect)( - cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, - const size_t *buffer_origin, const size_t *host_origin, - const size_t *region, size_t buffer_row_pitch, size_t buffer_slice_pitch, - size_t host_row_pitch, size_t host_slice_pitch, void *ptr, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_1; - -#else - -typedef void *cl_api_clEnqueueReadBufferRect; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueWriteBuffer)( - cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, - size_t offset, size_t cb, const void *ptr, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueWriteBufferRect)( - cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, - const size_t *buffer_origin, const size_t *host_origin, - const size_t *region, size_t buffer_row_pitch, size_t buffer_slice_pitch, - size_t host_row_pitch, size_t host_slice_pitch, const void *ptr, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_1; - -#else - -typedef void *cl_api_clEnqueueWriteBufferRect; - -#endif - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueFillBuffer)( - cl_command_queue command_queue, cl_mem buffer, const void *pattern, - size_t pattern_size, size_t offset, size_t cb, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clEnqueueFillBuffer; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyBuffer)( - cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, - size_t src_offset, size_t dst_offset, size_t cb, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_1 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferRect)( - cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, - const size_t *src_origin, const size_t *dst_origin, const size_t *region, - size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, - size_t dst_slice_pitch, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_1; - -#else - -typedef void *cl_api_clEnqueueCopyBufferRect; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueReadImage)( - cl_command_queue command_queue, cl_mem image, cl_bool blocking_read, - const size_t *origin, const size_t *region, size_t row_pitch, - size_t slice_pitch, void *ptr, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueWriteImage)( - cl_command_queue command_queue, cl_mem image, cl_bool blocking_write, - const size_t *origin, const size_t *region, size_t input_row_pitch, - size_t input_slice_pitch, const void *ptr, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueFillImage)( - cl_command_queue command_queue, cl_mem image, const void *fill_color, - const size_t origin[3], const size_t region[3], - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clEnqueueFillImage; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyImage)( - cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, - const size_t *src_origin, const size_t *dst_origin, const size_t *region, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyImageToBuffer)( - cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer, - const size_t *src_origin, const size_t *region, size_t dst_offset, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferToImage)( - cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_image, - size_t src_offset, const size_t *dst_origin, const size_t *region, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef void *(CL_API_CALL *cl_api_clEnqueueMapBuffer)( - cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map, - cl_map_flags map_flags, size_t offset, size_t cb, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event, cl_int *errcode_ret)CL_API_SUFFIX__VERSION_1_0; - -typedef void *(CL_API_CALL *cl_api_clEnqueueMapImage)( - cl_command_queue command_queue, cl_mem image, cl_bool blocking_map, - cl_map_flags map_flags, const size_t *origin, const size_t *region, - size_t *image_row_pitch, size_t *image_slice_pitch, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event, cl_int *errcode_ret)CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueUnmapMemObject)( - cl_command_queue command_queue, cl_mem memobj, void *mapped_ptr, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueMigrateMemObjects)( - cl_command_queue command_queue, cl_uint num_mem_objects, - const cl_mem *mem_objects, cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clEnqueueMigrateMemObjects; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueNDRangeKernel)( - cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, - const size_t *global_work_offset, const size_t *global_work_size, - const size_t *local_work_size, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueTask)( - cl_command_queue command_queue, cl_kernel kernel, - cl_uint num_events_in_wait_list, const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueNativeKernel)( - cl_command_queue command_queue, void(CL_CALLBACK *user_func)(void *), - void *args, size_t cb_args, cl_uint num_mem_objects, const cl_mem *mem_list, - const void **args_mem_loc, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -#ifdef CL_VERSION_1_2 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueMarkerWithWaitList)( - cl_command_queue command_queue, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueBarrierWithWaitList)( - cl_command_queue command_queue, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -typedef void *( - CL_API_CALL *cl_api_clGetExtensionFunctionAddressForPlatform)( - cl_platform_id platform, - const char *function_name)CL_API_SUFFIX__VERSION_1_2; - -#else - -typedef void *cl_api_clEnqueueMarkerWithWaitList; -typedef void *cl_api_clEnqueueBarrierWithWaitList; -typedef void *cl_api_clGetExtensionFunctionAddressForPlatform; - -#endif - -// Shared Virtual Memory APIs - -#ifdef CL_VERSION_2_0 - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMFree)( - cl_command_queue /* command_queue */, cl_uint /* num_svm_pointers */, - void ** /* svm_pointers */, - void(CL_CALLBACK *pfn_free_func)(cl_command_queue /* queue */, - cl_uint /* num_svm_pointers */, - void ** /* svm_pointers[] */, - void * /* user_data */), - void * /* user_data */, cl_uint /* num_events_in_wait_list */, - const cl_event * /* event_wait_list */, - cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemcpy)( - cl_command_queue /* command_queue */, cl_bool /* blocking_copy */, - void * /* dst_ptr */, const void * /* src_ptr */, size_t /* size */, - cl_uint /* num_events_in_wait_list */, - const cl_event * /* event_wait_list */, - cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemFill)( - cl_command_queue /* command_queue */, void * /* svm_ptr */, - const void * /* pattern */, size_t /* pattern_size */, size_t /* size */, - cl_uint /* num_events_in_wait_list */, - const cl_event * /* event_wait_list */, - cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMap)( - cl_command_queue /* command_queue */, cl_bool /* blocking_map */, - cl_map_flags /* map_flags */, void * /* svm_ptr */, size_t /* size */, - cl_uint /* num_events_in_wait_list */, - const cl_event * /* event_wait_list */, - cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMUnmap)( - cl_command_queue /* command_queue */, void * /* svm_ptr */, - cl_uint /* num_events_in_wait_list */, - const cl_event * /* event_wait_list */, - cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; - -#else - -typedef void *cl_api_clEnqueueSVMFree; -typedef void *cl_api_clEnqueueSVMMemcpy; -typedef void *cl_api_clEnqueueSVMMemFill; -typedef void *cl_api_clEnqueueSVMMap; -typedef void *cl_api_clEnqueueSVMUnmap; - -#endif - -// Deprecated APIs -typedef cl_int(CL_API_CALL *cl_api_clSetCommandQueueProperty)( - cl_command_queue command_queue, cl_command_queue_properties properties, - cl_bool enable, cl_command_queue_properties *old_properties) - CL_API_SUFFIX__VERSION_1_0_DEPRECATED; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateImage2D)( - cl_context context, cl_mem_flags flags, const cl_image_format *image_format, - size_t image_width, size_t image_height, size_t image_row_pitch, - void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateImage3D)( - cl_context context, cl_mem_flags flags, const cl_image_format *image_format, - size_t image_width, size_t image_height, size_t image_depth, - size_t image_row_pitch, size_t image_slice_pitch, void *host_ptr, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -typedef cl_int(CL_API_CALL *cl_api_clUnloadCompiler)(void) - CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueMarker)( - cl_command_queue command_queue, - cl_event *event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueWaitForEvents)( - cl_command_queue command_queue, cl_uint num_events, - const cl_event *event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueBarrier)( - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -typedef void *(CL_API_CALL *cl_api_clGetExtensionFunctionAddress)( - const char *function_name)CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -// GL and other APIs -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLBuffer)( - cl_context context, cl_mem_flags flags, cl_GLuint bufobj, - int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture)( - cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, - cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture2D)( - cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, - cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture3D)( - cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, - cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLRenderbuffer)( - cl_context context, cl_mem_flags flags, cl_GLuint renderbuffer, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetGLObjectInfo)( - cl_mem memobj, cl_gl_object_type *gl_object_type, - cl_GLuint *gl_object_name) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clGetGLTextureInfo)( - cl_mem memobj, cl_gl_texture_info param_name, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireGLObjects)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseGLObjects)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -/* cl_khr_gl_sharing */ -typedef cl_int(CL_API_CALL *cl_api_clGetGLContextInfoKHR)( - const cl_context_properties *properties, cl_gl_context_info param_name, - size_t param_value_size, void *param_value, size_t *param_value_size_ret); - -/* cl_khr_gl_event */ -typedef cl_event(CL_API_CALL *cl_api_clCreateEventFromGLsyncKHR)( - cl_context context, cl_GLsync sync, cl_int *errcode_ret); - -#if defined(_WIN32) - -/* cl_khr_d3d10_sharing */ - -typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D10KHR)( - cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source, - void *d3d_object, cl_d3d10_device_set_khr d3d_device_set, - cl_uint num_entries, cl_device_id *devices, - cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10BufferKHR)( - cl_context context, cl_mem_flags flags, ID3D10Buffer *resource, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture2DKHR)( - cl_context context, cl_mem_flags flags, ID3D10Texture2D *resource, - UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture3DKHR)( - cl_context context, cl_mem_flags flags, ID3D10Texture3D *resource, - UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef -cl_int(CL_API_CALL *cl_api_clEnqueueAcquireD3D10ObjectsKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -typedef -cl_int(CL_API_CALL *cl_api_clEnqueueReleaseD3D10ObjectsKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D10KHR( - cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source, - void *d3d_object, cl_d3d10_device_set_khr d3d_device_set, - cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices); - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D10BufferKHR(cl_context context, cl_mem_flags flags, - ID3D10Buffer *resource, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D10Texture2DKHR( - cl_context context, cl_mem_flags flags, ID3D10Texture2D *resource, - UINT subresource, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D10Texture3DKHR( - cl_context context, cl_mem_flags flags, ID3D10Texture3D *resource, - UINT subresource, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireD3D10ObjectsKHR( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseD3D10ObjectsKHR( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -/* cl_khr_d3d11_sharing */ -typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D11KHR)( - cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source, - void *d3d_object, cl_d3d11_device_set_khr d3d_device_set, - cl_uint num_entries, cl_device_id *devices, - cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11BufferKHR)( - cl_context context, cl_mem_flags flags, ID3D11Buffer *resource, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture2DKHR)( - cl_context context, cl_mem_flags flags, ID3D11Texture2D *resource, - UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture3DKHR)( - cl_context context, cl_mem_flags flags, ID3D11Texture3D *resource, - UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef -cl_int(CL_API_CALL *cl_api_clEnqueueAcquireD3D11ObjectsKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -typedef -cl_int(CL_API_CALL *cl_api_clEnqueueReleaseD3D11ObjectsKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -/* cl_khr_dx9_media_sharing */ -typedef -cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR)( - cl_platform_id platform, cl_uint num_media_adapters, - cl_dx9_media_adapter_type_khr *media_adapters_type, void *media_adapters, - cl_dx9_media_adapter_set_khr media_adapter_set, cl_uint num_entries, - cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromDX9MediaSurfaceKHR)( - cl_context context, cl_mem_flags flags, - cl_dx9_media_adapter_type_khr adapter_type, void *surface_info, - cl_uint plane, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef -cl_int(CL_API_CALL *cl_api_clEnqueueAcquireDX9MediaSurfacesKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -typedef -cl_int(CL_API_CALL *cl_api_clEnqueueReleaseDX9MediaSurfacesKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -/* cl_khr_d3d11_sharing */ -extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D11KHR( - cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source, - void *d3d_object, cl_d3d11_device_set_khr d3d_device_set, - cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices); - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D11BufferKHR(cl_context context, cl_mem_flags flags, - ID3D11Buffer *resource, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D11Texture2DKHR( - cl_context context, cl_mem_flags flags, ID3D11Texture2D *resource, - UINT subresource, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromD3D11Texture3DKHR( - cl_context context, cl_mem_flags flags, ID3D11Texture3D *resource, - UINT subresource, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireD3D11ObjectsKHR( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseD3D11ObjectsKHR( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -/* cl_khr_dx9_media_sharing */ -extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9MediaAdapterKHR( - cl_platform_id platform, cl_uint num_media_adapters, - cl_dx9_media_adapter_type_khr *media_adapter_type, void *media_adapters, - cl_dx9_media_adapter_set_khr media_adapter_set, cl_uint num_entries, - cl_device_id *devices, cl_uint *num_devices); - -extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromDX9MediaSurfaceKHR( - cl_context context, cl_mem_flags flags, - cl_dx9_media_adapter_type_khr adapter_type, void *surface_info, - cl_uint plane, cl_int *errcode_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireDX9MediaSurfacesKHR( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseDX9MediaSurfacesKHR( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -#else - -/* cl_khr_d3d10_sharing */ -typedef void *cl_api_clGetDeviceIDsFromD3D10KHR; -typedef void *cl_api_clCreateFromD3D10BufferKHR; -typedef void *cl_api_clCreateFromD3D10Texture2DKHR; -typedef void *cl_api_clCreateFromD3D10Texture3DKHR; -typedef void *cl_api_clEnqueueAcquireD3D10ObjectsKHR; -typedef void *cl_api_clEnqueueReleaseD3D10ObjectsKHR; - -/* cl_khr_d3d11_sharing */ -typedef void *cl_api_clGetDeviceIDsFromD3D11KHR; -typedef void *cl_api_clCreateFromD3D11BufferKHR; -typedef void *cl_api_clCreateFromD3D11Texture2DKHR; -typedef void *cl_api_clCreateFromD3D11Texture3DKHR; -typedef void *cl_api_clEnqueueAcquireD3D11ObjectsKHR; -typedef void *cl_api_clEnqueueReleaseD3D11ObjectsKHR; - -/* cl_khr_dx9_media_sharing */ -typedef void *cl_api_clCreateFromDX9MediaSurfaceKHR; -typedef void *cl_api_clEnqueueAcquireDX9MediaSurfacesKHR; -typedef void *cl_api_clEnqueueReleaseDX9MediaSurfacesKHR; -typedef void *cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR; - -#endif - -/* OpenCL 1.1 */ - -#ifdef CL_VERSION_1_1 - -typedef cl_int(CL_API_CALL *cl_api_clSetEventCallback)( - cl_event /* event */, cl_int /* command_exec_callback_type */, - void(CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *), - void * /* user_data */) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_mem(CL_API_CALL *cl_api_clCreateSubBuffer)( - cl_mem /* buffer */, cl_mem_flags /* flags */, - cl_buffer_create_type /* buffer_create_type */, - const void * /* buffer_create_info */, - cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; - -typedef -cl_int(CL_API_CALL *cl_api_clSetMemObjectDestructorCallback)( - cl_mem /* memobj */, - void(CL_CALLBACK * /*pfn_notify*/)(cl_mem /* memobj */, - void * /*user_data*/), - void * /*user_data */) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_event(CL_API_CALL *cl_api_clCreateUserEvent)( - cl_context /* context */, - cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int(CL_API_CALL *cl_api_clSetUserEventStatus)( - cl_event /* event */, - cl_int /* execution_status */) CL_API_SUFFIX__VERSION_1_1; - -#else - -typedef void *cl_api_clSetEventCallback; -typedef void *cl_api_clCreateSubBuffer; -typedef void *cl_api_clSetMemObjectDestructorCallback; -typedef void *cl_api_clCreateUserEvent; -typedef void *cl_api_clSetUserEventStatus; - -#endif - -typedef cl_int(CL_API_CALL *cl_api_clCreateSubDevicesEXT)( - cl_device_id in_device, - const cl_device_partition_property_ext *partition_properties, - cl_uint num_entries, cl_device_id *out_devices, cl_uint *num_devices); - -typedef cl_int(CL_API_CALL *cl_api_clRetainDeviceEXT)( - cl_device_id device) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int(CL_API_CALL *cl_api_clReleaseDeviceEXT)( - cl_device_id device) CL_API_SUFFIX__VERSION_1_0; - -/* cl_khr_egl_image */ -typedef cl_mem(CL_API_CALL *cl_api_clCreateFromEGLImageKHR)( - cl_context context, CLeglDisplayKHR display, CLeglImageKHR image, - cl_mem_flags flags, const cl_egl_image_properties_khr *properties, - cl_int *errcode_ret); - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireEGLObjectsKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseEGLObjectsKHR)( - cl_command_queue command_queue, cl_uint num_objects, - const cl_mem *mem_objects, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, cl_event *event); - -/* cl_khr_egl_event */ -typedef cl_event(CL_API_CALL *cl_api_clCreateEventFromEGLSyncKHR)( - cl_context context, CLeglSyncKHR sync, CLeglDisplayKHR display, - cl_int *errcode_ret); - -#ifdef CL_VERSION_2_1 - -typedef cl_int(CL_API_CALL *cl_api_clSetDefaultDeviceCommandQueue)( - cl_context context, cl_device_id device, - cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; - -typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithIL)( - cl_context context, const void *il, size_t length, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_2_1; - -typedef cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfo)( - cl_kernel kernel, cl_device_id device, cl_kernel_sub_group_info param_name, - size_t input_value_size, const void *input_value, size_t param_value_size, - void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; - -typedef cl_kernel(CL_API_CALL *cl_api_clCloneKernel)( - cl_kernel source_kernel, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_2_1; - -typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMigrateMem)( - cl_command_queue command_queue, cl_uint num_svm_pointers, - const void **svm_pointers, const size_t *sizes, - cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_2_1; - -typedef cl_int(CL_API_CALL *cl_api_clGetDeviceAndHostTimer)( - cl_device_id device, cl_ulong *device_timestamp, - cl_ulong *host_timestamp) CL_API_SUFFIX__VERSION_2_1; - -typedef cl_int(CL_API_CALL *cl_api_clGetHostTimer)( - cl_device_id device, cl_ulong *host_timestamp) CL_API_SUFFIX__VERSION_2_1; - -#else - -typedef void *cl_api_clSetDefaultDeviceCommandQueue; -typedef void *cl_api_clCreateProgramWithIL; -typedef void *cl_api_clGetKernelSubGroupInfo; -typedef void *cl_api_clCloneKernel; -typedef void *cl_api_clEnqueueSVMMigrateMem; -typedef void *cl_api_clGetDeviceAndHostTimer; -typedef void *cl_api_clGetHostTimer; - -#endif - -/* Vendor dispatch table struture */ - -typedef struct _cl_icd_dispatch { - /* OpenCL 1.0 */ - cl_api_clGetPlatformIDs clGetPlatformIDs; - cl_api_clGetPlatformInfo clGetPlatformInfo; - cl_api_clGetDeviceIDs clGetDeviceIDs; - cl_api_clGetDeviceInfo clGetDeviceInfo; - cl_api_clCreateContext clCreateContext; - cl_api_clCreateContextFromType clCreateContextFromType; - cl_api_clRetainContext clRetainContext; - cl_api_clReleaseContext clReleaseContext; - cl_api_clGetContextInfo clGetContextInfo; - cl_api_clCreateCommandQueue clCreateCommandQueue; - cl_api_clRetainCommandQueue clRetainCommandQueue; - cl_api_clReleaseCommandQueue clReleaseCommandQueue; - cl_api_clGetCommandQueueInfo clGetCommandQueueInfo; - cl_api_clSetCommandQueueProperty clSetCommandQueueProperty; - cl_api_clCreateBuffer clCreateBuffer; - cl_api_clCreateImage2D clCreateImage2D; - cl_api_clCreateImage3D clCreateImage3D; - cl_api_clRetainMemObject clRetainMemObject; - cl_api_clReleaseMemObject clReleaseMemObject; - cl_api_clGetSupportedImageFormats clGetSupportedImageFormats; - cl_api_clGetMemObjectInfo clGetMemObjectInfo; - cl_api_clGetImageInfo clGetImageInfo; - cl_api_clCreateSampler clCreateSampler; - cl_api_clRetainSampler clRetainSampler; - cl_api_clReleaseSampler clReleaseSampler; - cl_api_clGetSamplerInfo clGetSamplerInfo; - cl_api_clCreateProgramWithSource clCreateProgramWithSource; - cl_api_clCreateProgramWithBinary clCreateProgramWithBinary; - cl_api_clRetainProgram clRetainProgram; - cl_api_clReleaseProgram clReleaseProgram; - cl_api_clBuildProgram clBuildProgram; - cl_api_clUnloadCompiler clUnloadCompiler; - cl_api_clGetProgramInfo clGetProgramInfo; - cl_api_clGetProgramBuildInfo clGetProgramBuildInfo; - cl_api_clCreateKernel clCreateKernel; - cl_api_clCreateKernelsInProgram clCreateKernelsInProgram; - cl_api_clRetainKernel clRetainKernel; - cl_api_clReleaseKernel clReleaseKernel; - cl_api_clSetKernelArg clSetKernelArg; - cl_api_clGetKernelInfo clGetKernelInfo; - cl_api_clGetKernelWorkGroupInfo clGetKernelWorkGroupInfo; - cl_api_clWaitForEvents clWaitForEvents; - cl_api_clGetEventInfo clGetEventInfo; - cl_api_clRetainEvent clRetainEvent; - cl_api_clReleaseEvent clReleaseEvent; - cl_api_clGetEventProfilingInfo clGetEventProfilingInfo; - cl_api_clFlush clFlush; - cl_api_clFinish clFinish; - cl_api_clEnqueueReadBuffer clEnqueueReadBuffer; - cl_api_clEnqueueWriteBuffer clEnqueueWriteBuffer; - cl_api_clEnqueueCopyBuffer clEnqueueCopyBuffer; - cl_api_clEnqueueReadImage clEnqueueReadImage; - cl_api_clEnqueueWriteImage clEnqueueWriteImage; - cl_api_clEnqueueCopyImage clEnqueueCopyImage; - cl_api_clEnqueueCopyImageToBuffer clEnqueueCopyImageToBuffer; - cl_api_clEnqueueCopyBufferToImage clEnqueueCopyBufferToImage; - cl_api_clEnqueueMapBuffer clEnqueueMapBuffer; - cl_api_clEnqueueMapImage clEnqueueMapImage; - cl_api_clEnqueueUnmapMemObject clEnqueueUnmapMemObject; - cl_api_clEnqueueNDRangeKernel clEnqueueNDRangeKernel; - cl_api_clEnqueueTask clEnqueueTask; - cl_api_clEnqueueNativeKernel clEnqueueNativeKernel; - cl_api_clEnqueueMarker clEnqueueMarker; - cl_api_clEnqueueWaitForEvents clEnqueueWaitForEvents; - cl_api_clEnqueueBarrier clEnqueueBarrier; - cl_api_clGetExtensionFunctionAddress clGetExtensionFunctionAddress; - cl_api_clCreateFromGLBuffer clCreateFromGLBuffer; - cl_api_clCreateFromGLTexture2D clCreateFromGLTexture2D; - cl_api_clCreateFromGLTexture3D clCreateFromGLTexture3D; - cl_api_clCreateFromGLRenderbuffer clCreateFromGLRenderbuffer; - cl_api_clGetGLObjectInfo clGetGLObjectInfo; - cl_api_clGetGLTextureInfo clGetGLTextureInfo; - cl_api_clEnqueueAcquireGLObjects clEnqueueAcquireGLObjects; - cl_api_clEnqueueReleaseGLObjects clEnqueueReleaseGLObjects; - cl_api_clGetGLContextInfoKHR clGetGLContextInfoKHR; - - /* cl_khr_d3d10_sharing */ - cl_api_clGetDeviceIDsFromD3D10KHR clGetDeviceIDsFromD3D10KHR; - cl_api_clCreateFromD3D10BufferKHR clCreateFromD3D10BufferKHR; - cl_api_clCreateFromD3D10Texture2DKHR clCreateFromD3D10Texture2DKHR; - cl_api_clCreateFromD3D10Texture3DKHR clCreateFromD3D10Texture3DKHR; - cl_api_clEnqueueAcquireD3D10ObjectsKHR clEnqueueAcquireD3D10ObjectsKHR; - cl_api_clEnqueueReleaseD3D10ObjectsKHR clEnqueueReleaseD3D10ObjectsKHR; - - /* OpenCL 1.1 */ - cl_api_clSetEventCallback clSetEventCallback; - cl_api_clCreateSubBuffer clCreateSubBuffer; - cl_api_clSetMemObjectDestructorCallback clSetMemObjectDestructorCallback; - cl_api_clCreateUserEvent clCreateUserEvent; - cl_api_clSetUserEventStatus clSetUserEventStatus; - cl_api_clEnqueueReadBufferRect clEnqueueReadBufferRect; - cl_api_clEnqueueWriteBufferRect clEnqueueWriteBufferRect; - cl_api_clEnqueueCopyBufferRect clEnqueueCopyBufferRect; - - /* cl_ext_device_fission */ - cl_api_clCreateSubDevicesEXT clCreateSubDevicesEXT; - cl_api_clRetainDeviceEXT clRetainDeviceEXT; - cl_api_clReleaseDeviceEXT clReleaseDeviceEXT; - - /* cl_khr_gl_event */ - cl_api_clCreateEventFromGLsyncKHR clCreateEventFromGLsyncKHR; - - /* OpenCL 1.2 */ - cl_api_clCreateSubDevices clCreateSubDevices; - cl_api_clRetainDevice clRetainDevice; - cl_api_clReleaseDevice clReleaseDevice; - cl_api_clCreateImage clCreateImage; - cl_api_clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernels; - cl_api_clCompileProgram clCompileProgram; - cl_api_clLinkProgram clLinkProgram; - cl_api_clUnloadPlatformCompiler clUnloadPlatformCompiler; - cl_api_clGetKernelArgInfo clGetKernelArgInfo; - cl_api_clEnqueueFillBuffer clEnqueueFillBuffer; - cl_api_clEnqueueFillImage clEnqueueFillImage; - cl_api_clEnqueueMigrateMemObjects clEnqueueMigrateMemObjects; - cl_api_clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitList; - cl_api_clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitList; - cl_api_clGetExtensionFunctionAddressForPlatform - clGetExtensionFunctionAddressForPlatform; - cl_api_clCreateFromGLTexture clCreateFromGLTexture; - - /* cl_khr_d3d11_sharing */ - cl_api_clGetDeviceIDsFromD3D11KHR clGetDeviceIDsFromD3D11KHR; - cl_api_clCreateFromD3D11BufferKHR clCreateFromD3D11BufferKHR; - cl_api_clCreateFromD3D11Texture2DKHR clCreateFromD3D11Texture2DKHR; - cl_api_clCreateFromD3D11Texture3DKHR clCreateFromD3D11Texture3DKHR; - cl_api_clCreateFromDX9MediaSurfaceKHR clCreateFromDX9MediaSurfaceKHR; - cl_api_clEnqueueAcquireD3D11ObjectsKHR clEnqueueAcquireD3D11ObjectsKHR; - cl_api_clEnqueueReleaseD3D11ObjectsKHR clEnqueueReleaseD3D11ObjectsKHR; - - /* cl_khr_dx9_media_sharing */ - cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR - clGetDeviceIDsFromDX9MediaAdapterKHR; - cl_api_clEnqueueAcquireDX9MediaSurfacesKHR - clEnqueueAcquireDX9MediaSurfacesKHR; - cl_api_clEnqueueReleaseDX9MediaSurfacesKHR - clEnqueueReleaseDX9MediaSurfacesKHR; - - /* cl_khr_egl_image */ - cl_api_clCreateFromEGLImageKHR clCreateFromEGLImageKHR; - cl_api_clEnqueueAcquireEGLObjectsKHR clEnqueueAcquireEGLObjectsKHR; - cl_api_clEnqueueReleaseEGLObjectsKHR clEnqueueReleaseEGLObjectsKHR; - - /* cl_khr_egl_event */ - cl_api_clCreateEventFromEGLSyncKHR clCreateEventFromEGLSyncKHR; - - /* OpenCL 2.0 */ - cl_api_clCreateCommandQueueWithProperties clCreateCommandQueueWithProperties; - cl_api_clCreatePipe clCreatePipe; - cl_api_clGetPipeInfo clGetPipeInfo; - cl_api_clSVMAlloc clSVMAlloc; - cl_api_clSVMFree clSVMFree; - cl_api_clEnqueueSVMFree clEnqueueSVMFree; - cl_api_clEnqueueSVMMemcpy clEnqueueSVMMemcpy; - cl_api_clEnqueueSVMMemFill clEnqueueSVMMemFill; - cl_api_clEnqueueSVMMap clEnqueueSVMMap; - cl_api_clEnqueueSVMUnmap clEnqueueSVMUnmap; - cl_api_clCreateSamplerWithProperties clCreateSamplerWithProperties; - cl_api_clSetKernelArgSVMPointer clSetKernelArgSVMPointer; - cl_api_clSetKernelExecInfo clSetKernelExecInfo; - - /* cl_khr_sub_groups */ - cl_api_clGetKernelSubGroupInfoKHR clGetKernelSubGroupInfoKHR; - - /* OpenCL 2.1 */ - cl_api_clCloneKernel clCloneKernel; - cl_api_clCreateProgramWithIL clCreateProgramWithIL; - cl_api_clEnqueueSVMMigrateMem clEnqueueSVMMigrateMem; - cl_api_clGetDeviceAndHostTimer clGetDeviceAndHostTimer; - cl_api_clGetHostTimer clGetHostTimer; - cl_api_clGetKernelSubGroupInfo clGetKernelSubGroupInfo; - cl_api_clSetDefaultDeviceCommandQueue clSetDefaultDeviceCommandQueue; - - /* OpenCL 2.2 */ - cl_api_clSetProgramReleaseCallback clSetProgramReleaseCallback; - cl_api_clSetProgramSpecializationConstant clSetProgramSpecializationConstant; - - /* OpenCL 3.0 */ - cl_api_clCreateBufferWithProperties clCreateBufferWithProperties; - cl_api_clCreateImageWithProperties clCreateImageWithProperties; - cl_api_clSetContextDestructorCallback clSetContextDestructorCallback; - -} cl_icd_dispatch; - -#ifdef __cplusplus -} -#endif - -#endif /* #ifndef OPENCL_CL_ICD_H */ diff --git a/milepost/ext/angle_headers/CL/cl_layer.h b/milepost/ext/angle_headers/CL/cl_layer.h deleted file mode 100644 index 59dae75..0000000 --- a/milepost/ext/angle_headers/CL/cl_layer.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * OpenCL is a trademark of Apple Inc. used under license by Khronos. - */ - -#ifndef OPENCL_CL_LAYER_H -#define OPENCL_CL_LAYER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef cl_uint cl_layer_info; -typedef cl_uint cl_layer_api_version; -#define CL_LAYER_API_VERSION 0x4240 -#define CL_LAYER_API_VERSION_100 100 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetLayerInfo(cl_layer_info param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); - -typedef cl_int -(CL_API_CALL *pfn_clGetLayerInfo)(cl_layer_info param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL -clInitLayer(cl_uint num_entries, - const cl_icd_dispatch *target_dispatch, - cl_uint *num_entries_ret, - const cl_icd_dispatch **layer_dispatch_ret); - -typedef cl_int -(CL_API_CALL *pfn_clInitLayer)(cl_uint num_entries, - const cl_icd_dispatch *target_dispatch, - cl_uint *num_entries_ret, - const cl_icd_dispatch **layer_dispatch_ret); - -#ifdef __cplusplus -} -#endif - -#endif /* OPENCL_CL_LAYER_H */ diff --git a/milepost/ext/angle_headers/CL/cl_platform.h b/milepost/ext/angle_headers/CL/cl_platform.h deleted file mode 100644 index 68544bb..0000000 --- a/milepost/ext/angle_headers/CL/cl_platform.h +++ /dev/null @@ -1,1406 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __CL_PLATFORM_H -#define __CL_PLATFORM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_WIN32) - #if !defined(CL_API_ENTRY) - #define CL_API_ENTRY - #endif - #if !defined(CL_API_CALL) - #define CL_API_CALL __stdcall - #endif - #if !defined(CL_CALLBACK) - #define CL_CALLBACK __stdcall - #endif -#else - #if !defined(CL_API_ENTRY) - #define CL_API_ENTRY - #endif - #if !defined(CL_API_CALL) - #define CL_API_CALL - #endif - #if !defined(CL_CALLBACK) - #define CL_CALLBACK - #endif -#endif - -/* - * Deprecation flags refer to the last version of the header in which the - * feature was not deprecated. - * - * E.g. VERSION_1_1_DEPRECATED means the feature is present in 1.1 without - * deprecation but is deprecated in versions later than 1.1. - */ - -#ifndef CL_API_SUFFIX_USER -#define CL_API_SUFFIX_USER -#endif - -#ifndef CL_API_PREFIX_USER -#define CL_API_PREFIX_USER -#endif - -#define CL_API_SUFFIX_COMMON CL_API_SUFFIX_USER -#define CL_API_PREFIX_COMMON CL_API_PREFIX_USER - -#define CL_API_SUFFIX__VERSION_1_0 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__VERSION_1_1 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__VERSION_1_2 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__VERSION_2_0 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__VERSION_2_1 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__VERSION_2_2 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__VERSION_3_0 CL_API_SUFFIX_COMMON -#define CL_API_SUFFIX__EXPERIMENTAL CL_API_SUFFIX_COMMON - - -#ifdef __GNUC__ - #define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated)) - #define CL_API_PREFIX_DEPRECATED -#elif defined(_WIN32) - #define CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX_DEPRECATED __declspec(deprecated) -#else - #define CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX_DEPRECATED -#endif - -#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS - #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON - #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON -#else - #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED -#endif - -#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS - #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON - #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON -#else - #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED -#endif - -#ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS - #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON - #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON -#else - #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED - #endif - -#ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS - #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON - #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON -#else - #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED -#endif - -#ifdef CL_USE_DEPRECATED_OPENCL_2_1_APIS - #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON - #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON -#else - #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED -#endif - -#ifdef CL_USE_DEPRECATED_OPENCL_2_2_APIS - #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON - #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON -#else - #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED - #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED -#endif - -#if (defined (_WIN32) && defined(_MSC_VER)) - -/* intptr_t is used in cl.h and provided by stddef.h in Visual C++, but not in clang */ -/* stdint.h was missing before Visual Studio 2010, include it for later versions and for clang */ -#if defined(__clang__) || _MSC_VER >= 1600 - #include -#endif - -/* scalar types */ -typedef signed __int8 cl_char; -typedef unsigned __int8 cl_uchar; -typedef signed __int16 cl_short; -typedef unsigned __int16 cl_ushort; -typedef signed __int32 cl_int; -typedef unsigned __int32 cl_uint; -typedef signed __int64 cl_long; -typedef unsigned __int64 cl_ulong; - -typedef unsigned __int16 cl_half; -typedef float cl_float; -typedef double cl_double; - -/* Macro names and corresponding values defined by OpenCL */ -#define CL_CHAR_BIT 8 -#define CL_SCHAR_MAX 127 -#define CL_SCHAR_MIN (-127-1) -#define CL_CHAR_MAX CL_SCHAR_MAX -#define CL_CHAR_MIN CL_SCHAR_MIN -#define CL_UCHAR_MAX 255 -#define CL_SHRT_MAX 32767 -#define CL_SHRT_MIN (-32767-1) -#define CL_USHRT_MAX 65535 -#define CL_INT_MAX 2147483647 -#define CL_INT_MIN (-2147483647-1) -#define CL_UINT_MAX 0xffffffffU -#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) -#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) -#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) - -#define CL_FLT_DIG 6 -#define CL_FLT_MANT_DIG 24 -#define CL_FLT_MAX_10_EXP +38 -#define CL_FLT_MAX_EXP +128 -#define CL_FLT_MIN_10_EXP -37 -#define CL_FLT_MIN_EXP -125 -#define CL_FLT_RADIX 2 -#define CL_FLT_MAX 340282346638528859811704183484516925440.0f -#define CL_FLT_MIN 1.175494350822287507969e-38f -#define CL_FLT_EPSILON 1.1920928955078125e-7f - -#define CL_HALF_DIG 3 -#define CL_HALF_MANT_DIG 11 -#define CL_HALF_MAX_10_EXP +4 -#define CL_HALF_MAX_EXP +16 -#define CL_HALF_MIN_10_EXP -4 -#define CL_HALF_MIN_EXP -13 -#define CL_HALF_RADIX 2 -#define CL_HALF_MAX 65504.0f -#define CL_HALF_MIN 6.103515625e-05f -#define CL_HALF_EPSILON 9.765625e-04f - -#define CL_DBL_DIG 15 -#define CL_DBL_MANT_DIG 53 -#define CL_DBL_MAX_10_EXP +308 -#define CL_DBL_MAX_EXP +1024 -#define CL_DBL_MIN_10_EXP -307 -#define CL_DBL_MIN_EXP -1021 -#define CL_DBL_RADIX 2 -#define CL_DBL_MAX 1.7976931348623158e+308 -#define CL_DBL_MIN 2.225073858507201383090e-308 -#define CL_DBL_EPSILON 2.220446049250313080847e-16 - -#define CL_M_E 2.7182818284590452354 -#define CL_M_LOG2E 1.4426950408889634074 -#define CL_M_LOG10E 0.43429448190325182765 -#define CL_M_LN2 0.69314718055994530942 -#define CL_M_LN10 2.30258509299404568402 -#define CL_M_PI 3.14159265358979323846 -#define CL_M_PI_2 1.57079632679489661923 -#define CL_M_PI_4 0.78539816339744830962 -#define CL_M_1_PI 0.31830988618379067154 -#define CL_M_2_PI 0.63661977236758134308 -#define CL_M_2_SQRTPI 1.12837916709551257390 -#define CL_M_SQRT2 1.41421356237309504880 -#define CL_M_SQRT1_2 0.70710678118654752440 - -#define CL_M_E_F 2.718281828f -#define CL_M_LOG2E_F 1.442695041f -#define CL_M_LOG10E_F 0.434294482f -#define CL_M_LN2_F 0.693147181f -#define CL_M_LN10_F 2.302585093f -#define CL_M_PI_F 3.141592654f -#define CL_M_PI_2_F 1.570796327f -#define CL_M_PI_4_F 0.785398163f -#define CL_M_1_PI_F 0.318309886f -#define CL_M_2_PI_F 0.636619772f -#define CL_M_2_SQRTPI_F 1.128379167f -#define CL_M_SQRT2_F 1.414213562f -#define CL_M_SQRT1_2_F 0.707106781f - -#define CL_NAN (CL_INFINITY - CL_INFINITY) -#define CL_HUGE_VALF ((cl_float) 1e50) -#define CL_HUGE_VAL ((cl_double) 1e500) -#define CL_MAXFLOAT CL_FLT_MAX -#define CL_INFINITY CL_HUGE_VALF - -#else - -#include - -/* scalar types */ -typedef int8_t cl_char; -typedef uint8_t cl_uchar; -typedef int16_t cl_short; -typedef uint16_t cl_ushort; -typedef int32_t cl_int; -typedef uint32_t cl_uint; -typedef int64_t cl_long; -typedef uint64_t cl_ulong; - -typedef uint16_t cl_half; -typedef float cl_float; -typedef double cl_double; - -/* Macro names and corresponding values defined by OpenCL */ -#define CL_CHAR_BIT 8 -#define CL_SCHAR_MAX 127 -#define CL_SCHAR_MIN (-127-1) -#define CL_CHAR_MAX CL_SCHAR_MAX -#define CL_CHAR_MIN CL_SCHAR_MIN -#define CL_UCHAR_MAX 255 -#define CL_SHRT_MAX 32767 -#define CL_SHRT_MIN (-32767-1) -#define CL_USHRT_MAX 65535 -#define CL_INT_MAX 2147483647 -#define CL_INT_MIN (-2147483647-1) -#define CL_UINT_MAX 0xffffffffU -#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) -#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) -#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) - -#define CL_FLT_DIG 6 -#define CL_FLT_MANT_DIG 24 -#define CL_FLT_MAX_10_EXP +38 -#define CL_FLT_MAX_EXP +128 -#define CL_FLT_MIN_10_EXP -37 -#define CL_FLT_MIN_EXP -125 -#define CL_FLT_RADIX 2 -#define CL_FLT_MAX 340282346638528859811704183484516925440.0f -#define CL_FLT_MIN 1.175494350822287507969e-38f -#define CL_FLT_EPSILON 1.1920928955078125e-7f - -#define CL_HALF_DIG 3 -#define CL_HALF_MANT_DIG 11 -#define CL_HALF_MAX_10_EXP +4 -#define CL_HALF_MAX_EXP +16 -#define CL_HALF_MIN_10_EXP -4 -#define CL_HALF_MIN_EXP -13 -#define CL_HALF_RADIX 2 -#define CL_HALF_MAX 65504.0f -#define CL_HALF_MIN 6.103515625e-05f -#define CL_HALF_EPSILON 9.765625e-04f - -#define CL_DBL_DIG 15 -#define CL_DBL_MANT_DIG 53 -#define CL_DBL_MAX_10_EXP +308 -#define CL_DBL_MAX_EXP +1024 -#define CL_DBL_MIN_10_EXP -307 -#define CL_DBL_MIN_EXP -1021 -#define CL_DBL_RADIX 2 -#define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 -#define CL_DBL_MIN 2.225073858507201383090e-308 -#define CL_DBL_EPSILON 2.220446049250313080847e-16 - -#define CL_M_E 2.7182818284590452354 -#define CL_M_LOG2E 1.4426950408889634074 -#define CL_M_LOG10E 0.43429448190325182765 -#define CL_M_LN2 0.69314718055994530942 -#define CL_M_LN10 2.30258509299404568402 -#define CL_M_PI 3.14159265358979323846 -#define CL_M_PI_2 1.57079632679489661923 -#define CL_M_PI_4 0.78539816339744830962 -#define CL_M_1_PI 0.31830988618379067154 -#define CL_M_2_PI 0.63661977236758134308 -#define CL_M_2_SQRTPI 1.12837916709551257390 -#define CL_M_SQRT2 1.41421356237309504880 -#define CL_M_SQRT1_2 0.70710678118654752440 - -#define CL_M_E_F 2.718281828f -#define CL_M_LOG2E_F 1.442695041f -#define CL_M_LOG10E_F 0.434294482f -#define CL_M_LN2_F 0.693147181f -#define CL_M_LN10_F 2.302585093f -#define CL_M_PI_F 3.141592654f -#define CL_M_PI_2_F 1.570796327f -#define CL_M_PI_4_F 0.785398163f -#define CL_M_1_PI_F 0.318309886f -#define CL_M_2_PI_F 0.636619772f -#define CL_M_2_SQRTPI_F 1.128379167f -#define CL_M_SQRT2_F 1.414213562f -#define CL_M_SQRT1_2_F 0.707106781f - -#if defined( __GNUC__ ) - #define CL_HUGE_VALF __builtin_huge_valf() - #define CL_HUGE_VAL __builtin_huge_val() - #define CL_NAN __builtin_nanf( "" ) -#else - #define CL_HUGE_VALF ((cl_float) 1e50) - #define CL_HUGE_VAL ((cl_double) 1e500) - float nanf( const char * ); - #define CL_NAN nanf( "" ) -#endif -#define CL_MAXFLOAT CL_FLT_MAX -#define CL_INFINITY CL_HUGE_VALF - -#endif - -#include - -/* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */ -typedef unsigned int cl_GLuint; -typedef int cl_GLint; -typedef unsigned int cl_GLenum; - -/* - * Vector types - * - * Note: OpenCL requires that all types be naturally aligned. - * This means that vector types must be naturally aligned. - * For example, a vector of four floats must be aligned to - * a 16 byte boundary (calculated as 4 * the natural 4-byte - * alignment of the float). The alignment qualifiers here - * will only function properly if your compiler supports them - * and if you don't actively work to defeat them. For example, - * in order for a cl_float4 to be 16 byte aligned in a struct, - * the start of the struct must itself be 16-byte aligned. - * - * Maintaining proper alignment is the user's responsibility. - */ - -/* Define basic vector types */ -#if defined( __VEC__ ) - #if !defined(__clang__) - #include /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */ - #endif - typedef __vector unsigned char __cl_uchar16; - typedef __vector signed char __cl_char16; - typedef __vector unsigned short __cl_ushort8; - typedef __vector signed short __cl_short8; - typedef __vector unsigned int __cl_uint4; - typedef __vector signed int __cl_int4; - typedef __vector float __cl_float4; - #define __CL_UCHAR16__ 1 - #define __CL_CHAR16__ 1 - #define __CL_USHORT8__ 1 - #define __CL_SHORT8__ 1 - #define __CL_UINT4__ 1 - #define __CL_INT4__ 1 - #define __CL_FLOAT4__ 1 -#endif - -#if defined( __SSE__ ) - #if defined( __MINGW64__ ) - #include - #else - #include - #endif - #if defined( __GNUC__ ) - typedef float __cl_float4 __attribute__((vector_size(16))); - #else - typedef __m128 __cl_float4; - #endif - #define __CL_FLOAT4__ 1 -#endif - -#if defined( __SSE2__ ) - #if defined( __MINGW64__ ) - #include - #else - #include - #endif - #if defined( __GNUC__ ) - typedef cl_uchar __cl_uchar16 __attribute__((vector_size(16))); - typedef cl_char __cl_char16 __attribute__((vector_size(16))); - typedef cl_ushort __cl_ushort8 __attribute__((vector_size(16))); - typedef cl_short __cl_short8 __attribute__((vector_size(16))); - typedef cl_uint __cl_uint4 __attribute__((vector_size(16))); - typedef cl_int __cl_int4 __attribute__((vector_size(16))); - typedef cl_ulong __cl_ulong2 __attribute__((vector_size(16))); - typedef cl_long __cl_long2 __attribute__((vector_size(16))); - typedef cl_double __cl_double2 __attribute__((vector_size(16))); - #else - typedef __m128i __cl_uchar16; - typedef __m128i __cl_char16; - typedef __m128i __cl_ushort8; - typedef __m128i __cl_short8; - typedef __m128i __cl_uint4; - typedef __m128i __cl_int4; - typedef __m128i __cl_ulong2; - typedef __m128i __cl_long2; - typedef __m128d __cl_double2; - #endif - #define __CL_UCHAR16__ 1 - #define __CL_CHAR16__ 1 - #define __CL_USHORT8__ 1 - #define __CL_SHORT8__ 1 - #define __CL_INT4__ 1 - #define __CL_UINT4__ 1 - #define __CL_ULONG2__ 1 - #define __CL_LONG2__ 1 - #define __CL_DOUBLE2__ 1 -#endif - -#if defined( __MMX__ ) - #include - #if defined( __GNUC__ ) - typedef cl_uchar __cl_uchar8 __attribute__((vector_size(8))); - typedef cl_char __cl_char8 __attribute__((vector_size(8))); - typedef cl_ushort __cl_ushort4 __attribute__((vector_size(8))); - typedef cl_short __cl_short4 __attribute__((vector_size(8))); - typedef cl_uint __cl_uint2 __attribute__((vector_size(8))); - typedef cl_int __cl_int2 __attribute__((vector_size(8))); - typedef cl_ulong __cl_ulong1 __attribute__((vector_size(8))); - typedef cl_long __cl_long1 __attribute__((vector_size(8))); - typedef cl_float __cl_float2 __attribute__((vector_size(8))); - #else - typedef __m64 __cl_uchar8; - typedef __m64 __cl_char8; - typedef __m64 __cl_ushort4; - typedef __m64 __cl_short4; - typedef __m64 __cl_uint2; - typedef __m64 __cl_int2; - typedef __m64 __cl_ulong1; - typedef __m64 __cl_long1; - typedef __m64 __cl_float2; - #endif - #define __CL_UCHAR8__ 1 - #define __CL_CHAR8__ 1 - #define __CL_USHORT4__ 1 - #define __CL_SHORT4__ 1 - #define __CL_INT2__ 1 - #define __CL_UINT2__ 1 - #define __CL_ULONG1__ 1 - #define __CL_LONG1__ 1 - #define __CL_FLOAT2__ 1 -#endif - -#if defined( __AVX__ ) - #if defined( __MINGW64__ ) - #include - #else - #include - #endif - #if defined( __GNUC__ ) - typedef cl_float __cl_float8 __attribute__((vector_size(32))); - typedef cl_double __cl_double4 __attribute__((vector_size(32))); - #else - typedef __m256 __cl_float8; - typedef __m256d __cl_double4; - #endif - #define __CL_FLOAT8__ 1 - #define __CL_DOUBLE4__ 1 -#endif - -/* Define capabilities for anonymous struct members. */ -#if !defined(__cplusplus) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -#define __CL_HAS_ANON_STRUCT__ 1 -#define __CL_ANON_STRUCT__ -#elif defined( __GNUC__) && ! defined( __STRICT_ANSI__ ) -#define __CL_HAS_ANON_STRUCT__ 1 -#define __CL_ANON_STRUCT__ __extension__ -#elif defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__) - #if _MSC_VER >= 1500 - /* Microsoft Developer Studio 2008 supports anonymous structs, but - * complains by default. */ - #define __CL_HAS_ANON_STRUCT__ 1 - #define __CL_ANON_STRUCT__ - /* Disable warning C4201: nonstandard extension used : nameless - * struct/union */ - #pragma warning( push ) - #pragma warning( disable : 4201 ) - #endif -#else -#define __CL_HAS_ANON_STRUCT__ 0 -#define __CL_ANON_STRUCT__ -#endif - -/* Define alignment keys */ -#if defined( __GNUC__ ) || defined(__INTEGRITY) - #define CL_ALIGNED(_x) __attribute__ ((aligned(_x))) -#elif defined( _WIN32) && (_MSC_VER) - /* Alignment keys neutered on windows because MSVC can't swallow function arguments with alignment requirements */ - /* http://msdn.microsoft.com/en-us/library/373ak2y1%28VS.71%29.aspx */ - /* #include */ - /* #define CL_ALIGNED(_x) _CRT_ALIGN(_x) */ - #define CL_ALIGNED(_x) -#else - #warning Need to implement some method to align data here - #define CL_ALIGNED(_x) -#endif - -/* Indicate whether .xyzw, .s0123 and .hi.lo are supported */ -#if __CL_HAS_ANON_STRUCT__ - /* .xyzw and .s0123...{f|F} are supported */ - #define CL_HAS_NAMED_VECTOR_FIELDS 1 - /* .hi and .lo are supported */ - #define CL_HAS_HI_LO_VECTOR_FIELDS 1 -#endif - -/* Define cl_vector types */ - -/* ---- cl_charn ---- */ -typedef union -{ - cl_char CL_ALIGNED(2) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_char x, y; }; - __CL_ANON_STRUCT__ struct{ cl_char s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_char lo, hi; }; -#endif -#if defined( __CL_CHAR2__) - __cl_char2 v2; -#endif -}cl_char2; - -typedef union -{ - cl_char CL_ALIGNED(4) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_char2 lo, hi; }; -#endif -#if defined( __CL_CHAR2__) - __cl_char2 v2[2]; -#endif -#if defined( __CL_CHAR4__) - __cl_char4 v4; -#endif -}cl_char4; - -/* cl_char3 is identical in size, alignment and behavior to cl_char4. See section 6.1.5. */ -typedef cl_char4 cl_char3; - -typedef union -{ - cl_char CL_ALIGNED(8) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_char4 lo, hi; }; -#endif -#if defined( __CL_CHAR2__) - __cl_char2 v2[4]; -#endif -#if defined( __CL_CHAR4__) - __cl_char4 v4[2]; -#endif -#if defined( __CL_CHAR8__ ) - __cl_char8 v8; -#endif -}cl_char8; - -typedef union -{ - cl_char CL_ALIGNED(16) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_char8 lo, hi; }; -#endif -#if defined( __CL_CHAR2__) - __cl_char2 v2[8]; -#endif -#if defined( __CL_CHAR4__) - __cl_char4 v4[4]; -#endif -#if defined( __CL_CHAR8__ ) - __cl_char8 v8[2]; -#endif -#if defined( __CL_CHAR16__ ) - __cl_char16 v16; -#endif -}cl_char16; - - -/* ---- cl_ucharn ---- */ -typedef union -{ - cl_uchar CL_ALIGNED(2) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uchar x, y; }; - __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_uchar lo, hi; }; -#endif -#if defined( __cl_uchar2__) - __cl_uchar2 v2; -#endif -}cl_uchar2; - -typedef union -{ - cl_uchar CL_ALIGNED(4) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_uchar2 lo, hi; }; -#endif -#if defined( __CL_UCHAR2__) - __cl_uchar2 v2[2]; -#endif -#if defined( __CL_UCHAR4__) - __cl_uchar4 v4; -#endif -}cl_uchar4; - -/* cl_uchar3 is identical in size, alignment and behavior to cl_uchar4. See section 6.1.5. */ -typedef cl_uchar4 cl_uchar3; - -typedef union -{ - cl_uchar CL_ALIGNED(8) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_uchar4 lo, hi; }; -#endif -#if defined( __CL_UCHAR2__) - __cl_uchar2 v2[4]; -#endif -#if defined( __CL_UCHAR4__) - __cl_uchar4 v4[2]; -#endif -#if defined( __CL_UCHAR8__ ) - __cl_uchar8 v8; -#endif -}cl_uchar8; - -typedef union -{ - cl_uchar CL_ALIGNED(16) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_uchar8 lo, hi; }; -#endif -#if defined( __CL_UCHAR2__) - __cl_uchar2 v2[8]; -#endif -#if defined( __CL_UCHAR4__) - __cl_uchar4 v4[4]; -#endif -#if defined( __CL_UCHAR8__ ) - __cl_uchar8 v8[2]; -#endif -#if defined( __CL_UCHAR16__ ) - __cl_uchar16 v16; -#endif -}cl_uchar16; - - -/* ---- cl_shortn ---- */ -typedef union -{ - cl_short CL_ALIGNED(4) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_short x, y; }; - __CL_ANON_STRUCT__ struct{ cl_short s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_short lo, hi; }; -#endif -#if defined( __CL_SHORT2__) - __cl_short2 v2; -#endif -}cl_short2; - -typedef union -{ - cl_short CL_ALIGNED(8) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_short2 lo, hi; }; -#endif -#if defined( __CL_SHORT2__) - __cl_short2 v2[2]; -#endif -#if defined( __CL_SHORT4__) - __cl_short4 v4; -#endif -}cl_short4; - -/* cl_short3 is identical in size, alignment and behavior to cl_short4. See section 6.1.5. */ -typedef cl_short4 cl_short3; - -typedef union -{ - cl_short CL_ALIGNED(16) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_short4 lo, hi; }; -#endif -#if defined( __CL_SHORT2__) - __cl_short2 v2[4]; -#endif -#if defined( __CL_SHORT4__) - __cl_short4 v4[2]; -#endif -#if defined( __CL_SHORT8__ ) - __cl_short8 v8; -#endif -}cl_short8; - -typedef union -{ - cl_short CL_ALIGNED(32) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_short8 lo, hi; }; -#endif -#if defined( __CL_SHORT2__) - __cl_short2 v2[8]; -#endif -#if defined( __CL_SHORT4__) - __cl_short4 v4[4]; -#endif -#if defined( __CL_SHORT8__ ) - __cl_short8 v8[2]; -#endif -#if defined( __CL_SHORT16__ ) - __cl_short16 v16; -#endif -}cl_short16; - - -/* ---- cl_ushortn ---- */ -typedef union -{ - cl_ushort CL_ALIGNED(4) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ushort x, y; }; - __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_ushort lo, hi; }; -#endif -#if defined( __CL_USHORT2__) - __cl_ushort2 v2; -#endif -}cl_ushort2; - -typedef union -{ - cl_ushort CL_ALIGNED(8) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_ushort2 lo, hi; }; -#endif -#if defined( __CL_USHORT2__) - __cl_ushort2 v2[2]; -#endif -#if defined( __CL_USHORT4__) - __cl_ushort4 v4; -#endif -}cl_ushort4; - -/* cl_ushort3 is identical in size, alignment and behavior to cl_ushort4. See section 6.1.5. */ -typedef cl_ushort4 cl_ushort3; - -typedef union -{ - cl_ushort CL_ALIGNED(16) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_ushort4 lo, hi; }; -#endif -#if defined( __CL_USHORT2__) - __cl_ushort2 v2[4]; -#endif -#if defined( __CL_USHORT4__) - __cl_ushort4 v4[2]; -#endif -#if defined( __CL_USHORT8__ ) - __cl_ushort8 v8; -#endif -}cl_ushort8; - -typedef union -{ - cl_ushort CL_ALIGNED(32) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_ushort8 lo, hi; }; -#endif -#if defined( __CL_USHORT2__) - __cl_ushort2 v2[8]; -#endif -#if defined( __CL_USHORT4__) - __cl_ushort4 v4[4]; -#endif -#if defined( __CL_USHORT8__ ) - __cl_ushort8 v8[2]; -#endif -#if defined( __CL_USHORT16__ ) - __cl_ushort16 v16; -#endif -}cl_ushort16; - - -/* ---- cl_halfn ---- */ -typedef union -{ - cl_half CL_ALIGNED(4) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_half x, y; }; - __CL_ANON_STRUCT__ struct{ cl_half s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_half lo, hi; }; -#endif -#if defined( __CL_HALF2__) - __cl_half2 v2; -#endif -}cl_half2; - -typedef union -{ - cl_half CL_ALIGNED(8) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_half2 lo, hi; }; -#endif -#if defined( __CL_HALF2__) - __cl_half2 v2[2]; -#endif -#if defined( __CL_HALF4__) - __cl_half4 v4; -#endif -}cl_half4; - -/* cl_half3 is identical in size, alignment and behavior to cl_half4. See section 6.1.5. */ -typedef cl_half4 cl_half3; - -typedef union -{ - cl_half CL_ALIGNED(16) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_half4 lo, hi; }; -#endif -#if defined( __CL_HALF2__) - __cl_half2 v2[4]; -#endif -#if defined( __CL_HALF4__) - __cl_half4 v4[2]; -#endif -#if defined( __CL_HALF8__ ) - __cl_half8 v8; -#endif -}cl_half8; - -typedef union -{ - cl_half CL_ALIGNED(32) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_half8 lo, hi; }; -#endif -#if defined( __CL_HALF2__) - __cl_half2 v2[8]; -#endif -#if defined( __CL_HALF4__) - __cl_half4 v4[4]; -#endif -#if defined( __CL_HALF8__ ) - __cl_half8 v8[2]; -#endif -#if defined( __CL_HALF16__ ) - __cl_half16 v16; -#endif -}cl_half16; - -/* ---- cl_intn ---- */ -typedef union -{ - cl_int CL_ALIGNED(8) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_int x, y; }; - __CL_ANON_STRUCT__ struct{ cl_int s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_int lo, hi; }; -#endif -#if defined( __CL_INT2__) - __cl_int2 v2; -#endif -}cl_int2; - -typedef union -{ - cl_int CL_ALIGNED(16) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_int2 lo, hi; }; -#endif -#if defined( __CL_INT2__) - __cl_int2 v2[2]; -#endif -#if defined( __CL_INT4__) - __cl_int4 v4; -#endif -}cl_int4; - -/* cl_int3 is identical in size, alignment and behavior to cl_int4. See section 6.1.5. */ -typedef cl_int4 cl_int3; - -typedef union -{ - cl_int CL_ALIGNED(32) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_int4 lo, hi; }; -#endif -#if defined( __CL_INT2__) - __cl_int2 v2[4]; -#endif -#if defined( __CL_INT4__) - __cl_int4 v4[2]; -#endif -#if defined( __CL_INT8__ ) - __cl_int8 v8; -#endif -}cl_int8; - -typedef union -{ - cl_int CL_ALIGNED(64) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_int8 lo, hi; }; -#endif -#if defined( __CL_INT2__) - __cl_int2 v2[8]; -#endif -#if defined( __CL_INT4__) - __cl_int4 v4[4]; -#endif -#if defined( __CL_INT8__ ) - __cl_int8 v8[2]; -#endif -#if defined( __CL_INT16__ ) - __cl_int16 v16; -#endif -}cl_int16; - - -/* ---- cl_uintn ---- */ -typedef union -{ - cl_uint CL_ALIGNED(8) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uint x, y; }; - __CL_ANON_STRUCT__ struct{ cl_uint s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_uint lo, hi; }; -#endif -#if defined( __CL_UINT2__) - __cl_uint2 v2; -#endif -}cl_uint2; - -typedef union -{ - cl_uint CL_ALIGNED(16) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_uint2 lo, hi; }; -#endif -#if defined( __CL_UINT2__) - __cl_uint2 v2[2]; -#endif -#if defined( __CL_UINT4__) - __cl_uint4 v4; -#endif -}cl_uint4; - -/* cl_uint3 is identical in size, alignment and behavior to cl_uint4. See section 6.1.5. */ -typedef cl_uint4 cl_uint3; - -typedef union -{ - cl_uint CL_ALIGNED(32) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_uint4 lo, hi; }; -#endif -#if defined( __CL_UINT2__) - __cl_uint2 v2[4]; -#endif -#if defined( __CL_UINT4__) - __cl_uint4 v4[2]; -#endif -#if defined( __CL_UINT8__ ) - __cl_uint8 v8; -#endif -}cl_uint8; - -typedef union -{ - cl_uint CL_ALIGNED(64) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_uint8 lo, hi; }; -#endif -#if defined( __CL_UINT2__) - __cl_uint2 v2[8]; -#endif -#if defined( __CL_UINT4__) - __cl_uint4 v4[4]; -#endif -#if defined( __CL_UINT8__ ) - __cl_uint8 v8[2]; -#endif -#if defined( __CL_UINT16__ ) - __cl_uint16 v16; -#endif -}cl_uint16; - -/* ---- cl_longn ---- */ -typedef union -{ - cl_long CL_ALIGNED(16) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_long x, y; }; - __CL_ANON_STRUCT__ struct{ cl_long s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_long lo, hi; }; -#endif -#if defined( __CL_LONG2__) - __cl_long2 v2; -#endif -}cl_long2; - -typedef union -{ - cl_long CL_ALIGNED(32) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_long2 lo, hi; }; -#endif -#if defined( __CL_LONG2__) - __cl_long2 v2[2]; -#endif -#if defined( __CL_LONG4__) - __cl_long4 v4; -#endif -}cl_long4; - -/* cl_long3 is identical in size, alignment and behavior to cl_long4. See section 6.1.5. */ -typedef cl_long4 cl_long3; - -typedef union -{ - cl_long CL_ALIGNED(64) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_long4 lo, hi; }; -#endif -#if defined( __CL_LONG2__) - __cl_long2 v2[4]; -#endif -#if defined( __CL_LONG4__) - __cl_long4 v4[2]; -#endif -#if defined( __CL_LONG8__ ) - __cl_long8 v8; -#endif -}cl_long8; - -typedef union -{ - cl_long CL_ALIGNED(128) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_long8 lo, hi; }; -#endif -#if defined( __CL_LONG2__) - __cl_long2 v2[8]; -#endif -#if defined( __CL_LONG4__) - __cl_long4 v4[4]; -#endif -#if defined( __CL_LONG8__ ) - __cl_long8 v8[2]; -#endif -#if defined( __CL_LONG16__ ) - __cl_long16 v16; -#endif -}cl_long16; - - -/* ---- cl_ulongn ---- */ -typedef union -{ - cl_ulong CL_ALIGNED(16) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ulong x, y; }; - __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_ulong lo, hi; }; -#endif -#if defined( __CL_ULONG2__) - __cl_ulong2 v2; -#endif -}cl_ulong2; - -typedef union -{ - cl_ulong CL_ALIGNED(32) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_ulong2 lo, hi; }; -#endif -#if defined( __CL_ULONG2__) - __cl_ulong2 v2[2]; -#endif -#if defined( __CL_ULONG4__) - __cl_ulong4 v4; -#endif -}cl_ulong4; - -/* cl_ulong3 is identical in size, alignment and behavior to cl_ulong4. See section 6.1.5. */ -typedef cl_ulong4 cl_ulong3; - -typedef union -{ - cl_ulong CL_ALIGNED(64) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_ulong4 lo, hi; }; -#endif -#if defined( __CL_ULONG2__) - __cl_ulong2 v2[4]; -#endif -#if defined( __CL_ULONG4__) - __cl_ulong4 v4[2]; -#endif -#if defined( __CL_ULONG8__ ) - __cl_ulong8 v8; -#endif -}cl_ulong8; - -typedef union -{ - cl_ulong CL_ALIGNED(128) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_ulong8 lo, hi; }; -#endif -#if defined( __CL_ULONG2__) - __cl_ulong2 v2[8]; -#endif -#if defined( __CL_ULONG4__) - __cl_ulong4 v4[4]; -#endif -#if defined( __CL_ULONG8__ ) - __cl_ulong8 v8[2]; -#endif -#if defined( __CL_ULONG16__ ) - __cl_ulong16 v16; -#endif -}cl_ulong16; - - -/* --- cl_floatn ---- */ - -typedef union -{ - cl_float CL_ALIGNED(8) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_float x, y; }; - __CL_ANON_STRUCT__ struct{ cl_float s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_float lo, hi; }; -#endif -#if defined( __CL_FLOAT2__) - __cl_float2 v2; -#endif -}cl_float2; - -typedef union -{ - cl_float CL_ALIGNED(16) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_float2 lo, hi; }; -#endif -#if defined( __CL_FLOAT2__) - __cl_float2 v2[2]; -#endif -#if defined( __CL_FLOAT4__) - __cl_float4 v4; -#endif -}cl_float4; - -/* cl_float3 is identical in size, alignment and behavior to cl_float4. See section 6.1.5. */ -typedef cl_float4 cl_float3; - -typedef union -{ - cl_float CL_ALIGNED(32) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_float4 lo, hi; }; -#endif -#if defined( __CL_FLOAT2__) - __cl_float2 v2[4]; -#endif -#if defined( __CL_FLOAT4__) - __cl_float4 v4[2]; -#endif -#if defined( __CL_FLOAT8__ ) - __cl_float8 v8; -#endif -}cl_float8; - -typedef union -{ - cl_float CL_ALIGNED(64) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_float8 lo, hi; }; -#endif -#if defined( __CL_FLOAT2__) - __cl_float2 v2[8]; -#endif -#if defined( __CL_FLOAT4__) - __cl_float4 v4[4]; -#endif -#if defined( __CL_FLOAT8__ ) - __cl_float8 v8[2]; -#endif -#if defined( __CL_FLOAT16__ ) - __cl_float16 v16; -#endif -}cl_float16; - -/* --- cl_doublen ---- */ - -typedef union -{ - cl_double CL_ALIGNED(16) s[2]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_double x, y; }; - __CL_ANON_STRUCT__ struct{ cl_double s0, s1; }; - __CL_ANON_STRUCT__ struct{ cl_double lo, hi; }; -#endif -#if defined( __CL_DOUBLE2__) - __cl_double2 v2; -#endif -}cl_double2; - -typedef union -{ - cl_double CL_ALIGNED(32) s[4]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3; }; - __CL_ANON_STRUCT__ struct{ cl_double2 lo, hi; }; -#endif -#if defined( __CL_DOUBLE2__) - __cl_double2 v2[2]; -#endif -#if defined( __CL_DOUBLE4__) - __cl_double4 v4; -#endif -}cl_double4; - -/* cl_double3 is identical in size, alignment and behavior to cl_double4. See section 6.1.5. */ -typedef cl_double4 cl_double3; - -typedef union -{ - cl_double CL_ALIGNED(64) s[8]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; }; - __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; }; - __CL_ANON_STRUCT__ struct{ cl_double4 lo, hi; }; -#endif -#if defined( __CL_DOUBLE2__) - __cl_double2 v2[4]; -#endif -#if defined( __CL_DOUBLE4__) - __cl_double4 v4[2]; -#endif -#if defined( __CL_DOUBLE8__ ) - __cl_double8 v8; -#endif -}cl_double8; - -typedef union -{ - cl_double CL_ALIGNED(128) s[16]; -#if __CL_HAS_ANON_STRUCT__ - __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; - __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; - __CL_ANON_STRUCT__ struct{ cl_double8 lo, hi; }; -#endif -#if defined( __CL_DOUBLE2__) - __cl_double2 v2[8]; -#endif -#if defined( __CL_DOUBLE4__) - __cl_double4 v4[4]; -#endif -#if defined( __CL_DOUBLE8__ ) - __cl_double8 v8[2]; -#endif -#if defined( __CL_DOUBLE16__ ) - __cl_double16 v16; -#endif -}cl_double16; - -/* Macro to facilitate debugging - * Usage: - * Place CL_PROGRAM_STRING_DEBUG_INFO on the line before the first line of your source. - * The first line ends with: CL_PROGRAM_STRING_DEBUG_INFO \" - * Each line thereafter of OpenCL C source must end with: \n\ - * The last line ends in "; - * - * Example: - * - * const char *my_program = CL_PROGRAM_STRING_DEBUG_INFO "\ - * kernel void foo( int a, float * b ) \n\ - * { \n\ - * // my comment \n\ - * *b[ get_global_id(0)] = a; \n\ - * } \n\ - * "; - * - * This should correctly set up the line, (column) and file information for your source - * string so you can do source level debugging. - */ -#define __CL_STRINGIFY( _x ) # _x -#define _CL_STRINGIFY( _x ) __CL_STRINGIFY( _x ) -#define CL_PROGRAM_STRING_DEBUG_INFO "#line " _CL_STRINGIFY(__LINE__) " \"" __FILE__ "\" \n\n" - -#ifdef __cplusplus -} -#endif - -#if !defined(__cplusplus) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -#elif defined( __GNUC__) && ! defined( __STRICT_ANSI__ ) -#elif defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__) - #if _MSC_VER >=1500 - #pragma warning( pop ) - #endif -#endif - -#endif /* __CL_PLATFORM_H */ diff --git a/milepost/ext/angle_headers/CL/cl_va_api_media_sharing_intel.h b/milepost/ext/angle_headers/CL/cl_va_api_media_sharing_intel.h deleted file mode 100644 index 7ba2ec8..0000000 --- a/milepost/ext/angle_headers/CL/cl_va_api_media_sharing_intel.h +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H -#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************** -* cl_intel_va_api_media_sharing extension * -*******************************************/ - -#define cl_intel_va_api_media_sharing 1 - -/* error codes */ -#define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098 -#define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099 -#define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100 -#define CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL -1101 - -/* cl_va_api_device_source_intel */ -#define CL_VA_API_DISPLAY_INTEL 0x4094 - -/* cl_va_api_device_set_intel */ -#define CL_PREFERRED_DEVICES_FOR_VA_API_INTEL 0x4095 -#define CL_ALL_DEVICES_FOR_VA_API_INTEL 0x4096 - -/* cl_context_info */ -#define CL_CONTEXT_VA_API_DISPLAY_INTEL 0x4097 - -/* cl_mem_info */ -#define CL_MEM_VA_API_MEDIA_SURFACE_INTEL 0x4098 - -/* cl_image_info */ -#define CL_IMAGE_VA_API_PLANE_INTEL 0x4099 - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A -#define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B - -typedef cl_uint cl_va_api_device_source_intel; -typedef cl_uint cl_va_api_device_set_intel; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromVA_APIMediaAdapterINTEL( - cl_platform_id platform, - cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( - cl_platform_id platform, - cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromVA_APIMediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireVA_APIMediaSurfacesINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseVA_APIMediaSurfacesINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */ - diff --git a/milepost/ext/angle_headers/CL/cl_version.h b/milepost/ext/angle_headers/CL/cl_version.h deleted file mode 100644 index 3844938..0000000 --- a/milepost/ext/angle_headers/CL/cl_version.h +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2018-2020 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __CL_VERSION_H -#define __CL_VERSION_H - -/* Detect which version to target */ -#if !defined(CL_TARGET_OPENCL_VERSION) -#pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)") -#define CL_TARGET_OPENCL_VERSION 300 -#endif -#if CL_TARGET_OPENCL_VERSION != 100 && \ - CL_TARGET_OPENCL_VERSION != 110 && \ - CL_TARGET_OPENCL_VERSION != 120 && \ - CL_TARGET_OPENCL_VERSION != 200 && \ - CL_TARGET_OPENCL_VERSION != 210 && \ - CL_TARGET_OPENCL_VERSION != 220 && \ - CL_TARGET_OPENCL_VERSION != 300 -#pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220, 300). Defaulting to 300 (OpenCL 3.0)") -#undef CL_TARGET_OPENCL_VERSION -#define CL_TARGET_OPENCL_VERSION 300 -#endif - - -/* OpenCL Version */ -#if CL_TARGET_OPENCL_VERSION >= 300 && !defined(CL_VERSION_3_0) -#define CL_VERSION_3_0 1 -#endif -#if CL_TARGET_OPENCL_VERSION >= 220 && !defined(CL_VERSION_2_2) -#define CL_VERSION_2_2 1 -#endif -#if CL_TARGET_OPENCL_VERSION >= 210 && !defined(CL_VERSION_2_1) -#define CL_VERSION_2_1 1 -#endif -#if CL_TARGET_OPENCL_VERSION >= 200 && !defined(CL_VERSION_2_0) -#define CL_VERSION_2_0 1 -#endif -#if CL_TARGET_OPENCL_VERSION >= 120 && !defined(CL_VERSION_1_2) -#define CL_VERSION_1_2 1 -#endif -#if CL_TARGET_OPENCL_VERSION >= 110 && !defined(CL_VERSION_1_1) -#define CL_VERSION_1_1 1 -#endif -#if CL_TARGET_OPENCL_VERSION >= 100 && !defined(CL_VERSION_1_0) -#define CL_VERSION_1_0 1 -#endif - -/* Allow deprecated APIs for older OpenCL versions. */ -#if CL_TARGET_OPENCL_VERSION <= 220 && !defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS) -#define CL_USE_DEPRECATED_OPENCL_2_2_APIS -#endif -#if CL_TARGET_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS) -#define CL_USE_DEPRECATED_OPENCL_2_1_APIS -#endif -#if CL_TARGET_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS) -#define CL_USE_DEPRECATED_OPENCL_2_0_APIS -#endif -#if CL_TARGET_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) -#define CL_USE_DEPRECATED_OPENCL_1_2_APIS -#endif -#if CL_TARGET_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) -#define CL_USE_DEPRECATED_OPENCL_1_1_APIS -#endif -#if CL_TARGET_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS) -#define CL_USE_DEPRECATED_OPENCL_1_0_APIS -#endif - -#endif /* __CL_VERSION_H */ diff --git a/milepost/ext/angle_headers/CL/opencl.h b/milepost/ext/angle_headers/CL/opencl.h deleted file mode 100644 index ef8dd1e..0000000 --- a/milepost/ext/angle_headers/CL/opencl.h +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef __OPENCL_H -#define __OPENCL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_H */ diff --git a/milepost/ext/angle_headers/EGL/.clang-format b/milepost/ext/angle_headers/EGL/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/EGL/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/EGL/egl.h b/milepost/ext/angle_headers/EGL/egl.h deleted file mode 100644 index 6e05b15..0000000 --- a/milepost/ext/angle_headers/EGL/egl.h +++ /dev/null @@ -1,342 +0,0 @@ -#ifndef __egl_h_ -#define __egl_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -** -** This header is generated from the Khronos EGL XML API Registry. -** The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.khronos.org/registry/egl -** -** Khronos $Git commit SHA1: 5a9a7e3fcb $ on $Git commit date: 2020-08-24 11:05:32 -0700 $ -*/ - -#include - -#ifndef EGL_EGL_PROTOTYPES -#define EGL_EGL_PROTOTYPES 1 -#endif - -/* Generated on date 20201001 */ - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_VERSION_1_0 -#define EGL_VERSION_1_0 1 -typedef unsigned int EGLBoolean; -typedef void *EGLDisplay; -#include -#include -typedef void *EGLConfig; -typedef void *EGLSurface; -typedef void *EGLContext; -typedef void (*__eglMustCastToProperFunctionPointerType)(void); -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BAD_ACCESS 0x3002 -#define EGL_BAD_ALLOC 0x3003 -#define EGL_BAD_ATTRIBUTE 0x3004 -#define EGL_BAD_CONFIG 0x3005 -#define EGL_BAD_CONTEXT 0x3006 -#define EGL_BAD_CURRENT_SURFACE 0x3007 -#define EGL_BAD_DISPLAY 0x3008 -#define EGL_BAD_MATCH 0x3009 -#define EGL_BAD_NATIVE_PIXMAP 0x300A -#define EGL_BAD_NATIVE_WINDOW 0x300B -#define EGL_BAD_PARAMETER 0x300C -#define EGL_BAD_SURFACE 0x300D -#define EGL_BLUE_SIZE 0x3022 -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_CORE_NATIVE_ENGINE 0x305B -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_DONT_CARE EGL_CAST(EGLint,-1) -#define EGL_DRAW 0x3059 -#define EGL_EXTENSIONS 0x3055 -#define EGL_FALSE 0 -#define EGL_GREEN_SIZE 0x3023 -#define EGL_HEIGHT 0x3056 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_LEVEL 0x3029 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -#define EGL_NONE 0x3038 -#define EGL_NON_CONFORMANT_CONFIG 0x3051 -#define EGL_NOT_INITIALIZED 0x3001 -#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0) -#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0) -#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0) -#define EGL_PBUFFER_BIT 0x0001 -#define EGL_PIXMAP_BIT 0x0002 -#define EGL_READ 0x305A -#define EGL_RED_SIZE 0x3024 -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SLOW_CONFIG 0x3050 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_SUCCESS 0x3000 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_TRANSPARENT_RGB 0x3052 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRUE 1 -#define EGL_VENDOR 0x3053 -#define EGL_VERSION 0x3054 -#define EGL_WIDTH 0x3057 -#define EGL_WINDOW_BIT 0x0004 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -typedef EGLContext (EGLAPIENTRYP PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETCURRENTDISPLAYPROC) (void); -typedef EGLSurface (EGLAPIENTRYP PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw); -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id); -typedef EGLint (EGLAPIENTRYP PFNEGLGETERRORPROC) (void); -typedef __eglMustCastToProperFunctionPointerType (EGLAPIENTRYP PFNEGLGETPROCADDRESSPROC) (const char *procname); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint *major, EGLint *minor); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLTERMINATEPROC) (EGLDisplay dpy); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITGLPROC) (void); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITNATIVEPROC) (EGLint engine); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); -EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); -EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); -EGLAPI EGLint EGLAPIENTRY eglGetError (void); -EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); -EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); -EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); -EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); -#endif -#endif /* EGL_VERSION_1_0 */ - -#ifndef EGL_VERSION_1_1 -#define EGL_VERSION_1_1 1 -#define EGL_BACK_BUFFER 0x3084 -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_CONTEXT_LOST 0x300E -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MAX_SWAP_INTERVAL 0x303C -#define EGL_MIPMAP_TEXTURE 0x3082 -#define EGL_MIPMAP_LEVEL 0x3083 -#define EGL_NO_TEXTURE 0x305C -#define EGL_TEXTURE_2D 0x305F -#define EGL_TEXTURE_FORMAT 0x3080 -#define EGL_TEXTURE_RGB 0x305D -#define EGL_TEXTURE_RGBA 0x305E -#define EGL_TEXTURE_TARGET 0x3081 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); -EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); -#endif -#endif /* EGL_VERSION_1_1 */ - -#ifndef EGL_VERSION_1_2 -#define EGL_VERSION_1_2 1 -typedef unsigned int EGLenum; -typedef void *EGLClientBuffer; -#define EGL_ALPHA_FORMAT 0x3088 -#define EGL_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_ALPHA_FORMAT_PRE 0x308C -#define EGL_ALPHA_MASK_SIZE 0x303E -#define EGL_BUFFER_PRESERVED 0x3094 -#define EGL_BUFFER_DESTROYED 0x3095 -#define EGL_CLIENT_APIS 0x308D -#define EGL_COLORSPACE 0x3087 -#define EGL_COLORSPACE_sRGB 0x3089 -#define EGL_COLORSPACE_LINEAR 0x308A -#define EGL_COLOR_BUFFER_TYPE 0x303F -#define EGL_CONTEXT_CLIENT_TYPE 0x3097 -#define EGL_DISPLAY_SCALING 10000 -#define EGL_HORIZONTAL_RESOLUTION 0x3090 -#define EGL_LUMINANCE_BUFFER 0x308F -#define EGL_LUMINANCE_SIZE 0x303D -#define EGL_OPENGL_ES_BIT 0x0001 -#define EGL_OPENVG_BIT 0x0002 -#define EGL_OPENGL_ES_API 0x30A0 -#define EGL_OPENVG_API 0x30A1 -#define EGL_OPENVG_IMAGE 0x3096 -#define EGL_PIXEL_ASPECT_RATIO 0x3092 -#define EGL_RENDERABLE_TYPE 0x3040 -#define EGL_RENDER_BUFFER 0x3086 -#define EGL_RGB_BUFFER 0x308E -#define EGL_SINGLE_BUFFER 0x3085 -#define EGL_SWAP_BEHAVIOR 0x3093 -#define EGL_UNKNOWN EGL_CAST(EGLint,-1) -#define EGL_VERTICAL_RESOLUTION 0x3091 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDAPIPROC) (EGLenum api); -typedef EGLenum (EGLAPIENTRYP PFNEGLQUERYAPIPROC) (void); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETHREADPROC) (void); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITCLIENTPROC) (void); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); -EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); -#endif -#endif /* EGL_VERSION_1_2 */ - -#ifndef EGL_VERSION_1_3 -#define EGL_VERSION_1_3 1 -#define EGL_CONFORMANT 0x3042 -#define EGL_CONTEXT_CLIENT_VERSION 0x3098 -#define EGL_MATCH_NATIVE_PIXMAP 0x3041 -#define EGL_OPENGL_ES2_BIT 0x0004 -#define EGL_VG_ALPHA_FORMAT 0x3088 -#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_VG_ALPHA_FORMAT_PRE 0x308C -#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 -#define EGL_VG_COLORSPACE 0x3087 -#define EGL_VG_COLORSPACE_sRGB 0x3089 -#define EGL_VG_COLORSPACE_LINEAR 0x308A -#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 -#endif /* EGL_VERSION_1_3 */ - -#ifndef EGL_VERSION_1_4 -#define EGL_VERSION_1_4 1 -#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0) -#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 -#define EGL_MULTISAMPLE_RESOLVE 0x3099 -#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A -#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B -#define EGL_OPENGL_API 0x30A2 -#define EGL_OPENGL_BIT 0x0008 -#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 -typedef EGLContext (EGLAPIENTRYP PFNEGLGETCURRENTCONTEXTPROC) (void); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); -#endif -#endif /* EGL_VERSION_1_4 */ - -#ifndef EGL_VERSION_1_5 -#define EGL_VERSION_1_5 1 -typedef void *EGLSync; -typedef intptr_t EGLAttrib; -typedef khronos_utime_nanoseconds_t EGLTime; -typedef void *EGLImage; -#define EGL_CONTEXT_MAJOR_VERSION 0x3098 -#define EGL_CONTEXT_MINOR_VERSION 0x30FB -#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD -#define EGL_NO_RESET_NOTIFICATION 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 -#define EGL_OPENGL_ES3_BIT 0x00000040 -#define EGL_CL_EVENT_HANDLE 0x309C -#define EGL_SYNC_CL_EVENT 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 -#define EGL_SYNC_TYPE 0x30F7 -#define EGL_SYNC_STATUS 0x30F1 -#define EGL_SYNC_CONDITION 0x30F8 -#define EGL_SIGNALED 0x30F2 -#define EGL_UNSIGNALED 0x30F3 -#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 -#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull -#define EGL_TIMEOUT_EXPIRED 0x30F5 -#define EGL_CONDITION_SATISFIED 0x30F6 -#define EGL_NO_SYNC EGL_CAST(EGLSync,0) -#define EGL_SYNC_FENCE 0x30F9 -#define EGL_GL_COLORSPACE 0x309D -#define EGL_GL_COLORSPACE_SRGB 0x3089 -#define EGL_GL_COLORSPACE_LINEAR 0x308A -#define EGL_GL_RENDERBUFFER 0x30B9 -#define EGL_GL_TEXTURE_2D 0x30B1 -#define EGL_GL_TEXTURE_LEVEL 0x30BC -#define EGL_GL_TEXTURE_3D 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET 0x30BD -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 -#define EGL_IMAGE_PRESERVED 0x30D2 -#define EGL_NO_IMAGE EGL_CAST(EGLImage,0) -typedef EGLSync (EGLAPIENTRYP PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -typedef EGLImage (EGLAPIENTRYP PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image); -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags); -#if EGL_EGL_PROTOTYPES -EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); -#endif -#endif /* EGL_VERSION_1_5 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/EGL/eglext.h b/milepost/ext/angle_headers/EGL/eglext.h deleted file mode 100644 index 7765187..0000000 --- a/milepost/ext/angle_headers/EGL/eglext.h +++ /dev/null @@ -1,1422 +0,0 @@ -#ifndef __eglext_h_ -#define __eglext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -** -** This header is generated from the Khronos EGL XML API Registry. -** The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** http://www.khronos.org/registry/egl -** -** Khronos $Git commit SHA1: 5a9a7e3fcb $ on $Git commit date: 2020-08-24 11:05:32 -0700 $ -*/ - -#include - -#define EGL_EGLEXT_VERSION 20201001 - -/* Generated C header for: - * API: egl - * Versions considered: .* - * Versions emitted: _nomatch_^ - * Default extensions included: egl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef EGL_KHR_cl_event -#define EGL_KHR_cl_event 1 -#define EGL_CL_EVENT_HANDLE_KHR 0x309C -#define EGL_SYNC_CL_EVENT_KHR 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF -#endif /* EGL_KHR_cl_event */ - -#ifndef EGL_KHR_cl_event2 -#define EGL_KHR_cl_event2 1 -typedef void *EGLSyncKHR; -typedef intptr_t EGLAttribKHR; -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); -#endif -#endif /* EGL_KHR_cl_event2 */ - -#ifndef EGL_KHR_client_get_all_proc_addresses -#define EGL_KHR_client_get_all_proc_addresses 1 -#endif /* EGL_KHR_client_get_all_proc_addresses */ - -#ifndef EGL_KHR_config_attribs -#define EGL_KHR_config_attribs 1 -#define EGL_CONFORMANT_KHR 0x3042 -#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 -#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 -#endif /* EGL_KHR_config_attribs */ - -#ifndef EGL_KHR_context_flush_control -#define EGL_KHR_context_flush_control 1 -#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 -#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 -#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 -#endif /* EGL_KHR_context_flush_control */ - -#ifndef EGL_KHR_create_context -#define EGL_KHR_create_context 1 -#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 -#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB -#define EGL_CONTEXT_FLAGS_KHR 0x30FC -#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD -#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF -#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 -#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 -#endif /* EGL_KHR_create_context */ - -#ifndef EGL_KHR_create_context_no_error -#define EGL_KHR_create_context_no_error 1 -#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 -#endif /* EGL_KHR_create_context_no_error */ - -#ifndef EGL_KHR_debug -#define EGL_KHR_debug 1 -typedef void *EGLLabelKHR; -typedef void *EGLObjectKHR; -typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); -#define EGL_OBJECT_THREAD_KHR 0x33B0 -#define EGL_OBJECT_DISPLAY_KHR 0x33B1 -#define EGL_OBJECT_CONTEXT_KHR 0x33B2 -#define EGL_OBJECT_SURFACE_KHR 0x33B3 -#define EGL_OBJECT_IMAGE_KHR 0x33B4 -#define EGL_OBJECT_SYNC_KHR 0x33B5 -#define EGL_OBJECT_STREAM_KHR 0x33B6 -#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 -#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA -#define EGL_DEBUG_MSG_WARN_KHR 0x33BB -#define EGL_DEBUG_MSG_INFO_KHR 0x33BC -#define EGL_DEBUG_CALLBACK_KHR 0x33B8 -typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); -typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); -EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); -#endif -#endif /* EGL_KHR_debug */ - -#ifndef EGL_KHR_display_reference -#define EGL_KHR_display_reference 1 -#define EGL_TRACK_REFERENCES_KHR 0x3352 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value); -#endif -#endif /* EGL_KHR_display_reference */ - -#ifndef EGL_KHR_fence_sync -#define EGL_KHR_fence_sync 1 -typedef khronos_utime_nanoseconds_t EGLTimeKHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 -#define EGL_SYNC_CONDITION_KHR 0x30F8 -#define EGL_SYNC_FENCE_KHR 0x30F9 -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_fence_sync */ - -#ifndef EGL_KHR_get_all_proc_addresses -#define EGL_KHR_get_all_proc_addresses 1 -#endif /* EGL_KHR_get_all_proc_addresses */ - -#ifndef EGL_KHR_gl_colorspace -#define EGL_KHR_gl_colorspace 1 -#define EGL_GL_COLORSPACE_KHR 0x309D -#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 -#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A -#endif /* EGL_KHR_gl_colorspace */ - -#ifndef EGL_KHR_gl_renderbuffer_image -#define EGL_KHR_gl_renderbuffer_image 1 -#define EGL_GL_RENDERBUFFER_KHR 0x30B9 -#endif /* EGL_KHR_gl_renderbuffer_image */ - -#ifndef EGL_KHR_gl_texture_2D_image -#define EGL_KHR_gl_texture_2D_image 1 -#define EGL_GL_TEXTURE_2D_KHR 0x30B1 -#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC -#endif /* EGL_KHR_gl_texture_2D_image */ - -#ifndef EGL_KHR_gl_texture_3D_image -#define EGL_KHR_gl_texture_3D_image 1 -#define EGL_GL_TEXTURE_3D_KHR 0x30B2 -#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD -#endif /* EGL_KHR_gl_texture_3D_image */ - -#ifndef EGL_KHR_gl_texture_cubemap_image -#define EGL_KHR_gl_texture_cubemap_image 1 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 -#endif /* EGL_KHR_gl_texture_cubemap_image */ - -#ifndef EGL_KHR_image -#define EGL_KHR_image 1 -typedef void *EGLImageKHR; -#define EGL_NATIVE_PIXMAP_KHR 0x30B0 -#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); -#endif -#endif /* EGL_KHR_image */ - -#ifndef EGL_KHR_image_base -#define EGL_KHR_image_base 1 -#define EGL_IMAGE_PRESERVED_KHR 0x30D2 -#endif /* EGL_KHR_image_base */ - -#ifndef EGL_KHR_image_pixmap -#define EGL_KHR_image_pixmap 1 -#endif /* EGL_KHR_image_pixmap */ - -#ifndef EGL_KHR_lock_surface -#define EGL_KHR_lock_surface 1 -#define EGL_READ_SURFACE_BIT_KHR 0x0001 -#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 -#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 -#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 -#define EGL_MATCH_FORMAT_KHR 0x3043 -#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 -#define EGL_FORMAT_RGB_565_KHR 0x30C1 -#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 -#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 -#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 -#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 -#define EGL_BITMAP_POINTER_KHR 0x30C6 -#define EGL_BITMAP_PITCH_KHR 0x30C7 -#define EGL_BITMAP_ORIGIN_KHR 0x30C8 -#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 -#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA -#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB -#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC -#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD -#define EGL_LOWER_LEFT_KHR 0x30CE -#define EGL_UPPER_LEFT_KHR 0x30CF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); -#endif -#endif /* EGL_KHR_lock_surface */ - -#ifndef EGL_KHR_lock_surface2 -#define EGL_KHR_lock_surface2 1 -#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 -#endif /* EGL_KHR_lock_surface2 */ - -#ifndef EGL_KHR_lock_surface3 -#define EGL_KHR_lock_surface3 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); -#endif -#endif /* EGL_KHR_lock_surface3 */ - -#ifndef EGL_KHR_mutable_render_buffer -#define EGL_KHR_mutable_render_buffer 1 -#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 -#endif /* EGL_KHR_mutable_render_buffer */ - -#ifndef EGL_KHR_no_config_context -#define EGL_KHR_no_config_context 1 -#define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0) -#endif /* EGL_KHR_no_config_context */ - -#ifndef EGL_KHR_partial_update -#define EGL_KHR_partial_update 1 -#define EGL_BUFFER_AGE_KHR 0x313D -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_partial_update */ - -#ifndef EGL_KHR_platform_android -#define EGL_KHR_platform_android 1 -#define EGL_PLATFORM_ANDROID_KHR 0x3141 -#endif /* EGL_KHR_platform_android */ - -#ifndef EGL_KHR_platform_gbm -#define EGL_KHR_platform_gbm 1 -#define EGL_PLATFORM_GBM_KHR 0x31D7 -#endif /* EGL_KHR_platform_gbm */ - -#ifndef EGL_KHR_platform_wayland -#define EGL_KHR_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 -#endif /* EGL_KHR_platform_wayland */ - -#ifndef EGL_KHR_platform_x11 -#define EGL_KHR_platform_x11 1 -#define EGL_PLATFORM_X11_KHR 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 -#endif /* EGL_KHR_platform_x11 */ - -#ifndef EGL_KHR_reusable_sync -#define EGL_KHR_reusable_sync 1 -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_STATUS_KHR 0x30F1 -#define EGL_SIGNALED_KHR 0x30F2 -#define EGL_UNSIGNALED_KHR 0x30F3 -#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 -#define EGL_CONDITION_SATISFIED_KHR 0x30F6 -#define EGL_SYNC_TYPE_KHR 0x30F7 -#define EGL_SYNC_REUSABLE_KHR 0x30FA -#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 -#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull -#define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0) -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_reusable_sync */ - -#ifndef EGL_KHR_stream -#define EGL_KHR_stream 1 -typedef void *EGLStreamKHR; -typedef khronos_uint64_t EGLuint64KHR; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0) -#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 -#define EGL_PRODUCER_FRAME_KHR 0x3212 -#define EGL_CONSUMER_FRAME_KHR 0x3213 -#define EGL_STREAM_STATE_KHR 0x3214 -#define EGL_STREAM_STATE_CREATED_KHR 0x3215 -#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 -#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 -#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 -#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 -#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A -#define EGL_BAD_STREAM_KHR 0x321B -#define EGL_BAD_STATE_KHR 0x321C -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_stream */ - -#ifndef EGL_KHR_stream_attrib -#define EGL_KHR_stream_attrib 1 -#ifdef KHRONOS_SUPPORT_INT64 -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_KHR_stream_attrib */ - -#ifndef EGL_KHR_stream_consumer_gltexture -#define EGL_KHR_stream_consumer_gltexture 1 -#ifdef EGL_KHR_stream -#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_consumer_gltexture */ - -#ifndef EGL_KHR_stream_cross_process_fd -#define EGL_KHR_stream_cross_process_fd 1 -typedef int EGLNativeFileDescriptorKHR; -#ifdef EGL_KHR_stream -#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1) -typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); -typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); -EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_cross_process_fd */ - -#ifndef EGL_KHR_stream_fifo -#define EGL_KHR_stream_fifo 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC -#define EGL_STREAM_TIME_NOW_KHR 0x31FD -#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE -#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_fifo */ - -#ifndef EGL_KHR_stream_producer_aldatalocator -#define EGL_KHR_stream_producer_aldatalocator 1 -#ifdef EGL_KHR_stream -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_aldatalocator */ - -#ifndef EGL_KHR_stream_producer_eglsurface -#define EGL_KHR_stream_producer_eglsurface 1 -#ifdef EGL_KHR_stream -#define EGL_STREAM_BIT_KHR 0x0800 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); -#endif -#endif /* EGL_KHR_stream */ -#endif /* EGL_KHR_stream_producer_eglsurface */ - -#ifndef EGL_KHR_surfaceless_context -#define EGL_KHR_surfaceless_context 1 -#endif /* EGL_KHR_surfaceless_context */ - -#ifndef EGL_KHR_swap_buffers_with_damage -#define EGL_KHR_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_KHR_swap_buffers_with_damage */ - -#ifndef EGL_KHR_vg_parent_image -#define EGL_KHR_vg_parent_image 1 -#define EGL_VG_PARENT_IMAGE_KHR 0x30BA -#endif /* EGL_KHR_vg_parent_image */ - -#ifndef EGL_KHR_wait_sync -#define EGL_KHR_wait_sync 1 -typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); -#endif -#endif /* EGL_KHR_wait_sync */ - -#ifndef EGL_ANDROID_GLES_layers -#define EGL_ANDROID_GLES_layers 1 -#endif /* EGL_ANDROID_GLES_layers */ - -#ifndef EGL_ANDROID_blob_cache -#define EGL_ANDROID_blob_cache 1 -typedef khronos_ssize_t EGLsizeiANDROID; -typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); -typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); -typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); -#endif -#endif /* EGL_ANDROID_blob_cache */ - -#ifndef EGL_ANDROID_create_native_client_buffer -#define EGL_ANDROID_create_native_client_buffer 1 -#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 -#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 -#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 -#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 -typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list); -#endif -#endif /* EGL_ANDROID_create_native_client_buffer */ - -#ifndef EGL_ANDROID_framebuffer_target -#define EGL_ANDROID_framebuffer_target 1 -#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 -#endif /* EGL_ANDROID_framebuffer_target */ - -#ifndef EGL_ANDROID_front_buffer_auto_refresh -#define EGL_ANDROID_front_buffer_auto_refresh 1 -#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C -#endif /* EGL_ANDROID_front_buffer_auto_refresh */ - -#ifndef EGL_ANDROID_get_frame_timestamps -#define EGL_ANDROID_get_frame_timestamps 1 -typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; -#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2) -#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1) -#define EGL_TIMESTAMPS_ANDROID 0x3430 -#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431 -#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432 -#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433 -#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434 -#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435 -#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436 -#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437 -#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438 -#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439 -#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A -#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B -#define EGL_READS_DONE_TIME_ANDROID 0x343C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); -EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); -EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); -EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); -#endif -#endif /* EGL_ANDROID_get_frame_timestamps */ - -#ifndef EGL_ANDROID_get_native_client_buffer -#define EGL_ANDROID_get_native_client_buffer 1 -struct AHardwareBuffer; -typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer); -#endif -#endif /* EGL_ANDROID_get_native_client_buffer */ - -#ifndef EGL_ANDROID_image_native_buffer -#define EGL_ANDROID_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_ANDROID 0x3140 -#endif /* EGL_ANDROID_image_native_buffer */ - -#ifndef EGL_ANDROID_native_fence_sync -#define EGL_ANDROID_native_fence_sync 1 -#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 -#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 -#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 -#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 -typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); -#endif -#endif /* EGL_ANDROID_native_fence_sync */ - -#ifndef EGL_ANDROID_presentation_time -#define EGL_ANDROID_presentation_time 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); -#endif -#endif /* EGL_ANDROID_presentation_time */ - -#ifndef EGL_ANDROID_recordable -#define EGL_ANDROID_recordable 1 -#define EGL_RECORDABLE_ANDROID 0x3142 -#endif /* EGL_ANDROID_recordable */ - -#ifndef EGL_ANGLE_d3d_share_handle_client_buffer -#define EGL_ANGLE_d3d_share_handle_client_buffer 1 -#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 -#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ - -#ifndef EGL_ANGLE_device_d3d -#define EGL_ANGLE_device_d3d 1 -#define EGL_D3D9_DEVICE_ANGLE 0x33A0 -#define EGL_D3D11_DEVICE_ANGLE 0x33A1 -#endif /* EGL_ANGLE_device_d3d */ - -#ifndef EGL_ANGLE_query_surface_pointer -#define EGL_ANGLE_query_surface_pointer 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); -#endif -#endif /* EGL_ANGLE_query_surface_pointer */ - -#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle -#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 -#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ - -#ifndef EGL_ANGLE_window_fixed_size -#define EGL_ANGLE_window_fixed_size 1 -#define EGL_FIXED_SIZE_ANGLE 0x3201 -#endif /* EGL_ANGLE_window_fixed_size */ - -#ifndef EGL_ARM_image_format -#define EGL_ARM_image_format 1 -#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287 -#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288 -#endif /* EGL_ARM_image_format */ - -#ifndef EGL_ARM_implicit_external_sync -#define EGL_ARM_implicit_external_sync 1 -#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A -#endif /* EGL_ARM_implicit_external_sync */ - -#ifndef EGL_ARM_pixmap_multisample_discard -#define EGL_ARM_pixmap_multisample_discard 1 -#define EGL_DISCARD_SAMPLES_ARM 0x3286 -#endif /* EGL_ARM_pixmap_multisample_discard */ - -#ifndef EGL_EXT_bind_to_front -#define EGL_EXT_bind_to_front 1 -#define EGL_FRONT_BUFFER_EXT 0x3464 -#endif /* EGL_EXT_bind_to_front */ - -#ifndef EGL_EXT_buffer_age -#define EGL_EXT_buffer_age 1 -#define EGL_BUFFER_AGE_EXT 0x313D -#endif /* EGL_EXT_buffer_age */ - -#ifndef EGL_EXT_client_extensions -#define EGL_EXT_client_extensions 1 -#endif /* EGL_EXT_client_extensions */ - -#ifndef EGL_EXT_client_sync -#define EGL_EXT_client_sync 1 -#define EGL_SYNC_CLIENT_EXT 0x3364 -#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_EXT_client_sync */ - -#ifndef EGL_EXT_compositor -#define EGL_EXT_compositor 1 -#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460 -#define EGL_EXTERNAL_REF_ID_EXT 0x3461 -#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462 -#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height); -EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy); -#endif -#endif /* EGL_EXT_compositor */ - -#ifndef EGL_EXT_create_context_robustness -#define EGL_EXT_create_context_robustness 1 -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 -#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE -#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF -#endif /* EGL_EXT_create_context_robustness */ - -#ifndef EGL_EXT_device_base -#define EGL_EXT_device_base 1 -typedef void *EGLDeviceEXT; -#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) -#define EGL_BAD_DEVICE_EXT 0x322B -#define EGL_DEVICE_EXT 0x322C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#endif -#endif /* EGL_EXT_device_base */ - -#ifndef EGL_EXT_device_drm -#define EGL_EXT_device_drm 1 -#define EGL_DRM_DEVICE_FILE_EXT 0x3233 -#define EGL_DRM_MASTER_FD_EXT 0x333C -#endif /* EGL_EXT_device_drm */ - -#ifndef EGL_EXT_device_enumeration -#define EGL_EXT_device_enumeration 1 -#endif /* EGL_EXT_device_enumeration */ - -#ifndef EGL_EXT_device_openwf -#define EGL_EXT_device_openwf 1 -#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 -#endif /* EGL_EXT_device_openwf */ - -#ifndef EGL_EXT_device_query -#define EGL_EXT_device_query 1 -#endif /* EGL_EXT_device_query */ - -#ifndef EGL_EXT_device_query_name -#define EGL_EXT_device_query_name 1 -#define EGL_RENDERER_EXT 0x335F -#endif /* EGL_EXT_device_query_name */ - -#ifndef EGL_EXT_gl_colorspace_bt2020_linear -#define EGL_EXT_gl_colorspace_bt2020_linear 1 -#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F -#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ - -#ifndef EGL_EXT_gl_colorspace_bt2020_pq -#define EGL_EXT_gl_colorspace_bt2020_pq 1 -#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 -#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ - -#ifndef EGL_EXT_gl_colorspace_display_p3 -#define EGL_EXT_gl_colorspace_display_p3 1 -#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 -#endif /* EGL_EXT_gl_colorspace_display_p3 */ - -#ifndef EGL_EXT_gl_colorspace_display_p3_linear -#define EGL_EXT_gl_colorspace_display_p3_linear 1 -#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 -#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ - -#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough -#define EGL_EXT_gl_colorspace_display_p3_passthrough 1 -#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490 -#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ - -#ifndef EGL_EXT_gl_colorspace_scrgb -#define EGL_EXT_gl_colorspace_scrgb 1 -#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351 -#endif /* EGL_EXT_gl_colorspace_scrgb */ - -#ifndef EGL_EXT_gl_colorspace_scrgb_linear -#define EGL_EXT_gl_colorspace_scrgb_linear 1 -#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 -#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ - -#ifndef EGL_EXT_image_dma_buf_import -#define EGL_EXT_image_dma_buf_import 1 -#define EGL_LINUX_DMA_BUF_EXT 0x3270 -#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 -#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 -#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 -#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 -#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 -#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 -#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 -#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 -#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 -#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A -#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B -#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C -#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D -#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E -#define EGL_ITU_REC601_EXT 0x327F -#define EGL_ITU_REC709_EXT 0x3280 -#define EGL_ITU_REC2020_EXT 0x3281 -#define EGL_YUV_FULL_RANGE_EXT 0x3282 -#define EGL_YUV_NARROW_RANGE_EXT 0x3283 -#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 -#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 -#endif /* EGL_EXT_image_dma_buf_import */ - -#ifndef EGL_EXT_image_dma_buf_import_modifiers -#define EGL_EXT_image_dma_buf_import_modifiers 1 -#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 -#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 -#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 -#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 -#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 -#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 -#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 -#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 -#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 -#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 -#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); -#endif -#endif /* EGL_EXT_image_dma_buf_import_modifiers */ - -#ifndef EGL_EXT_image_gl_colorspace -#define EGL_EXT_image_gl_colorspace 1 -#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D -#endif /* EGL_EXT_image_gl_colorspace */ - -#ifndef EGL_EXT_image_implicit_sync_control -#define EGL_EXT_image_implicit_sync_control 1 -#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470 -#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471 -#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472 -#endif /* EGL_EXT_image_implicit_sync_control */ - -#ifndef EGL_EXT_multiview_window -#define EGL_EXT_multiview_window 1 -#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 -#endif /* EGL_EXT_multiview_window */ - -#ifndef EGL_EXT_output_base -#define EGL_EXT_output_base 1 -typedef void *EGLOutputLayerEXT; -typedef void *EGLOutputPortEXT; -#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0) -#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0) -#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D -#define EGL_BAD_OUTPUT_PORT_EXT 0x322E -#define EGL_SWAP_INTERVAL_EXT 0x322F -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); -EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); -EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); -EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); -#endif -#endif /* EGL_EXT_output_base */ - -#ifndef EGL_EXT_output_drm -#define EGL_EXT_output_drm 1 -#define EGL_DRM_CRTC_EXT 0x3234 -#define EGL_DRM_PLANE_EXT 0x3235 -#define EGL_DRM_CONNECTOR_EXT 0x3236 -#endif /* EGL_EXT_output_drm */ - -#ifndef EGL_EXT_output_openwf -#define EGL_EXT_output_openwf 1 -#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 -#define EGL_OPENWF_PORT_ID_EXT 0x3239 -#endif /* EGL_EXT_output_openwf */ - -#ifndef EGL_EXT_pixel_format_float -#define EGL_EXT_pixel_format_float 1 -#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 -#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A -#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B -#endif /* EGL_EXT_pixel_format_float */ - -#ifndef EGL_EXT_platform_base -#define EGL_EXT_platform_base 1 -typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); -EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); -#endif -#endif /* EGL_EXT_platform_base */ - -#ifndef EGL_EXT_platform_device -#define EGL_EXT_platform_device 1 -#define EGL_PLATFORM_DEVICE_EXT 0x313F -#endif /* EGL_EXT_platform_device */ - -#ifndef EGL_EXT_platform_wayland -#define EGL_EXT_platform_wayland 1 -#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 -#endif /* EGL_EXT_platform_wayland */ - -#ifndef EGL_EXT_platform_x11 -#define EGL_EXT_platform_x11 1 -#define EGL_PLATFORM_X11_EXT 0x31D5 -#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 -#endif /* EGL_EXT_platform_x11 */ - -#ifndef EGL_EXT_platform_xcb -#define EGL_EXT_platform_xcb 1 -#define EGL_PLATFORM_XCB_EXT 0x31DC -#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE -#endif /* EGL_EXT_platform_xcb */ - -#ifndef EGL_EXT_protected_content -#define EGL_EXT_protected_content 1 -#define EGL_PROTECTED_CONTENT_EXT 0x32C0 -#endif /* EGL_EXT_protected_content */ - -#ifndef EGL_EXT_protected_surface -#define EGL_EXT_protected_surface 1 -#endif /* EGL_EXT_protected_surface */ - -#ifndef EGL_EXT_stream_consumer_egloutput -#define EGL_EXT_stream_consumer_egloutput 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); -#endif -#endif /* EGL_EXT_stream_consumer_egloutput */ - -#ifndef EGL_EXT_surface_CTA861_3_metadata -#define EGL_EXT_surface_CTA861_3_metadata 1 -#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 -#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 -#endif /* EGL_EXT_surface_CTA861_3_metadata */ - -#ifndef EGL_EXT_surface_SMPTE2086_metadata -#define EGL_EXT_surface_SMPTE2086_metadata 1 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 -#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 -#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 -#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 -#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 -#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A -#define EGL_METADATA_SCALING_EXT 50000 -#endif /* EGL_EXT_surface_SMPTE2086_metadata */ - -#ifndef EGL_EXT_swap_buffers_with_damage -#define EGL_EXT_swap_buffers_with_damage 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); -#endif -#endif /* EGL_EXT_swap_buffers_with_damage */ - -#ifndef EGL_EXT_sync_reuse -#define EGL_EXT_sync_reuse 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_EXT_sync_reuse */ - -#ifndef EGL_EXT_yuv_surface -#define EGL_EXT_yuv_surface 1 -#define EGL_YUV_ORDER_EXT 0x3301 -#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 -#define EGL_YUV_SUBSAMPLE_EXT 0x3312 -#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 -#define EGL_YUV_CSC_STANDARD_EXT 0x330A -#define EGL_YUV_PLANE_BPP_EXT 0x331A -#define EGL_YUV_BUFFER_EXT 0x3300 -#define EGL_YUV_ORDER_YUV_EXT 0x3302 -#define EGL_YUV_ORDER_YVU_EXT 0x3303 -#define EGL_YUV_ORDER_YUYV_EXT 0x3304 -#define EGL_YUV_ORDER_UYVY_EXT 0x3305 -#define EGL_YUV_ORDER_YVYU_EXT 0x3306 -#define EGL_YUV_ORDER_VYUY_EXT 0x3307 -#define EGL_YUV_ORDER_AYUV_EXT 0x3308 -#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 -#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 -#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 -#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 -#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 -#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B -#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C -#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D -#define EGL_YUV_PLANE_BPP_0_EXT 0x331B -#define EGL_YUV_PLANE_BPP_8_EXT 0x331C -#define EGL_YUV_PLANE_BPP_10_EXT 0x331D -#endif /* EGL_EXT_yuv_surface */ - -#ifndef EGL_HI_clientpixmap -#define EGL_HI_clientpixmap 1 -struct EGLClientPixmapHI { - void *pData; - EGLint iWidth; - EGLint iHeight; - EGLint iStride; -}; -#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); -#endif -#endif /* EGL_HI_clientpixmap */ - -#ifndef EGL_HI_colorformats -#define EGL_HI_colorformats 1 -#define EGL_COLOR_FORMAT_HI 0x8F70 -#define EGL_COLOR_RGB_HI 0x8F71 -#define EGL_COLOR_RGBA_HI 0x8F72 -#define EGL_COLOR_ARGB_HI 0x8F73 -#endif /* EGL_HI_colorformats */ - -#ifndef EGL_IMG_context_priority -#define EGL_IMG_context_priority 1 -#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 -#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 -#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 -#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 -#endif /* EGL_IMG_context_priority */ - -#ifndef EGL_IMG_image_plane_attribs -#define EGL_IMG_image_plane_attribs 1 -#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 -#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 -#endif /* EGL_IMG_image_plane_attribs */ - -#ifndef EGL_MESA_drm_image -#define EGL_MESA_drm_image 1 -#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 -#define EGL_DRM_BUFFER_USE_MESA 0x31D1 -#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 -#define EGL_DRM_BUFFER_MESA 0x31D3 -#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 -#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 -#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 -#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004 -typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); -#endif -#endif /* EGL_MESA_drm_image */ - -#ifndef EGL_MESA_image_dma_buf_export -#define EGL_MESA_image_dma_buf_export 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); -EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); -#endif -#endif /* EGL_MESA_image_dma_buf_export */ - -#ifndef EGL_MESA_platform_gbm -#define EGL_MESA_platform_gbm 1 -#define EGL_PLATFORM_GBM_MESA 0x31D7 -#endif /* EGL_MESA_platform_gbm */ - -#ifndef EGL_MESA_platform_surfaceless -#define EGL_MESA_platform_surfaceless 1 -#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD -#endif /* EGL_MESA_platform_surfaceless */ - -#ifndef EGL_MESA_query_driver -#define EGL_MESA_query_driver 1 -typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy); -typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy); -EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy); -#endif -#endif /* EGL_MESA_query_driver */ - -#ifndef EGL_NOK_swap_region -#define EGL_NOK_swap_region 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region */ - -#ifndef EGL_NOK_swap_region2 -#define EGL_NOK_swap_region2 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); -#endif -#endif /* EGL_NOK_swap_region2 */ - -#ifndef EGL_NOK_texture_from_pixmap -#define EGL_NOK_texture_from_pixmap 1 -#define EGL_Y_INVERTED_NOK 0x307F -#endif /* EGL_NOK_texture_from_pixmap */ - -#ifndef EGL_NV_3dvision_surface -#define EGL_NV_3dvision_surface 1 -#define EGL_AUTO_STEREO_NV 0x3136 -#endif /* EGL_NV_3dvision_surface */ - -#ifndef EGL_NV_context_priority_realtime -#define EGL_NV_context_priority_realtime 1 -#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357 -#endif /* EGL_NV_context_priority_realtime */ - -#ifndef EGL_NV_coverage_sample -#define EGL_NV_coverage_sample 1 -#define EGL_COVERAGE_BUFFERS_NV 0x30E0 -#define EGL_COVERAGE_SAMPLES_NV 0x30E1 -#endif /* EGL_NV_coverage_sample */ - -#ifndef EGL_NV_coverage_sample_resolve -#define EGL_NV_coverage_sample_resolve 1 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 -#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 -#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 -#endif /* EGL_NV_coverage_sample_resolve */ - -#ifndef EGL_NV_cuda_event -#define EGL_NV_cuda_event 1 -#define EGL_CUDA_EVENT_HANDLE_NV 0x323B -#define EGL_SYNC_CUDA_EVENT_NV 0x323C -#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D -#endif /* EGL_NV_cuda_event */ - -#ifndef EGL_NV_depth_nonlinear -#define EGL_NV_depth_nonlinear 1 -#define EGL_DEPTH_ENCODING_NV 0x30E2 -#define EGL_DEPTH_ENCODING_NONE_NV 0 -#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 -#endif /* EGL_NV_depth_nonlinear */ - -#ifndef EGL_NV_device_cuda -#define EGL_NV_device_cuda 1 -#define EGL_CUDA_DEVICE_NV 0x323A -#endif /* EGL_NV_device_cuda */ - -#ifndef EGL_NV_native_query -#define EGL_NV_native_query 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); -#endif -#endif /* EGL_NV_native_query */ - -#ifndef EGL_NV_post_convert_rounding -#define EGL_NV_post_convert_rounding 1 -#endif /* EGL_NV_post_convert_rounding */ - -#ifndef EGL_NV_post_sub_buffer -#define EGL_NV_post_sub_buffer 1 -#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); -#endif -#endif /* EGL_NV_post_sub_buffer */ - -#ifndef EGL_NV_quadruple_buffer -#define EGL_NV_quadruple_buffer 1 -#define EGL_QUADRUPLE_BUFFER_NV 0x3231 -#endif /* EGL_NV_quadruple_buffer */ - -#ifndef EGL_NV_robustness_video_memory_purge -#define EGL_NV_robustness_video_memory_purge 1 -#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C -#endif /* EGL_NV_robustness_video_memory_purge */ - -#ifndef EGL_NV_stream_consumer_eglimage -#define EGL_NV_stream_consumer_eglimage 1 -#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373 -#define EGL_STREAM_IMAGE_ADD_NV 0x3374 -#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375 -#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, EGLuint64KHR *modifiers, EGLAttrib *attrib_list); -typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, EGLuint64KHR *modifiers, EGLAttrib *attrib_list); -EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); -#endif -#endif /* EGL_NV_stream_consumer_eglimage */ - -#ifndef EGL_NV_stream_consumer_gltexture_yuv -#define EGL_NV_stream_consumer_gltexture_yuv 1 -#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C -#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D -#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_NV_stream_consumer_gltexture_yuv */ - -#ifndef EGL_NV_stream_cross_display -#define EGL_NV_stream_cross_display 1 -#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E -#endif /* EGL_NV_stream_cross_display */ - -#ifndef EGL_NV_stream_cross_object -#define EGL_NV_stream_cross_object 1 -#define EGL_STREAM_CROSS_OBJECT_NV 0x334D -#endif /* EGL_NV_stream_cross_object */ - -#ifndef EGL_NV_stream_cross_partition -#define EGL_NV_stream_cross_partition 1 -#define EGL_STREAM_CROSS_PARTITION_NV 0x323F -#endif /* EGL_NV_stream_cross_partition */ - -#ifndef EGL_NV_stream_cross_process -#define EGL_NV_stream_cross_process 1 -#define EGL_STREAM_CROSS_PROCESS_NV 0x3245 -#endif /* EGL_NV_stream_cross_process */ - -#ifndef EGL_NV_stream_cross_system -#define EGL_NV_stream_cross_system 1 -#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F -#endif /* EGL_NV_stream_cross_system */ - -#ifndef EGL_NV_stream_dma -#define EGL_NV_stream_dma 1 -#define EGL_STREAM_DMA_NV 0x3371 -#define EGL_STREAM_DMA_SERVER_NV 0x3372 -#endif /* EGL_NV_stream_dma */ - -#ifndef EGL_NV_stream_fifo_next -#define EGL_NV_stream_fifo_next 1 -#define EGL_PENDING_FRAME_NV 0x3329 -#define EGL_STREAM_TIME_PENDING_NV 0x332A -#endif /* EGL_NV_stream_fifo_next */ - -#ifndef EGL_NV_stream_fifo_synchronous -#define EGL_NV_stream_fifo_synchronous 1 -#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 -#endif /* EGL_NV_stream_fifo_synchronous */ - -#ifndef EGL_NV_stream_flush -#define EGL_NV_stream_flush 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_NV_stream_flush */ - -#ifndef EGL_NV_stream_frame_limits -#define EGL_NV_stream_frame_limits 1 -#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 -#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 -#endif /* EGL_NV_stream_frame_limits */ - -#ifndef EGL_NV_stream_metadata -#define EGL_NV_stream_metadata 1 -#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 -#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 -#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 -#define EGL_PRODUCER_METADATA_NV 0x3253 -#define EGL_CONSUMER_METADATA_NV 0x3254 -#define EGL_PENDING_METADATA_NV 0x3328 -#define EGL_METADATA0_SIZE_NV 0x3255 -#define EGL_METADATA1_SIZE_NV 0x3256 -#define EGL_METADATA2_SIZE_NV 0x3257 -#define EGL_METADATA3_SIZE_NV 0x3258 -#define EGL_METADATA0_TYPE_NV 0x3259 -#define EGL_METADATA1_TYPE_NV 0x325A -#define EGL_METADATA2_TYPE_NV 0x325B -#define EGL_METADATA3_TYPE_NV 0x325C -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); -#endif -#endif /* EGL_NV_stream_metadata */ - -#ifndef EGL_NV_stream_origin -#define EGL_NV_stream_origin 1 -#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366 -#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367 -#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368 -#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369 -#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A -#define EGL_LEFT_NV 0x336B -#define EGL_RIGHT_NV 0x336C -#define EGL_TOP_NV 0x336D -#define EGL_BOTTOM_NV 0x336E -#define EGL_X_AXIS_NV 0x336F -#define EGL_Y_AXIS_NV 0x3370 -#endif /* EGL_NV_stream_origin */ - -#ifndef EGL_NV_stream_remote -#define EGL_NV_stream_remote 1 -#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 -#define EGL_STREAM_TYPE_NV 0x3241 -#define EGL_STREAM_PROTOCOL_NV 0x3242 -#define EGL_STREAM_ENDPOINT_NV 0x3243 -#define EGL_STREAM_LOCAL_NV 0x3244 -#define EGL_STREAM_PRODUCER_NV 0x3247 -#define EGL_STREAM_CONSUMER_NV 0x3248 -#define EGL_STREAM_PROTOCOL_FD_NV 0x3246 -#endif /* EGL_NV_stream_remote */ - -#ifndef EGL_NV_stream_reset -#define EGL_NV_stream_reset 1 -#define EGL_SUPPORT_RESET_NV 0x3334 -#define EGL_SUPPORT_REUSE_NV 0x3335 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream); -#endif -#endif /* EGL_NV_stream_reset */ - -#ifndef EGL_NV_stream_socket -#define EGL_NV_stream_socket 1 -#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B -#define EGL_SOCKET_HANDLE_NV 0x324C -#define EGL_SOCKET_TYPE_NV 0x324D -#endif /* EGL_NV_stream_socket */ - -#ifndef EGL_NV_stream_socket_inet -#define EGL_NV_stream_socket_inet 1 -#define EGL_SOCKET_TYPE_INET_NV 0x324F -#endif /* EGL_NV_stream_socket_inet */ - -#ifndef EGL_NV_stream_socket_unix -#define EGL_NV_stream_socket_unix 1 -#define EGL_SOCKET_TYPE_UNIX_NV 0x324E -#endif /* EGL_NV_stream_socket_unix */ - -#ifndef EGL_NV_stream_sync -#define EGL_NV_stream_sync 1 -#define EGL_SYNC_NEW_FRAME_NV 0x321F -typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); -#endif -#endif /* EGL_NV_stream_sync */ - -#ifndef EGL_NV_sync -#define EGL_NV_sync 1 -typedef void *EGLSyncNV; -typedef khronos_utime_nanoseconds_t EGLTimeNV; -#ifdef KHRONOS_SUPPORT_INT64 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 -#define EGL_SYNC_STATUS_NV 0x30E7 -#define EGL_SIGNALED_NV 0x30E8 -#define EGL_UNSIGNALED_NV 0x30E9 -#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 -#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull -#define EGL_ALREADY_SIGNALED_NV 0x30EA -#define EGL_TIMEOUT_EXPIRED_NV 0x30EB -#define EGL_CONDITION_SATISFIED_NV 0x30EC -#define EGL_SYNC_TYPE_NV 0x30ED -#define EGL_SYNC_CONDITION_NV 0x30EE -#define EGL_SYNC_FENCE_NV 0x30EF -#define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0) -typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); -typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); -EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); -EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); -EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_sync */ - -#ifndef EGL_NV_system_time -#define EGL_NV_system_time 1 -typedef khronos_utime_nanoseconds_t EGLuint64NV; -#ifdef KHRONOS_SUPPORT_INT64 -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); -typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); -EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); -#endif -#endif /* KHRONOS_SUPPORT_INT64 */ -#endif /* EGL_NV_system_time */ - -#ifndef EGL_NV_triple_buffer -#define EGL_NV_triple_buffer 1 -#define EGL_TRIPLE_BUFFER_NV 0x3230 -#endif /* EGL_NV_triple_buffer */ - -#ifndef EGL_TIZEN_image_native_buffer -#define EGL_TIZEN_image_native_buffer 1 -#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 -#endif /* EGL_TIZEN_image_native_buffer */ - -#ifndef EGL_TIZEN_image_native_surface -#define EGL_TIZEN_image_native_surface 1 -#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 -#endif /* EGL_TIZEN_image_native_surface */ - -#ifndef EGL_WL_bind_wayland_display -#define EGL_WL_bind_wayland_display 1 -#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC -#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC -#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC -struct wl_display; -struct wl_resource; -#define EGL_WAYLAND_BUFFER_WL 0x31D5 -#define EGL_WAYLAND_PLANE_WL 0x31D6 -#define EGL_TEXTURE_Y_U_V_WL 0x31D7 -#define EGL_TEXTURE_Y_UV_WL 0x31D8 -#define EGL_TEXTURE_Y_XUXV_WL 0x31D9 -#define EGL_TEXTURE_EXTERNAL_WL 0x31DA -#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB -typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); -EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); -#endif -#endif /* EGL_WL_bind_wayland_display */ - -#ifndef EGL_WL_create_wayland_buffer_from_image -#define EGL_WL_create_wayland_buffer_from_image 1 -#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC -struct wl_buffer; -typedef struct wl_buffer *(EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image); -#endif -#endif /* EGL_WL_create_wayland_buffer_from_image */ - -/* ANGLE EGL extensions */ -#include "eglext_angle.h" - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/EGL/eglext_angle.h b/milepost/ext/angle_headers/EGL/eglext_angle.h deleted file mode 100644 index 60d5ed3..0000000 --- a/milepost/ext/angle_headers/EGL/eglext_angle.h +++ /dev/null @@ -1,403 +0,0 @@ -// -// Copyright 2017 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// eglext_angle.h: ANGLE modifications to the eglext.h header file. -// Currently we don't include this file directly, we patch eglext.h -// to include it implicitly so it is visible throughout our code. - -#ifndef INCLUDE_EGL_EGLEXT_ANGLE_ -#define INCLUDE_EGL_EGLEXT_ANGLE_ - -// clang-format off - -#ifndef EGL_ANGLE_robust_resource_initialization -#define EGL_ANGLE_robust_resource_initialization 1 -#define EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453 -#endif /* EGL_ANGLE_robust_resource_initialization */ - -#ifndef EGL_ANGLE_keyed_mutex -#define EGL_ANGLE_keyed_mutex 1 -#define EGL_DXGI_KEYED_MUTEX_ANGLE 0x33A2 -#endif /* EGL_ANGLE_keyed_mutex */ - -#ifndef EGL_ANGLE_d3d_texture_client_buffer -#define EGL_ANGLE_d3d_texture_client_buffer 1 -#define EGL_D3D_TEXTURE_ANGLE 0x33A3 -#define EGL_TEXTURE_OFFSET_X_ANGLE 0x3490 -#define EGL_TEXTURE_OFFSET_Y_ANGLE 0x3491 -#define EGL_D3D11_TEXTURE_PLANE_ANGLE 0x3492 -#define EGL_D3D11_TEXTURE_ARRAY_SLICE_ANGLE 0x3493 -#endif /* EGL_ANGLE_d3d_texture_client_buffer */ - -#ifndef EGL_ANGLE_software_display -#define EGL_ANGLE_software_display 1 -#define EGL_SOFTWARE_DISPLAY_ANGLE ((EGLNativeDisplayType)-1) -#endif /* EGL_ANGLE_software_display */ - -#ifndef EGL_ANGLE_direct3d_display -#define EGL_ANGLE_direct3d_display 1 -#define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ((EGLNativeDisplayType)-2) -#define EGL_D3D11_ONLY_DISPLAY_ANGLE ((EGLNativeDisplayType)-3) -#endif /* EGL_ANGLE_direct3d_display */ - -#ifndef EGL_ANGLE_direct_composition -#define EGL_ANGLE_direct_composition 1 -#define EGL_DIRECT_COMPOSITION_ANGLE 0x33A5 -#endif /* EGL_ANGLE_direct_composition */ - -#ifndef EGL_ANGLE_platform_angle -#define EGL_ANGLE_platform_angle 1 -#define EGL_PLATFORM_ANGLE_ANGLE 0x3202 -#define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203 -#define EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE 0x3204 -#define EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE 0x3205 -#define EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE 0x3206 -#define EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE 0x3451 -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209 -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE 0x345E -#define EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE 0x348F -#endif /* EGL_ANGLE_platform_angle */ - -#ifndef EGL_ANGLE_platform_angle_d3d -#define EGL_ANGLE_platform_angle_d3d 1 -#define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207 -#define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208 -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE 0x320B -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE 0x320C -#define EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE 0x320F -#endif /* EGL_ANGLE_platform_angle_d3d */ - -#ifndef EGL_ANGLE_platform_angle_d3d_luid -#define EGL_ANGLE_platform_angle_d3d_luid 1 -#define EGL_PLATFORM_ANGLE_D3D_LUID_HIGH_ANGLE 0x34A0 -#define EGL_PLATFORM_ANGLE_D3D_LUID_LOW_ANGLE 0x34A1 -#endif /* EGL_ANGLE_platform_angle_d3d_luid */ - -#ifndef EGL_ANGLE_platform_angle_d3d11on12 -#define EGL_ANGLE_platform_angle_d3d11on12 1 -#define EGL_PLATFORM_ANGLE_D3D11ON12_ANGLE 0x3488 -#endif /* EGL_ANGLE_platform_angle_d3d11on12 */ - -#ifndef EGL_ANGLE_platform_angle_opengl -#define EGL_ANGLE_platform_angle_opengl 1 -#define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D -#define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320E -#define EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE 0x3480 -#endif /* EGL_ANGLE_platform_angle_opengl */ - -#ifndef EGL_ANGLE_platform_angle_null -#define EGL_ANGLE_platform_angle_null 1 -#define EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE 0x33AE -#endif /* EGL_ANGLE_platform_angle_null */ - -#ifndef EGL_ANGLE_platform_angle_vulkan -#define EGL_ANGLE_platform_angle_vulkan 1 -#define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450 -#define EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE 0x34A4 -#define EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE 0x34A5 -#endif /* EGL_ANGLE_platform_angle_vulkan */ - -#ifndef EGL_ANGLE_platform_angle_metal -#define EGL_ANGLE_platform_angle_metal 1 -#define EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE 0x3489 -#endif /* EGL_ANGLE_platform_angle_metal */ - -#ifndef EGL_ANGLE_platform_angle_device_type_swiftshader -#define EGL_ANGLE_platform_angle_device_type_swiftshader -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE 0x3487 -#endif /* EGL_ANGLE_platform_angle_device_type_swiftshader */ - -#ifndef EGL_ANGLE_platform_angle_device_type_egl_angle -#define EGL_ANGLE_platform_angle_device_type_egl_angle -#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE 0x348E -#endif /* EGL_ANGLE_platform_angle_device_type_egl_angle */ - -#ifndef EGL_ANGLE_context_virtualization -#define EGL_ANGLE_context_virtualization 1 -#define EGL_CONTEXT_VIRTUALIZATION_GROUP_ANGLE 0x3481 -#endif /* EGL_ANGLE_context_virtualization */ - -#ifndef EGL_ANGLE_platform_angle_device_context_volatile_eagl -#define EGL_ANGLE_platform_angle_device_context_volatile_eagl 1 -#define EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_EAGL_ANGLE 0x34A2 -#endif /* EGL_ANGLE_platform_angle_device_context_volatile_eagl */ - -#ifndef EGL_ANGLE_platform_angle_device_context_volatile_cgl -#define EGL_ANGLE_platform_angle_device_context_volatile_cgl 1 -#define EGL_PLATFORM_ANGLE_DEVICE_CONTEXT_VOLATILE_CGL_ANGLE 0x34A3 -#endif /* EGL_ANGLE_platform_angle_device_context_volatile_cgl */ - -#ifndef EGL_ANGLE_platform_angle_device_id -#define EGL_ANGLE_platform_angle_device_id -#define EGL_PLATFORM_ANGLE_DEVICE_ID_HIGH_ANGLE 0x34D6 -#define EGL_PLATFORM_ANGLE_DEVICE_ID_LOW_ANGLE 0x34D7 -#endif /* EGL_ANGLE_platform_angle_device_id */ - -#ifndef EGL_ANGLE_x11_visual -#define EGL_ANGLE_x11_visual -#define EGL_X11_VISUAL_ID_ANGLE 0x33A3 -#endif /* EGL_ANGLE_x11_visual */ - -#ifndef EGL_ANGLE_surface_orientation -#define EGL_ANGLE_surface_orientation -#define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7 -#define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8 -#define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001 -#define EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002 -#endif /* EGL_ANGLE_surface_orientation */ - -#ifndef EGL_ANGLE_experimental_present_path -#define EGL_ANGLE_experimental_present_path -#define EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE 0x33A4 -#define EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE 0x33A9 -#define EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE 0x33AA -#endif /* EGL_ANGLE_experimental_present_path */ - -#ifndef EGL_ANGLE_stream_producer_d3d_texture -#define EGL_ANGLE_stream_producer_d3d_texture -#define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x33AB -typedef EGLBoolean(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list); -#endif -#endif /* EGL_ANGLE_stream_producer_d3d_texture */ - -#ifndef EGL_ANGLE_create_context_webgl_compatibility -#define EGL_ANGLE_create_context_webgl_compatibility 1 -#define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x33AC -#endif /* EGL_ANGLE_create_context_webgl_compatibility */ - -#ifndef EGL_ANGLE_display_texture_share_group -#define EGL_ANGLE_display_texture_share_group 1 -#define EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE 0x33AF -#endif /* EGL_ANGLE_display_texture_share_group */ - -#ifndef EGL_CHROMIUM_create_context_bind_generates_resource -#define EGL_CHROMIUM_create_context_bind_generates_resource 1 -#define EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM 0x33AD -#endif /* EGL_CHROMIUM_create_context_bind_generates_resource */ - -#ifndef EGL_ANGLE_metal_create_context_ownership_identity -#define EGL_ANGLE_metal_create_context_ownership_identity 1 -#define EGL_CONTEXT_METAL_OWNERSHIP_IDENTITY_ANGLE 0x34D2 -#endif /* EGL_ANGLE_metal_create_context_ownership_identity */ - -#ifndef EGL_ANGLE_create_context_client_arrays -#define EGL_ANGLE_create_context_client_arrays 1 -#define EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE 0x3452 -#endif /* EGL_ANGLE_create_context_client_arrays */ - -#ifndef EGL_ANGLE_device_creation -#define EGL_ANGLE_device_creation 1 -typedef EGLDeviceEXT(EGLAPIENTRYP PFNEGLCREATEDEVICEANGLEPROC) (EGLint device_type, void *native_device, const EGLAttrib *attrib_list); -typedef EGLBoolean(EGLAPIENTRYP PFNEGLRELEASEDEVICEANGLEPROC) (EGLDeviceEXT device); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE(EGLint device_type, void *native_device, const EGLAttrib *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE(EGLDeviceEXT device); -#endif -#endif /* EGL_ANGLE_device_creation */ - -#ifndef EGL_ANGLE_program_cache_control -#define EGL_ANGLE_program_cache_control 1 -#define EGL_PROGRAM_CACHE_SIZE_ANGLE 0x3455 -#define EGL_PROGRAM_CACHE_KEY_LENGTH_ANGLE 0x3456 -#define EGL_PROGRAM_CACHE_RESIZE_ANGLE 0x3457 -#define EGL_PROGRAM_CACHE_TRIM_ANGLE 0x3458 -#define EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE 0x3459 -typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC) (EGLDisplay dpy, EGLenum attrib); -typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEQUERYANGLEPROC) (EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize); -typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEPOPULATEANGLEPROC) (EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize); -typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHERESIZEANGLEPROC) (EGLDisplay dpy, EGLint limit, EGLint mode); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLint EGLAPIENTRY eglProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib); -EGLAPI void EGLAPIENTRY eglProgramCacheQueryANGLE(EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize); -EGLAPI void EGLAPIENTRY eglProgramCachePopulateANGLE(EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize); -EGLAPI EGLint EGLAPIENTRY eglProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLint mode); -#endif -#endif /* EGL_ANGLE_program_cache_control */ - -#ifndef EGL_ANGLE_iosurface_client_buffer -#define EGL_ANGLE_iosurface_client_buffer 1 -#define EGL_IOSURFACE_ANGLE 0x3454 -#define EGL_IOSURFACE_PLANE_ANGLE 0x345A -#define EGL_TEXTURE_RECTANGLE_ANGLE 0x345B -#define EGL_TEXTURE_TYPE_ANGLE 0x345C -#define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D -#define EGL_IOSURFACE_USAGE_HINT_ANGLE 0x348A -#define EGL_IOSURFACE_READ_HINT_ANGLE 0x0001 -#define EGL_IOSURFACE_WRITE_HINT_ANGLE 0x0002 -#define EGL_BIND_TO_TEXTURE_TARGET_ANGLE 0x348D -#endif /* EGL_ANGLE_iosurface_client_buffer */ - -#ifndef ANGLE_metal_texture_client_buffer -#define ANGLE_metal_texture_client_buffer 1 -#define EGL_METAL_TEXTURE_ANGLE 0x34A7 -#endif /* ANGLE_metal_texture_client_buffer */ - -#ifndef EGL_ANGLE_create_context_extensions_enabled -#define EGL_ANGLE_create_context_extensions_enabled 1 -#define EGL_EXTENSIONS_ENABLED_ANGLE 0x345F -#endif /* EGL_ANGLE_create_context_extensions_enabled */ - -#ifndef EGL_CHROMIUM_sync_control -#define EGL_CHROMIUM_sync_control 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC) (EGLDisplay dpy, - EGLSurface surface, - EGLuint64KHR *ust, - EGLuint64KHR *msc, - EGLuint64KHR *sbc); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy, - EGLSurface surface, - EGLuint64KHR *ust, - EGLuint64KHR *msc, - EGLuint64KHR *sbc); -#endif -#endif /* EGL_CHROMIUM_sync_control */ - -#ifndef EGL_ANGLE_sync_control_rate -#define EGL_ANGLE_sync_control_rate 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, - EGLSurface surface, - EGLint *numerator, - EGLint *denominator); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy, - EGLSurface surface, - EGLint *numerator, - EGLint *denominator); -#endif -#endif /* EGL_ANGLE_sync_control_rate */ - -#ifndef EGL_ANGLE_power_preference -#define EGL_ANGLE_power_preference 1 -#define EGL_POWER_PREFERENCE_ANGLE 0x3482 -#define EGL_LOW_POWER_ANGLE 0x0001 -#define EGL_HIGH_POWER_ANGLE 0x0002 -typedef void(EGLAPIENTRYP PFNEGLRELEASEHIGHPOWERGPUANGLEPROC) (EGLDisplay dpy, EGLContext ctx); -typedef void(EGLAPIENTRYP PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC) (EGLDisplay dpy, EGLContext ctx); -typedef void(EGLAPIENTRYP PFNEGLHANDLEGPUSWITCHANGLEPROC) (EGLDisplay dpy); -typedef void(EGLAPIENTRYP PFNEGLFORCEGPUSWITCHANGLEPROC) (EGLDisplay dpy, EGLint gpuIDHigh, EGLint gpuIDLow); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI void EGLAPIENTRY eglReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx); -EGLAPI void EGLAPIENTRY eglReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx); -EGLAPI void EGLAPIENTRY eglHandleGPUSwitchANGLE(EGLDisplay dpy); -EGLAPI void EGLAPIENTRY eglForceGPUSwitchANGLE(EGLDisplay dpy, EGLint gpuIDHigh, EGLint gpuIDLow); -#endif -#endif /* EGL_ANGLE_power_preference */ - -#ifndef EGL_ANGLE_feature_control -#define EGL_ANGLE_feature_control 1 -#define EGL_FEATURE_NAME_ANGLE 0x3460 -#define EGL_FEATURE_CATEGORY_ANGLE 0x3461 -#define EGL_FEATURE_DESCRIPTION_ANGLE 0x3462 -#define EGL_FEATURE_BUG_ANGLE 0x3463 -#define EGL_FEATURE_STATUS_ANGLE 0x3464 -#define EGL_FEATURE_COUNT_ANGLE 0x3465 -#define EGL_FEATURE_OVERRIDES_ENABLED_ANGLE 0x3466 -#define EGL_FEATURE_OVERRIDES_DISABLED_ANGLE 0x3467 -#define EGL_FEATURE_CONDITION_ANGLE 0x3468 -#define EGL_FEATURE_ALL_DISABLED_ANGLE 0x3469 -typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGIANGLEPROC) (EGLDisplay dpy, EGLint name, EGLint index); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBANGLEPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI const char *EGLAPIENTRY eglQueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLint index); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribANGLE(EGLDisplay dpy, EGLint attribute, EGLAttrib *value); -#endif -#endif /* EGL_ANGLE_feature_control */ - -#ifndef EGL_ANGLE_image_d3d11_texture -#define EGL_D3D11_TEXTURE_ANGLE 0x3484 -#define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D -#endif /* EGL_ANGLE_image_d3d11_texture */ - -#ifndef EGL_ANGLE_create_context_backwards_compatible -#define EGL_ANGLE_create_context_backwards_compatible 1 -#define EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE 0x3483 -#endif /* EGL_ANGLE_create_context_backwards_compatible */ - -#ifndef EGL_ANGLE_device_cgl -#define EGL_ANGLE_device_cgl 1 -#define EGL_CGL_CONTEXT_ANGLE 0x3485 -#define EGL_CGL_PIXEL_FORMAT_ANGLE 0x3486 -#endif - -#ifndef EGL_ANGLE_ggp_stream_descriptor -#define EGL_ANGLE_ggp_stream_descriptor 1 -#define EGL_GGP_STREAM_DESCRIPTOR_ANGLE 0x348B -#endif /* EGL_ANGLE_ggp_stream_descriptor */ - -#ifndef EGL_ANGLE_swap_with_frame_token -#define EGL_ANGLE_swap_with_frame_token 1 -typedef khronos_uint64_t EGLFrameTokenANGLE; -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHFRAMETOKENANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy, EGLSurface surface, EGLFrameTokenANGLE frametoken); -#endif -#endif /* EGL_ANGLE_swap_with_frame_token */ - -#ifndef EGL_ANGLE_prepare_swap_buffers -#define EGL_ANGLE_prepare_swap_buffers 1 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLPREPARESWAPBUFFERSANGLEPROC)(EGLDisplay dpy, EGLSurface surface); -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglPrepareSwapBuffersANGLE(EGLDisplay dpy, EGLSurface surface); -#endif -#endif /* EGL_ANGLE_prepare_swap_buffers */ - -#ifndef EGL_ANGLE_device_eagl -#define EGL_ANGLE_device_eagl 1 -#define EGL_EAGL_CONTEXT_ANGLE 0x348C -#endif - -#ifndef EGL_ANGLE_device_metal -#define EGL_ANGLE_device_metal 1 -#define EGL_METAL_DEVICE_ANGLE 0x34A6 -#endif /* EGL_ANGLE_device_metal */ - -#ifndef EGL_ANGLE_display_semaphore_share_group -#define EGL_ANGLE_display_semaphore_share_group 1 -#define EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE 0x348D -#endif /* EGL_ANGLE_display_semaphore_share_group */ - -#ifndef EGL_ANGLE_external_context_and_surface -#define EGL_ANGLE_external_context_and_surface 1 -#define EGL_EXTERNAL_CONTEXT_ANGLE 0x348E -#define EGL_EXTERNAL_SURFACE_ANGLE 0x348F -#define EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE 0x3490 -#endif /* EGL_ANGLE_external_context_and_surface */ - -#ifndef EGL_ANGLE_create_surface_swap_interval -#define EGL_ANGLE_create_surface_swap_interval 1 -#define EGL_SWAP_INTERVAL_ANGLE 0x322F -#endif /* EGL_ANGLE_create_surface_swap_interval */ - -#ifndef EGL_ANGLE_device_vulkan -#define EGL_ANGLE_device_vulkan 1 -#define EGL_VULKAN_VERSION_ANGLE 0x34A8 -#define EGL_VULKAN_INSTANCE_ANGLE 0x34A9 -#define EGL_VULKAN_INSTANCE_EXTENSIONS_ANGLE 0x34AA -#define EGL_VULKAN_PHYSICAL_DEVICE_ANGLE 0x34AB -#define EGL_VULKAN_DEVICE_ANGLE 0x34AC -#define EGL_VULKAN_DEVICE_EXTENSIONS_ANGLE 0x34AD -#define EGL_VULKAN_FEATURES_ANGLE 0x34AE -#define EGL_VULKAN_QUEUE_ANGLE 0x34AF -#define EGL_VULKAN_QUEUE_FAMILIY_INDEX_ANGLE 0x34D0 -#define EGL_VULKAN_GET_INSTANCE_PROC_ADDR 0x34D1 -#endif /* EGL_ANGLE_device_vulkan */ - -#ifndef EGL_ANGLE_vulkan_image -#define EGL_ANGLE_vulkan_image -#define EGL_VULKAN_IMAGE_ANGLE 0x34D3 -#define EGL_VULKAN_IMAGE_CREATE_INFO_HI_ANGLE 0x34D4 -#define EGL_VULKAN_IMAGE_CREATE_INFO_LO_ANGLE 0x34D5 -typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTVKIMAGEANGLEPROC)(EGLDisplay dpy, EGLImage image, void* vk_image, void* vk_image_create_info); -#endif /* EGL_ANGLE_vulkan_image */ - -// clang-format on - -#endif // INCLUDE_EGL_EGLEXT_ANGLE_ diff --git a/milepost/ext/angle_headers/EGL/eglplatform.h b/milepost/ext/angle_headers/EGL/eglplatform.h deleted file mode 100644 index 9ebaf00..0000000 --- a/milepost/ext/angle_headers/EGL/eglplatform.h +++ /dev/null @@ -1,175 +0,0 @@ -#ifndef __eglplatform_h_ -#define __eglplatform_h_ - -/* -** Copyright 2007-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for egl.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by filing an issue or pull request on the public Khronos EGL Registry, at - * https://www.github.com/KhronosGroup/EGL-Registry/ - */ - -#include - -/* Macros used in EGL function prototype declarations. - * - * EGL functions should be prototyped as: - * - * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); - * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); - * - * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h - */ - -#ifndef EGLAPI -#define EGLAPI KHRONOS_APICALL -#endif - -#ifndef EGLAPIENTRY -#define EGLAPIENTRY KHRONOS_APIENTRY -#endif -#define EGLAPIENTRYP EGLAPIENTRY* - -/* The types NativeDisplayType, NativeWindowType, and NativePixmapType - * are aliases of window-system-dependent types, such as X Display * or - * Windows Device Context. They must be defined in platform-specific - * code below. The EGL-prefixed versions of Native*Type are the same - * types, renamed in EGL 1.3 so all types in the API start with "EGL". - * - * Khronos STRONGLY RECOMMENDS that you use the default definitions - * provided below, since these changes affect both binary and source - * portability of applications using EGL running on different EGL - * implementations. - */ - -#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES) - -typedef void *EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include - -typedef HDC EGLNativeDisplayType; -typedef HBITMAP EGLNativePixmapType; - -#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) /* Windows Desktop */ -typedef HWND EGLNativeWindowType; -#else /* Windows Store */ -#include -typedef IInspectable* EGLNativeWindowType; -#endif - -#elif defined(__EMSCRIPTEN__) - -typedef int EGLNativeDisplayType; -typedef int EGLNativePixmapType; -typedef int EGLNativeWindowType; - -#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ - -typedef int EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(WL_EGL_PLATFORM) - -typedef struct wl_display *EGLNativeDisplayType; -typedef struct wl_egl_pixmap *EGLNativePixmapType; -typedef struct wl_egl_window *EGLNativeWindowType; - -#elif defined(__GBM__) - -typedef struct gbm_device *EGLNativeDisplayType; -typedef struct gbm_bo *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__ANDROID__) || defined(ANDROID) - -struct ANativeWindow; -struct egl_native_pixmap_t; - -typedef void* EGLNativeDisplayType; -typedef struct egl_native_pixmap_t* EGLNativePixmapType; -typedef struct ANativeWindow* EGLNativeWindowType; - -#elif defined(USE_OZONE) - -typedef intptr_t EGLNativeDisplayType; -typedef intptr_t EGLNativePixmapType; -typedef intptr_t EGLNativeWindowType; - -#elif defined(__unix__) && defined(EGL_NO_X11) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#elif defined(__unix__) || defined(USE_X11) - -/* X11 (tentative) */ -#include -#include - -typedef Display *EGLNativeDisplayType; -typedef Pixmap EGLNativePixmapType; -typedef Window EGLNativeWindowType; - -#elif defined(__APPLE__) - -typedef int EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__HAIKU__) - -#include - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#elif defined(__Fuchsia__) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#else -#error "Platform not recognized" -#endif - -/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ -typedef EGLNativeDisplayType NativeDisplayType; -typedef EGLNativePixmapType NativePixmapType; -typedef EGLNativeWindowType NativeWindowType; - - -/* Define EGLint. This must be a signed integral type large enough to contain - * all legal attribute names and values passed into and out of EGL, whether - * their type is boolean, bitmask, enumerant (symbolic constant), integer, - * handle, or other. While in general a 32-bit integer will suffice, if - * handles are 64 bit types, then EGLint should be defined as a signed 64-bit - * integer type. - */ -typedef khronos_int32_t EGLint; - - -/* C++ / C typecast macros for special EGL handle values */ -#if defined(__cplusplus) -#define EGL_CAST(type, value) (static_cast(value)) -#else -#define EGL_CAST(type, value) ((type) (value)) -#endif - -#endif /* __eglplatform_h */ diff --git a/milepost/ext/angle_headers/GLES/.clang-format b/milepost/ext/angle_headers/GLES/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/GLES/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/GLES/README.md b/milepost/ext/angle_headers/GLES/README.md deleted file mode 100644 index 1aa31f5..0000000 --- a/milepost/ext/angle_headers/GLES/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# ANGLE GLES 1.0 Headers - -The GLES 1.0 headers ANGLE uses are generated using the Khronos tools but modified to include function pointer types and function prototype guards. - -### Regenerating gl.h - -1. Install **Python 3** (not 2) with the **lxml** addon. You can do this using `pip install lxml` from your Python's Scripts folder. -1. Clone [https://github.com/KhronosGroup/OpenGL-Registry.git](https://github.com/KhronosGroup/OpenGL-Registry.git). -1. Edit `OpenGL-Registry/xml/genheaders.py`: - - 1. Look for the section titled `# GLES 1.x API + mandatory extensions - GLES/gl.h (no function pointers)` - 1. Change `prefixText = prefixStrings + gles1PlatformStrings + genDateCommentString,` to `prefixText = prefixStrings + gles1PlatformStrings + apiEntryPrefixStrings + genDateCommentString,` - 1. Change `genFuncPointers = False,` to `genFuncPointers = True,` - 1. Change `protectProto = False,` to `protectProto = 'nonzero',` - 1. Change `protectProtoStr = 'GL_GLEXT_PROTOTYPES',` to `protectProtoStr = 'GL_GLES_PROTOTYPES',` - -1. Set your working directory to `OpenGL-Registry/xml/`. -1. Run `python genheaders.py ../api/GLES/gl.h` -1. The generated header will now be in `OpenGL-Registry/api/GLES/gl.h`. You can copy the header over to this folder. -1. Also update `scripts/gl.xml` with the latest version from `OpenGL-Registry/xml/`. diff --git a/milepost/ext/angle_headers/GLES/egl.h b/milepost/ext/angle_headers/GLES/egl.h deleted file mode 100644 index 86f644c..0000000 --- a/milepost/ext/angle_headers/GLES/egl.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -** Copyright (c) 2008-2017 The Khronos Group Inc. -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - -/* - * Skeleton egl.h to provide compatibility for early GLES 1.0 - * applications. Several early implementations included gl.h - * in egl.h leading applications to include only egl.h - */ - -#ifndef __legacy_egl_h_ -#define __legacy_egl_h_ - -#include -#include - -#endif /* __legacy_egl_h_ */ diff --git a/milepost/ext/angle_headers/GLES/gl.h b/milepost/ext/angle_headers/GLES/gl.h deleted file mode 100644 index 9f3ed34..0000000 --- a/milepost/ext/angle_headers/GLES/gl.h +++ /dev/null @@ -1,743 +0,0 @@ -#ifndef __gles1_gl_h_ -#define __gles1_gl_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20181204 */ - -/* Generated C header for: - * API: gles1 - * Profile: common - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: ^(GL_OES_read_format|GL_OES_compressed_paletted_texture|GL_OES_point_size_array|GL_OES_point_sprite)$ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_VERSION_ES_CM_1_0 -#define GL_VERSION_ES_CM_1_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef unsigned int GLenum; -typedef khronos_float_t GLfloat; -typedef khronos_int32_t GLfixed; -typedef unsigned int GLuint; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef khronos_uint8_t GLubyte; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_int32_t GLclampx; -#define GL_VERSION_ES_CL_1_0 1 -#define GL_VERSION_ES_CM_1_1 1 -#define GL_VERSION_ES_CL_1_1 1 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_FOG 0x0B60 -#define GL_LIGHTING 0x0B50 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_BLEND 0x0BE2 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_NORMALIZE 0x0BA1 -#define GL_RESCALE_NORMAL 0x803A -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_LINE_WIDTH 0x0B21 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_SHADE_MODEL 0x0B54 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_FOG_HINT 0x0C54 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -#define GL_ADD 0x0104 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_ENV 0x2300 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_SUBTRACT 0x84E7 -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_ALPHA_SCALE 0x0D1C -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC1_ALPHA 0x8589 -#define GL_SRC2_ALPHA 0x858A -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -typedef void (GL_APIENTRYP PFNGLALPHAFUNCPROC) (GLenum func, GLfloat ref); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEFPROC) (GLenum p, const GLfloat *eqn); -typedef void (GL_APIENTRYP PFNGLCOLOR4FPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLFOGFPROC) (GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLFOGFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLFRUSTUMFPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFPROC) (GLenum plane, GLfloat *equation); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETLIGHTFVPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETMATERIALFVPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXENVFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELFPROC) (GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLLIGHTFPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLLIGHTFVPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLOADMATRIXFPROC) (const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATERIALFPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLMATERIALFVPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLMULTMATRIXFPROC) (const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GL_APIENTRYP PFNGLNORMAL3FPROC) (GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (GL_APIENTRYP PFNGLORTHOFPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLROTATEFPROC) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLSCALEFPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLTEXENVFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXENVFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTRANSLATEFPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLALPHAFUNCXPROC) (GLenum func, GLfixed ref); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORXPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXPROC) (GLfixed depth); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEXPROC) (GLenum plane, const GLfixed *equation); -typedef void (GL_APIENTRYP PFNGLCOLOR4UBPROC) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -typedef void (GL_APIENTRYP PFNGLCOLOR4XPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXPROC) (GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLECLIENTSTATEPROC) (GLenum array); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLECLIENTSTATEPROC) (GLenum array); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFOGXPROC) (GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLFOGXVPROC) (GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLFRUSTUMXPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXPROC) (GLenum plane, GLfixed *equation); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFIXEDVPROC) (GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETLIGHTXVPROC) (GLenum light, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETMATERIALXVPROC) (GLenum face, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXENVIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXENVXVPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELXPROC) (GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVPROC) (GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLLIGHTXPROC) (GLenum light, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLLIGHTXVPROC) (GLenum light, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHXPROC) (GLfixed width); -typedef void (GL_APIENTRYP PFNGLLOADIDENTITYPROC) (void); -typedef void (GL_APIENTRYP PFNGLLOADMATRIXXPROC) (const GLfixed *m); -typedef void (GL_APIENTRYP PFNGLLOGICOPPROC) (GLenum opcode); -typedef void (GL_APIENTRYP PFNGLMATERIALXPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLMATERIALXVPROC) (GLenum face, GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLMATRIXMODEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMULTMATRIXXPROC) (const GLfixed *m); -typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (GL_APIENTRYP PFNGLNORMAL3XPROC) (GLfixed nx, GLfixed ny, GLfixed nz); -typedef void (GL_APIENTRYP PFNGLNORMALPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLORTHOXPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXPROC) (GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVPROC) (GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLPOINTSIZEXPROC) (GLfixed size); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXPROC) (GLfixed factor, GLfixed units); -typedef void (GL_APIENTRYP PFNGLPOPMATRIXPROC) (void); -typedef void (GL_APIENTRYP PFNGLPUSHMATRIXPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLROTATEXPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXPROC) (GLclampx value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCALEXPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADEMODELPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLTEXCOORDPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLTEXENVIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXENVXPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXENVIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXENVXVPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTRANSLATEXPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLVERTEXPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLfloat ref); -GL_API void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_API void GL_APIENTRY glClearDepthf (GLfloat d); -GL_API void GL_APIENTRY glClipPlanef (GLenum p, const GLfloat *eqn); -GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_API void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glFrustumf (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GL_API void GL_APIENTRY glGetClipPlanef (GLenum plane, GLfloat *equation); -GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glLineWidth (GLfloat width); -GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m); -GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m); -GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -GL_API void GL_APIENTRY glOrthof (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glPointSize (GLfloat size); -GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -GL_API void GL_APIENTRY glActiveTexture (GLenum texture); -GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLfixed ref); -GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_API void GL_APIENTRY glClear (GLbitfield mask); -GL_API void GL_APIENTRY glClearColorx (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GL_API void GL_APIENTRY glClearDepthx (GLfixed depth); -GL_API void GL_APIENTRY glClearStencil (GLint s); -GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture); -GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation); -GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glCullFace (GLenum mode); -GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_API void GL_APIENTRY glDepthFunc (GLenum func); -GL_API void GL_APIENTRY glDepthMask (GLboolean flag); -GL_API void GL_APIENTRY glDepthRangex (GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glDisable (GLenum cap); -GL_API void GL_APIENTRY glDisableClientState (GLenum array); -GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_API void GL_APIENTRY glEnable (GLenum cap); -GL_API void GL_APIENTRY glEnableClientState (GLenum array); -GL_API void GL_APIENTRY glFinish (void); -GL_API void GL_APIENTRY glFlush (void); -GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glFrontFace (GLenum mode); -GL_API void GL_APIENTRY glFrustumx (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetClipPlanex (GLenum plane, GLfixed *equation); -GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_API GLenum GL_APIENTRY glGetError (void); -GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetPointerv (GLenum pname, void **params); -GL_API const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_API void GL_APIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetTexEnvxv (GLenum target, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glLineWidthx (GLfixed width); -GL_API void GL_APIENTRY glLoadIdentity (void); -GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m); -GL_API void GL_APIENTRY glLogicOp (GLenum opcode); -GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glMatrixMode (GLenum mode); -GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m); -GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz); -GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glOrthox (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glPointSizex (GLfixed size); -GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units); -GL_API void GL_APIENTRY glPopMatrix (void); -GL_API void GL_APIENTRY glPushMatrix (void); -GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert); -GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glShadeModel (GLenum mode); -GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_API void GL_APIENTRY glStencilMask (GLuint mask); -GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_VERSION_ES_CM_1_0 */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif /* GL_OES_compressed_paletted_texture */ - -#ifndef GL_OES_point_size_array -#define GL_OES_point_size_array 1 -#define GL_POINT_SIZE_ARRAY_OES 0x8B9C -#define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A -#define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B -#define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C -#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F -typedef void (GL_APIENTRYP PFNGLPOINTSIZEPOINTEROESPROC) (GLenum type, GLsizei stride, const void *pointer); -#if GL_GLES_PROTOTYPES -GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_OES_point_size_array */ - -#ifndef GL_OES_point_sprite -#define GL_OES_point_sprite 1 -#define GL_POINT_SPRITE_OES 0x8861 -#define GL_COORD_REPLACE_OES 0x8862 -#endif /* GL_OES_point_sprite */ - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif /* GL_OES_read_format */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES/glext.h b/milepost/ext/angle_headers/GLES/glext.h deleted file mode 100644 index d8933e3..0000000 --- a/milepost/ext/angle_headers/GLES/glext.h +++ /dev/null @@ -1,962 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2017 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20171212 */ - -/* Generated C header for: - * API: gles1 - * Profile: common - * Versions considered: .* - * Versions emitted: _nomatch_^ - * Default extensions included: gles1 - * Additional extensions included: _nomatch_^ - * Extensions removed: ^(GL_OES_read_format|GL_OES_compressed_paletted_texture|GL_OES_point_size_array|GL_OES_point_sprite)$ - */ - -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -typedef void *GLeglImageOES; -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GL_API void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -#endif /* GL_OES_EGL_image */ - -#ifndef GL_OES_blend_equation_separate -#define GL_OES_blend_equation_separate 1 -#define GL_BLEND_EQUATION_RGB_OES 0x8009 -#define GL_BLEND_EQUATION_ALPHA_OES 0x883D -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha); -#endif -#endif /* GL_OES_blend_equation_separate */ - -#ifndef GL_OES_blend_func_separate -#define GL_OES_blend_func_separate 1 -#define GL_BLEND_DST_RGB_OES 0x80C8 -#define GL_BLEND_SRC_RGB_OES 0x80C9 -#define GL_BLEND_DST_ALPHA_OES 0x80CA -#define GL_BLEND_SRC_ALPHA_OES 0x80CB -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glBlendFuncSeparateOES (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif -#endif /* GL_OES_blend_func_separate */ - -#ifndef GL_OES_blend_subtract -#define GL_OES_blend_subtract 1 -#define GL_BLEND_EQUATION_OES 0x8009 -#define GL_FUNC_ADD_OES 0x8006 -#define GL_FUNC_SUBTRACT_OES 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONOESPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glBlendEquationOES (GLenum mode); -#endif -#endif /* GL_OES_blend_subtract */ - -#ifndef GL_OES_byte_coordinates -#define GL_OES_byte_coordinates 1 -#endif /* GL_OES_byte_coordinates */ - -#ifndef GL_OES_compressed_ETC1_RGB8_sub_texture -#define GL_OES_compressed_ETC1_RGB8_sub_texture 1 -#endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ - -#ifndef GL_OES_compressed_ETC1_RGB8_texture -#define GL_OES_compressed_ETC1_RGB8_texture 1 -#define GL_ETC1_RGB8_OES 0x8D64 -#endif /* GL_OES_compressed_ETC1_RGB8_texture */ - -#ifndef GL_OES_depth24 -#define GL_OES_depth24 1 -#define GL_DEPTH_COMPONENT24_OES 0x81A6 -#endif /* GL_OES_depth24 */ - -#ifndef GL_OES_depth32 -#define GL_OES_depth32 1 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#endif /* GL_OES_depth32 */ - -#ifndef GL_OES_draw_texture -#define GL_OES_draw_texture 1 -#define GL_TEXTURE_CROP_RECT_OES 0x8B9D -typedef void (GL_APIENTRYP PFNGLDRAWTEXSOESPROC) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXIOESPROC) (GLint x, GLint y, GLint z, GLint width, GLint height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXXOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXSVOESPROC) (const GLshort *coords); -typedef void (GL_APIENTRYP PFNGLDRAWTEXIVOESPROC) (const GLint *coords); -typedef void (GL_APIENTRYP PFNGLDRAWTEXXVOESPROC) (const GLfixed *coords); -typedef void (GL_APIENTRYP PFNGLDRAWTEXFOESPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); -typedef void (GL_APIENTRYP PFNGLDRAWTEXFVOESPROC) (const GLfloat *coords); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); -GL_API void GL_APIENTRY glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height); -GL_API void GL_APIENTRY glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); -GL_API void GL_APIENTRY glDrawTexsvOES (const GLshort *coords); -GL_API void GL_APIENTRY glDrawTexivOES (const GLint *coords); -GL_API void GL_APIENTRY glDrawTexxvOES (const GLfixed *coords); -GL_API void GL_APIENTRY glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); -GL_API void GL_APIENTRY glDrawTexfvOES (const GLfloat *coords); -#endif -#endif /* GL_OES_draw_texture */ - -#ifndef GL_OES_element_index_uint -#define GL_OES_element_index_uint 1 -#define GL_UNSIGNED_INT 0x1405 -#endif /* GL_OES_element_index_uint */ - -#ifndef GL_OES_extended_matrix_palette -#define GL_OES_extended_matrix_palette 1 -#endif /* GL_OES_extended_matrix_palette */ - -#ifndef GL_OES_fbo_render_mipmap -#define GL_OES_fbo_render_mipmap 1 -#endif /* GL_OES_fbo_render_mipmap */ - -#ifndef GL_OES_fixed_point -#define GL_OES_fixed_point 1 -#define GL_FIXED_OES 0x140C -typedef void (GL_APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); -typedef void (GL_APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); -typedef void (GL_APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); -typedef void (GL_APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); -typedef void (GL_APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); -typedef void (GL_APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); -typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -typedef void (GL_APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); -typedef void (GL_APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); -typedef void (GL_APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); -typedef void (GL_APIENTRYP PFNGLGETLIGHTXVOESPROC) (GLenum light, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLGETMATERIALXVOESPROC) (GLenum face, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXOESPROC) (GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXOESPROC) (GLclampx value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); -typedef void (GL_APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); -typedef void (GL_APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); -GL_API void GL_APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GL_API void GL_APIENTRY glClearDepthxOES (GLfixed depth); -GL_API void GL_APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); -GL_API void GL_APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -GL_API void GL_APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glFogxOES (GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); -GL_API void GL_APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glLightModelxOES (GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glLineWidthxOES (GLfixed width); -GL_API void GL_APIENTRY glLoadMatrixxOES (const GLfixed *m); -GL_API void GL_APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); -GL_API void GL_APIENTRY glMultMatrixxOES (const GLfixed *m); -GL_API void GL_APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -GL_API void GL_APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); -GL_API void GL_APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); -GL_API void GL_APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glPointSizexOES (GLfixed size); -GL_API void GL_APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); -GL_API void GL_APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); -GL_API void GL_APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); -GL_API void GL_APIENTRY glGetLightxvOES (GLenum light, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glGetMaterialxvOES (GLenum face, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glPointParameterxOES (GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glSampleCoveragexOES (GLclampx value, GLboolean invert); -GL_API void GL_APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); -GL_API void GL_APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); -GL_API void GL_APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); -#endif -#endif /* GL_OES_fixed_point */ - -#ifndef GL_OES_framebuffer_object -#define GL_OES_framebuffer_object 1 -#define GL_NONE_OES 0 -#define GL_FRAMEBUFFER_OES 0x8D40 -#define GL_RENDERBUFFER_OES 0x8D41 -#define GL_RGBA4_OES 0x8056 -#define GL_RGB5_A1_OES 0x8057 -#define GL_RGB565_OES 0x8D62 -#define GL_DEPTH_COMPONENT16_OES 0x81A5 -#define GL_RENDERBUFFER_WIDTH_OES 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 -#define GL_COLOR_ATTACHMENT0_OES 0x8CE0 -#define GL_DEPTH_ATTACHMENT_OES 0x8D00 -#define GL_STENCIL_ATTACHMENT_OES 0x8D20 -#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA -#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD -#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 -#define GL_RENDERBUFFER_BINDING_OES 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPOESPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GL_API GLboolean GL_APIENTRY glIsRenderbufferOES (GLuint renderbuffer); -GL_API void GL_APIENTRY glBindRenderbufferOES (GLenum target, GLuint renderbuffer); -GL_API void GL_APIENTRY glDeleteRenderbuffersOES (GLsizei n, const GLuint *renderbuffers); -GL_API void GL_APIENTRY glGenRenderbuffersOES (GLsizei n, GLuint *renderbuffers); -GL_API void GL_APIENTRY glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glGetRenderbufferParameterivOES (GLenum target, GLenum pname, GLint *params); -GL_API GLboolean GL_APIENTRY glIsFramebufferOES (GLuint framebuffer); -GL_API void GL_APIENTRY glBindFramebufferOES (GLenum target, GLuint framebuffer); -GL_API void GL_APIENTRY glDeleteFramebuffersOES (GLsizei n, const GLuint *framebuffers); -GL_API void GL_APIENTRY glGenFramebuffersOES (GLsizei n, GLuint *framebuffers); -GL_API GLenum GL_APIENTRY glCheckFramebufferStatusOES (GLenum target); -GL_API void GL_APIENTRY glFramebufferRenderbufferOES (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_API void GL_APIENTRY glFramebufferTexture2DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_API void GL_APIENTRY glGetFramebufferAttachmentParameterivOES (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glGenerateMipmapOES (GLenum target); -#endif -#endif /* GL_OES_framebuffer_object */ - -#ifndef GL_OES_mapbuffer -#define GL_OES_mapbuffer 1 -#define GL_WRITE_ONLY_OES 0x88B9 -#define GL_BUFFER_ACCESS_OES 0x88BB -#define GL_BUFFER_MAPPED_OES 0x88BC -#define GL_BUFFER_MAP_POINTER_OES 0x88BD -typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); -GL_API GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); -GL_API void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_OES_mapbuffer */ - -#ifndef GL_OES_matrix_get -#define GL_OES_matrix_get 1 -#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D -#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E -#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F -#endif /* GL_OES_matrix_get */ - -#ifndef GL_OES_matrix_palette -#define GL_OES_matrix_palette 1 -#define GL_MAX_VERTEX_UNITS_OES 0x86A4 -#define GL_MAX_PALETTE_MATRICES_OES 0x8842 -#define GL_MATRIX_PALETTE_OES 0x8840 -#define GL_MATRIX_INDEX_ARRAY_OES 0x8844 -#define GL_WEIGHT_ARRAY_OES 0x86AD -#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 -#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 -#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E -#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB -#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA -#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E -typedef void (GL_APIENTRYP PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint matrixpaletteindex); -typedef void (GL_APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void); -typedef void (GL_APIENTRYP PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glCurrentPaletteMatrixOES (GLuint matrixpaletteindex); -GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOES (void); -GL_API void GL_APIENTRY glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_API void GL_APIENTRY glWeightPointerOES (GLint size, GLenum type, GLsizei stride, const void *pointer); -#endif -#endif /* GL_OES_matrix_palette */ - -#ifndef GL_OES_packed_depth_stencil -#define GL_OES_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#endif /* GL_OES_packed_depth_stencil */ - -#ifndef GL_OES_query_matrix -#define GL_OES_query_matrix 1 -typedef GLbitfield (GL_APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); -#ifdef GL_GLEXT_PROTOTYPES -GL_API GLbitfield GL_APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); -#endif -#endif /* GL_OES_query_matrix */ - -#ifndef GL_OES_required_internalformat -#define GL_OES_required_internalformat 1 -#define GL_ALPHA8_OES 0x803C -#define GL_LUMINANCE4_ALPHA4_OES 0x8043 -#define GL_LUMINANCE8_ALPHA8_OES 0x8045 -#define GL_LUMINANCE8_OES 0x8040 -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB10_A2_EXT 0x8059 -#endif /* GL_OES_required_internalformat */ - -#ifndef GL_OES_rgb8_rgba8 -#define GL_OES_rgb8_rgba8 1 -#endif /* GL_OES_rgb8_rgba8 */ - -#ifndef GL_OES_single_precision -#define GL_OES_single_precision 1 -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (GL_APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); -typedef void (GL_APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glClearDepthfOES (GLclampf depth); -GL_API void GL_APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); -GL_API void GL_APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); -GL_API void GL_APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -GL_API void GL_APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); -GL_API void GL_APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -#endif -#endif /* GL_OES_single_precision */ - -#ifndef GL_OES_stencil1 -#define GL_OES_stencil1 1 -#define GL_STENCIL_INDEX1_OES 0x8D46 -#endif /* GL_OES_stencil1 */ - -#ifndef GL_OES_stencil4 -#define GL_OES_stencil4 1 -#define GL_STENCIL_INDEX4_OES 0x8D47 -#endif /* GL_OES_stencil4 */ - -#ifndef GL_OES_stencil8 -#define GL_OES_stencil8 1 -#define GL_STENCIL_INDEX8_OES 0x8D48 -#endif /* GL_OES_stencil8 */ - -#ifndef GL_OES_stencil_wrap -#define GL_OES_stencil_wrap 1 -#define GL_INCR_WRAP_OES 0x8507 -#define GL_DECR_WRAP_OES 0x8508 -#endif /* GL_OES_stencil_wrap */ - -#ifndef GL_OES_surfaceless_context -#define GL_OES_surfaceless_context 1 -#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 -#endif /* GL_OES_surfaceless_context */ - -#ifndef GL_OES_texture_cube_map -#define GL_OES_texture_cube_map 1 -#define GL_NORMAL_MAP_OES 0x8511 -#define GL_REFLECTION_MAP_OES 0x8512 -#define GL_TEXTURE_CUBE_MAP_OES 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C -#define GL_TEXTURE_GEN_MODE_OES 0x2500 -#define GL_TEXTURE_GEN_STR_OES 0x8D60 -typedef void (GL_APIENTRYP PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glTexGenfOES (GLenum coord, GLenum pname, GLfloat param); -GL_API void GL_APIENTRY glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat *params); -GL_API void GL_APIENTRY glTexGeniOES (GLenum coord, GLenum pname, GLint param); -GL_API void GL_APIENTRY glTexGenivOES (GLenum coord, GLenum pname, const GLint *params); -GL_API void GL_APIENTRY glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat *params); -GL_API void GL_APIENTRY glGetTexGenivOES (GLenum coord, GLenum pname, GLint *params); -#endif -#endif /* GL_OES_texture_cube_map */ - -#ifndef GL_OES_texture_env_crossbar -#define GL_OES_texture_env_crossbar 1 -#endif /* GL_OES_texture_env_crossbar */ - -#ifndef GL_OES_texture_mirrored_repeat -#define GL_OES_texture_mirrored_repeat 1 -#define GL_MIRRORED_REPEAT_OES 0x8370 -#endif /* GL_OES_texture_mirrored_repeat */ - -#ifndef GL_OES_texture_npot -#define GL_OES_texture_npot 1 -#endif /* GL_OES_texture_npot */ - -#ifndef GL_OES_vertex_array_object -#define GL_OES_vertex_array_object 1 -#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glBindVertexArrayOES (GLuint array); -GL_API void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); -GL_API void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); -GL_API GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); -#endif -#endif /* GL_OES_vertex_array_object */ - -#ifndef GL_AMD_compressed_3DC_texture -#define GL_AMD_compressed_3DC_texture 1 -#define GL_3DC_X_AMD 0x87F9 -#define GL_3DC_XY_AMD 0x87FA -#endif /* GL_AMD_compressed_3DC_texture */ - -#ifndef GL_AMD_compressed_ATC_texture -#define GL_AMD_compressed_ATC_texture 1 -#define GL_ATC_RGB_AMD 0x8C92 -#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 -#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE -#endif /* GL_AMD_compressed_ATC_texture */ - -#ifndef GL_APPLE_copy_texture_levels -#define GL_APPLE_copy_texture_levels 1 -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#endif -#endif /* GL_APPLE_copy_texture_levels */ - -#ifndef GL_APPLE_framebuffer_multisample -#define GL_APPLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 -#define GL_MAX_SAMPLES_APPLE 0x8D57 -#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); -#endif -#endif /* GL_APPLE_framebuffer_multisample */ - -#ifndef GL_APPLE_sync -#define GL_APPLE_sync 1 -typedef struct __GLsync *GLsync; -typedef khronos_uint64_t GLuint64; -typedef khronos_int64_t GLint64; -#define GL_SYNC_OBJECT_APPLE 0x8A53 -#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 -#define GL_OBJECT_TYPE_APPLE 0x9112 -#define GL_SYNC_CONDITION_APPLE 0x9113 -#define GL_SYNC_STATUS_APPLE 0x9114 -#define GL_SYNC_FLAGS_APPLE 0x9115 -#define GL_SYNC_FENCE_APPLE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 -#define GL_UNSIGNALED_APPLE 0x9118 -#define GL_SIGNALED_APPLE 0x9119 -#define GL_ALREADY_SIGNALED_APPLE 0x911A -#define GL_TIMEOUT_EXPIRED_APPLE 0x911B -#define GL_CONDITION_SATISFIED_APPLE 0x911C -#define GL_WAIT_FAILED_APPLE 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 -#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_API GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); -GL_API GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); -GL_API void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); -GL_API GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_API void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_API void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); -GL_API void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif -#endif /* GL_APPLE_sync */ - -#ifndef GL_APPLE_texture_2D_limited_npot -#define GL_APPLE_texture_2D_limited_npot 1 -#endif /* GL_APPLE_texture_2D_limited_npot */ - -#ifndef GL_APPLE_texture_format_BGRA8888 -#define GL_APPLE_texture_format_BGRA8888 1 -#define GL_BGRA_EXT 0x80E1 -#define GL_BGRA8_EXT 0x93A1 -#endif /* GL_APPLE_texture_format_BGRA8888 */ - -#ifndef GL_APPLE_texture_max_level -#define GL_APPLE_texture_max_level 1 -#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D -#endif /* GL_APPLE_texture_max_level */ - -#ifndef GL_ARM_rgba8 -#define GL_ARM_rgba8 1 -#endif /* GL_ARM_rgba8 */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#endif /* GL_EXT_blend_minmax */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -typedef char GLchar; -typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GL_API void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GL_API void GL_APIENTRY glPopGroupMarkerEXT (void); -#endif -#endif /* GL_EXT_debug_marker */ - -#ifndef GL_EXT_discard_framebuffer -#define GL_EXT_discard_framebuffer 1 -#define GL_COLOR_EXT 0x1800 -#define GL_DEPTH_EXT 0x1801 -#define GL_STENCIL_EXT 0x1802 -typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#endif -#endif /* GL_EXT_discard_framebuffer */ - -#ifndef GL_EXT_map_buffer_range -#define GL_EXT_map_buffer_range 1 -#define GL_MAP_READ_BIT_EXT 0x0001 -#define GL_MAP_WRITE_BIT_EXT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_API void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); -#endif -#endif /* GL_EXT_map_buffer_range */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GL_API void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#endif -#endif /* GL_EXT_multi_draw_arrays */ - -#ifndef GL_EXT_multisampled_render_to_texture -#define GL_EXT_multisampled_render_to_texture 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_EXT_multisampled_render_to_texture */ - -#ifndef GL_EXT_read_format_bgra -#define GL_EXT_read_format_bgra 1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 -#endif /* GL_EXT_read_format_bgra */ - -#ifndef GL_EXT_robustness -#define GL_EXT_robustness 1 -#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 -#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 -#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 -#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_API GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); -GL_API void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_API void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_API void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_EXT_robustness */ - -#ifndef GL_EXT_sRGB -#define GL_EXT_sRGB 1 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 -#endif /* GL_EXT_sRGB */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif /* GL_EXT_texture_compression_dxt1 */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif /* GL_EXT_texture_filter_anisotropic */ - -#ifndef GL_EXT_texture_format_BGRA8888 -#define GL_EXT_texture_format_BGRA8888 1 -#endif /* GL_EXT_texture_format_BGRA8888 */ - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif /* GL_EXT_texture_lod_bias */ - -#ifndef GL_EXT_texture_storage -#define GL_EXT_texture_storage 1 -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -#define GL_R16F_EXT 0x822D -#define GL_RG16F_EXT 0x822F -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_API void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_API void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_API void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_EXT_texture_storage */ - -#ifndef GL_IMG_multisampled_render_to_texture -#define GL_IMG_multisampled_render_to_texture 1 -#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 -#define GL_MAX_SAMPLES_IMG 0x9135 -#define GL_TEXTURE_SAMPLES_IMG 0x9136 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_IMG_multisampled_render_to_texture */ - -#ifndef GL_IMG_read_format -#define GL_IMG_read_format 1 -#define GL_BGRA_IMG 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 -#endif /* GL_IMG_read_format */ - -#ifndef GL_IMG_texture_compression_pvrtc -#define GL_IMG_texture_compression_pvrtc 1 -#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 -#endif /* GL_IMG_texture_compression_pvrtc */ - -#ifndef GL_IMG_texture_env_enhanced_fixed_function -#define GL_IMG_texture_env_enhanced_fixed_function 1 -#define GL_MODULATE_COLOR_IMG 0x8C04 -#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 -#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 -#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 -#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 -#define GL_ADD_BLEND_IMG 0x8C09 -#define GL_DOT3_RGBA_IMG 0x86AF -#endif /* GL_IMG_texture_env_enhanced_fixed_function */ - -#ifndef GL_IMG_user_clip_plane -#define GL_IMG_user_clip_plane 1 -#define GL_CLIP_PLANE0_IMG 0x3000 -#define GL_CLIP_PLANE1_IMG 0x3001 -#define GL_CLIP_PLANE2_IMG 0x3002 -#define GL_CLIP_PLANE3_IMG 0x3003 -#define GL_CLIP_PLANE4_IMG 0x3004 -#define GL_CLIP_PLANE5_IMG 0x3005 -#define GL_MAX_CLIP_PLANES_IMG 0x0D32 -typedef void (GL_APIENTRYP PFNGLCLIPPLANEFIMGPROC) (GLenum p, const GLfloat *eqn); -typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMGPROC) (GLenum p, const GLfixed *eqn); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glClipPlanefIMG (GLenum p, const GLfloat *eqn); -GL_API void GL_APIENTRY glClipPlanexIMG (GLenum p, const GLfixed *eqn); -#endif -#endif /* GL_IMG_user_clip_plane */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GL_API void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GL_API GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); -GL_API GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); -GL_API void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glFinishFenceNV (GLuint fence); -GL_API void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -#endif /* GL_NV_fence */ - -#ifndef GL_QCOM_driver_control -#define GL_QCOM_driver_control 1 -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); -GL_API void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -GL_API void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); -GL_API void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); -#endif -#endif /* GL_QCOM_driver_control */ - -#ifndef GL_QCOM_extended_get -#define GL_QCOM_extended_get 1 -#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 -#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 -#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 -#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 -#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 -#define GL_TEXTURE_TYPE_QCOM 0x8BD7 -#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 -#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 -#define GL_TEXTURE_TARGET_QCOM 0x8BDA -#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB -#define GL_STATE_RESTORE 0x8BDC -typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); -GL_API void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -GL_API void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -GL_API void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -GL_API void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -GL_API void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); -GL_API void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -GL_API void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); -#endif -#endif /* GL_QCOM_extended_get */ - -#ifndef GL_QCOM_extended_get2 -#define GL_QCOM_extended_get2 1 -typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); -GL_API void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -GL_API GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); -GL_API void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#endif -#endif /* GL_QCOM_extended_get2 */ - -#ifndef GL_QCOM_perfmon_global_mode -#define GL_QCOM_perfmon_global_mode 1 -#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 -#endif /* GL_QCOM_perfmon_global_mode */ - -#ifndef GL_QCOM_tiled_rendering -#define GL_QCOM_tiled_rendering 1 -#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 -#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 -#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 -#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 -#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 -#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 -#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 -#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 -#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 -#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 -#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 -#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 -#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 -#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 -#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 -#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 -#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 -#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 -#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 -#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 -#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 -#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 -#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 -#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 -#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 -#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 -#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 -#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 -#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 -#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 -#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 -#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 -typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_API void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -GL_API void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); -#endif -#endif /* GL_QCOM_tiled_rendering */ - -#ifndef GL_QCOM_writeonly_rendering -#define GL_QCOM_writeonly_rendering 1 -#define GL_WRITEONLY_RENDERING_QCOM 0x8823 -#endif /* GL_QCOM_writeonly_rendering */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES/glplatform.h b/milepost/ext/angle_headers/GLES/glplatform.h deleted file mode 100644 index 16060a9..0000000 --- a/milepost/ext/angle_headers/GLES/glplatform.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __glplatform_h_ -#define __glplatform_h_ - -/* -** Copyright (c) 2017 The Khronos Group Inc. -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - -/* Platform-specific types and definitions for OpenGL ES 1.X gl.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * Please contribute modifications back to Khronos as pull requests on the - * public github repository: - * https://github.com/KhronosGroup/OpenGL-Registry - */ - -#include - -#ifndef GL_API -#define GL_API KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __glplatform_h_ */ diff --git a/milepost/ext/angle_headers/GLES2/.clang-format b/milepost/ext/angle_headers/GLES2/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/GLES2/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/GLES2/gl2.h b/milepost/ext/angle_headers/GLES2/gl2.h deleted file mode 100644 index 3c5e6d3..0000000 --- a/milepost/ext/angle_headers/GLES2/gl2.h +++ /dev/null @@ -1,656 +0,0 @@ -#ifndef __gles2_gl2_h_ -#define __gles2_gl2_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20210107 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES2/gl2ext.h b/milepost/ext/angle_headers/GLES2/gl2ext.h deleted file mode 100644 index 948cd83..0000000 --- a/milepost/ext/angle_headers/GLES2/gl2ext.h +++ /dev/null @@ -1,3949 +0,0 @@ -#ifndef __gles2_gl2ext_h_ -#define __gles2_gl2ext_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -/* Generated on date 20210107 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9] - * Versions emitted: _nomatch_^ - * Default extensions included: gles2 - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_KHR_blend_equation_advanced -#define GL_KHR_blend_equation_advanced 1 -#define GL_MULTIPLY_KHR 0x9294 -#define GL_SCREEN_KHR 0x9295 -#define GL_OVERLAY_KHR 0x9296 -#define GL_DARKEN_KHR 0x9297 -#define GL_LIGHTEN_KHR 0x9298 -#define GL_COLORDODGE_KHR 0x9299 -#define GL_COLORBURN_KHR 0x929A -#define GL_HARDLIGHT_KHR 0x929B -#define GL_SOFTLIGHT_KHR 0x929C -#define GL_DIFFERENCE_KHR 0x929E -#define GL_EXCLUSION_KHR 0x92A0 -#define GL_HSL_HUE_KHR 0x92AD -#define GL_HSL_SATURATION_KHR 0x92AE -#define GL_HSL_COLOR_KHR 0x92AF -#define GL_HSL_LUMINOSITY_KHR 0x92B0 -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrierKHR (void); -#endif -#endif /* GL_KHR_blend_equation_advanced */ - -#ifndef GL_KHR_blend_equation_advanced_coherent -#define GL_KHR_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 -#endif /* GL_KHR_blend_equation_advanced_coherent */ - -#ifndef GL_KHR_context_flush_control -#define GL_KHR_context_flush_control 1 -#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC -#endif /* GL_KHR_context_flush_control */ - -#ifndef GL_KHR_debug -#define GL_KHR_debug 1 -typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_SAMPLER 0x82E6 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 -#define GL_DEBUG_SOURCE_API_KHR 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A -#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B -#define GL_DEBUG_TYPE_ERROR_KHR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 -#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 -#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D -#define GL_BUFFER_KHR 0x82E0 -#define GL_SHADER_KHR 0x82E1 -#define GL_PROGRAM_KHR 0x82E2 -#define GL_VERTEX_ARRAY_KHR 0x8074 -#define GL_QUERY_KHR 0x82E3 -#define GL_PROGRAM_PIPELINE_KHR 0x82E4 -#define GL_SAMPLER_KHR 0x82E6 -#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 -#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 -#define GL_DEBUG_OUTPUT_KHR 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 -#define GL_STACK_OVERFLOW_KHR 0x0503 -#define GL_STACK_UNDERFLOW_KHR 0x0504 -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); -GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params); -#endif -#endif /* GL_KHR_debug */ - -#ifndef GL_KHR_no_error -#define GL_KHR_no_error 1 -#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 -#endif /* GL_KHR_no_error */ - -#ifndef GL_KHR_parallel_shader_compile -#define GL_KHR_parallel_shader_compile 1 -#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 -#define GL_COMPLETION_STATUS_KHR 0x91B1 -typedef void (GL_APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); -#endif -#endif /* GL_KHR_parallel_shader_compile */ - -#ifndef GL_KHR_robust_buffer_access_behavior -#define GL_KHR_robust_buffer_access_behavior 1 -#endif /* GL_KHR_robust_buffer_access_behavior */ - -#ifndef GL_KHR_robustness -#define GL_KHR_robustness 1 -#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3 -#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252 -#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_KHR 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_KHR 0x8256 -#define GL_NO_RESET_NOTIFICATION_KHR 0x8261 -#define GL_CONTEXT_LOST_KHR 0x0507 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSKHRPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusKHR (void); -GL_APICALL void GL_APIENTRY glReadnPixelsKHR (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvKHR (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivKHR (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuivKHR (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -#endif -#endif /* GL_KHR_robustness */ - -#ifndef GL_KHR_shader_subgroup -#define GL_KHR_shader_subgroup 1 -#define GL_SUBGROUP_SIZE_KHR 0x9532 -#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 -#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 -#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 -#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 -#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 -#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 -#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 -#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 -#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 -#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 -#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 -#endif /* GL_KHR_shader_subgroup */ - -#ifndef GL_KHR_texture_compression_astc_hdr -#define GL_KHR_texture_compression_astc_hdr 1 -#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD -#endif /* GL_KHR_texture_compression_astc_hdr */ - -#ifndef GL_KHR_texture_compression_astc_ldr -#define GL_KHR_texture_compression_astc_ldr 1 -#endif /* GL_KHR_texture_compression_astc_ldr */ - -#ifndef GL_KHR_texture_compression_astc_sliced_3d -#define GL_KHR_texture_compression_astc_sliced_3d 1 -#endif /* GL_KHR_texture_compression_astc_sliced_3d */ - -#ifndef GL_OES_EGL_image -#define GL_OES_EGL_image 1 -typedef void *GLeglImageOES; -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); -GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); -#endif -#endif /* GL_OES_EGL_image */ - -#ifndef GL_OES_EGL_image_external -#define GL_OES_EGL_image_external 1 -#define GL_TEXTURE_EXTERNAL_OES 0x8D65 -#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 -#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 -#define GL_SAMPLER_EXTERNAL_OES 0x8D66 -#endif /* GL_OES_EGL_image_external */ - -#ifndef GL_OES_EGL_image_external_essl3 -#define GL_OES_EGL_image_external_essl3 1 -#endif /* GL_OES_EGL_image_external_essl3 */ - -#ifndef GL_OES_compressed_ETC1_RGB8_sub_texture -#define GL_OES_compressed_ETC1_RGB8_sub_texture 1 -#endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ - -#ifndef GL_OES_compressed_ETC1_RGB8_texture -#define GL_OES_compressed_ETC1_RGB8_texture 1 -#define GL_ETC1_RGB8_OES 0x8D64 -#endif /* GL_OES_compressed_ETC1_RGB8_texture */ - -#ifndef GL_OES_compressed_paletted_texture -#define GL_OES_compressed_paletted_texture 1 -#define GL_PALETTE4_RGB8_OES 0x8B90 -#define GL_PALETTE4_RGBA8_OES 0x8B91 -#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 -#define GL_PALETTE4_RGBA4_OES 0x8B93 -#define GL_PALETTE4_RGB5_A1_OES 0x8B94 -#define GL_PALETTE8_RGB8_OES 0x8B95 -#define GL_PALETTE8_RGBA8_OES 0x8B96 -#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 -#define GL_PALETTE8_RGBA4_OES 0x8B98 -#define GL_PALETTE8_RGB5_A1_OES 0x8B99 -#endif /* GL_OES_compressed_paletted_texture */ - -#ifndef GL_OES_copy_image -#define GL_OES_copy_image 1 -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#endif -#endif /* GL_OES_copy_image */ - -#ifndef GL_OES_depth24 -#define GL_OES_depth24 1 -#define GL_DEPTH_COMPONENT24_OES 0x81A6 -#endif /* GL_OES_depth24 */ - -#ifndef GL_OES_depth32 -#define GL_OES_depth32 1 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#endif /* GL_OES_depth32 */ - -#ifndef GL_OES_depth_texture -#define GL_OES_depth_texture 1 -#endif /* GL_OES_depth_texture */ - -#ifndef GL_OES_draw_buffers_indexed -#define GL_OES_draw_buffers_indexed 1 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -typedef void (GL_APIENTRYP PFNGLENABLEIOESPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEnableiOES (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiOES (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationiOES (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiOES (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciOES (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOES (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaskiOES (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediOES (GLenum target, GLuint index); -#endif -#endif /* GL_OES_draw_buffers_indexed */ - -#ifndef GL_OES_draw_elements_base_vertex -#define GL_OES_draw_elements_base_vertex 1 -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); -#endif -#endif /* GL_OES_draw_elements_base_vertex */ - -#ifndef GL_OES_element_index_uint -#define GL_OES_element_index_uint 1 -#endif /* GL_OES_element_index_uint */ - -#ifndef GL_OES_fbo_render_mipmap -#define GL_OES_fbo_render_mipmap 1 -#endif /* GL_OES_fbo_render_mipmap */ - -#ifndef GL_OES_fragment_precision_high -#define GL_OES_fragment_precision_high 1 -#endif /* GL_OES_fragment_precision_high */ - -#ifndef GL_OES_geometry_point_size -#define GL_OES_geometry_point_size 1 -#endif /* GL_OES_geometry_point_size */ - -#ifndef GL_OES_geometry_shader -#define GL_OES_geometry_shader 1 -#define GL_GEOMETRY_SHADER_OES 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 -#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 -#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 -#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F -#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E -#define GL_LINES_ADJACENCY_OES 0x000A -#define GL_LINE_STRIP_ADJACENCY_OES 0x000B -#define GL_TRIANGLES_ADJACENCY_OES 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E -#define GL_UNDEFINED_VERTEX_OES 0x8260 -#define GL_PRIMITIVES_GENERATED_OES 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREOESPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureOES (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif -#endif /* GL_OES_geometry_shader */ - -#ifndef GL_OES_get_program_binary -#define GL_OES_get_program_binary 1 -#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE -#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length); -#endif -#endif /* GL_OES_get_program_binary */ - -#ifndef GL_OES_gpu_shader5 -#define GL_OES_gpu_shader5 1 -#endif /* GL_OES_gpu_shader5 */ - -#ifndef GL_OES_mapbuffer -#define GL_OES_mapbuffer 1 -#define GL_WRITE_ONLY_OES 0x88B9 -#define GL_BUFFER_ACCESS_OES 0x88BB -#define GL_BUFFER_MAPPED_OES 0x88BC -#define GL_BUFFER_MAP_POINTER_OES 0x88BD -typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); -GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); -#endif -#endif /* GL_OES_mapbuffer */ - -#ifndef GL_OES_packed_depth_stencil -#define GL_OES_packed_depth_stencil 1 -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#endif /* GL_OES_packed_depth_stencil */ - -#ifndef GL_OES_primitive_bounding_box -#define GL_OES_primitive_bounding_box 1 -#define GL_PRIMITIVE_BOUNDING_BOX_OES 0x92BE -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXOESPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxOES (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_OES_primitive_bounding_box */ - -#ifndef GL_OES_required_internalformat -#define GL_OES_required_internalformat 1 -#define GL_ALPHA8_OES 0x803C -#define GL_DEPTH_COMPONENT16_OES 0x81A5 -#define GL_LUMINANCE4_ALPHA4_OES 0x8043 -#define GL_LUMINANCE8_ALPHA8_OES 0x8045 -#define GL_LUMINANCE8_OES 0x8040 -#define GL_RGBA4_OES 0x8056 -#define GL_RGB5_A1_OES 0x8057 -#define GL_RGB565_OES 0x8D62 -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB10_A2_EXT 0x8059 -#endif /* GL_OES_required_internalformat */ - -#ifndef GL_OES_rgb8_rgba8 -#define GL_OES_rgb8_rgba8 1 -#endif /* GL_OES_rgb8_rgba8 */ - -#ifndef GL_OES_sample_shading -#define GL_OES_sample_shading 1 -#define GL_SAMPLE_SHADING_OES 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMinSampleShadingOES (GLfloat value); -#endif -#endif /* GL_OES_sample_shading */ - -#ifndef GL_OES_sample_variables -#define GL_OES_sample_variables 1 -#endif /* GL_OES_sample_variables */ - -#ifndef GL_OES_shader_image_atomic -#define GL_OES_shader_image_atomic 1 -#endif /* GL_OES_shader_image_atomic */ - -#ifndef GL_OES_shader_io_blocks -#define GL_OES_shader_io_blocks 1 -#endif /* GL_OES_shader_io_blocks */ - -#ifndef GL_OES_shader_multisample_interpolation -#define GL_OES_shader_multisample_interpolation 1 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D -#endif /* GL_OES_shader_multisample_interpolation */ - -#ifndef GL_OES_standard_derivatives -#define GL_OES_standard_derivatives 1 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B -#endif /* GL_OES_standard_derivatives */ - -#ifndef GL_OES_stencil1 -#define GL_OES_stencil1 1 -#define GL_STENCIL_INDEX1_OES 0x8D46 -#endif /* GL_OES_stencil1 */ - -#ifndef GL_OES_stencil4 -#define GL_OES_stencil4 1 -#define GL_STENCIL_INDEX4_OES 0x8D47 -#endif /* GL_OES_stencil4 */ - -#ifndef GL_OES_surfaceless_context -#define GL_OES_surfaceless_context 1 -#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 -#endif /* GL_OES_surfaceless_context */ - -#ifndef GL_OES_tessellation_point_size -#define GL_OES_tessellation_point_size 1 -#endif /* GL_OES_tessellation_point_size */ - -#ifndef GL_OES_tessellation_shader -#define GL_OES_tessellation_shader 1 -#define GL_PATCHES_OES 0x000E -#define GL_PATCH_VERTICES_OES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 -#define GL_TESS_GEN_MODE_OES 0x8E76 -#define GL_TESS_GEN_SPACING_OES 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 -#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 -#define GL_ISOLINES_OES 0x8E7A -#define GL_QUADS_OES 0x0007 -#define GL_FRACTIONAL_ODD_OES 0x8E7B -#define GL_FRACTIONAL_EVEN_OES 0x8E7C -#define GL_MAX_PATCH_VERTICES_OES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 -#define GL_IS_PER_PATCH_OES 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 -#define GL_TESS_CONTROL_SHADER_OES 0x8E88 -#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIOESPROC) (GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPatchParameteriOES (GLenum pname, GLint value); -#endif -#endif /* GL_OES_tessellation_shader */ - -#ifndef GL_OES_texture_3D -#define GL_OES_texture_3D 1 -#define GL_TEXTURE_WRAP_R_OES 0x8072 -#define GL_TEXTURE_3D_OES 0x806F -#define GL_TEXTURE_BINDING_3D_OES 0x806A -#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 -#define GL_SAMPLER_3D_OES 0x8B5F -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -#endif -#endif /* GL_OES_texture_3D */ - -#ifndef GL_OES_texture_border_clamp -#define GL_OES_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 -#define GL_CLAMP_TO_BORDER_OES 0x812D -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexParameterIivOES (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivOES (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivOES (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivOES (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivOES (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivOES (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivOES (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivOES (GLuint sampler, GLenum pname, GLuint *params); -#endif -#endif /* GL_OES_texture_border_clamp */ - -#ifndef GL_OES_texture_buffer -#define GL_OES_texture_buffer 1 -#define GL_TEXTURE_BUFFER_OES 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F -#define GL_SAMPLER_BUFFER_OES 0x8DC2 -#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 -#define GL_IMAGE_BUFFER_OES 0x9051 -#define GL_INT_IMAGE_BUFFER_OES 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D -#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E -typedef void (GL_APIENTRYP PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexBufferOES (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeOES (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_OES_texture_buffer */ - -#ifndef GL_OES_texture_compression_astc -#define GL_OES_texture_compression_astc 1 -#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 -#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 -#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 -#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 -#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 -#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 -#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 -#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 -#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 -#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 -#endif /* GL_OES_texture_compression_astc */ - -#ifndef GL_OES_texture_cube_map_array -#define GL_OES_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A -#endif /* GL_OES_texture_cube_map_array */ - -#ifndef GL_OES_texture_float -#define GL_OES_texture_float 1 -#endif /* GL_OES_texture_float */ - -#ifndef GL_OES_texture_float_linear -#define GL_OES_texture_float_linear 1 -#endif /* GL_OES_texture_float_linear */ - -#ifndef GL_OES_texture_half_float -#define GL_OES_texture_half_float 1 -#define GL_HALF_FLOAT_OES 0x8D61 -#endif /* GL_OES_texture_half_float */ - -#ifndef GL_OES_texture_half_float_linear -#define GL_OES_texture_half_float_linear 1 -#endif /* GL_OES_texture_half_float_linear */ - -#ifndef GL_OES_texture_npot -#define GL_OES_texture_npot 1 -#endif /* GL_OES_texture_npot */ - -#ifndef GL_OES_texture_stencil8 -#define GL_OES_texture_stencil8 1 -#define GL_STENCIL_INDEX_OES 0x1901 -#define GL_STENCIL_INDEX8_OES 0x8D48 -#endif /* GL_OES_texture_stencil8 */ - -#ifndef GL_OES_texture_storage_multisample_2d_array -#define GL_OES_texture_storage_multisample_2d_array 1 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_OES_texture_storage_multisample_2d_array */ - -#ifndef GL_OES_texture_view -#define GL_OES_texture_view 1 -#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureViewOES (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#endif -#endif /* GL_OES_texture_view */ - -#ifndef GL_OES_vertex_array_object -#define GL_OES_vertex_array_object 1 -#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); -#endif -#endif /* GL_OES_vertex_array_object */ - -#ifndef GL_OES_vertex_half_float -#define GL_OES_vertex_half_float 1 -#endif /* GL_OES_vertex_half_float */ - -#ifndef GL_OES_vertex_type_10_10_10_2 -#define GL_OES_vertex_type_10_10_10_2 1 -#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 -#define GL_INT_10_10_10_2_OES 0x8DF7 -#endif /* GL_OES_vertex_type_10_10_10_2 */ - -#ifndef GL_OES_viewport_array -#define GL_OES_viewport_array 1 -#define GL_MAX_VIEWPORTS_OES 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS_OES 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE_OES 0x825D -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES 0x825F -typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFOESPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVOESPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVOESPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDOESPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVOESPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFOESPROC) (GLuint index, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETFLOATI_VOESPROC) (GLenum target, GLuint index, GLfloat *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportArrayvOES (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glViewportIndexedfOES (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GL_APICALL void GL_APIENTRY glViewportIndexedfvOES (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glScissorArrayvOES (GLuint first, GLsizei count, const GLint *v); -GL_APICALL void GL_APIENTRY glScissorIndexedOES (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorIndexedvOES (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glDepthRangeArrayfvOES (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glDepthRangeIndexedfOES (GLuint index, GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glGetFloati_vOES (GLenum target, GLuint index, GLfloat *data); -#endif -#endif /* GL_OES_viewport_array */ - -#ifndef GL_AMD_compressed_3DC_texture -#define GL_AMD_compressed_3DC_texture 1 -#define GL_3DC_X_AMD 0x87F9 -#define GL_3DC_XY_AMD 0x87FA -#endif /* GL_AMD_compressed_3DC_texture */ - -#ifndef GL_AMD_compressed_ATC_texture -#define GL_AMD_compressed_ATC_texture 1 -#define GL_ATC_RGB_AMD 0x8C92 -#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 -#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE -#endif /* GL_AMD_compressed_ATC_texture */ - -#ifndef GL_AMD_framebuffer_multisample_advanced -#define GL_AMD_framebuffer_multisample_advanced 1 -#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 -#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 -#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 -#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 -#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 -#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_AMD_framebuffer_multisample_advanced */ - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); -typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); -GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif -#endif /* GL_AMD_performance_monitor */ - -#ifndef GL_AMD_program_binary_Z400 -#define GL_AMD_program_binary_Z400 1 -#define GL_Z400_BINARY_AMD 0x8740 -#endif /* GL_AMD_program_binary_Z400 */ - -#ifndef GL_ANDROID_extension_pack_es31a -#define GL_ANDROID_extension_pack_es31a 1 -#endif /* GL_ANDROID_extension_pack_es31a */ - -#ifndef GL_ANGLE_depth_texture -#define GL_ANGLE_depth_texture 1 -#endif /* GL_ANGLE_depth_texture */ - -#ifndef GL_ANGLE_framebuffer_blit -#define GL_ANGLE_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_ANGLE_framebuffer_blit */ - -#ifndef GL_ANGLE_framebuffer_multisample -#define GL_ANGLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 -#define GL_MAX_SAMPLES_ANGLE 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_ANGLE_framebuffer_multisample */ - -#ifndef GL_ANGLE_instanced_arrays -#define GL_ANGLE_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); -#endif -#endif /* GL_ANGLE_instanced_arrays */ - -#ifndef GL_ANGLE_pack_reverse_row_order -#define GL_ANGLE_pack_reverse_row_order 1 -#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 -#endif /* GL_ANGLE_pack_reverse_row_order */ - -#ifndef GL_ANGLE_program_binary -#define GL_ANGLE_program_binary 1 -#define GL_PROGRAM_BINARY_ANGLE 0x93A6 -#endif /* GL_ANGLE_program_binary */ - -#ifndef GL_ANGLE_texture_compression_dxt3 -#define GL_ANGLE_texture_compression_dxt3 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 -#endif /* GL_ANGLE_texture_compression_dxt3 */ - -#ifndef GL_ANGLE_texture_compression_dxt5 -#define GL_ANGLE_texture_compression_dxt5 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 -#endif /* GL_ANGLE_texture_compression_dxt5 */ - -#ifndef GL_ANGLE_texture_usage -#define GL_ANGLE_texture_usage 1 -#define GL_TEXTURE_USAGE_ANGLE 0x93A2 -#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 -#endif /* GL_ANGLE_texture_usage */ - -#ifndef GL_ANGLE_translated_shader_source -#define GL_ANGLE_translated_shader_source 1 -#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 -typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -#endif -#endif /* GL_ANGLE_translated_shader_source */ - -#ifndef GL_APPLE_clip_distance -#define GL_APPLE_clip_distance 1 -#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 -#define GL_CLIP_DISTANCE0_APPLE 0x3000 -#define GL_CLIP_DISTANCE1_APPLE 0x3001 -#define GL_CLIP_DISTANCE2_APPLE 0x3002 -#define GL_CLIP_DISTANCE3_APPLE 0x3003 -#define GL_CLIP_DISTANCE4_APPLE 0x3004 -#define GL_CLIP_DISTANCE5_APPLE 0x3005 -#define GL_CLIP_DISTANCE6_APPLE 0x3006 -#define GL_CLIP_DISTANCE7_APPLE 0x3007 -#endif /* GL_APPLE_clip_distance */ - -#ifndef GL_APPLE_color_buffer_packed_float -#define GL_APPLE_color_buffer_packed_float 1 -#endif /* GL_APPLE_color_buffer_packed_float */ - -#ifndef GL_APPLE_copy_texture_levels -#define GL_APPLE_copy_texture_levels 1 -typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); -#endif -#endif /* GL_APPLE_copy_texture_levels */ - -#ifndef GL_APPLE_framebuffer_multisample -#define GL_APPLE_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 -#define GL_MAX_SAMPLES_APPLE 0x8D57 -#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); -#endif -#endif /* GL_APPLE_framebuffer_multisample */ - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#define GL_RGB_422_APPLE 0x8A1F -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#define GL_RGB_RAW_422_APPLE 0x8A51 -#endif /* GL_APPLE_rgb_422 */ - -#ifndef GL_APPLE_sync -#define GL_APPLE_sync 1 -#define GL_SYNC_OBJECT_APPLE 0x8A53 -#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 -#define GL_OBJECT_TYPE_APPLE 0x9112 -#define GL_SYNC_CONDITION_APPLE 0x9113 -#define GL_SYNC_STATUS_APPLE 0x9114 -#define GL_SYNC_FLAGS_APPLE 0x9115 -#define GL_SYNC_FENCE_APPLE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 -#define GL_UNSIGNALED_APPLE 0x9118 -#define GL_SIGNALED_APPLE 0x9119 -#define GL_ALREADY_SIGNALED_APPLE 0x911A -#define GL_TIMEOUT_EXPIRED_APPLE 0x911B -#define GL_CONDITION_SATISFIED_APPLE 0x911C -#define GL_WAIT_FAILED_APPLE 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 -#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -#endif -#endif /* GL_APPLE_sync */ - -#ifndef GL_APPLE_texture_format_BGRA8888 -#define GL_APPLE_texture_format_BGRA8888 1 -#define GL_BGRA_EXT 0x80E1 -#define GL_BGRA8_EXT 0x93A1 -#endif /* GL_APPLE_texture_format_BGRA8888 */ - -#ifndef GL_APPLE_texture_max_level -#define GL_APPLE_texture_max_level 1 -#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D -#endif /* GL_APPLE_texture_max_level */ - -#ifndef GL_APPLE_texture_packed_float -#define GL_APPLE_texture_packed_float 1 -#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B -#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E -#define GL_R11F_G11F_B10F_APPLE 0x8C3A -#define GL_RGB9_E5_APPLE 0x8C3D -#endif /* GL_APPLE_texture_packed_float */ - -#ifndef GL_ARM_mali_program_binary -#define GL_ARM_mali_program_binary 1 -#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 -#endif /* GL_ARM_mali_program_binary */ - -#ifndef GL_ARM_mali_shader_binary -#define GL_ARM_mali_shader_binary 1 -#define GL_MALI_SHADER_BINARY_ARM 0x8F60 -#endif /* GL_ARM_mali_shader_binary */ - -#ifndef GL_ARM_rgba8 -#define GL_ARM_rgba8 1 -#endif /* GL_ARM_rgba8 */ - -#ifndef GL_ARM_shader_framebuffer_fetch -#define GL_ARM_shader_framebuffer_fetch 1 -#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 -#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 -#endif /* GL_ARM_shader_framebuffer_fetch */ - -#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil -#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 -#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ - -#ifndef GL_ARM_texture_unnormalized_coordinates -#define GL_ARM_texture_unnormalized_coordinates 1 -#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A -#endif /* GL_ARM_texture_unnormalized_coordinates */ - -#ifndef GL_DMP_program_binary -#define GL_DMP_program_binary 1 -#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 -#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 -#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 -#endif /* GL_DMP_program_binary */ - -#ifndef GL_DMP_shader_binary -#define GL_DMP_shader_binary 1 -#define GL_SHADER_BINARY_DMP 0x9250 -#endif /* GL_DMP_shader_binary */ - -#ifndef GL_EXT_EGL_image_array -#define GL_EXT_EGL_image_array 1 -#endif /* GL_EXT_EGL_image_array */ - -#ifndef GL_EXT_EGL_image_storage -#define GL_EXT_EGL_image_storage 1 -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); -typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); -GL_APICALL void GL_APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); -#endif -#endif /* GL_EXT_EGL_image_storage */ - -#ifndef GL_EXT_YUV_target -#define GL_EXT_YUV_target 1 -#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 -#endif /* GL_EXT_YUV_target */ - -#ifndef GL_EXT_base_instance -#define GL_EXT_base_instance 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -#endif -#endif /* GL_EXT_base_instance */ - -#ifndef GL_EXT_blend_func_extended -#define GL_EXT_blend_func_extended 1 -#define GL_SRC1_COLOR_EXT 0x88F9 -#define GL_SRC1_ALPHA_EXT 0x8589 -#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB -#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 -#define GL_LOCATION_INDEX_EXT 0x930F -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name); -#endif -#endif /* GL_EXT_blend_func_extended */ - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#endif /* GL_EXT_blend_minmax */ - -#ifndef GL_EXT_buffer_storage -#define GL_EXT_buffer_storage 1 -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 -#define GL_MAP_COHERENT_BIT_EXT 0x0080 -#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 -#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F -#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -#endif -#endif /* GL_EXT_buffer_storage */ - -#ifndef GL_EXT_clear_texture -#define GL_EXT_clear_texture 1 -typedef void (GL_APIENTRYP PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -typedef void (GL_APIENTRYP PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glClearTexImageEXT (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -GL_APICALL void GL_APIENTRY glClearTexSubImageEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -#endif -#endif /* GL_EXT_clear_texture */ - -#ifndef GL_EXT_clip_control -#define GL_EXT_clip_control 1 -#define GL_LOWER_LEFT_EXT 0x8CA1 -#define GL_UPPER_LEFT_EXT 0x8CA2 -#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E -#define GL_ZERO_TO_ONE_EXT 0x935F -#define GL_CLIP_ORIGIN_EXT 0x935C -#define GL_CLIP_DEPTH_MODE_EXT 0x935D -typedef void (GL_APIENTRYP PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glClipControlEXT (GLenum origin, GLenum depth); -#endif -#endif /* GL_EXT_clip_control */ - -#ifndef GL_EXT_clip_cull_distance -#define GL_EXT_clip_cull_distance 1 -#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 -#define GL_MAX_CULL_DISTANCES_EXT 0x82F9 -#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA -#define GL_CLIP_DISTANCE0_EXT 0x3000 -#define GL_CLIP_DISTANCE1_EXT 0x3001 -#define GL_CLIP_DISTANCE2_EXT 0x3002 -#define GL_CLIP_DISTANCE3_EXT 0x3003 -#define GL_CLIP_DISTANCE4_EXT 0x3004 -#define GL_CLIP_DISTANCE5_EXT 0x3005 -#define GL_CLIP_DISTANCE6_EXT 0x3006 -#define GL_CLIP_DISTANCE7_EXT 0x3007 -#endif /* GL_EXT_clip_cull_distance */ - -#ifndef GL_EXT_color_buffer_float -#define GL_EXT_color_buffer_float 1 -#endif /* GL_EXT_color_buffer_float */ - -#ifndef GL_EXT_color_buffer_half_float -#define GL_EXT_color_buffer_half_float 1 -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_RG16F_EXT 0x822F -#define GL_R16F_EXT 0x822D -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 -#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 -#endif /* GL_EXT_color_buffer_half_float */ - -#ifndef GL_EXT_conservative_depth -#define GL_EXT_conservative_depth 1 -#endif /* GL_EXT_conservative_depth */ - -#ifndef GL_EXT_copy_image -#define GL_EXT_copy_image 1 -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyImageSubDataEXT (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -#endif -#endif /* GL_EXT_copy_image */ - -#ifndef GL_EXT_debug_label -#define GL_EXT_debug_label 1 -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); -#endif -#endif /* GL_EXT_debug_label */ - -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); -typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); -GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); -#endif -#endif /* GL_EXT_debug_marker */ - -#ifndef GL_EXT_depth_clamp -#define GL_EXT_depth_clamp 1 -#define GL_DEPTH_CLAMP_EXT 0x864F -#endif /* GL_EXT_depth_clamp */ - -#ifndef GL_EXT_discard_framebuffer -#define GL_EXT_discard_framebuffer 1 -#define GL_COLOR_EXT 0x1800 -#define GL_DEPTH_EXT 0x1801 -#define GL_STENCIL_EXT 0x1802 -typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); -#endif -#endif /* GL_EXT_discard_framebuffer */ - -#ifndef GL_EXT_disjoint_timer_query -#define GL_EXT_disjoint_timer_query 1 -#define GL_QUERY_COUNTER_BITS_EXT 0x8864 -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 -#define GL_TIME_ELAPSED_EXT 0x88BF -#define GL_TIMESTAMP_EXT 0x8E28 -#define GL_GPU_DISJOINT_EXT 0x8FBB -typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64 *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); -GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); -GL_APICALL void GL_APIENTRY glGetInteger64vEXT (GLenum pname, GLint64 *data); -#endif -#endif /* GL_EXT_disjoint_timer_query */ - -#ifndef GL_EXT_draw_buffers -#define GL_EXT_draw_buffers 1 -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 -#define GL_DRAW_BUFFER0_EXT 0x8825 -#define GL_DRAW_BUFFER1_EXT 0x8826 -#define GL_DRAW_BUFFER2_EXT 0x8827 -#define GL_DRAW_BUFFER3_EXT 0x8828 -#define GL_DRAW_BUFFER4_EXT 0x8829 -#define GL_DRAW_BUFFER5_EXT 0x882A -#define GL_DRAW_BUFFER6_EXT 0x882B -#define GL_DRAW_BUFFER7_EXT 0x882C -#define GL_DRAW_BUFFER8_EXT 0x882D -#define GL_DRAW_BUFFER9_EXT 0x882E -#define GL_DRAW_BUFFER10_EXT 0x882F -#define GL_DRAW_BUFFER11_EXT 0x8830 -#define GL_DRAW_BUFFER12_EXT 0x8831 -#define GL_DRAW_BUFFER13_EXT 0x8832 -#define GL_DRAW_BUFFER14_EXT 0x8833 -#define GL_DRAW_BUFFER15_EXT 0x8834 -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_EXT_draw_buffers */ - -#ifndef GL_EXT_draw_buffers_indexed -#define GL_EXT_draw_buffers_indexed 1 -typedef void (GL_APIENTRYP PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glEnableiEXT (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiEXT (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationiEXT (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparateiEXT (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunciEXT (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparateiEXT (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaskiEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXT (GLenum target, GLuint index); -#endif -#endif /* GL_EXT_draw_buffers_indexed */ - -#ifndef GL_EXT_draw_elements_base_vertex -#define GL_EXT_draw_elements_base_vertex 1 -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -#endif -#endif /* GL_EXT_draw_elements_base_vertex */ - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_EXT_draw_instanced */ - -#ifndef GL_EXT_draw_transform_feedback -#define GL_EXT_draw_transform_feedback 1 -typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); -typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawTransformFeedbackEXT (GLenum mode, GLuint id); -GL_APICALL void GL_APIENTRY glDrawTransformFeedbackInstancedEXT (GLenum mode, GLuint id, GLsizei instancecount); -#endif -#endif /* GL_EXT_draw_transform_feedback */ - -#ifndef GL_EXT_external_buffer -#define GL_EXT_external_buffer 1 -typedef void *GLeglClientBufferEXT; -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -GL_APICALL void GL_APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); -#endif -#endif /* GL_EXT_external_buffer */ - -#ifndef GL_EXT_float_blend -#define GL_EXT_float_blend 1 -#endif /* GL_EXT_float_blend */ - -#ifndef GL_EXT_geometry_point_size -#define GL_EXT_geometry_point_size 1 -#endif /* GL_EXT_geometry_point_size */ - -#ifndef GL_EXT_geometry_shader -#define GL_EXT_geometry_shader 1 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 -#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 -#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 -#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F -#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_UNDEFINED_VERTEX_EXT 0x8260 -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif -#endif /* GL_EXT_geometry_shader */ - -#ifndef GL_EXT_gpu_shader5 -#define GL_EXT_gpu_shader5 1 -#endif /* GL_EXT_gpu_shader5 */ - -#ifndef GL_EXT_instanced_arrays -#define GL_EXT_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXT (GLuint index, GLuint divisor); -#endif -#endif /* GL_EXT_instanced_arrays */ - -#ifndef GL_EXT_map_buffer_range -#define GL_EXT_map_buffer_range 1 -#define GL_MAP_READ_BIT_EXT 0x0001 -#define GL_MAP_WRITE_BIT_EXT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); -#endif -#endif /* GL_EXT_map_buffer_range */ - -#ifndef GL_EXT_memory_object -#define GL_EXT_memory_object 1 -#define GL_TEXTURE_TILING_EXT 0x9580 -#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 -#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B -#define GL_NUM_TILING_TYPES_EXT 0x9582 -#define GL_TILING_TYPES_EXT 0x9583 -#define GL_OPTIMAL_TILING_EXT 0x9584 -#define GL_LINEAR_TILING_EXT 0x9585 -#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 -#define GL_DEVICE_UUID_EXT 0x9597 -#define GL_DRIVER_UUID_EXT 0x9598 -#define GL_UUID_SIZE_EXT 16 -typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); -typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); -typedef void (GL_APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); -typedef GLboolean (GL_APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); -typedef void (GL_APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); -typedef void (GL_APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); -GL_APICALL void GL_APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); -GL_APICALL void GL_APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); -GL_APICALL GLboolean GL_APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); -GL_APICALL void GL_APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); -GL_APICALL void GL_APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); -#endif -#endif /* GL_EXT_memory_object */ - -#ifndef GL_EXT_memory_object_fd -#define GL_EXT_memory_object_fd 1 -#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); -#endif -#endif /* GL_EXT_memory_object_fd */ - -#ifndef GL_EXT_memory_object_win32 -#define GL_EXT_memory_object_win32 1 -#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 -#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 -#define GL_DEVICE_LUID_EXT 0x9599 -#define GL_DEVICE_NODE_MASK_EXT 0x959A -#define GL_LUID_SIZE_EXT 8 -#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 -#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A -#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B -#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); -typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); -GL_APICALL void GL_APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); -#endif -#endif /* GL_EXT_memory_object_win32 */ - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); -#endif -#endif /* GL_EXT_multi_draw_arrays */ - -#ifndef GL_EXT_multi_draw_indirect -#define GL_EXT_multi_draw_indirect 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysIndirectEXT (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -GL_APICALL void GL_APIENTRY glMultiDrawElementsIndirectEXT (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -#endif -#endif /* GL_EXT_multi_draw_indirect */ - -#ifndef GL_EXT_multisampled_compatibility -#define GL_EXT_multisampled_compatibility 1 -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#endif /* GL_EXT_multisampled_compatibility */ - -#ifndef GL_EXT_multisampled_render_to_texture -#define GL_EXT_multisampled_render_to_texture 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_EXT_multisampled_render_to_texture */ - -#ifndef GL_EXT_multisampled_render_to_texture2 -#define GL_EXT_multisampled_render_to_texture2 1 -#endif /* GL_EXT_multisampled_render_to_texture2 */ - -#ifndef GL_EXT_multiview_draw_buffers -#define GL_EXT_multiview_draw_buffers 1 -#define GL_COLOR_ATTACHMENT_EXT 0x90F0 -#define GL_MULTIVIEW_EXT 0x90F1 -#define GL_DRAW_BUFFER_EXT 0x0C01 -#define GL_READ_BUFFER_EXT 0x0C02 -#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 -typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); -GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); -GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); -#endif -#endif /* GL_EXT_multiview_draw_buffers */ - -#ifndef GL_EXT_multiview_tessellation_geometry_shader -#define GL_EXT_multiview_tessellation_geometry_shader 1 -#endif /* GL_EXT_multiview_tessellation_geometry_shader */ - -#ifndef GL_EXT_multiview_texture_multisample -#define GL_EXT_multiview_texture_multisample 1 -#endif /* GL_EXT_multiview_texture_multisample */ - -#ifndef GL_EXT_multiview_timer_query -#define GL_EXT_multiview_timer_query 1 -#endif /* GL_EXT_multiview_timer_query */ - -#ifndef GL_EXT_occlusion_query_boolean -#define GL_EXT_occlusion_query_boolean 1 -#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A -#endif /* GL_EXT_occlusion_query_boolean */ - -#ifndef GL_EXT_polygon_offset_clamp -#define GL_EXT_polygon_offset_clamp 1 -#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); -#endif -#endif /* GL_EXT_polygon_offset_clamp */ - -#ifndef GL_EXT_post_depth_coverage -#define GL_EXT_post_depth_coverage 1 -#endif /* GL_EXT_post_depth_coverage */ - -#ifndef GL_EXT_primitive_bounding_box -#define GL_EXT_primitive_bounding_box 1 -#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -#endif -#endif /* GL_EXT_primitive_bounding_box */ - -#ifndef GL_EXT_protected_textures -#define GL_EXT_protected_textures 1 -#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 -#define GL_TEXTURE_PROTECTED_EXT 0x8BFA -#endif /* GL_EXT_protected_textures */ - -#ifndef GL_EXT_pvrtc_sRGB -#define GL_EXT_pvrtc_sRGB 1 -#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 -#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0 -#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1 -#endif /* GL_EXT_pvrtc_sRGB */ - -#ifndef GL_EXT_raster_multisample -#define GL_EXT_raster_multisample 1 -#define GL_RASTER_MULTISAMPLE_EXT 0x9327 -#define GL_RASTER_SAMPLES_EXT 0x9328 -#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 -#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A -#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B -#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C -typedef void (GL_APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); -#endif -#endif /* GL_EXT_raster_multisample */ - -#ifndef GL_EXT_read_format_bgra -#define GL_EXT_read_format_bgra 1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 -#endif /* GL_EXT_read_format_bgra */ - -#ifndef GL_EXT_render_snorm -#define GL_EXT_render_snorm 1 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM_EXT 0x8F98 -#define GL_RG16_SNORM_EXT 0x8F99 -#define GL_RGBA16_SNORM_EXT 0x8F9B -#endif /* GL_EXT_render_snorm */ - -#ifndef GL_EXT_robustness -#define GL_EXT_robustness 1 -#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 -#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 -#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 -#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); -GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_EXT_robustness */ - -#ifndef GL_EXT_sRGB -#define GL_EXT_sRGB 1 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 -#endif /* GL_EXT_sRGB */ - -#ifndef GL_EXT_sRGB_write_control -#define GL_EXT_sRGB_write_control 1 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#endif /* GL_EXT_sRGB_write_control */ - -#ifndef GL_EXT_semaphore -#define GL_EXT_semaphore 1 -#define GL_LAYOUT_GENERAL_EXT 0x958D -#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E -#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F -#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 -#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 -#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 -#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 -#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 -#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 -typedef void (GL_APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); -typedef void (GL_APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); -typedef GLboolean (GL_APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); -typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); -typedef void (GL_APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -typedef void (GL_APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); -GL_APICALL void GL_APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); -GL_APICALL GLboolean GL_APIENTRY glIsSemaphoreEXT (GLuint semaphore); -GL_APICALL void GL_APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); -GL_APICALL void GL_APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); -GL_APICALL void GL_APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); -GL_APICALL void GL_APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); -#endif -#endif /* GL_EXT_semaphore */ - -#ifndef GL_EXT_semaphore_fd -#define GL_EXT_semaphore_fd 1 -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); -#endif -#endif /* GL_EXT_semaphore_fd */ - -#ifndef GL_EXT_semaphore_win32 -#define GL_EXT_semaphore_win32 1 -#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 -#define GL_D3D12_FENCE_VALUE_EXT 0x9595 -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); -typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); -GL_APICALL void GL_APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); -#endif -#endif /* GL_EXT_semaphore_win32 */ - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#define GL_ACTIVE_PROGRAM_EXT 0x8259 -#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 -#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE_EXT 0x8258 -#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); -GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); -GL_APICALL void GL_APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_EXT_separate_shader_objects */ - -#ifndef GL_EXT_shader_framebuffer_fetch -#define GL_EXT_shader_framebuffer_fetch 1 -#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 -#endif /* GL_EXT_shader_framebuffer_fetch */ - -#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent -#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierEXT (void); -#endif -#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ - -#ifndef GL_EXT_shader_group_vote -#define GL_EXT_shader_group_vote 1 -#endif /* GL_EXT_shader_group_vote */ - -#ifndef GL_EXT_shader_implicit_conversions -#define GL_EXT_shader_implicit_conversions 1 -#endif /* GL_EXT_shader_implicit_conversions */ - -#ifndef GL_EXT_shader_integer_mix -#define GL_EXT_shader_integer_mix 1 -#endif /* GL_EXT_shader_integer_mix */ - -#ifndef GL_EXT_shader_io_blocks -#define GL_EXT_shader_io_blocks 1 -#endif /* GL_EXT_shader_io_blocks */ - -#ifndef GL_EXT_shader_non_constant_global_initializers -#define GL_EXT_shader_non_constant_global_initializers 1 -#endif /* GL_EXT_shader_non_constant_global_initializers */ - -#ifndef GL_EXT_shader_pixel_local_storage -#define GL_EXT_shader_pixel_local_storage 1 -#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 -#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 -#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 -#endif /* GL_EXT_shader_pixel_local_storage */ - -#ifndef GL_EXT_shader_pixel_local_storage2 -#define GL_EXT_shader_pixel_local_storage2 1 -#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 -#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 -#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); -typedef GLsizei (GL_APIENTRYP PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); -typedef void (GL_APIENTRYP PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferPixelLocalStorageSizeEXT (GLuint target, GLsizei size); -GL_APICALL GLsizei GL_APIENTRY glGetFramebufferPixelLocalStorageSizeEXT (GLuint target); -GL_APICALL void GL_APIENTRY glClearPixelLocalStorageuiEXT (GLsizei offset, GLsizei n, const GLuint *values); -#endif -#endif /* GL_EXT_shader_pixel_local_storage2 */ - -#ifndef GL_EXT_shader_texture_lod -#define GL_EXT_shader_texture_lod 1 -#endif /* GL_EXT_shader_texture_lod */ - -#ifndef GL_EXT_shadow_samplers -#define GL_EXT_shadow_samplers 1 -#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C -#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D -#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E -#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 -#endif /* GL_EXT_shadow_samplers */ - -#ifndef GL_EXT_sparse_texture -#define GL_EXT_sparse_texture 1 -#define GL_TEXTURE_SPARSE_EXT 0x91A6 -#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 -#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA -#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 -#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 -#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 -#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_3D 0x806F -#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 -#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 -#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A -#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 -typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexPageCommitmentEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -#endif -#endif /* GL_EXT_sparse_texture */ - -#ifndef GL_EXT_sparse_texture2 -#define GL_EXT_sparse_texture2 1 -#endif /* GL_EXT_sparse_texture2 */ - -#ifndef GL_EXT_tessellation_point_size -#define GL_EXT_tessellation_point_size 1 -#endif /* GL_EXT_tessellation_point_size */ - -#ifndef GL_EXT_tessellation_shader -#define GL_EXT_tessellation_shader 1 -#define GL_PATCHES_EXT 0x000E -#define GL_PATCH_VERTICES_EXT 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 -#define GL_TESS_GEN_MODE_EXT 0x8E76 -#define GL_TESS_GEN_SPACING_EXT 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 -#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 -#define GL_ISOLINES_EXT 0x8E7A -#define GL_QUADS_EXT 0x0007 -#define GL_FRACTIONAL_ODD_EXT 0x8E7B -#define GL_FRACTIONAL_EVEN_EXT 0x8E7C -#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH_EXT 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 -#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 -#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPatchParameteriEXT (GLenum pname, GLint value); -#endif -#endif /* GL_EXT_tessellation_shader */ - -#ifndef GL_EXT_texture_border_clamp -#define GL_EXT_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 -#define GL_CLAMP_TO_BORDER_EXT 0x812D -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivEXT (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivEXT (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivEXT (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivEXT (GLuint sampler, GLenum pname, GLuint *params); -#endif -#endif /* GL_EXT_texture_border_clamp */ - -#ifndef GL_EXT_texture_buffer -#define GL_EXT_texture_buffer 1 -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D -#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E -typedef void (GL_APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEEXTPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -#endif -#endif /* GL_EXT_texture_buffer */ - -#ifndef GL_EXT_texture_compression_astc_decode_mode -#define GL_EXT_texture_compression_astc_decode_mode 1 -#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 -#endif /* GL_EXT_texture_compression_astc_decode_mode */ - -#ifndef GL_EXT_texture_compression_bptc -#define GL_EXT_texture_compression_bptc 1 -#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F -#endif /* GL_EXT_texture_compression_bptc */ - -#ifndef GL_EXT_texture_compression_dxt1 -#define GL_EXT_texture_compression_dxt1 1 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif /* GL_EXT_texture_compression_dxt1 */ - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif /* GL_EXT_texture_compression_rgtc */ - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_EXT_texture_compression_s3tc 1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif /* GL_EXT_texture_compression_s3tc */ - -#ifndef GL_EXT_texture_compression_s3tc_srgb -#define GL_EXT_texture_compression_s3tc_srgb 1 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif /* GL_EXT_texture_compression_s3tc_srgb */ - -#ifndef GL_EXT_texture_cube_map_array -#define GL_EXT_texture_cube_map_array 1 -#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#endif /* GL_EXT_texture_cube_map_array */ - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif /* GL_EXT_texture_filter_anisotropic */ - -#ifndef GL_EXT_texture_filter_minmax -#define GL_EXT_texture_filter_minmax 1 -#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 -#define GL_WEIGHTED_AVERAGE_EXT 0x9367 -#endif /* GL_EXT_texture_filter_minmax */ - -#ifndef GL_EXT_texture_format_BGRA8888 -#define GL_EXT_texture_format_BGRA8888 1 -#endif /* GL_EXT_texture_format_BGRA8888 */ - -#ifndef GL_EXT_texture_format_sRGB_override -#define GL_EXT_texture_format_sRGB_override 1 -#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF -#endif /* GL_EXT_texture_format_sRGB_override */ - -#ifndef GL_EXT_texture_mirror_clamp_to_edge -#define GL_EXT_texture_mirror_clamp_to_edge 1 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#endif /* GL_EXT_texture_mirror_clamp_to_edge */ - -#ifndef GL_EXT_texture_norm16 -#define GL_EXT_texture_norm16 1 -#define GL_R16_EXT 0x822A -#define GL_RG16_EXT 0x822C -#define GL_RGBA16_EXT 0x805B -#define GL_RGB16_EXT 0x8054 -#define GL_RGB16_SNORM_EXT 0x8F9A -#endif /* GL_EXT_texture_norm16 */ - -#ifndef GL_EXT_texture_query_lod -#define GL_EXT_texture_query_lod 1 -#endif /* GL_EXT_texture_query_lod */ - -#ifndef GL_EXT_texture_rg -#define GL_EXT_texture_rg 1 -#define GL_RED_EXT 0x1903 -#define GL_RG_EXT 0x8227 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#endif /* GL_EXT_texture_rg */ - -#ifndef GL_EXT_texture_sRGB_R8 -#define GL_EXT_texture_sRGB_R8 1 -#define GL_SR8_EXT 0x8FBD -#endif /* GL_EXT_texture_sRGB_R8 */ - -#ifndef GL_EXT_texture_sRGB_RG8 -#define GL_EXT_texture_sRGB_RG8 1 -#define GL_SRG8_EXT 0x8FBE -#endif /* GL_EXT_texture_sRGB_RG8 */ - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif /* GL_EXT_texture_sRGB_decode */ - -#ifndef GL_EXT_texture_shadow_lod -#define GL_EXT_texture_shadow_lod 1 -#endif /* GL_EXT_texture_shadow_lod */ - -#ifndef GL_EXT_texture_storage -#define GL_EXT_texture_storage 1 -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* GL_EXT_texture_storage */ - -#ifndef GL_EXT_texture_type_2_10_10_10_REV -#define GL_EXT_texture_type_2_10_10_10_REV 1 -#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 -#endif /* GL_EXT_texture_type_2_10_10_10_REV */ - -#ifndef GL_EXT_texture_view -#define GL_EXT_texture_view 1 -#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB -#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC -#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD -#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE -typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureViewEXT (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -#endif -#endif /* GL_EXT_texture_view */ - -#ifndef GL_EXT_unpack_subimage -#define GL_EXT_unpack_subimage 1 -#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 -#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 -#endif /* GL_EXT_unpack_subimage */ - -#ifndef GL_EXT_win32_keyed_mutex -#define GL_EXT_win32_keyed_mutex 1 -typedef GLboolean (GL_APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); -typedef GLboolean (GL_APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLboolean GL_APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); -GL_APICALL GLboolean GL_APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); -#endif -#endif /* GL_EXT_win32_keyed_mutex */ - -#ifndef GL_EXT_window_rectangles -#define GL_EXT_window_rectangles 1 -#define GL_INCLUSIVE_EXT 0x8F10 -#define GL_EXCLUSIVE_EXT 0x8F11 -#define GL_WINDOW_RECTANGLE_EXT 0x8F12 -#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 -#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 -#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 -typedef void (GL_APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); -#endif -#endif /* GL_EXT_window_rectangles */ - -#ifndef GL_FJ_shader_binary_GCCSO -#define GL_FJ_shader_binary_GCCSO 1 -#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 -#endif /* GL_FJ_shader_binary_GCCSO */ - -#ifndef GL_IMG_bindless_texture -#define GL_IMG_bindless_texture 1 -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleIMG (GLuint texture); -GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleIMG (GLuint texture, GLuint sampler); -GL_APICALL void GL_APIENTRY glUniformHandleui64IMG (GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glUniformHandleui64vIMG (GLint location, GLsizei count, const GLuint64 *value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64IMG (GLuint program, GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vIMG (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -#endif -#endif /* GL_IMG_bindless_texture */ - -#ifndef GL_IMG_framebuffer_downsample -#define GL_IMG_framebuffer_downsample 1 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C -#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D -#define GL_DOWNSAMPLE_SCALES_IMG 0x913E -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTexture2DDownsampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayerDownsampleIMG (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); -#endif -#endif /* GL_IMG_framebuffer_downsample */ - -#ifndef GL_IMG_multisampled_render_to_texture -#define GL_IMG_multisampled_render_to_texture 1 -#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 -#define GL_MAX_SAMPLES_IMG 0x9135 -#define GL_TEXTURE_SAMPLES_IMG 0x9136 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); -#endif -#endif /* GL_IMG_multisampled_render_to_texture */ - -#ifndef GL_IMG_program_binary -#define GL_IMG_program_binary 1 -#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 -#endif /* GL_IMG_program_binary */ - -#ifndef GL_IMG_read_format -#define GL_IMG_read_format 1 -#define GL_BGRA_IMG 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 -#endif /* GL_IMG_read_format */ - -#ifndef GL_IMG_shader_binary -#define GL_IMG_shader_binary 1 -#define GL_SGX_BINARY_IMG 0x8C0A -#endif /* GL_IMG_shader_binary */ - -#ifndef GL_IMG_texture_compression_pvrtc -#define GL_IMG_texture_compression_pvrtc 1 -#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 -#endif /* GL_IMG_texture_compression_pvrtc */ - -#ifndef GL_IMG_texture_compression_pvrtc2 -#define GL_IMG_texture_compression_pvrtc2 1 -#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 -#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 -#endif /* GL_IMG_texture_compression_pvrtc2 */ - -#ifndef GL_IMG_texture_filter_cubic -#define GL_IMG_texture_filter_cubic 1 -#define GL_CUBIC_IMG 0x9139 -#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A -#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B -#endif /* GL_IMG_texture_filter_cubic */ - -#ifndef GL_INTEL_blackhole_render -#define GL_INTEL_blackhole_render 1 -#define GL_BLACKHOLE_RENDER_INTEL 0x83FC -#endif /* GL_INTEL_blackhole_render */ - -#ifndef GL_INTEL_conservative_rasterization -#define GL_INTEL_conservative_rasterization 1 -#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE -#endif /* GL_INTEL_conservative_rasterization */ - -#ifndef GL_INTEL_framebuffer_CMAA -#define GL_INTEL_framebuffer_CMAA 1 -typedef void (GL_APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); -#endif -#endif /* GL_INTEL_framebuffer_CMAA */ - -#ifndef GL_INTEL_performance_query -#define GL_INTEL_performance_query 1 -#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 -#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 -#define GL_PERFQUERY_WAIT_INTEL 0x83FB -#define GL_PERFQUERY_FLUSH_INTEL 0x83FA -#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 -#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 -#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 -#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 -#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 -#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 -#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 -#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 -#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 -#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA -#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB -#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC -#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD -#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE -#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF -#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 -typedef void (GL_APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); -typedef void (GL_APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); -typedef void (GL_APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); -typedef void (GL_APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); -typedef void (GL_APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); -typedef void (GL_APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); -GL_APICALL void GL_APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); -GL_APICALL void GL_APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); -GL_APICALL void GL_APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); -GL_APICALL void GL_APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); -GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); -GL_APICALL void GL_APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); -GL_APICALL void GL_APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); -#endif -#endif /* GL_INTEL_performance_query */ - -#ifndef GL_MESA_framebuffer_flip_x -#define GL_MESA_framebuffer_flip_x 1 -#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC -#endif /* GL_MESA_framebuffer_flip_x */ - -#ifndef GL_MESA_framebuffer_flip_y -#define GL_MESA_framebuffer_flip_y 1 -#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); -#endif -#endif /* GL_MESA_framebuffer_flip_y */ - -#ifndef GL_MESA_framebuffer_swap_xy -#define GL_MESA_framebuffer_swap_xy 1 -#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD -#endif /* GL_MESA_framebuffer_swap_xy */ - -#ifndef GL_MESA_program_binary_formats -#define GL_MESA_program_binary_formats 1 -#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F -#endif /* GL_MESA_program_binary_formats */ - -#ifndef GL_MESA_shader_integer_functions -#define GL_MESA_shader_integer_functions 1 -#endif /* GL_MESA_shader_integer_functions */ - -#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers -#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 -#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ - -#ifndef GL_NV_bindless_texture -#define GL_NV_bindless_texture 1 -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef GLuint64 (GL_APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (GL_APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleNV (GLuint texture); -GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); -GL_APICALL void GL_APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); -GL_APICALL void GL_APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); -GL_APICALL GLuint64 GL_APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -GL_APICALL void GL_APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); -GL_APICALL void GL_APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); -GL_APICALL void GL_APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); -GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); -GL_APICALL GLboolean GL_APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); -GL_APICALL GLboolean GL_APIENTRY glIsImageHandleResidentNV (GLuint64 handle); -#endif -#endif /* GL_NV_bindless_texture */ - -#ifndef GL_NV_blend_equation_advanced -#define GL_NV_blend_equation_advanced 1 -#define GL_BLEND_OVERLAP_NV 0x9281 -#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 -#define GL_BLUE_NV 0x1905 -#define GL_COLORBURN_NV 0x929A -#define GL_COLORDODGE_NV 0x9299 -#define GL_CONJOINT_NV 0x9284 -#define GL_CONTRAST_NV 0x92A1 -#define GL_DARKEN_NV 0x9297 -#define GL_DIFFERENCE_NV 0x929E -#define GL_DISJOINT_NV 0x9283 -#define GL_DST_ATOP_NV 0x928F -#define GL_DST_IN_NV 0x928B -#define GL_DST_NV 0x9287 -#define GL_DST_OUT_NV 0x928D -#define GL_DST_OVER_NV 0x9289 -#define GL_EXCLUSION_NV 0x92A0 -#define GL_GREEN_NV 0x1904 -#define GL_HARDLIGHT_NV 0x929B -#define GL_HARDMIX_NV 0x92A9 -#define GL_HSL_COLOR_NV 0x92AF -#define GL_HSL_HUE_NV 0x92AD -#define GL_HSL_LUMINOSITY_NV 0x92B0 -#define GL_HSL_SATURATION_NV 0x92AE -#define GL_INVERT_OVG_NV 0x92B4 -#define GL_INVERT_RGB_NV 0x92A3 -#define GL_LIGHTEN_NV 0x9298 -#define GL_LINEARBURN_NV 0x92A5 -#define GL_LINEARDODGE_NV 0x92A4 -#define GL_LINEARLIGHT_NV 0x92A7 -#define GL_MINUS_CLAMPED_NV 0x92B3 -#define GL_MINUS_NV 0x929F -#define GL_MULTIPLY_NV 0x9294 -#define GL_OVERLAY_NV 0x9296 -#define GL_PINLIGHT_NV 0x92A8 -#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 -#define GL_PLUS_CLAMPED_NV 0x92B1 -#define GL_PLUS_DARKER_NV 0x9292 -#define GL_PLUS_NV 0x9291 -#define GL_RED_NV 0x1903 -#define GL_SCREEN_NV 0x9295 -#define GL_SOFTLIGHT_NV 0x929C -#define GL_SRC_ATOP_NV 0x928E -#define GL_SRC_IN_NV 0x928A -#define GL_SRC_NV 0x9286 -#define GL_SRC_OUT_NV 0x928C -#define GL_SRC_OVER_NV 0x9288 -#define GL_UNCORRELATED_NV 0x9282 -#define GL_VIVIDLIGHT_NV 0x92A6 -#define GL_XOR_NV 0x1506 -typedef void (GL_APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendParameteriNV (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glBlendBarrierNV (void); -#endif -#endif /* GL_NV_blend_equation_advanced */ - -#ifndef GL_NV_blend_equation_advanced_coherent -#define GL_NV_blend_equation_advanced_coherent 1 -#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 -#endif /* GL_NV_blend_equation_advanced_coherent */ - -#ifndef GL_NV_blend_minmax_factor -#define GL_NV_blend_minmax_factor 1 -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif /* GL_NV_blend_minmax_factor */ - -#ifndef GL_NV_clip_space_w_scaling -#define GL_NV_clip_space_w_scaling 1 -#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C -#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D -#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E -typedef void (GL_APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); -#endif -#endif /* GL_NV_clip_space_w_scaling */ - -#ifndef GL_NV_compute_shader_derivatives -#define GL_NV_compute_shader_derivatives 1 -#endif /* GL_NV_compute_shader_derivatives */ - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -typedef void (GL_APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GL_APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GL_APICALL void GL_APIENTRY glEndConditionalRenderNV (void); -#endif -#endif /* GL_NV_conditional_render */ - -#ifndef GL_NV_conservative_raster -#define GL_NV_conservative_raster 1 -#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 -#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 -#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 -#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 -typedef void (GL_APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); -#endif -#endif /* GL_NV_conservative_raster */ - -#ifndef GL_NV_conservative_raster_pre_snap -#define GL_NV_conservative_raster_pre_snap 1 -#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 -#endif /* GL_NV_conservative_raster_pre_snap */ - -#ifndef GL_NV_conservative_raster_pre_snap_triangles -#define GL_NV_conservative_raster_pre_snap_triangles 1 -#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D -#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E -#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F -typedef void (GL_APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); -#endif -#endif /* GL_NV_conservative_raster_pre_snap_triangles */ - -#ifndef GL_NV_copy_buffer -#define GL_NV_copy_buffer 1 -#define GL_COPY_READ_BUFFER_NV 0x8F36 -#define GL_COPY_WRITE_BUFFER_NV 0x8F37 -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyBufferSubDataNV (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif -#endif /* GL_NV_copy_buffer */ - -#ifndef GL_NV_coverage_sample -#define GL_NV_coverage_sample 1 -#define GL_COVERAGE_COMPONENT_NV 0x8ED0 -#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 -#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 -#define GL_COVERAGE_BUFFERS_NV 0x8ED3 -#define GL_COVERAGE_SAMPLES_NV 0x8ED4 -#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 -#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 -#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 -#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); -typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); -GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); -#endif -#endif /* GL_NV_coverage_sample */ - -#ifndef GL_NV_depth_nonlinear -#define GL_NV_depth_nonlinear 1 -#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C -#endif /* GL_NV_depth_nonlinear */ - -#ifndef GL_NV_draw_buffers -#define GL_NV_draw_buffers 1 -#define GL_MAX_DRAW_BUFFERS_NV 0x8824 -#define GL_DRAW_BUFFER0_NV 0x8825 -#define GL_DRAW_BUFFER1_NV 0x8826 -#define GL_DRAW_BUFFER2_NV 0x8827 -#define GL_DRAW_BUFFER3_NV 0x8828 -#define GL_DRAW_BUFFER4_NV 0x8829 -#define GL_DRAW_BUFFER5_NV 0x882A -#define GL_DRAW_BUFFER6_NV 0x882B -#define GL_DRAW_BUFFER7_NV 0x882C -#define GL_DRAW_BUFFER8_NV 0x882D -#define GL_DRAW_BUFFER9_NV 0x882E -#define GL_DRAW_BUFFER10_NV 0x882F -#define GL_DRAW_BUFFER11_NV 0x8830 -#define GL_DRAW_BUFFER12_NV 0x8831 -#define GL_DRAW_BUFFER13_NV 0x8832 -#define GL_DRAW_BUFFER14_NV 0x8833 -#define GL_DRAW_BUFFER15_NV 0x8834 -#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 -#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 -#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 -#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 -#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 -#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 -#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 -#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 -#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 -#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 -#define GL_COLOR_ATTACHMENT10_NV 0x8CEA -#define GL_COLOR_ATTACHMENT11_NV 0x8CEB -#define GL_COLOR_ATTACHMENT12_NV 0x8CEC -#define GL_COLOR_ATTACHMENT13_NV 0x8CED -#define GL_COLOR_ATTACHMENT14_NV 0x8CEE -#define GL_COLOR_ATTACHMENT15_NV 0x8CEF -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); -#endif -#endif /* GL_NV_draw_buffers */ - -#ifndef GL_NV_draw_instanced -#define GL_NV_draw_instanced 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); -#endif -#endif /* GL_NV_draw_instanced */ - -#ifndef GL_NV_draw_vulkan_image -#define GL_NV_draw_vulkan_image 1 -typedef void (GL_APIENTRY *GLVULKANPROCNV)(void); -typedef void (GL_APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -typedef GLVULKANPROCNV (GL_APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); -typedef void (GL_APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); -typedef void (GL_APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); -typedef void (GL_APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); -GL_APICALL GLVULKANPROCNV GL_APIENTRY glGetVkProcAddrNV (const GLchar *name); -GL_APICALL void GL_APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); -GL_APICALL void GL_APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); -GL_APICALL void GL_APIENTRY glSignalVkFenceNV (GLuint64 vkFence); -#endif -#endif /* GL_NV_draw_vulkan_image */ - -#ifndef GL_NV_explicit_attrib_location -#define GL_NV_explicit_attrib_location 1 -#endif /* GL_NV_explicit_attrib_location */ - -#ifndef GL_NV_fbo_color_attachments -#define GL_NV_fbo_color_attachments 1 -#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF -#endif /* GL_NV_fbo_color_attachments */ - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); -GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); -GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif -#endif /* GL_NV_fence */ - -#ifndef GL_NV_fill_rectangle -#define GL_NV_fill_rectangle 1 -#define GL_FILL_RECTANGLE_NV 0x933C -#endif /* GL_NV_fill_rectangle */ - -#ifndef GL_NV_fragment_coverage_to_color -#define GL_NV_fragment_coverage_to_color 1 -#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD -#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE -typedef void (GL_APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFragmentCoverageColorNV (GLuint color); -#endif -#endif /* GL_NV_fragment_coverage_to_color */ - -#ifndef GL_NV_fragment_shader_barycentric -#define GL_NV_fragment_shader_barycentric 1 -#endif /* GL_NV_fragment_shader_barycentric */ - -#ifndef GL_NV_fragment_shader_interlock -#define GL_NV_fragment_shader_interlock 1 -#endif /* GL_NV_fragment_shader_interlock */ - -#ifndef GL_NV_framebuffer_blit -#define GL_NV_framebuffer_blit 1 -#define GL_READ_FRAMEBUFFER_NV 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* GL_NV_framebuffer_blit */ - -#ifndef GL_NV_framebuffer_mixed_samples -#define GL_NV_framebuffer_mixed_samples 1 -#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#define GL_DEPTH_SAMPLES_NV 0x932D -#define GL_STENCIL_SAMPLES_NV 0x932E -#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F -#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 -#define GL_COVERAGE_MODULATION_NV 0x9332 -#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); -GL_APICALL void GL_APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); -GL_APICALL void GL_APIENTRY glCoverageModulationNV (GLenum components); -#endif -#endif /* GL_NV_framebuffer_mixed_samples */ - -#ifndef GL_NV_framebuffer_multisample -#define GL_NV_framebuffer_multisample 1 -#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 -#define GL_MAX_SAMPLES_NV 0x8D57 -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif -#endif /* GL_NV_framebuffer_multisample */ - -#ifndef GL_NV_generate_mipmap_sRGB -#define GL_NV_generate_mipmap_sRGB 1 -#endif /* GL_NV_generate_mipmap_sRGB */ - -#ifndef GL_NV_geometry_shader_passthrough -#define GL_NV_geometry_shader_passthrough 1 -#endif /* GL_NV_geometry_shader_passthrough */ - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -typedef khronos_int64_t GLint64EXT; -typedef khronos_uint64_t GLuint64EXT; -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -#define GL_PATCHES 0x000E -typedef void (GL_APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (GL_APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GL_APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GL_APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GL_APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); -GL_APICALL void GL_APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); -GL_APICALL void GL_APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GL_APICALL void GL_APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GL_APICALL void GL_APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); -GL_APICALL void GL_APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); -GL_APICALL void GL_APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GL_APICALL void GL_APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GL_APICALL void GL_APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); -GL_APICALL void GL_APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GL_APICALL void GL_APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GL_APICALL void GL_APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GL_APICALL void GL_APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); -GL_APICALL void GL_APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GL_APICALL void GL_APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GL_APICALL void GL_APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GL_APICALL void GL_APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GL_APICALL void GL_APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif -#endif /* GL_NV_gpu_shader5 */ - -#ifndef GL_NV_image_formats -#define GL_NV_image_formats 1 -#endif /* GL_NV_image_formats */ - -#ifndef GL_NV_instanced_arrays -#define GL_NV_instanced_arrays 1 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); -#endif -#endif /* GL_NV_instanced_arrays */ - -#ifndef GL_NV_internalformat_sample_query -#define GL_NV_internalformat_sample_query 1 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_MULTISAMPLES_NV 0x9371 -#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 -#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 -#define GL_CONFORMANT_NV 0x9374 -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); -#endif -#endif /* GL_NV_internalformat_sample_query */ - -#ifndef GL_NV_memory_attachment -#define GL_NV_memory_attachment 1 -#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 -#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 -#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 -#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 -#define GL_MEMORY_ATTACHABLE_NV 0x95A8 -#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 -#define GL_DETACHED_TEXTURES_NV 0x95AA -#define GL_DETACHED_BUFFERS_NV 0x95AB -#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC -#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD -typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); -typedef void (GL_APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); -typedef void (GL_APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); -GL_APICALL void GL_APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); -GL_APICALL void GL_APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); -GL_APICALL void GL_APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); -#endif -#endif /* GL_NV_memory_attachment */ - -#ifndef GL_NV_memory_object_sparse -#define GL_NV_memory_object_sparse 1 -typedef void (GL_APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -typedef void (GL_APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -GL_APICALL void GL_APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -GL_APICALL void GL_APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); -GL_APICALL void GL_APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); -#endif -#endif /* GL_NV_memory_object_sparse */ - -#ifndef GL_NV_mesh_shader -#define GL_NV_mesh_shader 1 -#define GL_MESH_SHADER_NV 0x9559 -#define GL_TASK_SHADER_NV 0x955A -#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 -#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 -#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 -#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 -#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 -#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 -#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 -#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 -#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 -#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 -#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A -#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B -#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C -#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D -#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E -#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F -#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 -#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 -#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 -#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 -#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 -#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 -#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A -#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D -#define GL_MAX_MESH_VIEWS_NV 0x9557 -#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF -#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 -#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B -#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C -#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E -#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F -#define GL_MESH_VERTICES_OUT_NV 0x9579 -#define GL_MESH_PRIMITIVES_OUT_NV 0x957A -#define GL_MESH_OUTPUT_TYPE_NV 0x957B -#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D -#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 -#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 -#define GL_MESH_SHADER_BIT_NV 0x00000040 -#define GL_TASK_SHADER_BIT_NV 0x00000080 -#define GL_MESH_SUBROUTINE_NV 0x957C -#define GL_TASK_SUBROUTINE_NV 0x957D -#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E -#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F -typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); -typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); -GL_APICALL void GL_APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); -GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); -GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -#endif -#endif /* GL_NV_mesh_shader */ - -#ifndef GL_NV_non_square_matrices -#define GL_NV_non_square_matrices 1 -#define GL_FLOAT_MAT2x3_NV 0x8B65 -#define GL_FLOAT_MAT2x4_NV 0x8B66 -#define GL_FLOAT_MAT3x2_NV 0x8B67 -#define GL_FLOAT_MAT3x4_NV 0x8B68 -#define GL_FLOAT_MAT4x2_NV 0x8B69 -#define GL_FLOAT_MAT4x3_NV 0x8B6A -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif -#endif /* GL_NV_non_square_matrices */ - -#ifndef GL_NV_path_rendering -#define GL_NV_path_rendering 1 -typedef double GLdouble; -#define GL_PATH_FORMAT_SVG_NV 0x9070 -#define GL_PATH_FORMAT_PS_NV 0x9071 -#define GL_STANDARD_FONT_NAME_NV 0x9072 -#define GL_SYSTEM_FONT_NAME_NV 0x9073 -#define GL_FILE_NAME_NV 0x9074 -#define GL_PATH_STROKE_WIDTH_NV 0x9075 -#define GL_PATH_END_CAPS_NV 0x9076 -#define GL_PATH_INITIAL_END_CAP_NV 0x9077 -#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 -#define GL_PATH_JOIN_STYLE_NV 0x9079 -#define GL_PATH_MITER_LIMIT_NV 0x907A -#define GL_PATH_DASH_CAPS_NV 0x907B -#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C -#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D -#define GL_PATH_DASH_OFFSET_NV 0x907E -#define GL_PATH_CLIENT_LENGTH_NV 0x907F -#define GL_PATH_FILL_MODE_NV 0x9080 -#define GL_PATH_FILL_MASK_NV 0x9081 -#define GL_PATH_FILL_COVER_MODE_NV 0x9082 -#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 -#define GL_PATH_STROKE_MASK_NV 0x9084 -#define GL_COUNT_UP_NV 0x9088 -#define GL_COUNT_DOWN_NV 0x9089 -#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A -#define GL_CONVEX_HULL_NV 0x908B -#define GL_BOUNDING_BOX_NV 0x908D -#define GL_TRANSLATE_X_NV 0x908E -#define GL_TRANSLATE_Y_NV 0x908F -#define GL_TRANSLATE_2D_NV 0x9090 -#define GL_TRANSLATE_3D_NV 0x9091 -#define GL_AFFINE_2D_NV 0x9092 -#define GL_AFFINE_3D_NV 0x9094 -#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 -#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 -#define GL_UTF8_NV 0x909A -#define GL_UTF16_NV 0x909B -#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C -#define GL_PATH_COMMAND_COUNT_NV 0x909D -#define GL_PATH_COORD_COUNT_NV 0x909E -#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F -#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 -#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 -#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 -#define GL_SQUARE_NV 0x90A3 -#define GL_ROUND_NV 0x90A4 -#define GL_TRIANGULAR_NV 0x90A5 -#define GL_BEVEL_NV 0x90A6 -#define GL_MITER_REVERT_NV 0x90A7 -#define GL_MITER_TRUNCATE_NV 0x90A8 -#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 -#define GL_USE_MISSING_GLYPH_NV 0x90AA -#define GL_PATH_ERROR_POSITION_NV 0x90AB -#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD -#define GL_ADJACENT_PAIRS_NV 0x90AE -#define GL_FIRST_TO_REST_NV 0x90AF -#define GL_PATH_GEN_MODE_NV 0x90B0 -#define GL_PATH_GEN_COEFF_NV 0x90B1 -#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 -#define GL_PATH_STENCIL_FUNC_NV 0x90B7 -#define GL_PATH_STENCIL_REF_NV 0x90B8 -#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 -#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD -#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE -#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF -#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 -#define GL_MOVE_TO_RESETS_NV 0x90B5 -#define GL_MOVE_TO_CONTINUES_NV 0x90B6 -#define GL_CLOSE_PATH_NV 0x00 -#define GL_MOVE_TO_NV 0x02 -#define GL_RELATIVE_MOVE_TO_NV 0x03 -#define GL_LINE_TO_NV 0x04 -#define GL_RELATIVE_LINE_TO_NV 0x05 -#define GL_HORIZONTAL_LINE_TO_NV 0x06 -#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 -#define GL_VERTICAL_LINE_TO_NV 0x08 -#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 -#define GL_QUADRATIC_CURVE_TO_NV 0x0A -#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B -#define GL_CUBIC_CURVE_TO_NV 0x0C -#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D -#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E -#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F -#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 -#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 -#define GL_SMALL_CCW_ARC_TO_NV 0x12 -#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 -#define GL_SMALL_CW_ARC_TO_NV 0x14 -#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 -#define GL_LARGE_CCW_ARC_TO_NV 0x16 -#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 -#define GL_LARGE_CW_ARC_TO_NV 0x18 -#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 -#define GL_RESTART_PATH_NV 0xF0 -#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 -#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 -#define GL_RECT_NV 0xF6 -#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 -#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA -#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC -#define GL_ARC_TO_NV 0xFE -#define GL_RELATIVE_ARC_TO_NV 0xFF -#define GL_BOLD_BIT_NV 0x01 -#define GL_ITALIC_BIT_NV 0x02 -#define GL_GLYPH_WIDTH_BIT_NV 0x01 -#define GL_GLYPH_HEIGHT_BIT_NV 0x02 -#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 -#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 -#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 -#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 -#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 -#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 -#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 -#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 -#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 -#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 -#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 -#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 -#define GL_FONT_ASCENDER_BIT_NV 0x00200000 -#define GL_FONT_DESCENDER_BIT_NV 0x00400000 -#define GL_FONT_HEIGHT_BIT_NV 0x00800000 -#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 -#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 -#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 -#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 -#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -#define GL_ROUNDED_RECT_NV 0xE8 -#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 -#define GL_ROUNDED_RECT2_NV 0xEA -#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB -#define GL_ROUNDED_RECT4_NV 0xEC -#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED -#define GL_ROUNDED_RECT8_NV 0xEE -#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF -#define GL_RELATIVE_RECT_NV 0xF7 -#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 -#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 -#define GL_FONT_UNAVAILABLE_NV 0x936A -#define GL_FONT_UNINTELLIGIBLE_NV 0x936B -#define GL_CONIC_CURVE_TO_NV 0x1A -#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B -#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 -#define GL_STANDARD_FONT_FORMAT_NV 0x936C -#define GL_PATH_PROJECTION_NV 0x1701 -#define GL_PATH_MODELVIEW_NV 0x1700 -#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 -#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 -#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 -#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 -#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 -#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 -#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 -#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 -#define GL_FRAGMENT_INPUT_NV 0x936D -typedef GLuint (GL_APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GL_APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLboolean (GL_APIENTRYP PFNGLISPATHNVPROC) (GLuint path); -typedef void (GL_APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -typedef void (GL_APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); -typedef void (GL_APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -typedef void (GL_APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GL_APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef void (GL_APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -typedef void (GL_APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); -typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); -typedef void (GL_APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); -typedef void (GL_APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); -typedef void (GL_APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); -typedef void (GL_APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GL_APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -typedef void (GL_APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef GLfloat (GL_APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef GLboolean (GL_APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]); -typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef GLenum (GL_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (GL_APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (GL_APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (GL_APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (GL_APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL GLuint GL_APIENTRY glGenPathsNV (GLsizei range); -GL_APICALL void GL_APIENTRY glDeletePathsNV (GLuint path, GLsizei range); -GL_APICALL GLboolean GL_APIENTRY glIsPathNV (GLuint path); -GL_APICALL void GL_APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); -GL_APICALL void GL_APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); -GL_APICALL void GL_APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); -GL_APICALL void GL_APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); -GL_APICALL void GL_APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -GL_APICALL void GL_APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); -GL_APICALL void GL_APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); -GL_APICALL void GL_APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); -GL_APICALL void GL_APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); -GL_APICALL void GL_APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glPathCoverDepthFuncNV (GLenum func); -GL_APICALL void GL_APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); -GL_APICALL void GL_APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); -GL_APICALL void GL_APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); -GL_APICALL void GL_APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); -GL_APICALL void GL_APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); -GL_APICALL void GL_APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); -GL_APICALL void GL_APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -GL_APICALL void GL_APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); -GL_APICALL void GL_APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -GL_APICALL GLboolean GL_APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); -GL_APICALL GLboolean GL_APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); -GL_APICALL GLfloat GL_APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); -GL_APICALL GLboolean GL_APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -GL_APICALL void GL_APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); -GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]); -GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL GLenum GL_APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); -GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT (GLenum mode); -GL_APICALL void GL_APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); -GL_APICALL void GL_APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GL_APICALL void GL_APIENTRY glMatrixPopEXT (GLenum mode); -GL_APICALL void GL_APIENTRY glMatrixPushEXT (GLenum mode); -GL_APICALL void GL_APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GL_APICALL void GL_APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GL_APICALL void GL_APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -#endif -#endif /* GL_NV_path_rendering */ - -#ifndef GL_NV_path_rendering_shared_edge -#define GL_NV_path_rendering_shared_edge 1 -#define GL_SHARED_EDGE_NV 0xC0 -#endif /* GL_NV_path_rendering_shared_edge */ - -#ifndef GL_NV_pixel_buffer_object -#define GL_NV_pixel_buffer_object 1 -#define GL_PIXEL_PACK_BUFFER_NV 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF -#endif /* GL_NV_pixel_buffer_object */ - -#ifndef GL_NV_polygon_mode -#define GL_NV_polygon_mode 1 -#define GL_POLYGON_MODE_NV 0x0B40 -#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 -#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 -#define GL_POINT_NV 0x1B00 -#define GL_LINE_NV 0x1B01 -#define GL_FILL_NV 0x1B02 -typedef void (GL_APIENTRYP PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glPolygonModeNV (GLenum face, GLenum mode); -#endif -#endif /* GL_NV_polygon_mode */ - -#ifndef GL_NV_primitive_shading_rate -#define GL_NV_primitive_shading_rate 1 -#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 -#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 -#endif /* GL_NV_primitive_shading_rate */ - -#ifndef GL_NV_read_buffer -#define GL_NV_read_buffer 1 -#define GL_READ_BUFFER_NV 0x0C02 -typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); -#endif -#endif /* GL_NV_read_buffer */ - -#ifndef GL_NV_read_buffer_front -#define GL_NV_read_buffer_front 1 -#endif /* GL_NV_read_buffer_front */ - -#ifndef GL_NV_read_depth -#define GL_NV_read_depth 1 -#endif /* GL_NV_read_depth */ - -#ifndef GL_NV_read_depth_stencil -#define GL_NV_read_depth_stencil 1 -#endif /* GL_NV_read_depth_stencil */ - -#ifndef GL_NV_read_stencil -#define GL_NV_read_stencil 1 -#endif /* GL_NV_read_stencil */ - -#ifndef GL_NV_representative_fragment_test -#define GL_NV_representative_fragment_test 1 -#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F -#endif /* GL_NV_representative_fragment_test */ - -#ifndef GL_NV_sRGB_formats -#define GL_NV_sRGB_formats 1 -#define GL_SLUMINANCE_NV 0x8C46 -#define GL_SLUMINANCE_ALPHA_NV 0x8C44 -#define GL_SRGB8_NV 0x8C41 -#define GL_SLUMINANCE8_NV 0x8C47 -#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F -#define GL_ETC1_SRGB8_NV 0x88EE -#endif /* GL_NV_sRGB_formats */ - -#ifndef GL_NV_sample_locations -#define GL_NV_sample_locations 1 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 -#define GL_SAMPLE_LOCATION_NV 0x8E50 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void); -#endif -#endif /* GL_NV_sample_locations */ - -#ifndef GL_NV_sample_mask_override_coverage -#define GL_NV_sample_mask_override_coverage 1 -#endif /* GL_NV_sample_mask_override_coverage */ - -#ifndef GL_NV_scissor_exclusive -#define GL_NV_scissor_exclusive 1 -#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 -#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 -typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); -#endif -#endif /* GL_NV_scissor_exclusive */ - -#ifndef GL_NV_shader_atomic_fp16_vector -#define GL_NV_shader_atomic_fp16_vector 1 -#endif /* GL_NV_shader_atomic_fp16_vector */ - -#ifndef GL_NV_shader_noperspective_interpolation -#define GL_NV_shader_noperspective_interpolation 1 -#endif /* GL_NV_shader_noperspective_interpolation */ - -#ifndef GL_NV_shader_subgroup_partitioned -#define GL_NV_shader_subgroup_partitioned 1 -#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 -#endif /* GL_NV_shader_subgroup_partitioned */ - -#ifndef GL_NV_shader_texture_footprint -#define GL_NV_shader_texture_footprint 1 -#endif /* GL_NV_shader_texture_footprint */ - -#ifndef GL_NV_shading_rate_image -#define GL_NV_shading_rate_image 1 -#define GL_SHADING_RATE_IMAGE_NV 0x9563 -#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 -#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 -#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 -#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 -#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A -#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B -#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C -#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D -#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E -#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F -#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B -#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C -#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D -#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E -#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F -#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE -#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF -#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 -typedef void (GL_APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); -typedef void (GL_APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); -typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); -typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); -typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); -typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindShadingRateImageNV (GLuint texture); -GL_APICALL void GL_APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); -GL_APICALL void GL_APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); -GL_APICALL void GL_APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); -GL_APICALL void GL_APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); -GL_APICALL void GL_APIENTRY glShadingRateSampleOrderNV (GLenum order); -GL_APICALL void GL_APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); -#endif -#endif /* GL_NV_shading_rate_image */ - -#ifndef GL_NV_shadow_samplers_array -#define GL_NV_shadow_samplers_array 1 -#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 -#endif /* GL_NV_shadow_samplers_array */ - -#ifndef GL_NV_shadow_samplers_cube -#define GL_NV_shadow_samplers_cube 1 -#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 -#endif /* GL_NV_shadow_samplers_cube */ - -#ifndef GL_NV_stereo_view_rendering -#define GL_NV_stereo_view_rendering 1 -#endif /* GL_NV_stereo_view_rendering */ - -#ifndef GL_NV_texture_border_clamp -#define GL_NV_texture_border_clamp 1 -#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 -#define GL_CLAMP_TO_BORDER_NV 0x812D -#endif /* GL_NV_texture_border_clamp */ - -#ifndef GL_NV_texture_compression_s3tc_update -#define GL_NV_texture_compression_s3tc_update 1 -#endif /* GL_NV_texture_compression_s3tc_update */ - -#ifndef GL_NV_texture_npot_2D_mipmap -#define GL_NV_texture_npot_2D_mipmap 1 -#endif /* GL_NV_texture_npot_2D_mipmap */ - -#ifndef GL_NV_timeline_semaphore -#define GL_NV_timeline_semaphore 1 -#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 -#define GL_SEMAPHORE_TYPE_NV 0x95B3 -#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 -#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 -#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 -typedef void (GL_APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); -typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); -GL_APICALL void GL_APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); -#endif -#endif /* GL_NV_timeline_semaphore */ - -#ifndef GL_NV_viewport_array -#define GL_NV_viewport_array 1 -#define GL_MAX_VIEWPORTS_NV 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F -typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLENABLEINVPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEINVPROC) (GLenum target, GLuint index); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportArrayvNV (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glViewportIndexedfNV (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GL_APICALL void GL_APIENTRY glViewportIndexedfvNV (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glScissorArrayvNV (GLuint first, GLsizei count, const GLint *v); -GL_APICALL void GL_APIENTRY glScissorIndexedNV (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glScissorIndexedvNV (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glDepthRangeArrayfvNV (GLuint first, GLsizei count, const GLfloat *v); -GL_APICALL void GL_APIENTRY glDepthRangeIndexedfNV (GLuint index, GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glGetFloati_vNV (GLenum target, GLuint index, GLfloat *data); -GL_APICALL void GL_APIENTRY glEnableiNV (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisableiNV (GLenum target, GLuint index); -GL_APICALL GLboolean GL_APIENTRY glIsEnablediNV (GLenum target, GLuint index); -#endif -#endif /* GL_NV_viewport_array */ - -#ifndef GL_NV_viewport_array2 -#define GL_NV_viewport_array2 1 -#endif /* GL_NV_viewport_array2 */ - -#ifndef GL_NV_viewport_swizzle -#define GL_NV_viewport_swizzle 1 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 -#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 -#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 -#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 -#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 -#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A -#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B -typedef void (GL_APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); -#endif -#endif /* GL_NV_viewport_swizzle */ - -#ifndef GL_OVR_multiview -#define GL_OVR_multiview 1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 -#define GL_MAX_VIEWS_OVR 0x9631 -#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); -#endif -#endif /* GL_OVR_multiview */ - -#ifndef GL_OVR_multiview2 -#define GL_OVR_multiview2 1 -#endif /* GL_OVR_multiview2 */ - -#ifndef GL_OVR_multiview_multisampled_render_to_texture -#define GL_OVR_multiview_multisampled_render_to_texture 1 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); -#endif -#endif /* GL_OVR_multiview_multisampled_render_to_texture */ - -#ifndef GL_QCOM_YUV_texture_gather -#define GL_QCOM_YUV_texture_gather 1 -#endif /* GL_QCOM_YUV_texture_gather */ - -#ifndef GL_QCOM_alpha_test -#define GL_QCOM_alpha_test 1 -#define GL_ALPHA_TEST_QCOM 0x0BC0 -#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 -#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 -typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); -#endif -#endif /* GL_QCOM_alpha_test */ - -#ifndef GL_QCOM_binning_control -#define GL_QCOM_binning_control 1 -#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 -#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 -#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 -#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 -#endif /* GL_QCOM_binning_control */ - -#ifndef GL_QCOM_driver_control -#define GL_QCOM_driver_control 1 -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); -typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); -GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); -GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); -GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); -#endif -#endif /* GL_QCOM_driver_control */ - -#ifndef GL_QCOM_extended_get -#define GL_QCOM_extended_get 1 -#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 -#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 -#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 -#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 -#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 -#define GL_TEXTURE_TYPE_QCOM 0x8BD7 -#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 -#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 -#define GL_TEXTURE_TARGET_QCOM 0x8BDA -#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB -#define GL_STATE_RESTORE 0x8BDC -typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); -GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); -GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); -GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); -GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); -GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); -#endif -#endif /* GL_QCOM_extended_get */ - -#ifndef GL_QCOM_extended_get2 -#define GL_QCOM_extended_get2 1 -typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); -GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); -GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); -GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); -#endif -#endif /* GL_QCOM_extended_get2 */ - -#ifndef GL_QCOM_frame_extrapolation -#define GL_QCOM_frame_extrapolation 1 -typedef void (GL_APIENTRYP PFNGLEXTRAPOLATETEX2DQCOMPROC) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glExtrapolateTex2DQCOM (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); -#endif -#endif /* GL_QCOM_frame_extrapolation */ - -#ifndef GL_QCOM_framebuffer_foveated -#define GL_QCOM_framebuffer_foveated 1 -#define GL_FOVEATION_ENABLE_BIT_QCOM 0x00000001 -#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x00000002 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferFoveationConfigQCOM (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); -GL_APICALL void GL_APIENTRY glFramebufferFoveationParametersQCOM (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#endif -#endif /* GL_QCOM_framebuffer_foveated */ - -#ifndef GL_QCOM_motion_estimation -#define GL_QCOM_motion_estimation 1 -#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90 -#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91 -typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONQCOMPROC) (GLuint ref, GLuint target, GLuint output); -typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC) (GLuint ref, GLuint target, GLuint output, GLuint mask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexEstimateMotionQCOM (GLuint ref, GLuint target, GLuint output); -GL_APICALL void GL_APIENTRY glTexEstimateMotionRegionsQCOM (GLuint ref, GLuint target, GLuint output, GLuint mask); -#endif -#endif /* GL_QCOM_motion_estimation */ - -#ifndef GL_QCOM_perfmon_global_mode -#define GL_QCOM_perfmon_global_mode 1 -#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 -#endif /* GL_QCOM_perfmon_global_mode */ - -#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent -#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 -#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierQCOM (void); -#endif -#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ - -#ifndef GL_QCOM_shader_framebuffer_fetch_rate -#define GL_QCOM_shader_framebuffer_fetch_rate 1 -#endif /* GL_QCOM_shader_framebuffer_fetch_rate */ - -#ifndef GL_QCOM_shading_rate -#define GL_QCOM_shading_rate 1 -#define GL_SHADING_RATE_QCOM 0x96A4 -#define GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM 0x96A5 -#define GL_SHADING_RATE_1X1_PIXELS_QCOM 0x96A6 -#define GL_SHADING_RATE_1X2_PIXELS_QCOM 0x96A7 -#define GL_SHADING_RATE_2X1_PIXELS_QCOM 0x96A8 -#define GL_SHADING_RATE_2X2_PIXELS_QCOM 0x96A9 -#define GL_SHADING_RATE_4X2_PIXELS_QCOM 0x96AC -#define GL_SHADING_RATE_4X4_PIXELS_QCOM 0x96AE -typedef void (GL_APIENTRYP PFNGLSHADINGRATEQCOMPROC) (GLenum rate); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glShadingRateQCOM (GLenum rate); -#endif -#endif /* GL_QCOM_shading_rate */ - -#ifndef GL_QCOM_texture_foveated -#define GL_QCOM_texture_foveated 1 -#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB -#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC -#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD -#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE -#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF -typedef void (GL_APIENTRYP PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTextureFoveationParametersQCOM (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); -#endif -#endif /* GL_QCOM_texture_foveated */ - -#ifndef GL_QCOM_texture_foveated2 -#define GL_QCOM_texture_foveated2 1 -#define GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 -#endif /* GL_QCOM_texture_foveated2 */ - -#ifndef GL_QCOM_texture_foveated_subsampled_layout -#define GL_QCOM_texture_foveated_subsampled_layout 1 -#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x00000004 -#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 -#endif /* GL_QCOM_texture_foveated_subsampled_layout */ - -#ifndef GL_QCOM_tiled_rendering -#define GL_QCOM_tiled_rendering 1 -#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 -#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 -#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 -#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 -#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 -#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 -#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 -#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 -#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 -#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 -#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 -#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 -#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 -#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 -#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 -#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 -#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 -#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 -#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 -#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 -#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 -#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 -#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 -#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 -#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 -#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 -#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 -#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 -#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 -#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 -#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 -#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 -typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); -GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); -#endif -#endif /* GL_QCOM_tiled_rendering */ - -#ifndef GL_QCOM_writeonly_rendering -#define GL_QCOM_writeonly_rendering 1 -#define GL_WRITEONLY_RENDERING_QCOM 0x8823 -#endif /* GL_QCOM_writeonly_rendering */ - -#ifndef GL_VIV_shader_binary -#define GL_VIV_shader_binary 1 -#define GL_SHADER_BINARY_VIV 0x8FC4 -#endif /* GL_VIV_shader_binary */ - -/* ANGLE GLES2 extensions */ -#include "gl2ext_angle.h" - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES2/gl2ext_angle.h b/milepost/ext/angle_headers/GLES2/gl2ext_angle.h deleted file mode 100644 index ade52b6..0000000 --- a/milepost/ext/angle_headers/GLES2/gl2ext_angle.h +++ /dev/null @@ -1,616 +0,0 @@ -// -// Copyright 2017 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// gl2ext_angle.h: ANGLE modifications to the gl2ext.h header file. -// Currently we don't include this file directly, we patch gl2ext.h -// to include it implicitly so it is visible throughout our code. - -#ifndef INCLUDE_GLES2_GL2EXT_ANGLE_H_ -#define INCLUDE_GLES2_GL2EXT_ANGLE_H_ - -// clang-format off - -#ifndef GL_ANGLE_client_arrays -#define GL_ANGLE_client_arrays 1 -#define GL_CLIENT_ARRAYS_ANGLE 0x93AA -#endif /* GL_ANGLE_client_arrays */ - -#ifndef GL_ANGLE_request_extension -#define GL_ANGLE_request_extension 1 -#define GL_REQUESTABLE_EXTENSIONS_ANGLE 0x93A8 -#define GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE 0x93A9 -typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONANGLEPROC) (const GLchar *name); -typedef void (GL_APIENTRYP PFNGLDISABLEEXTENSIONANGLEPROC) (const GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glRequestExtensionANGLE (const GLchar *name); -#endif -#endif /* GL_ANGLE_webgl_compatibility */ - -#ifndef GL_ANGLE_robust_resource_initialization -#define GL_ANGLE_robust_resource_initialization 1 -#define GL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x93AB -#define GL_RESOURCE_INITIALIZED_ANGLE 0x969F -#endif /* GL_ANGLE_robust_resource_initialization */ - -#ifndef GL_ANGLE_provoking_vertex -#define GL_ANGLE_provoking_vertex 1 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -typedef void (GL_APIENTRYP PFNGLPROVOKINGVERTEXANGLEPROC) (GLenum); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glProvokingVertexANGLE(GLenum mode); -#endif -#endif /* GL_ANGLE_provoking_vertex */ - -#ifndef GL_CHROMIUM_framebuffer_mixed_samples -#define GL_CHROMIUM_frambuffer_mixed_samples 1 -#define GL_COVERAGE_MODULATION_CHROMIUM 0x9332 -typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONCHROMIUMPROC) (GLenum components); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCoverageModulationCHROMIUM(GLenum components); -#endif -#endif /* GL_CHROMIUM_framebuffer_mixed_samples */ - -#ifndef GL_CHROMIUM_bind_generates_resource -#define GL_CHROMIUM_bind_generates_resource 1 -#define GL_BIND_GENERATES_RESOURCE_CHROMIUM 0x9244 -#endif /* GL_CHROMIUM_bind_generates_resource */ - -#ifndef GL_ANGLE_memory_size -#define GL_ANGLE_memory_size -#define GL_MEMORY_SIZE_ANGLE 0x93AD -#endif /* GL_ANGLE_memory_size */ - -// needed by NV_path_rendering (and thus CHROMIUM_path_rendering) -// but CHROMIUM_path_rendering only needs MatrixLoadfEXT, MatrixLoadIdentityEXT -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -typedef void(GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC)(GLenum matrixMode, const GLfloat *m); -typedef void(GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum matrixMode); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMatrixLoadfEXT(GLenum matrixMode, const GLfloat *m); -GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT(GLenum matrixMode); -#endif -#endif /* GL_EXT_direct_state_access */ - -#ifndef GL_CHROMIUM_copy_texture -#define GL_CHROMIUM_copy_texture 1 -typedef void(GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUMPROC)(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -typedef void(GL_APIENTRYP PFNGLCOPYSUBTEXTURECHROMIUMPROC)(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glCopySubTextureCHROMIUM(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint x, - GLint y, - GLsizei width, - GLsizei height, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -#endif -#endif /* GL_CHROMIUM_copy_texture */ - -#ifndef GL_CHROMIUM_compressed_copy_texture -#define GL_CHROMIUM_compressed_copy_texture 1 -typedef void(GL_APIENTRYP PFNGLCOMPRESSEDCOPYTEXTURECHROMIUMPROC)(GLuint sourceId, GLuint destId); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCompressedCopyTextureCHROMIUM(GLuint sourceId, GLuint destId); -#endif -#endif /* GL_CHROMIUM_compressed_copy_texture */ - - -#ifndef GL_ANGLE_copy_texture_3d -#define GL_ANGLE_copy_texture_3d 1 -typedef void(GL_APIENTRYP PFNGLCOPYTEXTURE3DANGLEPROC)(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -typedef void(GL_APIENTRYP PFNGLCOPYSUBTEXTURE3DANGLEPROC)(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLint z, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glCopyTexture3DANGLE(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint internalFormat, - GLenum destType, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -GL_APICALL void GL_APIENTRY glCopySubTexture3DANGLE(GLuint sourceId, - GLint sourceLevel, - GLenum destTarget, - GLuint destId, - GLint destLevel, - GLint xoffset, - GLint yoffset, - GLint zoffset, - GLint x, - GLint y, - GLint z, - GLsizei width, - GLsizei height, - GLsizei depth, - GLboolean unpackFlipY, - GLboolean unpackPremultiplyAlpha, - GLboolean unpackUnmultiplyAlpha); -#endif -#endif /* GL_ANGLE_copy_texture_3d */ - -#ifndef GL_CHROMIUM_sync_query -#define GL_CHROMIUM_sync_query 1 -#define GL_COMMANDS_COMPLETED_CHROMIUM 0x84F7 -#endif /* GL_CHROMIUM_sync_query */ - -#ifndef GL_EXT_texture_compression_s3tc_srgb -#define GL_EXT_texture_compression_s3tc_srgb 1 -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif /* GL_EXT_texture_compression_s3tc_srgb */ - -#ifndef GL_ANGLE_lossy_etc_decode -#define GL_ANGLE_lossy_etc_decode 1 -#define GL_ETC1_RGB8_LOSSY_DECODE_ANGLE 0x9690 -#define GL_COMPRESSED_R11_LOSSY_DECODE_EAC_ANGLE 0x9691 -#define GL_COMPRESSED_SIGNED_R11_LOSSY_DECODE_EAC_ANGLE 0x9692 -#define GL_COMPRESSED_RG11_LOSSY_DECODE_EAC_ANGLE 0x9693 -#define GL_COMPRESSED_SIGNED_RG11_LOSSY_DECODE_EAC_ANGLE 0x9694 -#define GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE 0x9695 -#define GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE 0x9696 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE 0x9697 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE 0x9698 -#define GL_COMPRESSED_RGBA8_LOSSY_DECODE_ETC2_EAC_ANGLE 0x9699 -#define GL_COMPRESSED_SRGB8_ALPHA8_LOSSY_DECODE_ETC2_EAC_ANGLE 0x969A -#endif /* GL_ANGLE_lossy_etc_decode */ - -#ifndef GL_ANGLE_robust_client_memory -#define GL_ANGLE_robust_client_memory 1 -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVROBUSTANGLEPROC) (GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETFLOATVROBUSTANGLEPROC) (GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVROBUSTANGLEPROC) (GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVROBUSTANGLEPROC) (GLuint program, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVROBUSTANGLEPROC) (GLuint shader, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVROBUSTANGLEPROC) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVROBUSTANGLEPROC) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVROBUSTANGLEPROC) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVROBUSTANGLEPROC) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVROBUSTANGLEPROC) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, void **pointer); -typedef void (GL_APIENTRYP PFNGLREADPIXELSROBUSTANGLEPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DROBUSTANGLEPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DROBUSTANGLEPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DROBUSTANGLEPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DROBUSTANGLEPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLEPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DROBUSTANGLEPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DROBUSTANGLEPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DROBUSTANGLEPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVROBUSTANGLEPROC) (GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VROBUSTANGLEPROC) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVROBUSTANGLEPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVROBUSTANGLEPROC) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVROBUSTANGLEPROC) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVROBUSTANGLEPROC) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVROBUSTANGLEPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VROBUSTANGLEPROC) (GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VROBUSTANGLEPROC) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVROBUSTANGLEPROC) (GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VROBUSTANGLEPROC) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVROBUSTANGLEPROC) (GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVROBUSTANGLEPROC) (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVROBUSTANGLEPROC) (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVROBUSTANGLEROBUSTANGLEPROC) (GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSROBUSTANGLEPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVROBUSTANGLEPROC) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVROBUSTANGLEPROC) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVROBUSTANGLEPROC) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVROBUSTANGLEPROC) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVROBUSTANGLEPROC) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVROBUSTANGLEPROC)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VROBUSTANGLEPROC)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VROBUSTANGLEPROC)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint64 *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetBooleanvRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetFloatvRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameterivRobustANGLE (GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegervRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramivRobustANGLE (GLuint program, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderivRobustANGLE (GLuint shader, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterfvRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfvRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribfvRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointervRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, void **pointer); -GL_APICALL void GL_APIENTRY glReadPixelsRobustANGLE (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *pixels); -GL_APICALL void GL_APIENTRY glTexImage2DRobustANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterfvRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2DRobustANGLE (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glTexImage3DRobustANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3DRobustANGLE (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void *pixels); -GL_APICALL void GL_APIENTRY glCompressedTexImage2DRobustANGLE(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2DRobustANGLE(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexImage3DRobustANGLE(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DRobustANGLE(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data); -GL_APICALL void GL_APIENTRY glGetQueryivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuivRobustANGLE (GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetBufferPointervRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -GL_APICALL void GL_APIENTRY glGetIntegeri_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data); -GL_APICALL void GL_APIENTRY glGetInternalformativRobustANGLE (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetUniformuivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockivRobustANGLE (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetInteger64vRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetInteger64i_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64vRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -GL_APICALL void GL_APIENTRY glSamplerParameterivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterfvRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfvRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetFramebufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceivRobustANGLE (GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetBooleani_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetMultisamplefvRobustANGLE (GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length, GLfloat *val); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivRobustANGLE (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvRobustANGLE (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetPointervRobustANGLERobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, void **params); -GL_APICALL void GL_APIENTRY glReadnPixelsRobustANGLE (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfvRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glTexParameterIivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectivRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjecti64vRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectui64vRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint64 *params); -#endif -#endif /* GL_ANGLE_robust_client_memory */ - -#ifndef GL_ANGLE_program_cache_control -#define GL_ANGLE_program_cache_control 1 -#define GL_PROGRAM_CACHE_ENABLED_ANGLE 0x93AC -#endif /* GL_ANGLE_program_cache_control */ - -#ifndef GL_ANGLE_texture_rectangle -#define GL_ANGLE_texture_rectangle 1 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ANGLE 0x84F8 -#define GL_TEXTURE_RECTANGLE_ANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ANGLE 0x84F6 -#define GL_SAMPLER_2D_RECT_ANGLE 0x8B63 -#endif /* GL_ANGLE_texture_rectangle */ - -#ifndef GL_ANGLE_texture_multisample -#define GL_ANGLE_texture_multisample 1 -#define GL_SAMPLE_POSITION_ANGLE 0x8E50 -#define GL_SAMPLE_MASK_ANGLE 0x8E51 -#define GL_SAMPLE_MASK_VALUE_ANGLE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE_ANGLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS_ANGLE 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES_ANGLE 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES_ANGLE 0x910F -#define GL_MAX_INTEGER_SAMPLES_ANGLE 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ANGLE 0x9104 -#define GL_TEXTURE_SAMPLES_ANGLE 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS_ANGLE 0x9107 -typedef void(GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEANGLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void(GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVANGLEPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void(GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVANGLEPROC)(GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVANGLEPROC)(GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIANGLEPROC)(GLuint maskNumber, GLbitfield mask); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorage2DMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvANGLE(GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivANGLE(GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetMultisamplefvANGLE(GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaskiANGLE(GLuint maskNumber, GLbitfield mask); -#endif -#endif // !GL_ANGLE_texture_multisample - -#ifndef GL_ANGLE_get_tex_level_parameter -#define GL_ANGLE_get_tex_level_parameter 1 -typedef void(GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVANGLEPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void(GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVANGLEPROC)(GLenum target, GLint level, GLenum pname, GLint *params); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvANGLE(GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterivANGLE(GLenum target, GLint level, GLenum pname, GLint *params); -#endif -#endif /* GL_ANGLE_get_tex_level_parameter */ - -#ifndef GL_ANGLE_multi_draw -#define GL_ANGLE_multi_draw 1 -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSANGLEPROC) (GLenum mode, const GLint *firsts, const GLsizei *counts, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSANGLEPROC) (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, GLsizei drawcount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, const GLsizei *instanceCounts, GLsizei drawcount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glMultiDrawArraysANGLE (GLenum mode, const GLint *firsts, const GLsizei *counts, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedANGLE (GLenum mode, const GLint *firsts, const GLsizei *counts, const GLsizei *instanceCounts, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsANGLE (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, GLsizei drawcount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedANGLE (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, const GLsizei *instanceCounts, GLsizei drawcount); -#endif -#endif /* GL_ANGLE_multi_draw */ - -#ifndef GL_ANGLE_base_vertex_base_instance -#define GL_ANGLE_base_vertex_base_instance 1 -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount, GLint baseVertex, GLuint baseInstance); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINSTANCEDBASEINSTANCEANGLEPROC) (GLenum mode, const GLsizei *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawCount); -typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEANGLEPROC) (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawCount); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceANGLE (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount, GLuint baseInstance); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceANGLE (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount, GLint baseVertex, GLuint baseInstance); -GL_APICALL void GL_APIENTRY glMultiDrawArraysInstancedBaseInstanceANGLE (GLenum mode, const GLsizei *firsts, const GLsizei *counts, const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawCount); -GL_APICALL void GL_APIENTRY glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE (GLenum mode, const GLsizei *counts, GLenum type, const GLvoid* const *indices, const GLsizei *instanceCounts, const GLint *baseVertices, const GLuint *baseInstances, GLsizei drawCount); -#endif -#endif - -#ifndef GL_CHROMIUM_bind_uniform_location -#define GL_CHROMIUM_bind_uniform_location 1 -typedef void (GL_APIENTRYP PFNGLBINDUNIFORMLOCATIONCHROMIUMPROC)(GLuint program, GLint location, const GLchar *name); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindUniformLocationCHROMIUM(GLuint program, GLint location, const GLchar *name); -#endif -#endif /* GL_CHROMIUM_bind_uniform_location */ - -/* GL_CHROMIUM_lose_context */ -#ifndef GL_CHROMIUM_lose_context -#define GL_CHROMIUM_lose_context 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glLoseContextCHROMIUM(GLenum current, GLenum other); -#endif -typedef void (GL_APIENTRYP PFNGLLOSECONTEXTCHROMIUMPROC) (GLenum current, GLenum other); -#endif /* GL_CHROMIUM_lose_context */ - -#ifndef GL_ANGLE_texture_external_update -#define GL_ANGLE_texture_external_update 1 -#define GL_TEXTURE_NATIVE_ID_ANGLE 0x3481 -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DEXTERNALANGLEPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type); -typedef void (GL_APIENTRYP PFNGLINVALIDATETEXTUREANGLEPROC) (GLenum target); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexImage2DExternalANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type); -GL_APICALL void GL_APIENTRY glInvalidateTextureANGLE (GLenum target); -#endif -#endif /* GL_ANGLE_texture_external_update */ - -#ifndef GL_ANGLE_get_image -#define GL_ANGLE_get_image -typedef void (GL_APIENTRYP PFNGLGETTEXIMAGEANGLEPROC) (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEANGLEPROC) (GLenum target, GLint level, void *pixels); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERIMAGEANGLEPROC) (GLenum target, GLenum format, GLenum type, void *pixels); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glGetTexImageANGLE (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glGetCompressedTexImageANGLE (GLenum target, GLint level, void *pixels); -GL_APICALL void GL_APIENTRY glGetRenderbufferImageANGLE (GLenum target, GLenum format, GLenum type, void *pixels); -#endif -#endif /* GL_ANGLE_get_image */ - -#ifndef GL_WEBGL_video_texture -#define GL_WEBGL_video_texture 1 -#define GL_TEXTURE_VIDEO_IMAGE_WEBGL 0x9248 -#define GL_SAMPLER_VIDEO_IMAGE_WEBGL 0x9249 -#endif /* GL_WEBGL_video_texture */ - -#ifndef GL_ANGLE_memory_object_flags -#define GL_ANGLE_memory_object_flags 1 -#define GL_CREATE_SPARSE_BINDING_BIT_ANGLE 0x00000001 -#define GL_CREATE_SPARSE_RESIDENCY_BIT_ANGLE 0x00000002 -#define GL_CREATE_SPARSE_ALIASED_BIT_ANGLE 0x00000004 -#define GL_CREATE_MUTABLE_FORMAT_BIT_ANGLE 0x00000008 -#define GL_CREATE_CUBE_COMPATIBLE_BIT_ANGLE 0x00000010 -#define GL_CREATE_ALIAS_BIT_ANGLE 0x00000400 -#define GL_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_ANGLE 0x00000040 -#define GL_CREATE_2D_ARRAY_COMPATIBLE_BIT_ANGLE 0x00000020 -#define GL_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_ANGLE 0x00000080 -#define GL_CREATE_EXTENDED_USAGE_BIT_ANGLE 0x00000100 -#define GL_CREATE_PROTECTED_BIT_ANGLE 0x00000800 -#define GL_CREATE_DISJOINT_BIT_ANGLE 0x00000200 -#define GL_CREATE_CORNER_SAMPLED_BIT_ANGLE 0x00002000 -#define GL_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_ANGLE 0x00001000 -#define GL_CREATE_SUBSAMPLED_BIT_ANGLE 0x00004000 -#define GL_USAGE_TRANSFER_SRC_BIT_ANGLE 0x00000001 -#define GL_USAGE_TRANSFER_DST_BIT_ANGLE 0x00000002 -#define GL_USAGE_SAMPLED_BIT_ANGLE 0x00000004 -#define GL_USAGE_STORAGE_BIT_ANGLE 0x00000008 -#define GL_USAGE_COLOR_ATTACHMENT_BIT_ANGLE 0x00000010 -#define GL_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT_ANGLE 0x00000020 -#define GL_USAGE_TRANSIENT_ATTACHMENT_BIT_ANGLE 0x00000040 -#define GL_USAGE_INPUT_ATTACHMENT_BIT_ANGLE 0x00000080 -#define GL_USAGE_SHADING_RATE_IMAGE_BIT_ANGLE 0x00000100 -#define GL_USAGE_FRAGMENT_DENSITY_MAP_BIT_ANGLE 0x00000200 -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS2DANGLEPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS2DMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS3DANGLEPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEMFLAGS3DMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glTexStorageMemFlags2DANGLE (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags2DMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags3DANGLE (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -GL_APICALL void GL_APIENTRY glTexStorageMemFlags3DMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext); -#endif -#endif /* GL_ANGLE_memory_object_flags */ - -#ifndef GL_ANGLE_memory_object_fuchsia -#define GL_ANGLE_memory_object_fuchsia 1 -#define GL_HANDLE_TYPE_ZIRCON_VMO_ANGLE 0x93AE -typedef void(GL_APIENTRYP PFNGLIMPORTMEMORYZIRCONHANDLEANGLEPROC)(GLuint memory, - GLuint64 size, - GLenum handleType, - GLuint handle); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportMemoryZirconHandleANGLE(GLuint memory, - GLuint64 size, - GLenum handleType, - GLuint handle); -#endif -#endif /* GL_ANGLE_memory_object_fuchsia */ - -#ifndef GL_ANGLE_semaphore_fuchsia -#define GL_ANGLE_semaphore_fuchsia 1 -#define GL_HANDLE_TYPE_ZIRCON_EVENT_ANGLE 0x93AF -typedef void(GL_APIENTRYP PFNGLIMPORTSEMAPHOREZIRCONHANDLEANGLEPROC)(GLuint semaphore, - GLenum handleType, - GLuint handle); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glImportSemaphoreZirconHandleANGLE(GLuint memory, - GLenum handleType, - GLuint handle); -#endif -#endif /* GL_ANGLE_semaphore_fuchsia */ - -#ifndef GL_ANGLE_vulkan_image -#define GL_ANGLE_vulkan_image 1 -typedef void(GL_APIENTRYP PFNGLACQUIRETEXTURESANGLEPROC)(GLuint numTexture, const GLuint *textures, const GLenum *layouts); -typedef void(GL_APIENTRYP PFNGLRELEASETEXTURESANGLEPROC)(GLuint numTexture, const GLuint *textures, GLenum *layouts); -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glAcquireTexturesANGLE(GLuint numTexture, const GLuint *textures, const GLenum *layouts); -GL_APICALL void GL_APIENTRY glReleaseTexturesANGLE(GLuint numTexture, const GLuint *textures, GLenum *layouts); -#endif -#endif /* GL_ANGLE_vulkan_image */ - -#ifndef GL_CHROMIUM_texture_filtering_hint -#define GL_CHROMIUM_texture_filtering_hint -#define GL_TEXTURE_FILTERING_HINT_CHROMIUM 0x8AF0 -#endif /* GL_CHROMIUM_texture_filtering_hint */ - -#ifndef GL_NV_robustness_video_memory -#define GL_NV_robustness_video_memory -#define GL_PURGED_CONTEXT_RESET_NV 0x92BB -#endif /* GL_NV_robustness_video_memory */ - -#ifndef GL_ANGLE_get_serialized_context_string -#define GL_ANGLE_get_serialized_context_string -#define GL_SERIALIZED_CONTEXT_STRING_ANGLE 0x96B0 -#endif /* GL_ANGLE_get_serialized_context_string */ - -#ifndef GL_ANGLE_robust_fragment_shader_output -#define GL_ANGLE_robust_fragment_shader_output -#define GL_ROBUST_FRAGMENT_SHADER_OUTPUT_ANGLE 0x96B9 -#endif /* GL_ANGLE_robust_fragment_shader_output */ - -// clang-format on - -#ifndef GL_ANGLE_yuv_internal_format -#define GL_ANGLE_yuv_internal_format - -// YUV formats introduced by GL_ANGLE_yuv_internal_format -// 8-bit YUV formats -#define GL_G8_B8R8_2PLANE_420_UNORM_ANGLE 0x96B1 -#define GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE 0x96B2 - -// 10-bit YUV formats -#define GL_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B3 -#define GL_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B4 - -// 12-bit YUV formats -#define GL_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B5 -#define GL_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B6 - -// 16-bit YUV formats -#define GL_G16_B16R16_2PLANE_420_UNORM_ANGLE 0x96B7 -#define GL_G16_B16_R16_3PLANE_420_UNORM_ANGLE 0x96B8 - -#endif /* GL_ANGLE_yuv_internal_format */ - -#ifndef GL_ANGLE_rgbx_internal_format -#define GL_ANGLE_rgbx_internal_format - -#define GL_RGBX8_ANGLE 0x96BA - -#endif /* GL_ANGLE_rgbx_internal_format */ - -#endif // INCLUDE_GLES2_GL2EXT_ANGLE_H_ diff --git a/milepost/ext/angle_headers/GLES2/gl2platform.h b/milepost/ext/angle_headers/GLES2/gl2platform.h deleted file mode 100644 index 5bcce6d..0000000 --- a/milepost/ext/angle_headers/GLES2/gl2platform.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __gl2platform_h_ -#define __gl2platform_h_ - -/* -** Copyright 2017-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * Please contribute modifications back to Khronos as pull requests on the - * public github repository: - * https://github.com/KhronosGroup/OpenGL-Registry - */ - -#include - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl2platform_h_ */ diff --git a/milepost/ext/angle_headers/GLES3/.clang-format b/milepost/ext/angle_headers/GLES3/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/GLES3/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/GLES3/gl3.h b/milepost/ext/angle_headers/GLES3/gl3.h deleted file mode 100644 index 6bb4d8f..0000000 --- a/milepost/ext/angle_headers/GLES3/gl3.h +++ /dev/null @@ -1,1192 +0,0 @@ -#ifndef __gles2_gl3_h_ -#define __gles2_gl3_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20210107 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.0 - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES3/gl31.h b/milepost/ext/angle_headers/GLES3/gl31.h deleted file mode 100644 index 502d6fe..0000000 --- a/milepost/ext/angle_headers/GLES3/gl31.h +++ /dev/null @@ -1,1507 +0,0 @@ -#ifndef __gles2_gl31_h_ -#define __gles2_gl31_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20191013 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[01] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES3/gl32.h b/milepost/ext/angle_headers/GLES3/gl32.h deleted file mode 100644 index ae56b0e..0000000 --- a/milepost/ext/angle_headers/GLES3/gl32.h +++ /dev/null @@ -1,1808 +0,0 @@ -#ifndef __gles2_gl32_h_ -#define __gles2_gl32_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20191013 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[012] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifndef GL_ES_VERSION_3_2 -#define GL_ES_VERSION_3_2 1 -typedef void (GL_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_MULTISAMPLE_LINE_WIDTH_RANGE 0x9381 -#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY 0x9382 -#define GL_MULTIPLY 0x9294 -#define GL_SCREEN 0x9295 -#define GL_OVERLAY 0x9296 -#define GL_DARKEN 0x9297 -#define GL_LIGHTEN 0x9298 -#define GL_COLORDODGE 0x9299 -#define GL_COLORBURN 0x929A -#define GL_HARDLIGHT 0x929B -#define GL_SOFTLIGHT 0x929C -#define GL_DIFFERENCE 0x929E -#define GL_EXCLUSION 0x92A0 -#define GL_HSL_HUE 0x92AD -#define GL_HSL_SATURATION 0x92AE -#define GL_HSL_COLOR 0x92AF -#define GL_HSL_LUMINOSITY 0x92B0 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_PRIMITIVE_BOUNDING_BOX 0x92BE -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 -#define GL_CONTEXT_FLAGS 0x821E -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_CONTEXT_LOST 0x0507 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_QUADS 0x0007 -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERPROC) (void); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrier (void); -GL_APICALL void GL_APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroup (void); -GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glEnablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnabledi (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBox (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatus (void); -GL_APICALL void GL_APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GL_APICALL void GL_APIENTRY glMinSampleShading (GLfloat value); -GL_APICALL void GL_APIENTRY glPatchParameteri (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_ES_VERSION_3_2 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/GLES3/gl3platform.h b/milepost/ext/angle_headers/GLES3/gl3platform.h deleted file mode 100644 index 8699212..0000000 --- a/milepost/ext/angle_headers/GLES3/gl3platform.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __gl3platform_h_ -#define __gl3platform_h_ - -/* -** Copyright 2017-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for OpenGL ES 3.X gl3.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * Please contribute modifications back to Khronos as pull requests on the - * public github repository: - * https://github.com/KhronosGroup/OpenGL-Registry - */ - -#include - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl3platform_h_ */ diff --git a/milepost/ext/angle_headers/GLSLANG/ShaderLang.h b/milepost/ext/angle_headers/GLSLANG/ShaderLang.h deleted file mode 100644 index 4a52b2b..0000000 --- a/milepost/ext/angle_headers/GLSLANG/ShaderLang.h +++ /dev/null @@ -1,959 +0,0 @@ -// -// Copyright 2002 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -#ifndef GLSLANG_SHADERLANG_H_ -#define GLSLANG_SHADERLANG_H_ - -#include - -#include "KHR/khrplatform.h" - -#include -#include -#include -#include -#include - -// -// This is the platform independent interface between an OGL driver -// and the shading language compiler. -// - -// Note: make sure to increment ANGLE_SH_VERSION when changing ShaderVars.h -#include "ShaderVars.h" - -// Version number for shader translation API. -// It is incremented every time the API changes. -#define ANGLE_SH_VERSION 303 - -enum ShShaderSpec -{ - SH_GLES2_SPEC, - SH_WEBGL_SPEC, - - SH_GLES3_SPEC, - SH_WEBGL2_SPEC, - - SH_GLES3_1_SPEC, - SH_WEBGL3_SPEC, - - SH_GLES3_2_SPEC, - - SH_GL_CORE_SPEC, - SH_GL_COMPATIBILITY_SPEC, -}; - -enum ShShaderOutput -{ - // ESSL output only supported in some configurations. - SH_ESSL_OUTPUT = 0x8B45, - - // GLSL output only supported in some configurations. - SH_GLSL_COMPATIBILITY_OUTPUT = 0x8B46, - // Note: GL introduced core profiles in 1.5. - SH_GLSL_130_OUTPUT = 0x8B47, - SH_GLSL_140_OUTPUT = 0x8B80, - SH_GLSL_150_CORE_OUTPUT = 0x8B81, - SH_GLSL_330_CORE_OUTPUT = 0x8B82, - SH_GLSL_400_CORE_OUTPUT = 0x8B83, - SH_GLSL_410_CORE_OUTPUT = 0x8B84, - SH_GLSL_420_CORE_OUTPUT = 0x8B85, - SH_GLSL_430_CORE_OUTPUT = 0x8B86, - SH_GLSL_440_CORE_OUTPUT = 0x8B87, - SH_GLSL_450_CORE_OUTPUT = 0x8B88, - - // Prefer using these to specify HLSL output type: - SH_HLSL_3_0_OUTPUT = 0x8B48, // D3D 9 - SH_HLSL_4_1_OUTPUT = 0x8B49, // D3D 11 - SH_HLSL_4_0_FL9_3_OUTPUT = 0x8B4A, // D3D 11 feature level 9_3 - - // Output SPIR-V for the Vulkan backend. - SH_SPIRV_VULKAN_OUTPUT = 0x8B4B, - - // Output SPIR-V to be cross compiled to Metal. - SH_SPIRV_METAL_OUTPUT = 0x8B4C, - - // Output for MSL - SH_MSL_METAL_OUTPUT = 0x8B4D, -}; - -// For ANGLE_shader_pixel_local_storage_coherent. -// Instructs the compiler which fragment synchronization method to use, if any. -enum class ShFragmentSynchronizationType -{ - NoSynchronization, - - FragmentShaderInterlock_NV_GL, - FragmentShaderOrdering_INTEL_GL, - FragmentShaderInterlock_ARB_GL, - - InvalidEnum, - EnumCount = InvalidEnum, -}; - -// Compile options. -struct ShCompileOptionsMetal -{ - // Direct-to-metal backend constants: - - // Binding index for driver uniforms: - int driverUniformsBindingIndex; - // Binding index for default uniforms: - int defaultUniformsBindingIndex; - // Binding index for UBO's argument buffer - int UBOArgumentBufferBindingIndex; -}; - -struct ShCompileOptionsPLS -{ - // For ANGLE_shader_pixel_local_storage_coherent. - ShFragmentSynchronizationType fragmentSynchronizationType; -}; - -struct ShCompileOptions -{ - // Translates intermediate tree to glsl, hlsl, msl, or SPIR-V binary. Can be queried by - // calling sh::GetObjectCode(). - uint64_t objectCode : 1; - - // Extracts attributes, uniforms, and varyings. Can be queried by calling ShGetVariableInfo(). - uint64_t variables : 1; - - // Tracks the source path for shaders. Can be queried with getSourcePath(). - uint64_t sourcePath : 1; - - // Whether the internal representation of the AST should be output. - uint64_t intermediateTree : 1; - - // If requested, validates the AST after every transformation. Useful for debugging. - uint64_t validateAST : 1; - - // Validates loop and indexing in the shader to ensure that they do not exceed the minimum - // functionality mandated in GLSL 1.0 spec, Appendix A, Section 4 and 5. There is no need to - // specify this parameter when compiling for WebGL - it is implied. - uint64_t validateLoopIndexing : 1; - - // Emits #line directives in HLSL. - uint64_t lineDirectives : 1; - - // Due to spec difference between GLSL 4.1 or lower and ESSL3, some platforms (for example, Mac - // OSX core profile) require a variable's "invariant"/"centroid" qualifiers to match between - // vertex and fragment shader. A simple solution to allow such shaders to link is to omit the - // two qualifiers. AMD driver in Linux requires invariant qualifier to match between vertex and - // fragment shaders, while ESSL3 disallows invariant qualifier in fragment shader and GLSL >= - // 4.2 doesn't require invariant qualifier to match between shaders. Remove invariant qualifier - // from vertex shader to workaround AMD driver bug. - // Note that the two flags take effect on ESSL3 input shaders translated to GLSL 4.1 or lower - // and to GLSL 4.2 or newer on Linux AMD. - // TODO(zmo): This is not a good long-term solution. Simply dropping these qualifiers may break - // some developers' content. A more complex workaround of dynamically generating, compiling, and - // re-linking shaders that use these qualifiers should be implemented. - uint64_t removeInvariantAndCentroidForESSL3 : 1; - - // This flag works around bug in Intel Mac drivers related to abs(i) where i is an integer. - uint64_t emulateAbsIntFunction : 1; - - // Enforce the GLSL 1.017 Appendix A section 7 packing restrictions. This flag only enforces - // (and can only enforce) the packing restrictions for uniform variables in both vertex and - // fragment shaders. ShCheckVariablesWithinPackingLimits() lets embedders enforce the packing - // restrictions for varying variables during program link time. - uint64_t enforcePackingRestrictions : 1; - - // This flag ensures all indirect (expression-based) array indexing is clamped to the bounds of - // the array. This ensures, for example, that you cannot read off the end of a uniform, whether - // an array vec234, or mat234 type. - uint64_t clampIndirectArrayBounds : 1; - - // This flag limits the complexity of an expression. - uint64_t limitExpressionComplexity : 1; - - // This flag limits the depth of the call stack. - uint64_t limitCallStackDepth : 1; - - // This flag initializes gl_Position to vec4(0,0,0,0) at the beginning of the vertex shader's - // main(), and has no effect in the fragment shader. It is intended as a workaround for drivers - // which incorrectly fail to link programs if gl_Position is not written. - uint64_t initGLPosition : 1; - - // This flag replaces - // "a && b" with "a ? b : false", - // "a || b" with "a ? true : b". - // This is to work around a MacOSX driver bug that |b| is executed independent of |a|'s value. - uint64_t unfoldShortCircuit : 1; - - // This flag initializes output variables to 0 at the beginning of main(). It is to avoid - // undefined behaviors. - uint64_t initOutputVariables : 1; - - // This flag scalarizes vec/ivec/bvec/mat constructor args. It is intended as a workaround for - // Linux/Mac driver bugs. - uint64_t scalarizeVecAndMatConstructorArgs : 1; - - // This flag overwrites a struct name with a unique prefix. It is intended as a workaround for - // drivers that do not handle struct scopes correctly, including all Mac drivers and Linux AMD. - uint64_t regenerateStructNames : 1; - - // This flag works around bugs in Mac drivers related to do-while by transforming them into an - // other construct. - uint64_t rewriteDoWhileLoops : 1; - - // This flag works around a bug in the HLSL compiler optimizer that folds certain constant pow - // expressions incorrectly. Only applies to the HLSL back-end. It works by expanding the integer - // pow expressions into a series of multiplies. - uint64_t expandSelectHLSLIntegerPowExpressions : 1; - - // Flatten "#pragma STDGL invariant(all)" into the declarations of varying variables and - // built-in GLSL variables. This compiler option is enabled automatically when needed. - uint64_t flattenPragmaSTDGLInvariantAll : 1; - - // Some drivers do not take into account the base level of the texture in the results of the - // HLSL GetDimensions builtin. This flag instructs the compiler to manually add the base level - // offsetting. - uint64_t HLSLGetDimensionsIgnoresBaseLevel : 1; - - // This flag works around an issue in translating GLSL function texelFetchOffset on INTEL - // drivers. It works by translating texelFetchOffset into texelFetch. - uint64_t rewriteTexelFetchOffsetToTexelFetch : 1; - - // This flag works around condition bug of for and while loops in Intel Mac OSX drivers. - // Condition calculation is not correct. Rewrite it from "CONDITION" to "CONDITION && true". - uint64_t addAndTrueToLoopCondition : 1; - - // This flag works around a bug in evaluating unary minus operator on integer on some INTEL - // drivers. It works by translating -(int) into ~(int) + 1. - uint64_t rewriteIntegerUnaryMinusOperator : 1; - - // This flag works around a bug in evaluating isnan() on some INTEL D3D and Mac OSX drivers. It - // works by using an expression to emulate this function. - uint64_t emulateIsnanFloatFunction : 1; - - // This flag will use all uniforms of unused std140 and shared uniform blocks at the beginning - // of the vertex/fragment shader's main(). It is intended as a workaround for Mac drivers with - // shader version 4.10. In those drivers, they will treat unused std140 and shared uniform - // blocks' members as inactive. However, WebGL2.0 based on OpenGL ES3.0.4 requires all members - // of a named uniform block declared with a shared or std140 layout qualifier to be considered - // active. The uniform block itself is also considered active. - uint64_t useUnusedStandardSharedBlocks : 1; - - // This flag works around a bug in unary minus operator on float numbers on Intel Mac OSX 10.11 - // drivers. It works by translating -float into 0.0 - float. - uint64_t rewriteFloatUnaryMinusOperator : 1; - - // This flag works around a bug in evaluating atan(y, x) on some NVIDIA OpenGL drivers. It - // works by using an expression to emulate this function. - uint64_t emulateAtan2FloatFunction : 1; - - // Set to initialize uninitialized local and global temporary variables. Should only be used - // with GLSL output. In HLSL output variables are initialized regardless of if this flag is set. - uint64_t initializeUninitializedLocals : 1; - - // The flag modifies the shader in the following way: - // - // Every occurrence of gl_InstanceID is replaced by the global temporary variable InstanceID. - // Every occurrence of gl_ViewID_OVR is replaced by the varying variable ViewID_OVR. - // At the beginning of the body of main() in a vertex shader the following initializers are - // added: - // ViewID_OVR = uint(gl_InstanceID) % num_views; - // InstanceID = gl_InstanceID / num_views; - // ViewID_OVR is added as a varying variable to both the vertex and fragment shaders. - uint64_t initializeBuiltinsForInstancedMultiview : 1; - - // With the flag enabled the GLSL/ESSL vertex shader is modified to include code for viewport - // selection in the following way: - // - Code to enable the extension ARB_shader_viewport_layer_array/NV_viewport_array2 is - // included. - // - Code to select the viewport index or layer is inserted at the beginning of main after - // ViewID_OVR's initialization. - // - A declaration of the uniform multiviewBaseViewLayerIndex. - // Note: The initializeBuiltinsForInstancedMultiview flag also has to be enabled to have the - // temporary variable ViewID_OVR declared and initialized. - uint64_t selectViewInNvGLSLVertexShader : 1; - - // If the flag is enabled, gl_PointSize is clamped to the maximum point size specified in - // ShBuiltInResources in vertex shaders. - uint64_t clampPointSize : 1; - - // This flag indicates whether advanced blend equation should be emulated. Currently only - // implemented for the Vulkan backend. - uint64_t addAdvancedBlendEquationsEmulation : 1; - - // Don't use loops to initialize uninitialized variables. Only has an effect if some kind of - // variable initialization is turned on. - uint64_t dontUseLoopsToInitializeVariables : 1; - - // Don't use D3D constant register zero when allocating space for uniforms. This is targeted to - // work around a bug in NVIDIA D3D driver version 388.59 where in very specific cases the driver - // would not handle constant register zero correctly. Only has an effect on HLSL translation. - uint64_t skipD3DConstantRegisterZero : 1; - - // Clamp gl_FragDepth to the range [0.0, 1.0] in case it is statically used. - uint64_t clampFragDepth : 1; - - // Rewrite expressions like "v.x = z = expression;". Works around a bug in NVIDIA OpenGL drivers - // prior to version 397.31. - uint64_t rewriteRepeatedAssignToSwizzled : 1; - - // Rewrite gl_DrawID as a uniform int - uint64_t emulateGLDrawID : 1; - - // This flag initializes shared variables to 0. It is to avoid ompute shaders being able to - // read undefined values that could be coming from another webpage/application. - uint64_t initSharedVariables : 1; - - // Forces the value returned from an atomic operations to be always be resolved. This is - // targeted to workaround a bug in NVIDIA D3D driver where the return value from - // RWByteAddressBuffer.InterlockedAdd does not get resolved when used in the .yzw components of - // a RWByteAddressBuffer.Store operation. Only has an effect on HLSL translation. - // http://anglebug.com/3246 - uint64_t forceAtomicValueResolution : 1; - - // Rewrite gl_BaseVertex and gl_BaseInstance as uniform int - uint64_t emulateGLBaseVertexBaseInstance : 1; - - // Emulate seamful cube map sampling for OpenGL ES2.0. Currently only applies to the Vulkan - // backend, as is done after samplers are moved out of structs. Can likely be made to work on - // the other backends as well. - uint64_t emulateSeamfulCubeMapSampling : 1; - - // This flag controls how to translate WEBGL_video_texture sampling function. - uint64_t takeVideoTextureAsExternalOES : 1; - - // This flag works around a inconsistent behavior in Mac AMD driver where gl_VertexID doesn't - // include base vertex value. It replaces gl_VertexID with (gl_VertexID + angle_BaseVertex) when - // angle_BaseVertex is available. - uint64_t addBaseVertexToVertexID : 1; - - // This works around the dynamic lvalue indexing of swizzled vectors on various platforms. - uint64_t removeDynamicIndexingOfSwizzledVector : 1; - - // This flag works around a slow fxc compile performance issue with dynamic uniform indexing. - uint64_t allowTranslateUniformBlockToStructuredBuffer : 1; - - // This flag allows us to add a decoration for layout(yuv) in shaders. - uint64_t addVulkanYUVLayoutQualifier : 1; - - // This flag allows disabling ARB_texture_rectangle on a per-compile basis. This is necessary - // for WebGL contexts becuase ARB_texture_rectangle may be necessary for the WebGL - // implementation internally but shouldn't be exposed to WebGL user code. - uint64_t disableARBTextureRectangle : 1; - - // This flag works around a driver bug by rewriting uses of row-major matrices as column-major - // in ESSL 3.00 and greater shaders. - uint64_t rewriteRowMajorMatrices : 1; - - // Drop any explicit precision qualifiers from shader. - uint64_t ignorePrecisionQualifiers : 1; - - // Ask compiler to generate code for depth correction to conform to the Vulkan clip space. If - // VK_EXT_depth_clip_control is supported, this code is not generated, saving a uniform look up. - uint64_t addVulkanDepthCorrection : 1; - - uint64_t forceShaderPrecisionHighpToMediump : 1; - - // Allow compiler to use specialization constant to do pre-rotation and y flip. - uint64_t useSpecializationConstant : 1; - - // Ask compiler to generate Vulkan transform feedback emulation support code. - uint64_t addVulkanXfbEmulationSupportCode : 1; - - // Ask compiler to generate Vulkan transform feedback support code when using the - // VK_EXT_transform_feedback extension. - uint64_t addVulkanXfbExtensionSupportCode : 1; - - // This flag initializes fragment shader's output variables to zero at the beginning of the - // fragment shader's main(). It is intended as a workaround for drivers which get context lost - // if gl_FragColor is not written. - uint64_t initFragmentOutputVariables : 1; - - // Transitory flag to select between producing SPIR-V directly vs using glslang. Ignored in - // non-assert-enabled builds to avoid increasing ANGLE's binary size. - uint64_t generateSpirvThroughGlslang : 1; - - // Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel driver - uint64_t addExplicitBoolCasts : 1; - - // Add round() after applying dither. This works around a Qualcomm quirk where values can get - // ceil()ed instead. - uint64_t roundOutputAfterDithering : 1; - - // Even when the dividend and divisor have the same value some platforms do not return 1.0f. - // Need to emit different division code for such platforms. - uint64_t precisionSafeDivision : 1; - - // anglebug.com/7527: packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4. - // TODO(anglebug.com/7527): This workaround is currently only applied for pixel local storage. - // We may want to apply it generally. - uint64_t passHighpToPackUnormSnormBuiltins : 1; - - ShCompileOptionsMetal metal; - ShCompileOptionsPLS pls; -}; - -// The 64 bits hash function. The first parameter is the input string; the -// second parameter is the string length. -using ShHashFunction64 = khronos_uint64_t (*)(const char *, size_t); - -// -// Implementation dependent built-in resources (constants and extensions). -// The names for these resources has been obtained by stripping gl_/GL_. -// -struct ShBuiltInResources -{ - // Constants. - int MaxVertexAttribs; - int MaxVertexUniformVectors; - int MaxVaryingVectors; - int MaxVertexTextureImageUnits; - int MaxCombinedTextureImageUnits; - int MaxTextureImageUnits; - int MaxFragmentUniformVectors; - int MaxDrawBuffers; - - // Extensions. - // Set to 1 to enable the extension, else 0. - int OES_standard_derivatives; - int OES_EGL_image_external; - int OES_EGL_image_external_essl3; - int NV_EGL_stream_consumer_external; - int ARB_texture_rectangle; - int EXT_blend_func_extended; - int EXT_draw_buffers; - int EXT_frag_depth; - int EXT_shader_texture_lod; - int EXT_shader_framebuffer_fetch; - int EXT_shader_framebuffer_fetch_non_coherent; - int NV_shader_framebuffer_fetch; - int NV_shader_noperspective_interpolation; - int ARM_shader_framebuffer_fetch; - int OVR_multiview; - int OVR_multiview2; - int EXT_multisampled_render_to_texture; - int EXT_multisampled_render_to_texture2; - int EXT_YUV_target; - int EXT_geometry_shader; - int OES_geometry_shader; - int OES_shader_io_blocks; - int EXT_shader_io_blocks; - int EXT_gpu_shader5; - int EXT_shader_non_constant_global_initializers; - int OES_texture_storage_multisample_2d_array; - int OES_texture_3D; - int ANGLE_shader_pixel_local_storage; - int ANGLE_texture_multisample; - int ANGLE_multi_draw; - // TODO(angleproject:3402) remove after chromium side removal to pass compilation - int ANGLE_base_vertex_base_instance; - int WEBGL_video_texture; - int APPLE_clip_distance; - int OES_texture_cube_map_array; - int EXT_texture_cube_map_array; - int EXT_shadow_samplers; - int OES_shader_multisample_interpolation; - int OES_shader_image_atomic; - int EXT_tessellation_shader; - int OES_texture_buffer; - int EXT_texture_buffer; - int OES_sample_variables; - int EXT_clip_cull_distance; - int EXT_primitive_bounding_box; - int OES_primitive_bounding_box; - int ANGLE_base_vertex_base_instance_shader_builtin; - int ANDROID_extension_pack_es31a; - int KHR_blend_equation_advanced; - - // Set to 1 to enable replacing GL_EXT_draw_buffers #extension directives - // with GL_NV_draw_buffers in ESSL output. This flag can be used to emulate - // EXT_draw_buffers by using it in combination with GLES3.0 glDrawBuffers - // function. This applies to Tegra K1 devices. - int NV_draw_buffers; - - // Set to 1 if highp precision is supported in the ESSL 1.00 version of the - // fragment language. Does not affect versions of the language where highp - // support is mandatory. - // Default is 0. - int FragmentPrecisionHigh; - - // GLSL ES 3.0 constants. - int MaxVertexOutputVectors; - int MaxFragmentInputVectors; - int MinProgramTexelOffset; - int MaxProgramTexelOffset; - - // Extension constants. - - // Value of GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT for OpenGL ES output context. - // Value of GL_MAX_DUAL_SOURCE_DRAW_BUFFERS for OpenGL output context. - // GLES SL version 100 gl_MaxDualSourceDrawBuffersEXT value for EXT_blend_func_extended. - int MaxDualSourceDrawBuffers; - - // Value of GL_MAX_VIEWS_OVR. - int MaxViewsOVR; - - // Name Hashing. - // Set a 64 bit hash function to enable user-defined name hashing. - // Default is NULL. - ShHashFunction64 HashFunction; - - // The maximum complexity an expression can be when limitExpressionComplexity is turned on. - int MaxExpressionComplexity; - - // The maximum depth a call stack can be. - int MaxCallStackDepth; - - // The maximum number of parameters a function can have when limitExpressionComplexity is turned - // on. - int MaxFunctionParameters; - - // GLES 3.1 constants - - // texture gather offset constraints. - int MinProgramTextureGatherOffset; - int MaxProgramTextureGatherOffset; - - // maximum number of available image units - int MaxImageUnits; - - // OES_sample_variables constant - // maximum number of available samples - int MaxSamples; - - // maximum number of image uniforms in a vertex shader - int MaxVertexImageUniforms; - - // maximum number of image uniforms in a fragment shader - int MaxFragmentImageUniforms; - - // maximum number of image uniforms in a compute shader - int MaxComputeImageUniforms; - - // maximum total number of image uniforms in a program - int MaxCombinedImageUniforms; - - // maximum number of uniform locations - int MaxUniformLocations; - - // maximum number of ssbos and images in a shader - int MaxCombinedShaderOutputResources; - - // maximum number of groups in each dimension - std::array MaxComputeWorkGroupCount; - // maximum number of threads per work group in each dimension - std::array MaxComputeWorkGroupSize; - - // maximum number of total uniform components - int MaxComputeUniformComponents; - - // maximum number of texture image units in a compute shader - int MaxComputeTextureImageUnits; - - // maximum number of atomic counters in a compute shader - int MaxComputeAtomicCounters; - - // maximum number of atomic counter buffers in a compute shader - int MaxComputeAtomicCounterBuffers; - - // maximum number of atomic counters in a vertex shader - int MaxVertexAtomicCounters; - - // maximum number of atomic counters in a fragment shader - int MaxFragmentAtomicCounters; - - // maximum number of atomic counters in a program - int MaxCombinedAtomicCounters; - - // maximum binding for an atomic counter - int MaxAtomicCounterBindings; - - // maximum number of atomic counter buffers in a vertex shader - int MaxVertexAtomicCounterBuffers; - - // maximum number of atomic counter buffers in a fragment shader - int MaxFragmentAtomicCounterBuffers; - - // maximum number of atomic counter buffers in a program - int MaxCombinedAtomicCounterBuffers; - - // maximum number of buffer object storage in machine units - int MaxAtomicCounterBufferSize; - - // maximum number of uniform block bindings - int MaxUniformBufferBindings; - - // maximum number of shader storage buffer bindings - int MaxShaderStorageBufferBindings; - - // maximum point size (higher limit from ALIASED_POINT_SIZE_RANGE) - float MaxPointSize; - - // EXT_geometry_shader constants - int MaxGeometryUniformComponents; - int MaxGeometryUniformBlocks; - int MaxGeometryInputComponents; - int MaxGeometryOutputComponents; - int MaxGeometryOutputVertices; - int MaxGeometryTotalOutputComponents; - int MaxGeometryTextureImageUnits; - int MaxGeometryAtomicCounterBuffers; - int MaxGeometryAtomicCounters; - int MaxGeometryShaderStorageBlocks; - int MaxGeometryShaderInvocations; - int MaxGeometryImageUniforms; - - // EXT_tessellation_shader constants - int MaxTessControlInputComponents; - int MaxTessControlOutputComponents; - int MaxTessControlTextureImageUnits; - int MaxTessControlUniformComponents; - int MaxTessControlTotalOutputComponents; - int MaxTessControlImageUniforms; - int MaxTessControlAtomicCounters; - int MaxTessControlAtomicCounterBuffers; - - int MaxTessPatchComponents; - int MaxPatchVertices; - int MaxTessGenLevel; - - int MaxTessEvaluationInputComponents; - int MaxTessEvaluationOutputComponents; - int MaxTessEvaluationTextureImageUnits; - int MaxTessEvaluationUniformComponents; - int MaxTessEvaluationImageUniforms; - int MaxTessEvaluationAtomicCounters; - int MaxTessEvaluationAtomicCounterBuffers; - - // Subpixel bits used in rasterization. - int SubPixelBits; - - // APPLE_clip_distance/EXT_clip_cull_distance constant - int MaxClipDistances; - int MaxCullDistances; - int MaxCombinedClipAndCullDistances; -}; - -// -// ShHandle held by but opaque to the driver. It is allocated, -// managed, and de-allocated by the compiler. Its contents -// are defined by and used by the compiler. -// -// If handle creation fails, 0 will be returned. -// -using ShHandle = void *; - -namespace sh -{ -using BinaryBlob = std::vector; - -// -// Driver must call this first, once, before doing any other compiler operations. -// If the function succeeds, the return value is true, else false. -// -bool Initialize(); -// -// Driver should call this at shutdown. -// If the function succeeds, the return value is true, else false. -// -bool Finalize(); - -// -// Initialize built-in resources with minimum expected values. -// Parameters: -// resources: The object to initialize. Will be comparable with memcmp. -// -void InitBuiltInResources(ShBuiltInResources *resources); - -// -// Returns the a concatenated list of the items in ShBuiltInResources as a null-terminated string. -// This function must be updated whenever ShBuiltInResources is changed. -// Parameters: -// handle: Specifies the handle of the compiler to be used. -const std::string &GetBuiltInResourcesString(const ShHandle handle); - -// -// Driver calls these to create and destroy compiler objects. -// -// Returns the handle of constructed compiler, null if the requested compiler is not supported. -// Parameters: -// type: Specifies the type of shader - GL_FRAGMENT_SHADER or GL_VERTEX_SHADER. -// spec: Specifies the language spec the compiler must conform to - SH_GLES2_SPEC or SH_WEBGL_SPEC. -// output: Specifies the output code type - for example SH_ESSL_OUTPUT, SH_GLSL_OUTPUT, -// SH_HLSL_3_0_OUTPUT or SH_HLSL_4_1_OUTPUT. Note: Each output type may only -// be supported in some configurations. -// resources: Specifies the built-in resources. -ShHandle ConstructCompiler(sh::GLenum type, - ShShaderSpec spec, - ShShaderOutput output, - const ShBuiltInResources *resources); -void Destruct(ShHandle handle); - -// -// Compiles the given shader source. -// If the function succeeds, the return value is true, else false. -// Parameters: -// handle: Specifies the handle of compiler to be used. -// shaderStrings: Specifies an array of pointers to null-terminated strings containing the shader -// source code. -// numStrings: Specifies the number of elements in shaderStrings array. -// compileOptions: A mask of compile options defined above. -bool Compile(const ShHandle handle, - const char *const shaderStrings[], - size_t numStrings, - const ShCompileOptions &compileOptions); - -// Clears the results from the previous compilation. -void ClearResults(const ShHandle handle); - -// Return the version of the shader language. -int GetShaderVersion(const ShHandle handle); - -// Return the currently set language output type. -ShShaderOutput GetShaderOutputType(const ShHandle handle); - -// Returns null-terminated information log for a compiled shader. -// Parameters: -// handle: Specifies the compiler -const std::string &GetInfoLog(const ShHandle handle); - -// Returns null-terminated object code for a compiled shader. Only valid for output types that -// generate human-readable code (GLSL, ESSL or HLSL). -// Parameters: -// handle: Specifies the compiler -const std::string &GetObjectCode(const ShHandle handle); - -// Returns object binary blob for a compiled shader. Only valid for output types that -// generate binary blob (SPIR-V). -// Parameters: -// handle: Specifies the compiler -const BinaryBlob &GetObjectBinaryBlob(const ShHandle handle); - -// Returns a (original_name, hash) map containing all the user defined names in the shader, -// including variable names, function names, struct names, and struct field names. -// Parameters: -// handle: Specifies the compiler -const std::map *GetNameHashingMap(const ShHandle handle); - -// Shader variable inspection. -// Returns a pointer to a list of variables of the designated type. -// (See ShaderVars.h for type definitions, included above) -// Returns NULL on failure. -// Parameters: -// handle: Specifies the compiler -const std::vector *GetUniforms(const ShHandle handle); -const std::vector *GetVaryings(const ShHandle handle); -const std::vector *GetInputVaryings(const ShHandle handle); -const std::vector *GetOutputVaryings(const ShHandle handle); -const std::vector *GetAttributes(const ShHandle handle); -const std::vector *GetOutputVariables(const ShHandle handle); -const std::vector *GetInterfaceBlocks(const ShHandle handle); -const std::vector *GetUniformBlocks(const ShHandle handle); -const std::vector *GetShaderStorageBlocks(const ShHandle handle); -sh::WorkGroupSize GetComputeShaderLocalGroupSize(const ShHandle handle); -// Returns the number of views specified through the num_views layout qualifier. If num_views is -// not set, the function returns -1. -int GetVertexShaderNumViews(const ShHandle handle); -// Returns true if the shader has specified the |sample| qualifier, implying that per-sample shading -// should be enabled -bool EnablesPerSampleShading(const ShHandle handle); - -// Returns specialization constant usage bits -uint32_t GetShaderSpecConstUsageBits(const ShHandle handle); - -// Returns true if the passed in variables pack in maxVectors followingthe packing rules from the -// GLSL 1.017 spec, Appendix A, section 7. -// Returns false otherwise. Also look at the enforcePackingRestrictions flag above. -// Parameters: -// maxVectors: the available rows of registers. -// variables: an array of variables. -bool CheckVariablesWithinPackingLimits(int maxVectors, - const std::vector &variables); - -// Gives the compiler-assigned register for a shader storage block. -// The method writes the value to the output variable "indexOut". -// Returns true if it found a valid shader storage block, false otherwise. -// Parameters: -// handle: Specifies the compiler -// shaderStorageBlockName: Specifies the shader storage block -// indexOut: output variable that stores the assigned register -bool GetShaderStorageBlockRegister(const ShHandle handle, - const std::string &shaderStorageBlockName, - unsigned int *indexOut); - -// Gives the compiler-assigned register for a uniform block. -// The method writes the value to the output variable "indexOut". -// Returns true if it found a valid uniform block, false otherwise. -// Parameters: -// handle: Specifies the compiler -// uniformBlockName: Specifies the uniform block -// indexOut: output variable that stores the assigned register -bool GetUniformBlockRegister(const ShHandle handle, - const std::string &uniformBlockName, - unsigned int *indexOut); - -bool ShouldUniformBlockUseStructuredBuffer(const ShHandle handle, - const std::string &uniformBlockName); -const std::set *GetSlowCompilingUniformBlockSet(const ShHandle handle); - -// Gives a map from uniform names to compiler-assigned registers in the default uniform block. -// Note that the map contains also registers of samplers that have been extracted from structs. -const std::map *GetUniformRegisterMap(const ShHandle handle); - -// Sampler, image and atomic counters share registers(t type and u type), -// GetReadonlyImage2DRegisterIndex and GetImage2DRegisterIndex return the first index into -// a range of reserved registers for image2D/iimage2D/uimage2D variables. -// Parameters: handle: Specifies the compiler -unsigned int GetReadonlyImage2DRegisterIndex(const ShHandle handle); -unsigned int GetImage2DRegisterIndex(const ShHandle handle); - -// The method records these used function names related with image2D/iimage2D/uimage2D, these -// functions will be dynamically generated. -// Parameters: -// handle: Specifies the compiler -const std::set *GetUsedImage2DFunctionNames(const ShHandle handle); - -bool HasDiscardInFragmentShader(const ShHandle handle); -bool HasValidGeometryShaderInputPrimitiveType(const ShHandle handle); -bool HasValidGeometryShaderOutputPrimitiveType(const ShHandle handle); -bool HasValidGeometryShaderMaxVertices(const ShHandle handle); -bool HasValidTessGenMode(const ShHandle handle); -bool HasValidTessGenSpacing(const ShHandle handle); -bool HasValidTessGenVertexOrder(const ShHandle handle); -bool HasValidTessGenPointMode(const ShHandle handle); -GLenum GetGeometryShaderInputPrimitiveType(const ShHandle handle); -GLenum GetGeometryShaderOutputPrimitiveType(const ShHandle handle); -int GetGeometryShaderInvocations(const ShHandle handle); -int GetGeometryShaderMaxVertices(const ShHandle handle); -unsigned int GetShaderSharedMemorySize(const ShHandle handle); -int GetTessControlShaderVertices(const ShHandle handle); -GLenum GetTessGenMode(const ShHandle handle); -GLenum GetTessGenSpacing(const ShHandle handle); -GLenum GetTessGenVertexOrder(const ShHandle handle); -GLenum GetTessGenPointMode(const ShHandle handle); - -// Returns the blend equation list supported in the fragment shader. This is a bitset of -// gl::BlendEquationType, and can only include bits from KHR_blend_equation_advanced. -uint32_t GetAdvancedBlendEquations(const ShHandle handle); - -// -// Helper function to identify specs that are based on the WebGL spec. -// -inline bool IsWebGLBasedSpec(ShShaderSpec spec) -{ - return (spec == SH_WEBGL_SPEC || spec == SH_WEBGL2_SPEC || spec == SH_WEBGL3_SPEC); -} - -// -// Helper function to identify DesktopGL specs -// -inline bool IsDesktopGLSpec(ShShaderSpec spec) -{ - return spec == SH_GL_CORE_SPEC || spec == SH_GL_COMPATIBILITY_SPEC; -} - -// Can't prefix with just _ because then we might introduce a double underscore, which is not safe -// in GLSL (ESSL 3.00.6 section 3.8: All identifiers containing a double underscore are reserved for -// use by the underlying implementation). u is short for user-defined. -extern const char kUserDefinedNamePrefix[]; - -namespace vk -{ - -// Specialization constant ids -enum class SpecializationConstantId : uint32_t -{ - SurfaceRotation = 0, - Dither = 1, - - InvalidEnum = 2, - EnumCount = InvalidEnum, -}; - -enum class SpecConstUsage : uint32_t -{ - Rotation = 0, - Dither = 1, - - InvalidEnum = 2, - EnumCount = InvalidEnum, -}; - -enum ColorAttachmentDitherControl -{ - // See comments in ContextVk::updateDither and EmulateDithering.cpp - kDitherControlNoDither = 0, - kDitherControlDither4444 = 1, - kDitherControlDither5551 = 2, - kDitherControlDither565 = 3, -}; - -// Interface block name containing the aggregate default uniforms -extern const char kDefaultUniformsNameVS[]; -extern const char kDefaultUniformsNameTCS[]; -extern const char kDefaultUniformsNameTES[]; -extern const char kDefaultUniformsNameGS[]; -extern const char kDefaultUniformsNameFS[]; -extern const char kDefaultUniformsNameCS[]; - -// Interface block and variable names containing driver uniforms -extern const char kDriverUniformsBlockName[]; -extern const char kDriverUniformsVarName[]; - -// Packing information for driver uniform's misc field: -// - 1 bit for whether surface rotation results in swapped axes -// - 5 bits for advanced blend equation -// - 6 bits for sample count -// - 8 bits for enabled clip planes -// - 1 bit for whether depth should be transformed to Vulkan clip space -// - 11 bits unused -constexpr uint32_t kDriverUniformsMiscSwapXYMask = 0x1; -constexpr uint32_t kDriverUniformsMiscAdvancedBlendEquationOffset = 1; -constexpr uint32_t kDriverUniformsMiscAdvancedBlendEquationMask = 0x1F; -constexpr uint32_t kDriverUniformsMiscSampleCountOffset = 6; -constexpr uint32_t kDriverUniformsMiscSampleCountMask = 0x3F; -constexpr uint32_t kDriverUniformsMiscEnabledClipPlanesOffset = 12; -constexpr uint32_t kDriverUniformsMiscEnabledClipPlanesMask = 0xFF; -constexpr uint32_t kDriverUniformsMiscTransformDepthOffset = 20; -constexpr uint32_t kDriverUniformsMiscTransformDepthMask = 0x1; - -// Interface block array name used for atomic counter emulation -extern const char kAtomicCountersBlockName[]; - -// Transform feedback emulation support -extern const char kXfbEmulationGetOffsetsFunctionName[]; -extern const char kXfbEmulationCaptureFunctionName[]; -extern const char kXfbEmulationBufferBlockName[]; -extern const char kXfbEmulationBufferName[]; -extern const char kXfbEmulationBufferFieldName[]; - -// Transform feedback extension support -extern const char kXfbExtensionPositionOutName[]; - -// Pre-rotation support -extern const char kTransformPositionFunctionName[]; - -// EXT_shader_framebuffer_fetch and EXT_shader_framebuffer_fetch_non_coherent -extern const char kInputAttachmentName[]; - -} // namespace vk - -namespace mtl -{ -// Specialization constant to enable GL_SAMPLE_COVERAGE_VALUE emulation. -extern const char kCoverageMaskEnabledConstName[]; - -// Specialization constant to emulate rasterizer discard. -extern const char kRasterizerDiscardEnabledConstName[]; - -// Specialization constant to enable depth write in fragment shaders. -extern const char kDepthWriteEnabledConstName[]; -} // namespace mtl - -// For backends that use glslang (the Vulkan shader compiler), i.e. Vulkan and Metal, call these to -// initialize and finalize glslang itself. This can be called independently from Initialize() and -// Finalize(). -void InitializeGlslang(); -void FinalizeGlslang(); - -} // namespace sh - -#endif // GLSLANG_SHADERLANG_H_ diff --git a/milepost/ext/angle_headers/GLSLANG/ShaderVars.h b/milepost/ext/angle_headers/GLSLANG/ShaderVars.h deleted file mode 100644 index ac1cd5e..0000000 --- a/milepost/ext/angle_headers/GLSLANG/ShaderVars.h +++ /dev/null @@ -1,330 +0,0 @@ -// -// Copyright 2013 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// ShaderVars.h: -// Types to represent GL variables (varyings, uniforms, etc) -// - -#ifndef GLSLANG_SHADERVARS_H_ -#define GLSLANG_SHADERVARS_H_ - -#include -#include -#include -#include - -namespace sh -{ -// GLenum alias -typedef unsigned int GLenum; - -// Varying interpolation qualifier, see section 4.3.9 of the ESSL 3.00.4 spec -enum InterpolationType -{ - INTERPOLATION_SMOOTH, - INTERPOLATION_CENTROID, - INTERPOLATION_SAMPLE, - INTERPOLATION_FLAT, - INTERPOLATION_NOPERSPECTIVE -}; - -const char *InterpolationTypeToString(InterpolationType type); - -// Validate link & SSO consistency of interpolation qualifiers -bool InterpolationTypesMatch(InterpolationType a, InterpolationType b); - -// Uniform block layout qualifier, see section 4.3.8.3 of the ESSL 3.00.4 spec -enum BlockLayoutType -{ - BLOCKLAYOUT_STANDARD, - BLOCKLAYOUT_STD140 = BLOCKLAYOUT_STANDARD, - BLOCKLAYOUT_STD430, // Shader storage block layout qualifier - BLOCKLAYOUT_PACKED, - BLOCKLAYOUT_SHARED -}; - -const char *BlockLayoutTypeToString(BlockLayoutType type); - -// Interface Blocks, see section 4.3.9 of the ESSL 3.10 spec -enum class BlockType -{ - BLOCK_UNIFORM, - BLOCK_BUFFER, -}; - -const char *BlockTypeToString(BlockType type); - -// Base class for all variables defined in shaders, including Varyings, Uniforms, etc -// Note: we must override the copy constructor and assignment operator so we can -// work around excessive GCC binary bloating: -// See https://code.google.com/p/angleproject/issues/detail?id=697 -struct ShaderVariable -{ - ShaderVariable(); - ShaderVariable(GLenum typeIn); - ShaderVariable(GLenum typeIn, unsigned int arraySizeIn); - ~ShaderVariable(); - ShaderVariable(const ShaderVariable &other); - ShaderVariable &operator=(const ShaderVariable &other); - bool operator==(const ShaderVariable &other) const; - bool operator!=(const ShaderVariable &other) const { return !operator==(other); } - - bool isArrayOfArrays() const { return arraySizes.size() >= 2u; } - bool isArray() const { return !arraySizes.empty(); } - unsigned int getArraySizeProduct() const; - // Return the inner array size product. - // For example, if there's a variable declared as size 3 array of size 4 array of size 5 array - // of int: - // int a[3][4][5]; - // then getInnerArraySizeProduct of a would be 4*5. - unsigned int getInnerArraySizeProduct() const; - - // Array size 0 means not an array when passed to or returned from these functions. - // Note that setArraySize() is deprecated and should not be used inside ANGLE. - unsigned int getOutermostArraySize() const { return isArray() ? arraySizes.back() : 0; } - void setArraySize(unsigned int size); - - // Turn this ShaderVariable from an array into a specific element in that array. Will update - // flattenedOffsetInParentArrays. - void indexIntoArray(unsigned int arrayIndex); - - // Get the nth nested array size from the top. Caller is responsible for range checking - // arrayNestingIndex. - unsigned int getNestedArraySize(unsigned int arrayNestingIndex) const; - - // This function should only be used with variables that are of a basic type or an array of a - // basic type. Shader interface variables that are enumerated according to rules in GLES 3.1 - // spec section 7.3.1.1 page 77 are fine. For those variables the return value should match the - // ARRAY_SIZE value that can be queried through the API. - unsigned int getBasicTypeElementCount() const; - - unsigned int getExternalSize() const; - - bool isStruct() const { return !fields.empty(); } - const std::string &getStructName() const { return structOrBlockName; } - void setStructName(const std::string &newName) { structOrBlockName = newName; } - - // All of the shader's variables are described using nested data - // structures. This is needed in order to disambiguate similar looking - // types, such as two structs containing the same fields, but in - // different orders. "findInfoByMappedName" provides an easy query for - // users to dive into the data structure and fetch the unique variable - // instance corresponding to a dereferencing chain of the top-level - // variable. - // Given a mapped name like 'a[0].b.c[0]', return the ShaderVariable - // that defines 'c' in |leafVar|, and the original name 'A[0].B.C[0]' - // in |originalName|, based on the assumption that |this| defines 'a'. - // If no match is found, return false. - bool findInfoByMappedName(const std::string &mappedFullName, - const ShaderVariable **leafVar, - std::string *originalFullName) const; - - // Find the child field which matches 'fullName' == var.name + "." + field.name. - // Return nullptr if not found. - const sh::ShaderVariable *findField(const std::string &fullName, uint32_t *fieldIndexOut) const; - - bool isBuiltIn() const; - bool isEmulatedBuiltIn() const; - - // Offset of this variable in parent arrays. In case the parent is an array of arrays, the - // offset is outerArrayElement * innerArraySize + innerArrayElement. - // For example, if there's a variable declared as size 3 array of size 4 array of int: - // int a[3][4]; - // then the flattenedOffsetInParentArrays of a[2] would be 2. - // and flattenedOffsetInParentArrays of a[2][1] would be 2*4 + 1 = 9. - int parentArrayIndex() const - { - return hasParentArrayIndex() ? flattenedOffsetInParentArrays : 0; - } - - int getFlattenedOffsetInParentArrays() const { return flattenedOffsetInParentArrays; } - void setParentArrayIndex(int indexIn) { flattenedOffsetInParentArrays = indexIn; } - - bool hasParentArrayIndex() const { return flattenedOffsetInParentArrays != -1; } - - void resetEffectiveLocation(); - void updateEffectiveLocation(const sh::ShaderVariable &parent); - - // Decide whether two uniforms are the same at shader link time, - // assuming they are from consecutive shader stages. - // GLSL ES Spec 3.00.3, section 4.3.5. - // GLSL ES Spec 3.10.4, section 4.4.5 - bool isSameUniformAtLinkTime(const ShaderVariable &other) const; - - // InterfaceBlockField - // Decide whether two InterfaceBlock fields are the same at shader - // link time, assuming they are from consecutive shader stages. - // See GLSL ES Spec 3.00.3, sec 4.3.7. - bool isSameInterfaceBlockFieldAtLinkTime(const ShaderVariable &other) const; - - // Decide whether two varyings are the same at shader link time, - // assuming they are from consecutive shader stages. - // Invariance needs to match only in ESSL1. Relevant spec sections: - // GLSL ES 3.00.4, sections 4.6.1 and 4.3.9. - // GLSL ES 1.00.17, section 4.6.4. - bool isSameVaryingAtLinkTime(const ShaderVariable &other, int shaderVersion) const; - // Deprecated version of isSameVaryingAtLinkTime, which assumes ESSL1. - bool isSameVaryingAtLinkTime(const ShaderVariable &other) const; - - // Shader I/O blocks may match by block name or instance, based on whether both stages have an - // instance name or not. - bool isSameNameAtLinkTime(const ShaderVariable &other) const; - - // NOTE: When adding new members, the following functions also need to be updated: - // gl::WriteShaderVar(BinaryOutputStream *stream, const sh::ShaderVariable &var) - // gl::LoadShaderVar(BinaryInputStream *stream, sh::ShaderVariable *var) - - GLenum type; - GLenum precision; - std::string name; - std::string mappedName; - - // Used to make an array type. Outermost array size is stored at the end of the vector. - std::vector arraySizes; - - // Static use means that the variable is accessed somewhere in the shader source. - bool staticUse; - // A variable is active unless the compiler determined that it is not accessed by the shader. - // All active variables are statically used, but not all statically used variables are - // necessarily active. GLES 3.0.5 section 2.12.6. GLES 3.1 section 7.3.1. - bool active; - std::vector fields; - // structOrBlockName is used for: - // - varyings of struct type, in which case it contains the struct name. - // - shader I/O blocks, in which case it contains the block name. - std::string structOrBlockName; - std::string mappedStructOrBlockName; - - // Only applies to interface block fields. Kept here for simplicity. - bool isRowMajorLayout; - - // VariableWithLocation - int location; - - // The location of inputs or outputs without location layout quailifer will be updated to '-1'. - // GLES Spec 3.1, Section 7.3. PROGRAM OBJECTS - // Not all active variables are assigned valid locations; - // the following variables will have an effective location of -1: - bool hasImplicitLocation; - - // Uniform - int binding; - GLenum imageUnitFormat; - int offset; - bool readonly; - bool writeonly; - - // From EXT_shader_framebuffer_fetch / KHR_blend_equation_advanced - bool isFragmentInOut; - - // OutputVariable - // From EXT_blend_func_extended. - int index; - - // From EXT_YUV_target - bool yuv; - - // Varying - InterpolationType interpolation; - bool isInvariant; - bool isShaderIOBlock; - bool isPatch; - - // If the variable is a sampler that has ever been statically used with texelFetch - bool texelFetchStaticUse; - - protected: - bool isSameVariableAtLinkTime(const ShaderVariable &other, - bool matchPrecision, - bool matchName) const; - - // NOTE: When adding new members, the following functions also need to be updated: - // gl::WriteShaderVar(BinaryOutputStream *stream, const sh::ShaderVariable &var) - // gl::LoadShaderVar(BinaryInputStream *stream, sh::ShaderVariable *var) - - int flattenedOffsetInParentArrays; -}; - -// TODO: anglebug.com/3899 -// For backwards compatibility for other codebases (e.g., chromium/src/gpu/command_buffer/service) -using Uniform = ShaderVariable; -using Attribute = ShaderVariable; -using OutputVariable = ShaderVariable; -using InterfaceBlockField = ShaderVariable; -using Varying = ShaderVariable; - -struct InterfaceBlock -{ - InterfaceBlock(); - ~InterfaceBlock(); - InterfaceBlock(const InterfaceBlock &other); - InterfaceBlock &operator=(const InterfaceBlock &other); - - // Fields from blocks with non-empty instance names are prefixed with the block name. - std::string fieldPrefix() const; - std::string fieldMappedPrefix() const; - - // Decide whether two interface blocks are the same at shader link time. - bool isSameInterfaceBlockAtLinkTime(const InterfaceBlock &other) const; - - bool isBuiltIn() const; - - bool isArray() const { return arraySize > 0; } - unsigned int elementCount() const { return std::max(1u, arraySize); } - - std::string name; - std::string mappedName; - std::string instanceName; - unsigned int arraySize; - BlockLayoutType layout; - - // Deprecated. Matrix packing should only be queried from individual fields of the block. - // TODO(oetuaho): Remove this once it is no longer used in Chromium. - bool isRowMajorLayout; - - int binding; - bool staticUse; - bool active; - BlockType blockType; - std::vector fields; -}; - -struct WorkGroupSize -{ - // Must have a trivial default constructor since it is used in YYSTYPE. - inline WorkGroupSize() = default; - inline explicit constexpr WorkGroupSize(int initialSize); - - void fill(int fillValue); - void setLocalSize(int localSizeX, int localSizeY, int localSizeZ); - - int &operator[](size_t index); - int operator[](size_t index) const; - size_t size() const; - - // Checks whether two work group size declarations match. - // Two work group size declarations are the same if the explicitly specified elements are the - // same or if one of them is specified as one and the other one is not specified - bool isWorkGroupSizeMatching(const WorkGroupSize &right) const; - - // Checks whether any of the values are set. - bool isAnyValueSet() const; - - // Checks whether all of the values are set. - bool isDeclared() const; - - // Checks whether either all of the values are set, or none of them are. - bool isLocalSizeValid() const; - - int localSizeQualifiers[3]; -}; - -inline constexpr WorkGroupSize::WorkGroupSize(int initialSize) - : localSizeQualifiers{initialSize, initialSize, initialSize} -{} - -} // namespace sh - -#endif // GLSLANG_SHADERVARS_H_ diff --git a/milepost/ext/angle_headers/KHR/.clang-format b/milepost/ext/angle_headers/KHR/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/KHR/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/KHR/khrplatform.h b/milepost/ext/angle_headers/KHR/khrplatform.h deleted file mode 100644 index dd22d92..0000000 --- a/milepost/ext/angle_headers/KHR/khrplatform.h +++ /dev/null @@ -1,290 +0,0 @@ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * The master copy of khrplatform.h is maintained in the Khronos EGL - * Registry repository at https://github.com/KhronosGroup/EGL-Registry - * The last semantic modification to khrplatform.h was at commit ID: - * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by filing pull requests or issues on - * the EGL Registry repository linked above. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) -# define KHRONOS_STATIC 1 -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(KHRONOS_STATIC) - /* If the preprocessor constant KHRONOS_STATIC is defined, make the - * header compatible with static linking. */ -# define KHRONOS_APICALL -#elif defined(_WIN32) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#elif defined(__ANDROID__) -# define KHRONOS_APICALL __attribute__((visibility("default"))) -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ diff --git a/milepost/ext/angle_headers/WGL/.clang-format b/milepost/ext/angle_headers/WGL/.clang-format deleted file mode 100644 index 9d15924..0000000 --- a/milepost/ext/angle_headers/WGL/.clang-format +++ /dev/null @@ -1,2 +0,0 @@ -DisableFormat: true -SortIncludes: false diff --git a/milepost/ext/angle_headers/WGL/wgl.h b/milepost/ext/angle_headers/WGL/wgl.h deleted file mode 100644 index 0bae52b..0000000 --- a/milepost/ext/angle_headers/WGL/wgl.h +++ /dev/null @@ -1,946 +0,0 @@ -#ifndef __wgl_wgl_h_ -#define __wgl_wgl_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2013-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ -/* -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -/* Generated on date 20181206 */ - -/* Generated C header for: - * API: wgl - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: wgl - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef WGL_VERSION_1_0 -#define WGL_VERSION_1_0 1 -#define WGL_FONT_LINES 0 -#define WGL_FONT_POLYGONS 1 -#define WGL_SWAP_MAIN_PLANE 0x00000001 -#define WGL_SWAP_OVERLAY1 0x00000002 -#define WGL_SWAP_OVERLAY2 0x00000004 -#define WGL_SWAP_OVERLAY3 0x00000008 -#define WGL_SWAP_OVERLAY4 0x00000010 -#define WGL_SWAP_OVERLAY5 0x00000020 -#define WGL_SWAP_OVERLAY6 0x00000040 -#define WGL_SWAP_OVERLAY7 0x00000080 -#define WGL_SWAP_OVERLAY8 0x00000100 -#define WGL_SWAP_OVERLAY9 0x00000200 -#define WGL_SWAP_OVERLAY10 0x00000400 -#define WGL_SWAP_OVERLAY11 0x00000800 -#define WGL_SWAP_OVERLAY12 0x00001000 -#define WGL_SWAP_OVERLAY13 0x00002000 -#define WGL_SWAP_OVERLAY14 0x00004000 -#define WGL_SWAP_OVERLAY15 0x00008000 -#define WGL_SWAP_UNDERLAY1 0x00010000 -#define WGL_SWAP_UNDERLAY2 0x00020000 -#define WGL_SWAP_UNDERLAY3 0x00040000 -#define WGL_SWAP_UNDERLAY4 0x00080000 -#define WGL_SWAP_UNDERLAY5 0x00100000 -#define WGL_SWAP_UNDERLAY6 0x00200000 -#define WGL_SWAP_UNDERLAY7 0x00400000 -#define WGL_SWAP_UNDERLAY8 0x00800000 -#define WGL_SWAP_UNDERLAY9 0x01000000 -#define WGL_SWAP_UNDERLAY10 0x02000000 -#define WGL_SWAP_UNDERLAY11 0x04000000 -#define WGL_SWAP_UNDERLAY12 0x08000000 -#define WGL_SWAP_UNDERLAY13 0x10000000 -#define WGL_SWAP_UNDERLAY14 0x20000000 -#define WGL_SWAP_UNDERLAY15 0x40000000 -typedef int (WINAPI * PFNCHOOSEPIXELFORMATPROC) (HDC hDc, const PIXELFORMATDESCRIPTOR *pPfd); -typedef int (WINAPI * PFNDESCRIBEPIXELFORMATPROC) (HDC hdc, int ipfd, UINT cjpfd, const PIXELFORMATDESCRIPTOR *ppfd); -typedef UINT (WINAPI * PFNGETENHMETAFILEPIXELFORMATPROC) (HENHMETAFILE hemf, const PIXELFORMATDESCRIPTOR *ppfd); -typedef int (WINAPI * PFNGETPIXELFORMATPROC) (HDC hdc); -typedef BOOL (WINAPI * PFNSETPIXELFORMATPROC) (HDC hdc, int ipfd, const PIXELFORMATDESCRIPTOR *ppfd); -typedef BOOL (WINAPI * PFNSWAPBUFFERSPROC) (HDC hdc); -typedef BOOL (WINAPI * PFNWGLCOPYCONTEXTPROC) (HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask); -typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTPROC) (HDC hDc); -typedef HGLRC (WINAPI * PFNWGLCREATELAYERCONTEXTPROC) (HDC hDc, int level); -typedef BOOL (WINAPI * PFNWGLDELETECONTEXTPROC) (HGLRC oldContext); -typedef BOOL (WINAPI * PFNWGLDESCRIBELAYERPLANEPROC) (HDC hDc, int pixelFormat, int layerPlane, UINT nBytes, const LAYERPLANEDESCRIPTOR *plpd); -typedef HGLRC (WINAPI * PFNWGLGETCURRENTCONTEXTPROC) (void); -typedef HDC (WINAPI * PFNWGLGETCURRENTDCPROC) (void); -typedef int (WINAPI * PFNWGLGETLAYERPALETTEENTRIESPROC) (HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr); -typedef PROC (WINAPI * PFNWGLGETPROCADDRESSPROC) (LPCSTR lpszProc); -typedef BOOL (WINAPI * PFNWGLMAKECURRENTPROC) (HDC hDc, HGLRC newContext); -typedef BOOL (WINAPI * PFNWGLREALIZELAYERPALETTEPROC) (HDC hdc, int iLayerPlane, BOOL bRealize); -typedef int (WINAPI * PFNWGLSETLAYERPALETTEENTRIESPROC) (HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr); -typedef BOOL (WINAPI * PFNWGLSHARELISTSPROC) (HGLRC hrcSrvShare, HGLRC hrcSrvSource); -typedef BOOL (WINAPI * PFNWGLSWAPLAYERBUFFERSPROC) (HDC hdc, UINT fuFlags); -typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSPROC) (HDC hDC, DWORD first, DWORD count, DWORD listBase); -typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSAPROC) (HDC hDC, DWORD first, DWORD count, DWORD listBase); -typedef BOOL (WINAPI * PFNWGLUSEFONTBITMAPSWPROC) (HDC hDC, DWORD first, DWORD count, DWORD listBase); -typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESPROC) (HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); -typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESAPROC) (HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); -typedef BOOL (WINAPI * PFNWGLUSEFONTOUTLINESWPROC) (HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); -#ifdef WGL_WGLEXT_PROTOTYPES -int WINAPI ChoosePixelFormat (HDC hDc, const PIXELFORMATDESCRIPTOR *pPfd); -int WINAPI DescribePixelFormat (HDC hdc, int ipfd, UINT cjpfd, const PIXELFORMATDESCRIPTOR *ppfd); -UINT WINAPI GetEnhMetaFilePixelFormat (HENHMETAFILE hemf, const PIXELFORMATDESCRIPTOR *ppfd); -int WINAPI GetPixelFormat (HDC hdc); -BOOL WINAPI SetPixelFormat (HDC hdc, int ipfd, const PIXELFORMATDESCRIPTOR *ppfd); -BOOL WINAPI SwapBuffers (HDC hdc); -BOOL WINAPI wglCopyContext (HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask); -HGLRC WINAPI wglCreateContext (HDC hDc); -HGLRC WINAPI wglCreateLayerContext (HDC hDc, int level); -BOOL WINAPI wglDeleteContext (HGLRC oldContext); -BOOL WINAPI wglDescribeLayerPlane (HDC hDc, int pixelFormat, int layerPlane, UINT nBytes, const LAYERPLANEDESCRIPTOR *plpd); -HGLRC WINAPI wglGetCurrentContext (void); -HDC WINAPI wglGetCurrentDC (void); -int WINAPI wglGetLayerPaletteEntries (HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr); -PROC WINAPI wglGetProcAddress (LPCSTR lpszProc); -BOOL WINAPI wglMakeCurrent (HDC hDc, HGLRC newContext); -BOOL WINAPI wglRealizeLayerPalette (HDC hdc, int iLayerPlane, BOOL bRealize); -int WINAPI wglSetLayerPaletteEntries (HDC hdc, int iLayerPlane, int iStart, int cEntries, const COLORREF *pcr); -BOOL WINAPI wglShareLists (HGLRC hrcSrvShare, HGLRC hrcSrvSource); -BOOL WINAPI wglSwapLayerBuffers (HDC hdc, UINT fuFlags); -BOOL WINAPI wglUseFontBitmaps (HDC hDC, DWORD first, DWORD count, DWORD listBase); -BOOL WINAPI wglUseFontBitmapsA (HDC hDC, DWORD first, DWORD count, DWORD listBase); -BOOL WINAPI wglUseFontBitmapsW (HDC hDC, DWORD first, DWORD count, DWORD listBase); -BOOL WINAPI wglUseFontOutlines (HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); -BOOL WINAPI wglUseFontOutlinesA (HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); -BOOL WINAPI wglUseFontOutlinesW (HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf); -#endif -#endif /* WGL_VERSION_1_0 */ - -#ifndef WGL_ARB_buffer_region -#define WGL_ARB_buffer_region 1 -#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 -#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 -#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 -#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 -typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); -typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); -typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); -typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -#ifdef WGL_WGLEXT_PROTOTYPES -HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType); -VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion); -BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height); -BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -#endif -#endif /* WGL_ARB_buffer_region */ - -#ifndef WGL_ARB_context_flush_control -#define WGL_ARB_context_flush_control 1 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 -#endif /* WGL_ARB_context_flush_control */ - -#ifndef WGL_ARB_create_context -#define WGL_ARB_create_context 1 -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 -#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 -#define WGL_CONTEXT_FLAGS_ARB 0x2094 -#define ERROR_INVALID_VERSION_ARB 0x2095 -typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList); -#ifdef WGL_WGLEXT_PROTOTYPES -HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList); -#endif -#endif /* WGL_ARB_create_context */ - -#ifndef WGL_ARB_create_context_no_error -#define WGL_ARB_create_context_no_error 1 -#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 -#endif /* WGL_ARB_create_context_no_error */ - -#ifndef WGL_ARB_create_context_profile -#define WGL_ARB_create_context_profile 1 -#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 -#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define ERROR_INVALID_PROFILE_ARB 0x2096 -#endif /* WGL_ARB_create_context_profile */ - -#ifndef WGL_ARB_create_context_robustness -#define WGL_ARB_create_context_robustness 1 -#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 -#endif /* WGL_ARB_create_context_robustness */ - -#ifndef WGL_ARB_extensions_string -#define WGL_ARB_extensions_string 1 -typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); -#ifdef WGL_WGLEXT_PROTOTYPES -const char *WINAPI wglGetExtensionsStringARB (HDC hdc); -#endif -#endif /* WGL_ARB_extensions_string */ - -#ifndef WGL_ARB_framebuffer_sRGB -#define WGL_ARB_framebuffer_sRGB 1 -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 -#endif /* WGL_ARB_framebuffer_sRGB */ - -#ifndef WGL_ARB_make_current_read -#define WGL_ARB_make_current_read 1 -#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 -#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -HDC WINAPI wglGetCurrentReadDCARB (void); -#endif -#endif /* WGL_ARB_make_current_read */ - -#ifndef WGL_ARB_multisample -#define WGL_ARB_multisample 1 -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 -#endif /* WGL_ARB_multisample */ - -#ifndef WGL_ARB_pbuffer -#define WGL_ARB_pbuffer 1 -DECLARE_HANDLE(HPBUFFERARB); -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 -typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); -#ifdef WGL_WGLEXT_PROTOTYPES -HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer); -int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC); -BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer); -BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); -#endif -#endif /* WGL_ARB_pbuffer */ - -#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); -BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); -BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif -#endif /* WGL_ARB_pixel_format */ - -#ifndef WGL_ARB_pixel_format_float -#define WGL_ARB_pixel_format_float 1 -#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 -#endif /* WGL_ARB_pixel_format_float */ - -#ifndef WGL_ARB_render_texture -#define WGL_ARB_render_texture 1 -#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 -#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 -#define WGL_TEXTURE_FORMAT_ARB 0x2072 -#define WGL_TEXTURE_TARGET_ARB 0x2073 -#define WGL_MIPMAP_TEXTURE_ARB 0x2074 -#define WGL_TEXTURE_RGB_ARB 0x2075 -#define WGL_TEXTURE_RGBA_ARB 0x2076 -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 -#define WGL_TEXTURE_1D_ARB 0x2079 -#define WGL_TEXTURE_2D_ARB 0x207A -#define WGL_MIPMAP_LEVEL_ARB 0x207B -#define WGL_CUBE_MAP_FACE_ARB 0x207C -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 -#define WGL_FRONT_LEFT_ARB 0x2083 -#define WGL_FRONT_RIGHT_ARB 0x2084 -#define WGL_BACK_LEFT_ARB 0x2085 -#define WGL_BACK_RIGHT_ARB 0x2086 -#define WGL_AUX0_ARB 0x2087 -#define WGL_AUX1_ARB 0x2088 -#define WGL_AUX2_ARB 0x2089 -#define WGL_AUX3_ARB 0x208A -#define WGL_AUX4_ARB 0x208B -#define WGL_AUX5_ARB 0x208C -#define WGL_AUX6_ARB 0x208D -#define WGL_AUX7_ARB 0x208E -#define WGL_AUX8_ARB 0x208F -#define WGL_AUX9_ARB 0x2090 -typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer); -BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer); -BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList); -#endif -#endif /* WGL_ARB_render_texture */ - -#ifndef WGL_ARB_robustness_application_isolation -#define WGL_ARB_robustness_application_isolation 1 -#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 -#endif /* WGL_ARB_robustness_application_isolation */ - -#ifndef WGL_ARB_robustness_share_group_isolation -#define WGL_ARB_robustness_share_group_isolation 1 -#endif /* WGL_ARB_robustness_share_group_isolation */ - -#ifndef WGL_3DFX_multisample -#define WGL_3DFX_multisample 1 -#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 -#define WGL_SAMPLES_3DFX 0x2061 -#endif /* WGL_3DFX_multisample */ - -#ifndef WGL_3DL_stereo_control -#define WGL_3DL_stereo_control 1 -#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 -#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 -#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 -#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 -typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState); -#endif -#endif /* WGL_3DL_stereo_control */ - -#ifndef WGL_AMD_gpu_association -#define WGL_AMD_gpu_association 1 -#define WGL_GPU_VENDOR_AMD 0x1F00 -#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 -#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define WGL_GPU_RAM_AMD 0x21A3 -#define WGL_GPU_CLOCK_AMD 0x21A4 -#define WGL_GPU_NUM_PIPES_AMD 0x21A5 -#define WGL_GPU_NUM_SIMD_AMD 0x21A6 -#define WGL_GPU_NUM_RB_AMD 0x21A7 -#define WGL_GPU_NUM_SPI_AMD 0x21A8 -typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids); -typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data); -typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList); -typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); -typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); -typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); -typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#ifdef WGL_WGLEXT_PROTOTYPES -UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids); -INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data); -UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc); -HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id); -HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList); -BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc); -BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc); -HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void); -VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif -#endif /* WGL_AMD_gpu_association */ - -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float 1 -#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 -#endif /* WGL_ATI_pixel_format_float */ - -#ifndef WGL_ATI_render_texture_rectangle -#define WGL_ATI_render_texture_rectangle 1 -#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 -#endif /* WGL_ATI_render_texture_rectangle */ - -#ifndef WGL_EXT_colorspace -#define WGL_EXT_colorspace 1 -#define WGL_COLORSPACE_EXT 0x309D -#define WGL_COLORSPACE_SRGB_EXT 0x3089 -#define WGL_COLORSPACE_LINEAR_EXT 0x308A -#endif /* WGL_EXT_colorspace */ - -#ifndef WGL_EXT_create_context_es2_profile -#define WGL_EXT_create_context_es2_profile 1 -#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 -#endif /* WGL_EXT_create_context_es2_profile */ - -#ifndef WGL_EXT_create_context_es_profile -#define WGL_EXT_create_context_es_profile 1 -#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 -#endif /* WGL_EXT_create_context_es_profile */ - -#ifndef WGL_EXT_depth_float -#define WGL_EXT_depth_float 1 -#define WGL_DEPTH_FLOAT_EXT 0x2040 -#endif /* WGL_EXT_depth_float */ - -#ifndef WGL_EXT_display_color_table -#define WGL_EXT_display_color_table 1 -typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length); -typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -#ifdef WGL_WGLEXT_PROTOTYPES -GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id); -GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length); -GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id); -VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id); -#endif -#endif /* WGL_EXT_display_color_table */ - -#ifndef WGL_EXT_extensions_string -#define WGL_EXT_extensions_string 1 -typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); -#ifdef WGL_WGLEXT_PROTOTYPES -const char *WINAPI wglGetExtensionsStringEXT (void); -#endif -#endif /* WGL_EXT_extensions_string */ - -#ifndef WGL_EXT_framebuffer_sRGB -#define WGL_EXT_framebuffer_sRGB 1 -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 -#endif /* WGL_EXT_framebuffer_sRGB */ - -#ifndef WGL_EXT_make_current_read -#define WGL_EXT_make_current_read 1 -#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -HDC WINAPI wglGetCurrentReadDCEXT (void); -#endif -#endif /* WGL_EXT_make_current_read */ - -#ifndef WGL_EXT_multisample -#define WGL_EXT_multisample 1 -#define WGL_SAMPLE_BUFFERS_EXT 0x2041 -#define WGL_SAMPLES_EXT 0x2042 -#endif /* WGL_EXT_multisample */ - -#ifndef WGL_EXT_pbuffer -#define WGL_EXT_pbuffer 1 -DECLARE_HANDLE(HPBUFFEREXT); -#define WGL_DRAW_TO_PBUFFER_EXT 0x202D -#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E -#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 -#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 -#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 -#define WGL_PBUFFER_LARGEST_EXT 0x2033 -#define WGL_PBUFFER_WIDTH_EXT 0x2034 -#define WGL_PBUFFER_HEIGHT_EXT 0x2035 -typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); -#ifdef WGL_WGLEXT_PROTOTYPES -HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer); -int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC); -BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer); -BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); -#endif -#endif /* WGL_EXT_pbuffer */ - -#ifndef WGL_EXT_pixel_format -#define WGL_EXT_pixel_format 1 -#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 -#define WGL_DRAW_TO_WINDOW_EXT 0x2001 -#define WGL_DRAW_TO_BITMAP_EXT 0x2002 -#define WGL_ACCELERATION_EXT 0x2003 -#define WGL_NEED_PALETTE_EXT 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 -#define WGL_SWAP_METHOD_EXT 0x2007 -#define WGL_NUMBER_OVERLAYS_EXT 0x2008 -#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 -#define WGL_TRANSPARENT_EXT 0x200A -#define WGL_TRANSPARENT_VALUE_EXT 0x200B -#define WGL_SHARE_DEPTH_EXT 0x200C -#define WGL_SHARE_STENCIL_EXT 0x200D -#define WGL_SHARE_ACCUM_EXT 0x200E -#define WGL_SUPPORT_GDI_EXT 0x200F -#define WGL_SUPPORT_OPENGL_EXT 0x2010 -#define WGL_DOUBLE_BUFFER_EXT 0x2011 -#define WGL_STEREO_EXT 0x2012 -#define WGL_PIXEL_TYPE_EXT 0x2013 -#define WGL_COLOR_BITS_EXT 0x2014 -#define WGL_RED_BITS_EXT 0x2015 -#define WGL_RED_SHIFT_EXT 0x2016 -#define WGL_GREEN_BITS_EXT 0x2017 -#define WGL_GREEN_SHIFT_EXT 0x2018 -#define WGL_BLUE_BITS_EXT 0x2019 -#define WGL_BLUE_SHIFT_EXT 0x201A -#define WGL_ALPHA_BITS_EXT 0x201B -#define WGL_ALPHA_SHIFT_EXT 0x201C -#define WGL_ACCUM_BITS_EXT 0x201D -#define WGL_ACCUM_RED_BITS_EXT 0x201E -#define WGL_ACCUM_GREEN_BITS_EXT 0x201F -#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 -#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 -#define WGL_DEPTH_BITS_EXT 0x2022 -#define WGL_STENCIL_BITS_EXT 0x2023 -#define WGL_AUX_BUFFERS_EXT 0x2024 -#define WGL_NO_ACCELERATION_EXT 0x2025 -#define WGL_GENERIC_ACCELERATION_EXT 0x2026 -#define WGL_FULL_ACCELERATION_EXT 0x2027 -#define WGL_SWAP_EXCHANGE_EXT 0x2028 -#define WGL_SWAP_COPY_EXT 0x2029 -#define WGL_SWAP_UNDEFINED_EXT 0x202A -#define WGL_TYPE_RGBA_EXT 0x202B -#define WGL_TYPE_COLORINDEX_EXT 0x202C -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); -BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); -BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif -#endif /* WGL_EXT_pixel_format */ - -#ifndef WGL_EXT_pixel_format_packed_float -#define WGL_EXT_pixel_format_packed_float 1 -#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 -#endif /* WGL_EXT_pixel_format_packed_float */ - -#ifndef WGL_EXT_swap_control -#define WGL_EXT_swap_control 1 -typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); -typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglSwapIntervalEXT (int interval); -int WINAPI wglGetSwapIntervalEXT (void); -#endif -#endif /* WGL_EXT_swap_control */ - -#ifndef WGL_EXT_swap_control_tear -#define WGL_EXT_swap_control_tear 1 -#endif /* WGL_EXT_swap_control_tear */ - -#ifndef WGL_I3D_digital_video_control -#define WGL_I3D_digital_video_control 1 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 -#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 -#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 -typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); -typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue); -BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue); -#endif -#endif /* WGL_I3D_digital_video_control */ - -#ifndef WGL_I3D_gamma -#define WGL_I3D_gamma 1 -#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E -#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue); -BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue); -BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); -BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); -#endif -#endif /* WGL_I3D_gamma */ - -#ifndef WGL_I3D_genlock -#define WGL_I3D_genlock 1 -#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 -#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 -#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 -#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 -#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 -#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 -#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A -#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B -#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C -typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge); -typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglEnableGenlockI3D (HDC hDC); -BOOL WINAPI wglDisableGenlockI3D (HDC hDC); -BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag); -BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource); -BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource); -BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge); -BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge); -BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate); -BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate); -BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay); -BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay); -BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); -#endif -#endif /* WGL_I3D_genlock */ - -#ifndef WGL_I3D_image_buffer -#define WGL_I3D_image_buffer 1 -#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 -#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 -typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count); -#ifdef WGL_WGLEXT_PROTOTYPES -LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags); -BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress); -BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); -BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count); -#endif -#endif /* WGL_I3D_image_buffer */ - -#ifndef WGL_I3D_swap_frame_lock -#define WGL_I3D_swap_frame_lock 1 -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglEnableFrameLockI3D (void); -BOOL WINAPI wglDisableFrameLockI3D (void); -BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag); -BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag); -#endif -#endif /* WGL_I3D_swap_frame_lock */ - -#ifndef WGL_I3D_swap_frame_usage -#define WGL_I3D_swap_frame_usage 1 -typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage); -typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetFrameUsageI3D (float *pUsage); -BOOL WINAPI wglBeginFrameTrackingI3D (void); -BOOL WINAPI wglEndFrameTrackingI3D (void); -BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); -#endif -#endif /* WGL_I3D_swap_frame_usage */ - -#ifndef WGL_NV_DX_interop -#define WGL_NV_DX_interop 1 -#define WGL_ACCESS_READ_ONLY_NV 0x00000000 -#define WGL_ACCESS_READ_WRITE_NV 0x00000001 -#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002 -typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle); -typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice); -typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); -typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access); -typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); -typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); -typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects); -typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle); -HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice); -BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice); -HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access); -BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject); -BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access); -BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects); -BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects); -#endif -#endif /* WGL_NV_DX_interop */ - -#ifndef WGL_NV_DX_interop2 -#define WGL_NV_DX_interop2 1 -#endif /* WGL_NV_DX_interop2 */ - -#ifndef WGL_NV_copy_image -#define WGL_NV_copy_image 1 -typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif -#endif /* WGL_NV_copy_image */ - -#ifndef WGL_NV_delay_before_swap -#define WGL_NV_delay_before_swap 1 -typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglDelayBeforeSwapNV (HDC hDC, GLfloat seconds); -#endif -#endif /* WGL_NV_delay_before_swap */ - -#ifndef WGL_NV_float_buffer -#define WGL_NV_float_buffer 1 -#define WGL_FLOAT_COMPONENTS_NV 0x20B0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 -#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 -#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 -#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 -#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 -#endif /* WGL_NV_float_buffer */ - -#ifndef WGL_NV_gpu_affinity -#define WGL_NV_gpu_affinity 1 -DECLARE_HANDLE(HGPUNV); -struct _GPU_DEVICE { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD Flags; - RECT rcVirtualScreen; -}; -typedef struct _GPU_DEVICE *PGPU_DEVICE; -#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 -#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 -typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); -typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); -typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu); -BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList); -BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -BOOL WINAPI wglDeleteDCNV (HDC hdc); -#endif -#endif /* WGL_NV_gpu_affinity */ - -#ifndef WGL_NV_multisample_coverage -#define WGL_NV_multisample_coverage 1 -#define WGL_COVERAGE_SAMPLES_NV 0x2042 -#define WGL_COLOR_SAMPLES_NV 0x20B9 -#endif /* WGL_NV_multisample_coverage */ - -#ifndef WGL_NV_present_video -#define WGL_NV_present_video 1 -DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); -#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 -typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); -typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); -typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue); -#ifdef WGL_WGLEXT_PROTOTYPES -int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); -BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); -BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue); -#endif -#endif /* WGL_NV_present_video */ - -#ifndef WGL_NV_render_depth_texture -#define WGL_NV_render_depth_texture 1 -#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 -#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 -#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 -#define WGL_DEPTH_COMPONENT_NV 0x20A7 -#endif /* WGL_NV_render_depth_texture */ - -#ifndef WGL_NV_render_texture_rectangle -#define WGL_NV_render_texture_rectangle 1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 -#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 -#endif /* WGL_NV_render_texture_rectangle */ - -#ifndef WGL_NV_swap_group -#define WGL_NV_swap_group 1 -typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); -typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count); -typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group); -BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier); -BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier); -BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); -BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count); -BOOL WINAPI wglResetFrameCountNV (HDC hDC); -#endif -#endif /* WGL_NV_swap_group */ - -#ifndef WGL_NV_vertex_array_range -#define WGL_NV_vertex_array_range 1 -typedef void *(WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); -#ifdef WGL_WGLEXT_PROTOTYPES -void *WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -void WINAPI wglFreeMemoryNV (void *pointer); -#endif -#endif /* WGL_NV_vertex_array_range */ - -#ifndef WGL_NV_video_capture -#define WGL_NV_video_capture 1 -DECLARE_HANDLE(HVIDEOINPUTDEVICENV); -#define WGL_UNIQUE_ID_NV 0x20CE -#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF -typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); -typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); -BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); -BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -#endif -#endif /* WGL_NV_video_capture */ - -#ifndef WGL_NV_video_output -#define WGL_NV_video_output 1 -DECLARE_HANDLE(HPVIDEODEV); -#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 -#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 -#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 -#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 -#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 -#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 -#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define WGL_VIDEO_OUT_FRAME 0x20C8 -#define WGL_VIDEO_OUT_FIELD_1 0x20C9 -#define WGL_VIDEO_OUT_FIELD_2 0x20CA -#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB -#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC -typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); -typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); -BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice); -BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer); -BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); -BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#endif -#endif /* WGL_NV_video_output */ - -#ifndef WGL_OML_sync_control -#define WGL_OML_sync_control 1 -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator); -typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); -#ifdef WGL_WGLEXT_PROTOTYPES -BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); -BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator); -INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); -BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); -#endif -#endif /* WGL_OML_sync_control */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/milepost/ext/angle_headers/angle_cl.h b/milepost/ext/angle_headers/angle_cl.h deleted file mode 100644 index 06c1f69..0000000 --- a/milepost/ext/angle_headers/angle_cl.h +++ /dev/null @@ -1,122 +0,0 @@ -// -// Copyright 2021 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// angle_cl.h: Includes all necessary CL headers and definitions for ANGLE. - -#ifndef ANGLECL_H_ -#define ANGLECL_H_ - -#define CL_TARGET_OPENCL_VERSION 300 -#define CL_USE_DEPRECATED_OPENCL_1_0_APIS -#define CL_USE_DEPRECATED_OPENCL_1_1_APIS -#define CL_USE_DEPRECATED_OPENCL_1_2_APIS -#define CL_USE_DEPRECATED_OPENCL_2_0_APIS -#define CL_USE_DEPRECATED_OPENCL_2_1_APIS -#define CL_USE_DEPRECATED_OPENCL_2_2_APIS - -#include "CL/cl_icd.h" - -#include -#include -#include - -namespace cl -{ - -using ContextErrorCB = void(CL_CALLBACK *)(const char *errinfo, - const void *private_info, - size_t cb, - void *user_data); - -using MemoryCB = void(CL_CALLBACK *)(cl_mem memobj, void *user_data); -using ProgramCB = void(CL_CALLBACK *)(cl_program program, void *user_data); -using EventCB = void(CL_CALLBACK *)(cl_event event, cl_int event_command_status, void *user_data); -using UserFunc = void(CL_CALLBACK *)(void *args); - -template -struct Dispatch -{ - explicit Dispatch(std::uint32_t magic) : mDispatch(sDispatch), mMagic(magic) {} - - const cl_icd_dispatch &getDispatch() const { return *mDispatch; } - - static const cl_icd_dispatch *sDispatch; - - protected: - // This has to be the first member to be OpenCL ICD compatible - const cl_icd_dispatch *const mDispatch; - const std::uint32_t mMagic; -}; - -template -const cl_icd_dispatch *Dispatch::sDispatch = nullptr; - -template -struct NativeObject : public Dispatch<> -{ - NativeObject() : Dispatch<>(magic) - { - static_assert(std::is_standard_layout::value && - offsetof(NativeObjectType, mDispatch) == 0u, - "Not ICD compatible"); - } - - template - T &cast() - { - return static_cast(*this); - } - - template - const T &cast() const - { - return static_cast(*this); - } - - NativeObjectType *getNative() { return static_cast(this); } - - const NativeObjectType *getNative() const - { - return static_cast(this); - } - - static NativeObjectType *CastNative(NativeObjectType *p) { return p; } - - static bool IsValid(const NativeObjectType *p) - { - return p != nullptr && p->mDispatch == sDispatch && p->mMagic == magic; - } -}; - -} // namespace cl - -struct _cl_platform_id : public cl::NativeObject<_cl_platform_id, 0x12345678u> -{}; - -struct _cl_device_id : public cl::NativeObject<_cl_device_id, 0x23456789u> -{}; - -struct _cl_context : public cl::NativeObject<_cl_context, 0x3456789Au> -{}; - -struct _cl_command_queue : public cl::NativeObject<_cl_command_queue, 0x456789ABu> -{}; - -struct _cl_mem : public cl::NativeObject<_cl_mem, 0x56789ABCu> -{}; - -struct _cl_program : public cl::NativeObject<_cl_program, 0x6789ABCDu> -{}; - -struct _cl_kernel : public cl::NativeObject<_cl_kernel, 0x789ABCDEu> -{}; - -struct _cl_event : public cl::NativeObject<_cl_event, 0x89ABCDEFu> -{}; - -struct _cl_sampler : public cl::NativeObject<_cl_sampler, 0x9ABCDEF0u> -{}; - -#endif // ANGLECL_H_ diff --git a/milepost/ext/angle_headers/angle_gl.h b/milepost/ext/angle_headers/angle_gl.h deleted file mode 100644 index 4ff294b..0000000 --- a/milepost/ext/angle_headers/angle_gl.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// Copyright 2014 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// angle_gl.h: -// Includes all necessary GL headers and definitions for ANGLE. -// - -#ifndef ANGLEGL_H_ -#define ANGLEGL_H_ - -#include "GLES/gl.h" -#include "GLES/glext.h" -#include "GLES2/gl2.h" -#include "GLES2/gl2ext.h" -#include "GLES3/gl3.h" -#include "GLES3/gl31.h" -#include "GLES3/gl32.h" - -// TODO(http://anglebug.com/3730): Autogenerate these enums from gl.xml -// HACK: Defines for queries that are not in GLES -#define GL_CONTEXT_PROFILE_MASK 0x9126 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 - -#endif // ANGLEGL_H_ diff --git a/milepost/ext/angle_headers/angle_windowsstore.h b/milepost/ext/angle_headers/angle_windowsstore.h deleted file mode 100644 index a0d0fda..0000000 --- a/milepost/ext/angle_headers/angle_windowsstore.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright 2014 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// angle_windowsstore.h: - -#ifndef ANGLE_WINDOWSSTORE_H_ -#define ANGLE_WINDOWSSTORE_H_ - -// The following properties can be set on the CoreApplication to support additional -// ANGLE configuration options. -// -// The Visual Studio sample templates provided with this version of ANGLE have examples -// of how to set these property values. - -// -// Property: EGLNativeWindowTypeProperty -// Type: IInspectable -// Description: Set this property to specify the window type to use for creating a surface. -// If this property is missing, surface creation will fail. -// -const wchar_t EGLNativeWindowTypeProperty[] = L"EGLNativeWindowTypeProperty"; - -// -// Property: EGLRenderSurfaceSizeProperty -// Type: Size -// Description: Set this property to specify a preferred size in pixels of the render surface. -// The render surface size width and height must be greater than 0. -// If this property is set, then the render surface size is fixed. -// The render surface will then be scaled to the window dimensions. -// If this property is missing, a default behavior will be provided. -// The default behavior uses the window size if a CoreWindow is specified or -// the size of the SwapChainPanel control if one is specified. -// -const wchar_t EGLRenderSurfaceSizeProperty[] = L"EGLRenderSurfaceSizeProperty"; - -// -// Property: EGLRenderResolutionScaleProperty -// Type: Single -// Description: Use this to specify a preferred scale for the render surface compared to the window. -// For example, if the window is 800x480, and: -// - scale is set to 0.5f then the surface will be 400x240 -// - scale is set to 1.2f then the surface will be 960x576 -// If the window resizes or rotates then the surface will resize accordingly. -// EGLRenderResolutionScaleProperty and EGLRenderSurfaceSizeProperty cannot both be set. -// The scale factor should be > 0.0f. -// -const wchar_t EGLRenderResolutionScaleProperty[] = L"EGLRenderResolutionScaleProperty"; - -#endif // ANGLE_WINDOWSSTORE_H_ diff --git a/milepost/ext/angle_headers/export.h b/milepost/ext/angle_headers/export.h deleted file mode 100644 index 6a8e30f..0000000 --- a/milepost/ext/angle_headers/export.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// Copyright 2014 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// - -// export.h : Defines ANGLE_EXPORT, a macro for exporting functions from the DLL - -#ifndef LIBGLESV2_EXPORT_H_ -#define LIBGLESV2_EXPORT_H_ - -#if !defined(ANGLE_EXPORT) -# if defined(_WIN32) -# if defined(LIBGLESV2_IMPLEMENTATION) || defined(LIBANGLE_IMPLEMENTATION) || \ - defined(LIBFEATURE_SUPPORT_IMPLEMENTATION) || defined(LIBCL_IMPLEMENTATION) -# define ANGLE_EXPORT __declspec(dllexport) -# else -# define ANGLE_EXPORT __declspec(dllimport) -# endif -# elif defined(__GNUC__) -# if defined(LIBGLESV2_IMPLEMENTATION) || defined(LIBANGLE_IMPLEMENTATION) || \ - defined(LIBFEATURE_SUPPORT_IMPLEMENTATION) || defined(LIBCL_IMPLEMENTATION) -# define ANGLE_EXPORT __attribute__((visibility("default"))) -# else -# define ANGLE_EXPORT -# endif -# else -# define ANGLE_EXPORT -# endif -#endif // !defined(ANGLE_EXPORT) - -#if !defined(ANGLE_NO_EXPORT) -# if defined(__GNUC__) -# define ANGLE_NO_EXPORT __attribute__((visibility("hidden"))) -# else -# define ANGLE_NO_EXPORT -# endif -#endif // !defined(ANGLE_NO_EXPORT) - -#endif // LIBGLESV2_EXPORT_H_ diff --git a/milepost/ext/angle_headers/platform/Feature.h b/milepost/ext/angle_headers/platform/Feature.h deleted file mode 100644 index 01d9c01..0000000 --- a/milepost/ext/angle_headers/platform/Feature.h +++ /dev/null @@ -1,196 +0,0 @@ -// -// Copyright 2019 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Feature.h: Definition of structs to hold feature/workaround information. -// - -#ifndef ANGLE_PLATFORM_FEATURE_H_ -#define ANGLE_PLATFORM_FEATURE_H_ - -#include -#include -#include - -#define ANGLE_FEATURE_CONDITION(set, feature, cond) \ - do \ - { \ - (set)->feature.enabled = cond; \ - (set)->feature.condition = ANGLE_STRINGIFY(cond); \ - } while (0) - -namespace angle -{ - -enum class FeatureCategory -{ - FrontendFeatures, - FrontendWorkarounds, - OpenGLWorkarounds, - OpenGLFeatures, - D3DWorkarounds, - VulkanFeatures, - VulkanWorkarounds, - VulkanAppWorkarounds, - MetalFeatures, - MetalWorkarounds, -}; - -constexpr char kFeatureCategoryFrontendWorkarounds[] = "Frontend workarounds"; -constexpr char kFeatureCategoryFrontendFeatures[] = "Frontend features"; -constexpr char kFeatureCategoryOpenGLWorkarounds[] = "OpenGL workarounds"; -constexpr char kFeatureCategoryOpenGLFeatures[] = "OpenGL features"; -constexpr char kFeatureCategoryD3DWorkarounds[] = "D3D workarounds"; -constexpr char kFeatureCategoryVulkanAppWorkarounds[] = "Vulkan app workarounds"; -constexpr char kFeatureCategoryVulkanWorkarounds[] = "Vulkan workarounds"; -constexpr char kFeatureCategoryVulkanFeatures[] = "Vulkan features"; -constexpr char kFeatureCategoryMetalFeatures[] = "Metal features"; -constexpr char kFeatureCategoryMetalWorkarounds[] = "Metal workarounds"; -constexpr char kFeatureCategoryUnknown[] = "Unknown"; - -inline const char *FeatureCategoryToString(const FeatureCategory &fc) -{ - switch (fc) - { - case FeatureCategory::FrontendFeatures: - return kFeatureCategoryFrontendFeatures; - break; - - case FeatureCategory::FrontendWorkarounds: - return kFeatureCategoryFrontendWorkarounds; - break; - - case FeatureCategory::OpenGLWorkarounds: - return kFeatureCategoryOpenGLWorkarounds; - break; - - case FeatureCategory::OpenGLFeatures: - return kFeatureCategoryOpenGLFeatures; - break; - - case FeatureCategory::D3DWorkarounds: - return kFeatureCategoryD3DWorkarounds; - break; - - case FeatureCategory::VulkanFeatures: - return kFeatureCategoryVulkanFeatures; - break; - - case FeatureCategory::VulkanWorkarounds: - return kFeatureCategoryVulkanWorkarounds; - break; - - case FeatureCategory::VulkanAppWorkarounds: - return kFeatureCategoryVulkanAppWorkarounds; - break; - - case FeatureCategory::MetalFeatures: - return kFeatureCategoryMetalFeatures; - break; - - case FeatureCategory::MetalWorkarounds: - return kFeatureCategoryMetalWorkarounds; - break; - - default: - return kFeatureCategoryUnknown; - break; - } -} - -constexpr char kFeatureStatusEnabled[] = "enabled"; -constexpr char kFeatureStatusDisabled[] = "disabled"; - -inline const char *FeatureStatusToString(const bool &status) -{ - if (status) - { - return kFeatureStatusEnabled; - } - return kFeatureStatusDisabled; -} - -struct FeatureInfo; - -using FeatureMap = std::map; -using FeatureList = std::vector; - -struct FeatureInfo -{ - FeatureInfo(const FeatureInfo &other); - FeatureInfo(const char *name, - const FeatureCategory &category, - const char *description, - FeatureMap *const mapPtr, - const char *bug); - ~FeatureInfo(); - - // The name of the workaround, lowercase, camel_case - const char *const name; - - // The category that the workaround belongs to. Eg. "Vulkan workarounds" - const FeatureCategory category; - - // A short description to be read by the user. - const char *const description; - - // A link to the bug, if any - const char *const bug; - - // Whether the workaround is enabled or not. Determined by heuristics like vendor ID and - // version, but may be overriden to any value. - bool enabled = false; - - // A stingified version of the condition used to set 'enabled'. ie "IsNvidia() && IsApple()" - const char *condition; -}; - -inline FeatureInfo::FeatureInfo(const FeatureInfo &other) = default; -inline FeatureInfo::FeatureInfo(const char *name, - const FeatureCategory &category, - const char *description, - FeatureMap *const mapPtr, - const char *bug = "") - : name(name), - category(category), - description(description), - bug(bug), - enabled(false), - condition("") -{ - if (mapPtr != nullptr) - { - (*mapPtr)[std::string(name)] = this; - } -} - -inline FeatureInfo::~FeatureInfo() = default; - -struct FeatureSetBase -{ - public: - FeatureSetBase(); - ~FeatureSetBase(); - - private: - // Non-copyable - FeatureSetBase(const FeatureSetBase &other) = delete; - FeatureSetBase &operator=(const FeatureSetBase &other) = delete; - - protected: - FeatureMap members = FeatureMap(); - - public: - void overrideFeatures(const std::vector &featureNames, bool enabled); - void populateFeatureList(FeatureList *features) const; - - const FeatureMap &getFeatures() const { return members; } -}; - -inline FeatureSetBase::FeatureSetBase() = default; -inline FeatureSetBase::~FeatureSetBase() = default; - -} // namespace angle - -#endif // ANGLE_PLATFORM_WORKAROUND_H_ diff --git a/milepost/ext/angle_headers/platform/FeaturesD3D_autogen.h b/milepost/ext/angle_headers/platform/FeaturesD3D_autogen.h deleted file mode 100644 index 33015f9..0000000 --- a/milepost/ext/angle_headers/platform/FeaturesD3D_autogen.h +++ /dev/null @@ -1,174 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_features.py using data from d3d_features.json. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// FeaturesD3D_autogen.h: Features and workarounds for D3D driver bugs and other issues. - -#ifndef ANGLE_PLATFORM_FEATURESD3D_H_ -#define ANGLE_PLATFORM_FEATURESD3D_H_ - -#include "platform/Feature.h" - -namespace angle -{ - -struct FeaturesD3D : FeatureSetBase -{ - FeaturesD3D(); - ~FeaturesD3D(); - - FeatureInfo mrtPerfWorkaround = { - "mrtPerfWorkaround", - FeatureCategory::D3DWorkarounds, - "Some drivers have a bug where they ignore null render targets", - &members, - }; - - FeatureInfo setDataFasterThanImageUpload = { - "setDataFasterThanImageUpload", - FeatureCategory::D3DWorkarounds, - "Set data faster than image upload", - &members, - }; - - FeatureInfo zeroMaxLodWorkaround = { - "zeroMaxLodWorkaround", - FeatureCategory::D3DWorkarounds, - "Missing an option to disable mipmaps on a mipmapped texture", - &members, - }; - - FeatureInfo useInstancedPointSpriteEmulation = { - "useInstancedPointSpriteEmulation", - FeatureCategory::D3DWorkarounds, - "Some D3D11 renderers do not support geometry shaders for pointsprite emulation", - &members, - }; - - FeatureInfo depthStencilBlitExtraCopy = { - "depthStencilBlitExtraCopy", FeatureCategory::D3DWorkarounds, - "Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging " - "texture to a depth/stencil", - &members, "http://anglebug.com/1452"}; - - FeatureInfo expandIntegerPowExpressions = { - "expandIntegerPowExpressions", - FeatureCategory::D3DWorkarounds, - "The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions", - &members, - }; - - FeatureInfo flushAfterEndingTransformFeedback = { - "flushAfterEndingTransformFeedback", - FeatureCategory::D3DWorkarounds, - "Some drivers sometimes write out-of-order results to StreamOut buffers when transform " - "feedback is used to repeatedly write to the same buffer positions", - &members, - }; - - FeatureInfo getDimensionsIgnoresBaseLevel = { - "getDimensionsIgnoresBaseLevel", - FeatureCategory::D3DWorkarounds, - "Some drivers do not take into account the base level of the " - "texture in the results of the HLSL GetDimensions builtin", - &members, - }; - - FeatureInfo preAddTexelFetchOffsets = { - "preAddTexelFetchOffsets", - FeatureCategory::D3DWorkarounds, - "HLSL's function texture.Load returns 0 when the parameter Location is negative, even if " - "the sum of Offset and Location is in range", - &members, - }; - - FeatureInfo emulateTinyStencilTextures = { - "emulateTinyStencilTextures", - FeatureCategory::D3DWorkarounds, - "1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly", - &members, - }; - - FeatureInfo disableB5G6R5Support = { - "disableB5G6R5Support", - FeatureCategory::D3DWorkarounds, - "Textures with the format " - "DXGI_FORMAT_B5G6R5_UNORM have incorrect data", - &members, - }; - - FeatureInfo rewriteUnaryMinusOperator = { - "rewriteUnaryMinusOperator", - FeatureCategory::D3DWorkarounds, - "Evaluating unary minus operator on integer may get wrong answer in vertex shaders", - &members, - }; - - FeatureInfo emulateIsnanFloat = {"emulateIsnanFloat", FeatureCategory::D3DWorkarounds, - "Using isnan() on highp float will get wrong answer", &members, - "https://crbug.com/650547"}; - - FeatureInfo callClearTwice = {"callClearTwice", FeatureCategory::D3DWorkarounds, - "Using clear() may not take effect", &members, - "https://crbug.com/655534"}; - - FeatureInfo useSystemMemoryForConstantBuffers = { - "useSystemMemoryForConstantBuffers", FeatureCategory::D3DWorkarounds, - "Copying from staging storage to constant buffer " - "storage does not work", - &members, "https://crbug.com/593024"}; - - FeatureInfo selectViewInGeometryShader = { - "selectViewInGeometryShader", - FeatureCategory::D3DWorkarounds, - "The viewport or render target slice will be selected in the geometry shader stage for " - "the ANGLE_multiview extension", - &members, - }; - - FeatureInfo addMockTextureNoRenderTarget = { - "addMockTextureNoRenderTarget", FeatureCategory::D3DWorkarounds, - "On some drivers when rendering with no render target, two bugs lead to incorrect behavior", - &members, "http://anglebug.com/2152"}; - - FeatureInfo skipVSConstantRegisterZero = { - "skipVSConstantRegisterZero", - FeatureCategory::D3DWorkarounds, - "In specific cases the driver doesn't handle constant register zero correctly", - &members, - }; - - FeatureInfo forceAtomicValueResolution = { - "forceAtomicValueResolution", FeatureCategory::D3DWorkarounds, - "On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve " - "when used in the .yzw components of a RWByteAddressBuffer.Store operation", - &members, "http://anglebug.com/3246"}; - - FeatureInfo allowClearForRobustResourceInit = { - "allowClearForRobustResourceInit", FeatureCategory::D3DWorkarounds, - "Some drivers corrupt texture data when clearing for robust resource initialization.", - &members, "http://crbug.com/941620"}; - - FeatureInfo allowTranslateUniformBlockToStructuredBuffer = { - "allowTranslateUniformBlockToStructuredBuffer", FeatureCategory::D3DWorkarounds, - "There is a slow fxc compile performance issue with dynamic uniform indexing if " - "translating a uniform block with a large array member to cbuffer.", - &members, "http://anglebug.com/3682"}; - - FeatureInfo allowES3OnFL100 = { - "allowES3OnFL100", - FeatureCategory::D3DWorkarounds, - "Allow ES3 on 10.0 devices", - &members, - }; -}; - -inline FeaturesD3D::FeaturesD3D() = default; -inline FeaturesD3D::~FeaturesD3D() = default; - -} // namespace angle - -#endif // ANGLE_PLATFORM_FEATURESD3D_H_ diff --git a/milepost/ext/angle_headers/platform/FeaturesGL_autogen.h b/milepost/ext/angle_headers/platform/FeaturesGL_autogen.h deleted file mode 100644 index 87068b2..0000000 --- a/milepost/ext/angle_headers/platform/FeaturesGL_autogen.h +++ /dev/null @@ -1,491 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_features.py using data from gl_features.json. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// FeaturesGL_autogen.h: angle::Features and workarounds for GL driver bugs and other issues. - -#ifndef ANGLE_PLATFORM_FEATURESGL_H_ -#define ANGLE_PLATFORM_FEATURESGL_H_ - -#include "platform/Feature.h" - -namespace angle -{ - -struct FeaturesGL : FeatureSetBase -{ - FeaturesGL(); - ~FeaturesGL(); - - FeatureInfo avoid1BitAlphaTextureFormats = { - "avoid1BitAlphaTextureFormats", - FeatureCategory::OpenGLWorkarounds, - "Issue with 1-bit alpha framebuffer formats", - &members, - }; - - FeatureInfo RGBA4IsNotSupportedForColorRendering = { - "RGBA4IsNotSupportedForColorRendering", - FeatureCategory::OpenGLWorkarounds, - "GL_RGBA4 is not color renderable", - &members, - }; - - FeatureInfo allowETCFormats = { - "allowETCFormats", - FeatureCategory::OpenGLWorkarounds, - "Enable ETC2/EAC on desktop OpenGL", - &members, - }; - - FeatureInfo allowAstcFormats = { - "allowAstcFormats", - FeatureCategory::OpenGLWorkarounds, - "Enable ASTC on desktop OpenGL", - &members, - }; - - FeatureInfo doesSRGBClearsOnLinearFramebufferAttachments = { - "doesSRGBClearsOnLinearFramebufferAttachments", - FeatureCategory::OpenGLWorkarounds, - "Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled", - &members, - }; - - FeatureInfo doWhileGLSLCausesGPUHang = { - "doWhileGLSLCausesGPUHang", FeatureCategory::OpenGLWorkarounds, - "Some GLSL constructs involving do-while loops cause GPU hangs", &members, - "http://crbug.com/644669"}; - - FeatureInfo vertexIDDoesNotIncludeBaseVertex = { - "vertexIDDoesNotIncludeBaseVertex", - FeatureCategory::OpenGLWorkarounds, - "gl_VertexID in GLSL vertex shader doesn't include base vertex value", - &members, - }; - - FeatureInfo finishDoesNotCauseQueriesToBeAvailable = { - "finishDoesNotCauseQueriesToBeAvailable", - FeatureCategory::OpenGLWorkarounds, - "glFinish doesn't cause all queries to report available result", - &members, - }; - - FeatureInfo alwaysCallUseProgramAfterLink = { - "alwaysCallUseProgramAfterLink", FeatureCategory::OpenGLWorkarounds, - "Always call useProgram after a successful link to avoid a driver bug", &members, - "http://crbug.com/110263"}; - - FeatureInfo unpackOverlappingRowsSeparatelyUnpackBuffer = { - "unpackOverlappingRowsSeparatelyUnpackBuffer", - FeatureCategory::OpenGLWorkarounds, - "In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row", - &members, - }; - - FeatureInfo packOverlappingRowsSeparatelyPackBuffer = { - "packOverlappingRowsSeparatelyPackBuffer", - FeatureCategory::OpenGLWorkarounds, - "In the case of packing to a pixel pack buffer, pack overlapping rows row by row", - &members, - }; - - FeatureInfo initializeCurrentVertexAttributes = { - "initializeCurrentVertexAttributes", - FeatureCategory::OpenGLWorkarounds, - "During initialization, assign the current vertex attributes to the spec-mandated defaults", - &members, - }; - - FeatureInfo emulateAbsIntFunction = {"emulateAbsIntFunction", - FeatureCategory::OpenGLWorkarounds, - "abs(i) where i is an integer returns unexpected result", - &members, "http://crbug.com/642227"}; - - FeatureInfo addAndTrueToLoopCondition = { - "addAndTrueToLoopCondition", - FeatureCategory::OpenGLWorkarounds, - "Calculation of loop conditions in for and while loop has bug", - &members, - }; - - FeatureInfo unpackLastRowSeparatelyForPaddingInclusion = { - "unpackLastRowSeparatelyForPaddingInclusion", FeatureCategory::OpenGLWorkarounds, - "When uploading textures from an unpack buffer, some drivers count an extra row padding", - &members, "http://anglebug.com/1512"}; - - FeatureInfo packLastRowSeparatelyForPaddingInclusion = { - "packLastRowSeparatelyForPaddingInclusion", FeatureCategory::OpenGLWorkarounds, - "When uploading textures from an pack buffer, some drivers count an extra row padding", - &members, "http://anglebug.com/1512"}; - - FeatureInfo emulateIsnanFloat = {"emulateIsnanFloat", FeatureCategory::OpenGLWorkarounds, - "Using isnan() on highp float will get wrong answer", &members, - "http://crbug.com/650547"}; - - FeatureInfo useUnusedBlocksWithStandardOrSharedLayout = { - "useUnusedBlocksWithStandardOrSharedLayout", - FeatureCategory::OpenGLWorkarounds, - "Unused std140 or shared uniform blocks will be treated as inactive", - &members, - }; - - FeatureInfo removeInvariantAndCentroidForESSL3 = { - "removeInvariantAndCentroidForESSL3", - FeatureCategory::OpenGLWorkarounds, - "Fix spec difference between GLSL 4.1 or lower and ESSL3", - &members, - }; - - FeatureInfo rewriteFloatUnaryMinusOperator = { - "rewriteFloatUnaryMinusOperator", FeatureCategory::OpenGLWorkarounds, - "Using '-' will get wrong answer", &members, "http://crbug.com/308366"}; - - FeatureInfo emulateAtan2Float = {"emulateAtan2Float", FeatureCategory::OpenGLWorkarounds, - "atan(y, x) may return a wrong answer", &members, - "http://crbug.com/672380"}; - - FeatureInfo reapplyUBOBindingsAfterUsingBinaryProgram = { - "reapplyUBOBindingsAfterUsingBinaryProgram", FeatureCategory::OpenGLWorkarounds, - "Some drivers forget about UBO bindings when using program binaries", &members, - "http://anglebug.com/1637"}; - - FeatureInfo emulateMaxVertexAttribStride = { - "emulateMaxVertexAttribStride", FeatureCategory::OpenGLWorkarounds, - "Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried", &members, - "http://anglebug.com/1936"}; - - FeatureInfo dontInitializeUninitializedLocals = { - "dontInitializeUninitializedLocals", FeatureCategory::OpenGLWorkarounds, - "Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests", &members, - "http://anglebug.com/2046"}; - - FeatureInfo clampPointSize = { - "clampPointSize", - FeatureCategory::OpenGLWorkarounds, - "The point size range reported from the API is inconsistent with the actual behavior", - &members, - }; - - FeatureInfo dontUseLoopsToInitializeVariables = { - "dontUseLoopsToInitializeVariables", FeatureCategory::OpenGLWorkarounds, - "For loops used to initialize variables hit native GLSL compiler bugs", &members, - "http://crbug.com/809422"}; - - FeatureInfo clampFragDepth = { - "clampFragDepth", - FeatureCategory::OpenGLWorkarounds, - "gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer", - &members, - }; - - FeatureInfo rewriteRepeatedAssignToSwizzled = { - "rewriteRepeatedAssignToSwizzled", - FeatureCategory::OpenGLWorkarounds, - "Repeated assignment to swizzled values inside a " - "GLSL user-defined function have incorrect results", - &members, - }; - - FeatureInfo disableBlendFuncExtended = { - "disableBlendFuncExtended", FeatureCategory::OpenGLWorkarounds, - "ARB_blend_func_extended does not pass the tests", &members, "http://anglebug.com/1085"}; - - FeatureInfo unsizedSRGBReadPixelsDoesntTransform = { - "unsizedSRGBReadPixelsDoesntTransform", FeatureCategory::OpenGLWorkarounds, - "Drivers returning raw sRGB values instead of linearized values when calling glReadPixels " - "on unsized sRGB texture formats", - &members, "http://crbug.com/550292 http://crbug.com/565179"}; - - FeatureInfo queryCounterBitsGeneratesErrors = { - "queryCounterBitsGeneratesErrors", FeatureCategory::OpenGLWorkarounds, - "Drivers generate errors when querying the number of bits in timer queries", &members, - "http://anglebug.com/3027"}; - - FeatureInfo dontRelinkProgramsInParallel = { - "dontRelinkProgramsInParallel", FeatureCategory::OpenGLWorkarounds, - "Relinking a program in parallel is buggy", &members, "http://anglebug.com/3045"}; - - FeatureInfo disableWorkerContexts = {"disableWorkerContexts", - FeatureCategory::OpenGLWorkarounds, - "Some tests have been seen to fail using worker contexts", - &members, "http://crbug.com/849576"}; - - FeatureInfo limitWebglMaxTextureSizeTo4096 = { - "limitWebglMaxTextureSizeTo4096", FeatureCategory::OpenGLWorkarounds, - "Limit webgl max texture size to 4096 to avoid frequent " - "out-of-memory errors", - &members, "http://crbug.com/927470"}; - - FeatureInfo limitMaxMSAASamplesTo4 = { - "limitMaxMSAASamplesTo4", FeatureCategory::OpenGLWorkarounds, - "Various rendering bugs have been observed when using higher MSAA counts", &members, - "http://crbug.com/797243"}; - - FeatureInfo allowClearForRobustResourceInit = { - "allowClearForRobustResourceInit", FeatureCategory::OpenGLWorkarounds, - "Using glClear for robust resource initialization is buggy on some drivers and leads to " - "texture corruption. Default to data uploads except on MacOS where it is very slow.", - &members, "https://crbug.com/848952 http://crbug.com/883276"}; - - FeatureInfo clampArrayAccess = {"clampArrayAccess", FeatureCategory::OpenGLWorkarounds, - "Clamp uniform array access to avoid reading invalid memory.", - &members, "http://anglebug.com/2978"}; - - FeatureInfo resetTexImage2DBaseLevel = { - "resetTexImage2DBaseLevel", FeatureCategory::OpenGLWorkarounds, - "Reset texture base level before calling glTexImage2D to " - "work around pixel comparison failure.", - &members, "https://crbug.com/705865"}; - - FeatureInfo clearToZeroOrOneBroken = { - "clearToZeroOrOneBroken", FeatureCategory::OpenGLWorkarounds, - "Clears when the clear color is all zeros or ones do not work.", &members, - "https://crbug.com/710443"}; - - FeatureInfo limitMax3dArrayTextureSizeTo1024 = { - "limitMax3dArrayTextureSizeTo1024", FeatureCategory::OpenGLWorkarounds, - "Limit max 3d texture size and max array texture layers to 1024 to avoid system hang", - &members, "http://crbug.com/927470"}; - - FeatureInfo adjustSrcDstRegionForBlitFramebuffer = { - "adjustSrcDstRegionForBlitFramebuffer", FeatureCategory::OpenGLWorkarounds, - "Many platforms have issues with blitFramebuffer when the parameters are large.", &members, - "http://crbug.com/830046"}; - - FeatureInfo clipSrcRegionForBlitFramebuffer = { - "clipSrcRegionForBlitFramebuffer", FeatureCategory::OpenGLWorkarounds, - "Issues with blitFramebuffer when the parameters don't match the framebuffer size.", - &members, "http://crbug.com/830046"}; - - FeatureInfo RGBDXT1TexturesSampleZeroAlpha = { - "RGBDXT1TexturesSampleZeroAlpha", FeatureCategory::OpenGLWorkarounds, - "Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.", &members, - "http://anglebug.com/3729"}; - - FeatureInfo unfoldShortCircuits = { - "unfoldShortCircuits", FeatureCategory::OpenGLWorkarounds, - "Mac incorrectly executes both sides of && and || expressions when they should " - "short-circuit.", - &members, "http://anglebug.com/482"}; - - FeatureInfo emulatePrimitiveRestartFixedIndex = { - "emulatePrimitiveRestartFixedIndex", FeatureCategory::OpenGLWorkarounds, - "When GL_PRIMITIVE_RESTART_FIXED_INDEX is not available, emulate it with " - "GL_PRIMITIVE_RESTART and glPrimitiveRestartIndex.", - &members, "http://anglebug.com/3997"}; - - FeatureInfo setPrimitiveRestartFixedIndexForDrawArrays = { - "setPrimitiveRestartFixedIndexForDrawArrays", FeatureCategory::OpenGLWorkarounds, - "Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart " - "index is within the number of primitives being drawn.", - &members, "http://anglebug.com/3997"}; - - FeatureInfo removeDynamicIndexingOfSwizzledVector = { - "removeDynamicIndexingOfSwizzledVector", FeatureCategory::OpenGLWorkarounds, - "Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.", - &members, "http://crbug.com/709351"}; - - FeatureInfo preAddTexelFetchOffsets = { - "preAddTexelFetchOffsets", FeatureCategory::OpenGLWorkarounds, - "Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid " - "even if the sum of position and offset is in range, so we need to add workarounds by " - "rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, " - "position + offset, lod).", - &members, "http://crbug.com/642605"}; - - FeatureInfo regenerateStructNames = { - "regenerateStructNames", FeatureCategory::OpenGLWorkarounds, - "All Mac drivers do not handle struct scopes correctly. This workaround overwrites a struct" - "name with a unique prefix.", - &members, "http://crbug.com/403957"}; - - FeatureInfo readPixelsUsingImplementationColorReadFormatForNorm16 = { - "readPixelsUsingImplementationColorReadFormatForNorm16", FeatureCategory::OpenGLWorkarounds, - "Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from " - "EXT_texture_norm16 correctly", - &members, "http://anglebug.com/4214"}; - - FeatureInfo flushBeforeDeleteTextureIfCopiedTo = { - "flushBeforeDeleteTextureIfCopiedTo", FeatureCategory::OpenGLWorkarounds, - "Some drivers track CopyTex{Sub}Image texture dependencies incorrectly. Flush" - " before glDeleteTextures in this case", - &members, "http://anglebug.com/4267"}; - - FeatureInfo rewriteRowMajorMatrices = { - "rewriteRowMajorMatrices", FeatureCategory::OpenGLWorkarounds, - "Rewrite row major matrices in shaders as column major as a driver bug workaround", - &members, "http://anglebug.com/2273"}; - - FeatureInfo disableDrawBuffersIndexed = { - "disableDrawBuffersIndexed", - FeatureCategory::OpenGLWorkarounds, - "Disable OES_draw_buffers_indexed extension.", - &members, - }; - - FeatureInfo disableSemaphoreFd = {"disableSemaphoreFd", FeatureCategory::OpenGLWorkarounds, - "Disable GL_EXT_semaphore_fd extension", &members, - "https://crbug.com/1046462"}; - - FeatureInfo disableTimestampQueries = { - "disableTimestampQueries", FeatureCategory::OpenGLWorkarounds, - "Disable GL_EXT_disjoint_timer_query extension", &members, "https://crbug.com/811661"}; - - FeatureInfo decodeEncodeSRGBForGenerateMipmap = { - "decodeEncodeSRGBForGenerateMipmap", FeatureCategory::OpenGLWorkarounds, - "Decode and encode before generateMipmap for srgb format textures.", &members, - "http://anglebug.com/4646"}; - - FeatureInfo emulateCopyTexImage2D = { - "emulateCopyTexImage2D", - FeatureCategory::OpenGLWorkarounds, - "Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D.", - &members, - }; - - FeatureInfo emulateCopyTexImage2DFromRenderbuffers = { - "emulateCopyTexImage2DFromRenderbuffers", FeatureCategory::OpenGLWorkarounds, - "CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers.", - &members, "https://anglebug.com/4674"}; - - FeatureInfo disableGPUSwitchingSupport = { - "disableGPUSwitchingSupport", FeatureCategory::OpenGLWorkarounds, - "Disable GPU switching support (use only the low-power GPU) on older MacBook Pros.", - &members, "https://crbug.com/1091824"}; - - FeatureInfo disableNativeParallelCompile = { - "disableNativeParallelCompile", FeatureCategory::OpenGLWorkarounds, - "Do not use native KHR_parallel_shader_compile even when available.", &members, - "http://crbug.com/1094869"}; - - FeatureInfo emulatePackSkipRowsAndPackSkipPixels = { - "emulatePackSkipRowsAndPackSkipPixels", FeatureCategory::OpenGLWorkarounds, - "GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver.", &members, - "https://anglebug.com/4849"}; - - FeatureInfo clampMscRate = { - "clampMscRate", FeatureCategory::OpenGLWorkarounds, - "Some drivers return bogus values for GetMscRate, so we clamp it to 30Hz", &members, - "https://crbug.com/1042393"}; - - FeatureInfo bindTransformFeedbackBufferBeforeBindBufferRange = { - "bindTransformFeedbackBufferBeforeBindBufferRange", FeatureCategory::OpenGLWorkarounds, - "Bind transform feedback buffers to the generic binding point before calling " - "glBindBufferBase or glBindBufferRange.", - &members, "https://anglebug.com/5140"}; - - FeatureInfo disableSyncControlSupport = { - "disableSyncControlSupport", FeatureCategory::OpenGLWorkarounds, - "Speculative fix for issues on Linux/Wayland where exposing GLX_OML_sync_control renders " - "Chrome unusable", - &members, "https://crbug.com/1137851"}; - - FeatureInfo keepBufferShadowCopy = { - "keepBufferShadowCopy", - FeatureCategory::OpenGLWorkarounds, - "Maintain a shadow copy of buffer data when the GL API does not permit reading data back.", - &members, - }; - - FeatureInfo setZeroLevelBeforeGenerateMipmap = { - "setZeroLevelBeforeGenerateMipmap", - FeatureCategory::OpenGLWorkarounds, - "glGenerateMipmap fails if the zero texture level is not set on some Mac drivers.", - &members, - }; - - FeatureInfo promotePackedFormatsTo8BitPerChannel = { - "promotePackedFormatsTo8BitPerChannel", FeatureCategory::OpenGLWorkarounds, - "Packed color formats are buggy on Macs with AMD GPUs", &members, - "http://anglebug.com/5469"}; - - FeatureInfo initFragmentOutputVariables = { - "initFragmentOutputVariables", FeatureCategory::OpenGLWorkarounds, - "No init gl_FragColor causes context lost", &members, "http://crbug.com/1171371"}; - - FeatureInfo shiftInstancedArrayDataWithOffset = { - "shiftInstancedArrayDataWithOffset", FeatureCategory::OpenGLWorkarounds, - "glDrawArraysInstanced is buggy on certain new Mac Intel GPUs", &members, - "http://crbug.com/1144207"}; - - FeatureInfo syncVertexArraysToDefault = { - "syncVertexArraysToDefault", FeatureCategory::OpenGLWorkarounds, - "Only use the default VAO because of missing support or driver bugs", &members, - "http://anglebug.com/5577"}; - - FeatureInfo sanitizeAMDGPURendererString = { - "sanitizeAMDGPURendererString", FeatureCategory::OpenGLWorkarounds, - "Strip precise kernel and DRM version information from amdgpu renderer strings.", &members, - "http://crbug.com/1181193"}; - - FeatureInfo unbindFBOBeforeSwitchingContext = { - "unbindFBOBeforeSwitchingContext", FeatureCategory::OpenGLWorkarounds, - "Imagination GL drivers are buggy with context switching.", &members, - "http://crbug.com/1181193"}; - - FeatureInfo flushOnFramebufferChange = {"flushOnFramebufferChange", - FeatureCategory::OpenGLWorkarounds, - "Switching framebuffers without a flush can lead to " - "crashes on Intel 9th Generation GPU Macs.", - &members, "http://crbug.com/1181068"}; - - FeatureInfo disableMultisampledRenderToTexture = { - "disableMultisampledRenderToTexture", FeatureCategory::OpenGLWorkarounds, - "Many drivers have bugs when using GL_EXT_multisampled_render_to_texture", &members, - "http://anglebug.com/2894"}; - - FeatureInfo uploadTextureDataInChunks = { - "uploadTextureDataInChunks", FeatureCategory::OpenGLWorkarounds, - "Upload texture data in <120kb chunks to work around Mac driver hangs and crashes.", - &members, "http://crbug.com/1181068"}; - - FeatureInfo emulateImmutableCompressedTexture3D = { - "emulateImmutableCompressedTexture3D", FeatureCategory::OpenGLWorkarounds, - "Use non-immutable texture allocation to work around a driver bug.", &members, - "https://crbug.com/1060012"}; - - FeatureInfo emulateRGB10 = {"emulateRGB10", FeatureCategory::OpenGLWorkarounds, - "Emulate RGB10 support using RGB10_A2.", &members, - "https://crbug.com/1300575"}; - - FeatureInfo alwaysUnbindFramebufferTexture2D = { - "alwaysUnbindFramebufferTexture2D", FeatureCategory::OpenGLWorkarounds, - "Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug.", - &members, "https://anglebug.com/5536"}; - - FeatureInfo disableTextureClampToBorder = { - "disableTextureClampToBorder", FeatureCategory::OpenGLWorkarounds, - "Imagination devices generate INVALID_ENUM when setting the texture border color.", - &members, "https://anglebug.com/7405"}; - - FeatureInfo passHighpToPackUnormSnormBuiltins = { - "passHighpToPackUnormSnormBuiltins", FeatureCategory::OpenGLWorkarounds, - "packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4.", &members, - "http://anglebug.com/7527"}; - - FeatureInfo supportsFragmentShaderInterlockNV = { - "supportsFragmentShaderInterlockNV", FeatureCategory::OpenGLFeatures, - "GL context supports NV_fragment_shader_interlock extension", &members, - "http://anglebug.com/7279"}; - - FeatureInfo supportsFragmentShaderOrderingINTEL = { - "supportsFragmentShaderOrderingINTEL", FeatureCategory::OpenGLFeatures, - "GL context supports GL_INTEL_fragment_shader_ordering extension", &members, - "http://anglebug.com/7279"}; - - FeatureInfo supportsFragmentShaderInterlockARB = { - "supportsFragmentShaderInterlockARB", FeatureCategory::OpenGLFeatures, - "GL context supports ARB_fragment_shader_interlock extension", &members, - "http://anglebug.com/7279"}; -}; - -inline FeaturesGL::FeaturesGL() = default; -inline FeaturesGL::~FeaturesGL() = default; - -} // namespace angle - -#endif // ANGLE_PLATFORM_FEATURESGL_H_ diff --git a/milepost/ext/angle_headers/platform/FeaturesMtl_autogen.h b/milepost/ext/angle_headers/platform/FeaturesMtl_autogen.h deleted file mode 100644 index 2e23cdd..0000000 --- a/milepost/ext/angle_headers/platform/FeaturesMtl_autogen.h +++ /dev/null @@ -1,232 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_features.py using data from mtl_features.json. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// FeaturesMtl_autogen.h: Optional features for the Metal renderer. - -#ifndef ANGLE_PLATFORM_FEATURESMTL_H_ -#define ANGLE_PLATFORM_FEATURESMTL_H_ - -#include "platform/Feature.h" - -namespace angle -{ - -struct FeaturesMtl : FeatureSetBase -{ - FeaturesMtl(); - ~FeaturesMtl(); - - FeatureInfo hasBaseVertexInstancedDraw = { - "hasBaseVertexInstancedDraw", - FeatureCategory::MetalFeatures, - "The renderer supports base vertex instanced draw", - &members, - }; - - FeatureInfo hasExplicitMemBarrier = { - "hasExplicitMemBarrier", - FeatureCategory::MetalFeatures, - "The renderer supports explicit memory barrier", - &members, - }; - - FeatureInfo hasCheapRenderPass = { - "hasCheapRenderPass", - FeatureCategory::MetalFeatures, - "The renderer can cheaply break a render pass.", - &members, - }; - - FeatureInfo hasNonUniformDispatch = { - "hasNonUniformDispatch", - FeatureCategory::MetalFeatures, - "The renderer supports non uniform compute shader dispatch's group size", - &members, - }; - - FeatureInfo hasShaderStencilOutput = { - "hasShaderStencilOutput", - FeatureCategory::MetalFeatures, - "The renderer supports stencil output from fragment shader", - &members, - }; - - FeatureInfo hasTextureSwizzle = { - "hasTextureSwizzle", - FeatureCategory::MetalFeatures, - "The renderer supports texture swizzle", - &members, - }; - - FeatureInfo hasDepthAutoResolve = { - "hasDepthAutoResolve", - FeatureCategory::MetalFeatures, - "The renderer supports MSAA depth auto resolve at the end of render pass", - &members, - }; - - FeatureInfo hasStencilAutoResolve = { - "hasStencilAutoResolve", - FeatureCategory::MetalFeatures, - "The renderer supports MSAA stencil auto resolve at the end of render pass", - &members, - }; - - FeatureInfo hasEvents = { - "hasEvents", - FeatureCategory::MetalFeatures, - "The renderer supports MTL(Shared)Event", - &members, - }; - - FeatureInfo allowInlineConstVertexData = { - "allowInlineConstVertexData", - FeatureCategory::MetalFeatures, - "The renderer supports using inline constant data for small client vertex data", - &members, - }; - - FeatureInfo allowSeparateDepthStencilBuffers = { - "allowSeparateDepthStencilBuffers", - FeatureCategory::MetalFeatures, - "Some Apple platforms such as iOS allows separate depth and stencil buffers, " - "whereas others such as macOS don't", - &members, - }; - - FeatureInfo allowRuntimeSamplerCompareMode = { - "allowRuntimeSamplerCompareMode", - FeatureCategory::MetalFeatures, - "The renderer supports changing sampler's compare mode outside shaders", - &members, - }; - - FeatureInfo allowSamplerCompareGradient = { - "allowSamplerCompareGradient", - FeatureCategory::MetalFeatures, - "The renderer supports sample_compare with gradients", - &members, - }; - - FeatureInfo allowSamplerCompareLod = { - "allowSamplerCompareLod", - FeatureCategory::MetalFeatures, - "The renderer supports sample_compare with lod", - &members, - }; - - FeatureInfo allowBufferReadWrite = { - "allowBufferReadWrite", - FeatureCategory::MetalFeatures, - "The renderer supports buffer read and write in the same shader", - &members, - }; - - FeatureInfo allowMultisampleStoreAndResolve = { - "allowMultisampleStoreAndResolve", - FeatureCategory::MetalFeatures, - "The renderer supports MSAA store and resolve in the same pass", - &members, - }; - - FeatureInfo allowGenMultipleMipsPerPass = { - "allowGenMultipleMipsPerPass", - FeatureCategory::MetalFeatures, - "The renderer supports generating multiple mipmaps per pass", - &members, - }; - - FeatureInfo forceD24S8AsUnsupported = { - "forceD24S8AsUnsupported", - FeatureCategory::MetalFeatures, - "Force Depth24Stencil8 format as unsupported.", - &members, - }; - - FeatureInfo forceBufferGPUStorage = { - "forceBufferGPUStorage", - FeatureCategory::MetalFeatures, - "On systems that support both buffer' memory allocation on GPU and shared memory (such as " - "macOS), force using GPU memory allocation for buffers everytime or not.", - &members, - }; - - FeatureInfo directMetalGeneration = {"directMetalGeneration", FeatureCategory::MetalFeatures, - "Direct translation to Metal.", &members, - "http://anglebug.com/5505"}; - - FeatureInfo forceNonCSBaseMipmapGeneration = { - "forceNonCSBaseMipmapGeneration", - FeatureCategory::MetalFeatures, - "Turn this feature on to disallow Compute Shader based mipmap generation. Compute Shader " - "based mipmap generation might cause GPU hang on some older iOS devices.", - &members, - }; - - FeatureInfo emulateTransformFeedback = { - "emulateTransformFeedback", - FeatureCategory::MetalFeatures, - "Turn this on to allow transform feedback in Metal using a 2-pass VS for GLES3.", - &members, - }; - - FeatureInfo rewriteRowMajorMatrices = { - "rewriteRowMajorMatrices", - FeatureCategory::MetalFeatures, - "Rewrite row major matrices in shaders as column major.", - &members, - }; - - FeatureInfo intelExplicitBoolCastWorkaround = { - "intelExplicitBoolCastWorkaround", - FeatureCategory::MetalWorkarounds, - "Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel " - "driver", - &members, - }; - - FeatureInfo intelDisableFastMath = { - "intelDisableFastMath", - FeatureCategory::MetalWorkarounds, - "Disable fast math in atan and invariance cases when running below macOS 12.0", - &members, - }; - - FeatureInfo multisampleColorFormatShaderReadWorkaround = { - "multisampleColorFormatShaderReadWorkaround", FeatureCategory::MetalWorkarounds, - "Add shaderRead usage to some multisampled texture formats", &members, - "http://anglebug.com/7049"}; - - FeatureInfo copyIOSurfaceToNonIOSurfaceForReadOptimization = { - "copyIOSurfaceToNonIOSurfaceForReadOptimization", FeatureCategory::MetalWorkarounds, - "some GPUs are faster to read an IOSurface texture by first copying the texture to a " - "non-IOSurface texture", - &members, "http://anglebug.com/7117"}; - - FeatureInfo copyTextureToBufferForReadOptimization = { - "copyTextureToBufferForReadOptimization", FeatureCategory::MetalWorkarounds, - "some GPUs are faster to read a texture by first copying the texture to a buffer", &members, - "http://anglebug.com/7117"}; - - FeatureInfo limitMaxDrawBuffersForTesting = { - "limitMaxDrawBuffersForTesting", FeatureCategory::MetalFeatures, - "Used to check the backend works when the device's advertized limit is less than the " - "code's limit", - &members, "http://anglebug.com/7280"}; - - FeatureInfo limitMaxColorTargetBitsForTesting = { - "limitMaxColorTargetBitsForTesting", FeatureCategory::MetalFeatures, - "Metal iOS has a limit on the number of color target bits per pixel.", &members, - "http://anglebug.com/7280"}; -}; - -inline FeaturesMtl::FeaturesMtl() = default; -inline FeaturesMtl::~FeaturesMtl() = default; - -} // namespace angle - -#endif // ANGLE_PLATFORM_FEATURESMTL_H_ diff --git a/milepost/ext/angle_headers/platform/FeaturesVk_autogen.h b/milepost/ext/angle_headers/platform/FeaturesVk_autogen.h deleted file mode 100644 index 7ef1713..0000000 --- a/milepost/ext/angle_headers/platform/FeaturesVk_autogen.h +++ /dev/null @@ -1,704 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_features.py using data from vk_features.json. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// FeaturesVk_autogen.h: Optional features for the Vulkan renderer. - -#ifndef ANGLE_PLATFORM_FEATURESVK_H_ -#define ANGLE_PLATFORM_FEATURESVK_H_ - -#include "platform/Feature.h" - -namespace angle -{ - -struct FeaturesVk : FeatureSetBase -{ - FeaturesVk(); - ~FeaturesVk(); - - FeatureInfo bresenhamLineRasterization = { - "bresenhamLineRasterization", - FeatureCategory::VulkanFeatures, - "Enable Bresenham line rasterization via VK_EXT_line_rasterization extension", - &members, - }; - - FeatureInfo provokingVertex = { - "provokingVertex", - FeatureCategory::VulkanFeatures, - "Enable provoking vertex mode via VK_EXT_provoking_vertex extension", - &members, - }; - - FeatureInfo forceFallbackFormat = { - "forceFallbackFormat", - FeatureCategory::VulkanWorkarounds, - "Force a fallback format for angle_end2end_tests", - &members, - }; - - FeatureInfo clampPointSize = { - "clampPointSize", FeatureCategory::VulkanWorkarounds, - "The point size range reported from the API is inconsistent with the actual behavior", - &members, "http://anglebug.com/2970"}; - - FeatureInfo depthClamping = { - "depthClamping", FeatureCategory::VulkanWorkarounds, - "The depth value is not clamped to [0,1] for floating point depth buffers.", &members, - "http://anglebug.com/3970"}; - - FeatureInfo mutableMipmapTextureUpload = { - "mutableMipmapTextureUpload", FeatureCategory::VulkanFeatures, - "Enable uploading the previously defined mutable mipmap texture.", &members, - "https://anglebug.com/7308"}; - - FeatureInfo supportsRenderpass2 = { - "supportsRenderpass2", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_create_renderpass2 extension", - &members, - }; - - FeatureInfo supportsIncrementalPresent = { - "supportsIncrementalPresent", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_incremental_present extension", - &members, - }; - - FeatureInfo supportsAndroidHardwareBuffer = { - "supportsAndroidHardwareBuffer", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension", - &members, - }; - - FeatureInfo supportsGGPFrameToken = { - "supportsGGPFrameToken", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_GGP_frame_token extension", - &members, - }; - - FeatureInfo supportsExternalMemoryFd = { - "supportsExternalMemoryFd", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_external_memory_fd extension", - &members, - }; - - FeatureInfo supportsExternalMemoryFuchsia = { - "supportsExternalMemoryFuchsia", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_FUCHSIA_external_memory extension", - &members, - }; - - FeatureInfo supportsFilteringPrecision = { - "supportsFilteringPrecision", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_GOOGLE_sampler_filtering_precision extension", - &members, - }; - - FeatureInfo supportsExternalFenceCapabilities = { - "supportsExternalFenceCapabilities", - FeatureCategory::VulkanFeatures, - "VkInstance supports the VK_KHR_external_fence_capabilities extension", - &members, - }; - - FeatureInfo supportsExternalSemaphoreCapabilities = { - "supportsExternalSemaphoreCapabilities", - FeatureCategory::VulkanFeatures, - "VkInstance supports the VK_KHR_external_semaphore_capabilities extension", - &members, - }; - - FeatureInfo supportsExternalSemaphoreFd = { - "supportsExternalSemaphoreFd", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_external_semaphore_fd extension", - &members, - }; - - FeatureInfo supportsExternalSemaphoreFuchsia = { - "supportsExternalSemaphoreFuchsia", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_FUCHSIA_external_semaphore extension", - &members, - }; - - FeatureInfo supportsExternalFenceFd = { - "supportsExternalFenceFd", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_external_fence_fd extension", &members, - "http://anglebug.com/2517"}; - - FeatureInfo supportsAndroidNativeFenceSync = { - "supportsAndroidNativeFenceSync", FeatureCategory::VulkanFeatures, - "VkDevice supports the EGL_ANDROID_native_fence_sync extension", &members, - "http://anglebug.com/2517"}; - - FeatureInfo supportsImageCubeArray = {"supportsImageCubeArray", FeatureCategory::VulkanFeatures, - "VkDevice supports the imageCubeArray feature properly", - &members, "http://anglebug.com/3584"}; - - FeatureInfo supportsPipelineStatisticsQuery = { - "supportsPipelineStatisticsQuery", FeatureCategory::VulkanFeatures, - "VkDevice supports the pipelineStatisticsQuery feature", &members, - "http://anglebug.com/5430"}; - - FeatureInfo supportsShaderStencilExport = { - "supportsShaderStencilExport", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_shader_stencil_export extension", - &members, - }; - - FeatureInfo supportsYUVSamplerConversion = { - "supportsYUVSamplerConversion", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_sampler_ycbcr_conversion extension", - &members, - }; - - FeatureInfo emulateTransformFeedback = { - "emulateTransformFeedback", FeatureCategory::VulkanFeatures, - "Emulate transform feedback as the VK_EXT_transform_feedback is not present.", &members, - "http://anglebug.com/3205"}; - - FeatureInfo supportsTransformFeedbackExtension = { - "supportsTransformFeedbackExtension", FeatureCategory::VulkanFeatures, - "Transform feedback uses the VK_EXT_transform_feedback extension.", &members, - "http://anglebug.com/3206"}; - - FeatureInfo supportsGeometryStreamsCapability = { - "supportsGeometryStreamsCapability", FeatureCategory::VulkanFeatures, - "Implementation supports the GeometryStreams SPIR-V capability.", &members, - "http://anglebug.com/3206"}; - - FeatureInfo supportsIndexTypeUint8 = {"supportsIndexTypeUint8", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_index_type_uint8 extension", - &members, "http://anglebug.com/4405"}; - - FeatureInfo supportsCustomBorderColor = { - "supportsCustomBorderColor", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_custom_border_color extension", &members, - "http://anglebug.com/3577"}; - - FeatureInfo supportsMultiDrawIndirect = { - "supportsMultiDrawIndirect", FeatureCategory::VulkanFeatures, - "VkDevice supports the multiDrawIndirect extension", &members, "http://anglebug.com/6439"}; - - FeatureInfo supportsDepthStencilResolve = {"supportsDepthStencilResolve", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_depth_stencil_resolve " - "extension with the independentResolveNone feature", - &members, "http://anglebug.com/4836"}; - - FeatureInfo supportsMultisampledRenderToSingleSampled = { - "supportsMultisampledRenderToSingleSampled", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_multisampled_render_to_single_sampled extension", &members, - "http://anglebug.com/4836"}; - - FeatureInfo supportsMultiview = {"supportsMultiview", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_multiview extension", &members, - "http://anglebug.com/6048"}; - - FeatureInfo disableFifoPresentMode = { - "disableFifoPresentMode", FeatureCategory::VulkanWorkarounds, - "VK_PRESENT_MODE_FIFO_KHR causes random timeouts", &members, "http://anglebug.com/3153"}; - - FeatureInfo forceD16TexFilter = { - "forceD16TexFilter", FeatureCategory::VulkanWorkarounds, - "VK_FORMAT_D16_UNORM does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, " - "which prevents OES_depth_texture from being supported.", - &members, "http://anglebug.com/3452"}; - - FeatureInfo disableFlippingBlitWithCommand = { - "disableFlippingBlitWithCommand", FeatureCategory::VulkanWorkarounds, - "vkCmdBlitImage with flipped coordinates blits incorrectly.", &members, - "http://anglebug.com/3498"}; - - FeatureInfo perFrameWindowSizeQuery = { - "perFrameWindowSizeQuery", FeatureCategory::VulkanWorkarounds, - "Vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE when window resizing", &members, - "http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625"}; - - FeatureInfo padBuffersToMaxVertexAttribStride = { - "padBuffersToMaxVertexAttribStride", FeatureCategory::VulkanWorkarounds, - "Vulkan considers vertex attribute accesses to count up to the last multiple of the " - "stride. This additional access supports AMD's robust buffer access implementation. " - "AMDVLK in particular will return incorrect values when the vertex access extends into " - "the range that would be the stride padding and the buffer is too small. " - "This workaround limits GL_MAX_VERTEX_ATTRIB_STRIDE to a maximum value and " - "pads up every buffer allocation size to be a multiple of the maximum stride.", - &members, "http://anglebug.com/4428"}; - - FeatureInfo supportsExternalMemoryDmaBufAndModifiers = { - "supportsExternalMemoryDmaBufAndModifiers", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier " - "extensions", - &members, "http://anglebug.com/6248"}; - - FeatureInfo supportsExternalMemoryHost = { - "supportsExternalMemoryHost", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_external_memory_host extension", - &members, - }; - - FeatureInfo allocateNonZeroMemory = { - "allocateNonZeroMemory", FeatureCategory::VulkanFeatures, - "Fill new allocations with non-zero values to flush out errors.", &members, - "http://anglebug.com/4384"}; - - FeatureInfo logMemoryReportCallbacks = { - "logMemoryReportCallbacks", - FeatureCategory::VulkanFeatures, - "Log each callback from VK_EXT_device_memory_report", - &members, - }; - - FeatureInfo logMemoryReportStats = { - "logMemoryReportStats", - FeatureCategory::VulkanFeatures, - "Log stats from VK_EXT_device_memory_report each swap", - &members, - }; - - FeatureInfo shadowBuffers = { - "shadowBuffers", FeatureCategory::VulkanFeatures, - "Allocate a shadow buffer for GL buffer objects to reduce glMap* latency.", &members, - "http://anglebug.com/4339"}; - - FeatureInfo preferCPUForBufferSubData = { - "preferCPUForBufferSubData", FeatureCategory::VulkanFeatures, - "Prefer use CPU to do bufferSubData instead of staged update.", &members, - "http://issuetracker.google.com/200067929"}; - - FeatureInfo persistentlyMappedBuffers = { - "persistentlyMappedBuffers", FeatureCategory::VulkanFeatures, - "Persistently map buffer memory to reduce map/unmap IOCTL overhead.", &members, - "http://anglebug.com/2162"}; - - FeatureInfo extraBufferLoggingAndChecking = { - "extraBufferLoggingAndChecking", FeatureCategory::VulkanFeatures, - "Enable extra buffer logging and checking to catch rare crashes", &members, - "https://issuetracker.google.com/236098131"}; - - FeatureInfo enablePreRotateSurfaces = {"enablePreRotateSurfaces", - FeatureCategory::VulkanFeatures, - "Enable Android pre-rotation for landscape applications", - &members, "http://anglebug.com/3502"}; - - FeatureInfo enablePrecisionQualifiers = { - "enablePrecisionQualifiers", FeatureCategory::VulkanFeatures, - "Enable precision qualifiers in shaders", &members, "http://anglebug.com/3078"}; - - FeatureInfo preferAggregateBarrierCalls = { - "preferAggregateBarrierCalls", FeatureCategory::VulkanWorkarounds, - "Single barrier call is preferred over multiple calls with " - "fine grained pipeline stage dependency information", - &members, "http://anglebug.com/4633"}; - - FeatureInfo preferSkippingInvalidateForEmulatedFormats = { - "preferSkippingInvalidateForEmulatedFormats", FeatureCategory::VulkanWorkarounds, - "Skipping invalidate is preferred for emulated formats that have extra channels over " - "re-clearing the image", - &members, "http://anglebug.com/6860"}; - - FeatureInfo asyncCommandQueue = {"asyncCommandQueue", FeatureCategory::VulkanFeatures, - "Use CommandQueue worker thread to dispatch work to GPU.", - &members, "http://anglebug.com/4324"}; - - FeatureInfo supportsShaderFloat16 = { - "supportsShaderFloat16", FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_KHR_shader_float16_int8 extension " - "and has the shaderFloat16 feature", - &members, "http://anglebug.com/4551"}; - - FeatureInfo allowGenerateMipmapWithCompute = { - "allowGenerateMipmapWithCompute", FeatureCategory::VulkanFeatures, - "Use the compute path to generate mipmaps on devices that meet the minimum requirements, " - "and the performance is better.", - &members, "http://anglebug.com/4551"}; - - FeatureInfo supportsRenderPassStoreOpNone = { - "supportsRenderPassStoreOpNone", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_QCOM_render_pass_store_ops extension.", &members, - "http://anglebug.com/5055"}; - - FeatureInfo supportsRenderPassLoadStoreOpNone = { - "supportsRenderPassLoadStoreOpNone", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_load_store_op_none extension.", &members, - "http://anglebug.com/5371"}; - - FeatureInfo disallowMixedDepthStencilLoadOpNoneAndLoad = { - "disallowMixedDepthStencilLoadOpNoneAndLoad", FeatureCategory::VulkanWorkarounds, - "Disallow use of LOAD_OP_NONE for only one of the depth or stencil aspects of a " - "depth/stencil attachment", - &members, "http://anglebug.com/7370"}; - - FeatureInfo supportsDepthClipControl = { - "supportsDepthClipControl", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_depth_clip_control extension.", &members, - "http://anglebug.com/5421"}; - - FeatureInfo supportsBlendOperationAdvanced = { - "supportsBlendOperationAdvanced", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_blend_operation_advanced extension.", &members, - "http://anglebug.com/3586"}; - - FeatureInfo forceMaxUniformBufferSize16KB = { - "forceMaxUniformBufferSize16KB", FeatureCategory::VulkanWorkarounds, - "Force max uniform buffer size to 16K on some device due to bug", &members, - "https://issuetracker.google.com/161903006"}; - - FeatureInfo supportsImageFormatList = { - "supportsImageFormatList", FeatureCategory::VulkanFeatures, - "Enable VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT by default for ICDs " - "that support VK_KHR_image_format_list", - &members, "http://anglebug.com/5281"}; - - FeatureInfo enableMultisampledRenderToTexture = { - "enableMultisampledRenderToTexture", FeatureCategory::VulkanWorkarounds, - "Expose EXT_multisampled_render_to_texture", &members, "http://anglebug.com/4937"}; - - FeatureInfo deferFlushUntilEndRenderPass = { - "deferFlushUntilEndRenderPass", FeatureCategory::VulkanWorkarounds, - "Allow glFlush to be deferred until renderpass ends", &members, - "https://issuetracker.google.com/issues/166475273"}; - - FeatureInfo waitIdleBeforeSwapchainRecreation = { - "waitIdleBeforeSwapchainRecreation", FeatureCategory::VulkanWorkarounds, - "Before passing an oldSwapchain to VkSwapchainCreateInfoKHR, wait for queue to be idle. " - "Works around a bug on platforms which destroy oldSwapchain in vkCreateSwapchainKHR.", - &members, "http://anglebug.com/5061"}; - - FeatureInfo forceTextureLodOffset1 = { - "forceTextureLodOffset1", - FeatureCategory::VulkanWorkarounds, - "Increase the minimum texture level-of-detail by 1 when sampling.", - &members, - }; - - FeatureInfo forceTextureLodOffset2 = { - "forceTextureLodOffset2", - FeatureCategory::VulkanWorkarounds, - "Increase the minimum texture level-of-detail by 2 when sampling.", - &members, - }; - - FeatureInfo forceTextureLodOffset3 = { - "forceTextureLodOffset3", - FeatureCategory::VulkanWorkarounds, - "Increase the minimum texture level-of-detail by 3 when sampling.", - &members, - }; - - FeatureInfo forceTextureLodOffset4 = { - "forceTextureLodOffset4", - FeatureCategory::VulkanWorkarounds, - "Increase the minimum texture level-of-detail by 4 when sampling.", - &members, - }; - - FeatureInfo forceNearestFiltering = { - "forceNearestFiltering", - FeatureCategory::VulkanWorkarounds, - "Force nearest filtering when sampling.", - &members, - }; - - FeatureInfo forceNearestMipFiltering = { - "forceNearestMipFiltering", - FeatureCategory::VulkanWorkarounds, - "Force nearest mip filtering when sampling.", - &members, - }; - - FeatureInfo compressVertexData = { - "compressVertexData", - FeatureCategory::VulkanWorkarounds, - "Compress vertex data to smaller data types when " - "possible. Using this feature makes ANGLE non-conformant.", - &members, - }; - - FeatureInfo preferDrawClearOverVkCmdClearAttachments = { - "preferDrawClearOverVkCmdClearAttachments", FeatureCategory::VulkanWorkarounds, - "On some hardware, clear using a draw call instead of vkCmdClearAttachments in the middle " - "of render pass due to bugs", - &members, "https://issuetracker.google.com/166809097"}; - - FeatureInfo emulatedPrerotation90 = {"emulatedPrerotation90", FeatureCategory::VulkanFeatures, - "Emulate 90-degree prerotation.", &members, - "http://anglebug.com/4901"}; - - FeatureInfo emulatedPrerotation180 = {"emulatedPrerotation180", FeatureCategory::VulkanFeatures, - "Emulate 180-degree prerotation.", &members, - "http://anglebug.com/4901"}; - - FeatureInfo emulatedPrerotation270 = {"emulatedPrerotation270", FeatureCategory::VulkanFeatures, - "Emulate 270-degree prerotation.", &members, - "http://anglebug.com/4901"}; - - FeatureInfo generateSPIRVThroughGlslang = { - "generateSPIRVThroughGlslang", FeatureCategory::VulkanFeatures, - "Translate SPIR-V through glslang.", &members, "http://anglebug.com/4889"}; - - FeatureInfo preferDriverUniformOverSpecConst = { - "preferDriverUniformOverSpecConst", FeatureCategory::VulkanFeatures, - "Prefer using driver uniforms instead of specialization constants.", &members, - "http://anglebug.com/7406"}; - - FeatureInfo exposeNonConformantExtensionsAndVersions = { - "exposeNonConformantExtensionsAndVersions", FeatureCategory::VulkanWorkarounds, - "Expose GLES versions and extensions that are not conformant.", &members, - "http://anglebug.com/5375"}; - - FeatureInfo emulateR32fImageAtomicExchange = { - "emulateR32fImageAtomicExchange", FeatureCategory::VulkanWorkarounds, - "Emulate r32f images with r32ui to support imageAtomicExchange.", &members, - "http://anglebug.com/5535"}; - - FeatureInfo supportsNegativeViewport = { - "supportsNegativeViewport", - FeatureCategory::VulkanFeatures, - "The driver supports inverting the viewport with a negative height.", - &members, - }; - - FeatureInfo forceFragmentShaderPrecisionHighpToMediump = { - "forceFragmentShaderPrecisionHighpToMediump", FeatureCategory::VulkanWorkarounds, - "Forces highp precision in fragment shader to mediump.", &members, - "https://issuetracker.google.com/184850002"}; - - FeatureInfo preferSubmitAtFBOBoundary = { - "preferSubmitAtFBOBoundary", FeatureCategory::VulkanWorkarounds, - "Submit commands to driver at each FBO boundary for performance improvements.", &members, - "https://issuetracker.google.com/187425444"}; - - FeatureInfo useMultipleDescriptorsForExternalFormats = { - "useMultipleDescriptorsForExternalFormats", FeatureCategory::VulkanWorkarounds, - "Return a default descriptor count for external formats.", &members, - "http://anglebug.com/6141"}; - - FeatureInfo supportsProtectedMemory = { - "supportsProtectedMemory", FeatureCategory::VulkanFeatures, - "VkDevice supports protected memory", &members, "http://anglebug.com/3965"}; - - FeatureInfo supportsHostQueryReset = {"supportsHostQueryReset", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_host_query_reset extension", - &members, "http://anglebug.com/6692"}; - - FeatureInfo supportsPipelineCreationCacheControl = { - "supportsPipelineCreationCacheControl", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_pipeline_creation_cache_control extension", &members, - "http://anglebug.com/5881"}; - - FeatureInfo supportsPipelineCreationFeedback = { - "supportsPipelineCreationFeedback", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_pipeline_creation_feedback extension", &members, - "http://anglebug.com/5881"}; - - FeatureInfo supportsPrimitivesGeneratedQuery = { - "supportsPrimitivesGeneratedQuery", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_primitives_generated_query extension", &members, - "http://anglebug.com/5430"}; - - FeatureInfo supportsSurfaceCapabilities2Extension = { - "supportsSurfaceCapabilities2Extension", - FeatureCategory::VulkanFeatures, - "VkInstance supports the VK_KHR_get_surface_capabilities2 extension", - &members, - }; - - FeatureInfo supportsSurfaceProtectedCapabilitiesExtension = { - "supportsSurfaceProtectedCapabilitiesExtension", - FeatureCategory::VulkanFeatures, - "VkInstance supports the VK_KHR_surface_protected_capabilities extension", - &members, - }; - - FeatureInfo supportsSurfacelessQueryExtension = { - "supportsSurfacelessQueryExtension", - FeatureCategory::VulkanFeatures, - "VkInstance supports the VK_GOOGLE_surfaceless_query extension", - &members, - }; - - FeatureInfo supportsSurfaceProtectedSwapchains = { - "supportsSurfaceProtectedSwapchains", - FeatureCategory::VulkanFeatures, - "VkSurface supportsProtected for protected swapchains", - &members, - }; - - FeatureInfo overrideSurfaceFormatRGB8ToRGBA8 = { - "overrideSurfaceFormatRGB8ToRGBA8", FeatureCategory::VulkanWorkarounds, - "Override surface format GL_RGB8 to GL_RGBA8", &members, "http://anglebug.com/6651"}; - - FeatureInfo supportsSharedPresentableImageExtension = { - "supportsSharedPresentableImageExtension", - FeatureCategory::VulkanFeatures, - "VkSurface supports the VK_KHR_shared_presentable_images extension", - &members, - }; - - FeatureInfo supportsShaderFramebufferFetch = { - "supportsShaderFramebufferFetch", - FeatureCategory::VulkanFeatures, - "Whether the Vulkan backend supports coherent framebuffer fetch", - &members, - }; - - FeatureInfo supportsShaderFramebufferFetchNonCoherent = { - "supportsShaderFramebufferFetchNonCoherent", - FeatureCategory::VulkanFeatures, - "Whether the Vulkan backend supports non-coherent framebuffer fetch", - &members, - }; - - FeatureInfo permanentlySwitchToFramebufferFetchMode = { - "permanentlySwitchToFramebufferFetchMode", - FeatureCategory::VulkanFeatures, - "Whether the context should permanently switch to framebuffer fetch mode on first" - "encounter", - &members, - }; - - FeatureInfo supportsLockSurfaceExtension = { - "supportsLockSurfaceExtension", - FeatureCategory::VulkanFeatures, - "Surface supports the EGL_KHR_lock_surface3 extension", - &members, - }; - - FeatureInfo swapbuffersOnFlushOrFinishWithSingleBuffer = { - "swapbuffersOnFlushOrFinishWithSingleBuffer", FeatureCategory::VulkanFeatures, - "Bypass deferredFlush with calling swapbuffers on flush or finish when in Shared " - "Present mode", - &members, "http://anglebug.com/6878"}; - - FeatureInfo emulateDithering = {"emulateDithering", FeatureCategory::VulkanFeatures, - "Emulate OpenGL dithering", &members, - "http://anglebug.com/6755"}; - - FeatureInfo roundOutputAfterDithering = { - "roundOutputAfterDithering", FeatureCategory::VulkanWorkarounds, - "Round output after dithering to workaround a driver bug that rounds the output up", - &members, "http://anglebug.com/6953"}; - - FeatureInfo emulateAdvancedBlendEquations = { - "emulateAdvancedBlendEquations", FeatureCategory::VulkanFeatures, - "Emulate GL_KHR_blend_equation_advanced", &members, "http://anglebug.com/3586"}; - - FeatureInfo precisionSafeDivision = { - "precisionSafeDivision", - FeatureCategory::VulkanWorkarounds, - "Special case handling for platforms that do not generate 1.0f even when the dividend and" - "divisor have the same value", - &members, - }; - - FeatureInfo bottomLeftOriginPresentRegionRectangles = { - "bottomLeftOriginPresentRegionRectangles", - FeatureCategory::VulkanWorkarounds, - "On some platforms present region rectangles are expected to have a bottom-left origin, " - "instead of top-left origin as from spec", - &members, - }; - - FeatureInfo forceSubmitImmutableTextureUpdates = { - "forceSubmitImmutableTextureUpdates", FeatureCategory::VulkanAppWorkarounds, - "Force submit updates to immutable textures", &members, "http://anglebug.com/6929"}; - - FeatureInfo retainSPIRVDebugInfo = {"retainSPIRVDebugInfo", FeatureCategory::VulkanFeatures, - "Retain debug info in SPIR-V blob.", &members, - "http://anglebug.com/5901"}; - - FeatureInfo warmUpPipelineCacheAtLink = { - "warmUpPipelineCacheAtLink", FeatureCategory::VulkanFeatures, - "Warm up the Vulkan pipeline cache at link time", &members, "http://anglebug.com/5881"}; - - FeatureInfo preferDeviceLocalMemoryHostVisible = { - "preferDeviceLocalMemoryHostVisible", FeatureCategory::VulkanFeatures, - "Prefer adding HOST_VISIBLE flag for DEVICE_LOCAL memory when picking memory types", - &members, "http://anglebug.com/7047"}; - - FeatureInfo supportsExtendedDynamicState = { - "supportsExtendedDynamicState", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_extended_dynamic_state extension", &members, - "http://anglebug.com/5906"}; - - FeatureInfo supportsExtendedDynamicState2 = { - "supportsExtendedDynamicState2", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_extended_dynamic_state2 extension", &members, - "http://anglebug.com/5906"}; - - FeatureInfo supportsFragmentShadingRate = { - "supportsFragmentShadingRate", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_KHR_fragment_shading_rate extension", &members, - "http://anglebug.com/7172"}; - - FeatureInfo supportsFragmentShaderPixelInterlock = { - "supportsFragmentShaderPixelInterlock", - FeatureCategory::VulkanFeatures, - "VkDevice supports the VK_EXT_fragment_shader_interlock extension " - "and has the fragmentShaderPixelInterlock feature", - &members, - }; - - FeatureInfo explicitlyEnablePerSampleShading = { - "explicitlyEnablePerSampleShading", FeatureCategory::VulkanWorkarounds, - "Explicitly enable per-sample shading if the fragment shader contains the " - "sample qualifier", - &members, "http://anglebug.com/6876"}; - - FeatureInfo forceContinuousRefreshOnSharedPresent = { - "forceContinuousRefreshOnSharedPresent", FeatureCategory::VulkanFeatures, - "Force to create vulkan swapchain with continuous refresh on shared present", &members, - "https://issuetracker.google.com/229267970"}; - - FeatureInfo supportsImage2dViewOf3d = { - "supportsImage2dViewOf3d", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_EXT_image_2d_view_of_3d", &members, "https://anglebug.com/7320"}; - - FeatureInfo supportsImagelessFramebuffer = { - "supportsImagelessFramebuffer", FeatureCategory::VulkanFeatures, - "VkDevice supports VK_KHR_imageless_framebuffer extension", &members, - "http://anglebug.com/7553"}; - - FeatureInfo preferLinearFilterForYUV = { - "preferLinearFilterForYUV", - FeatureCategory::VulkanFeatures, - "Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion", - &members, - }; - - FeatureInfo supportsYuvTarget = { - "supportsYuvTarget", - FeatureCategory::VulkanFeatures, - "VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment", - &members, - }; - - FeatureInfo useNonZeroStencilWriteMaskStaticState = { - "useNonZeroStencilWriteMaskStaticState", FeatureCategory::VulkanWorkarounds, - "Work around a driver bug where 0 in stencil write mask static state would make the" - "corresponding dynamic state malfunction in the presence of discard or alpha to coverage", - &members, "http://anglebug.com/7556"}; -}; - -inline FeaturesVk::FeaturesVk() = default; -inline FeaturesVk::~FeaturesVk() = default; - -} // namespace angle - -#endif // ANGLE_PLATFORM_FEATURESVK_H_ diff --git a/milepost/ext/angle_headers/platform/FrontendFeatures_autogen.h b/milepost/ext/angle_headers/platform/FrontendFeatures_autogen.h deleted file mode 100644 index e7eb2b0..0000000 --- a/milepost/ext/angle_headers/platform/FrontendFeatures_autogen.h +++ /dev/null @@ -1,106 +0,0 @@ -// GENERATED FILE - DO NOT EDIT. -// Generated by gen_features.py using data from frontend_features.json. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// FrontendFeatures_autogen.h: Features/workarounds for driver bugs and other behaviors seen -// on all platforms. - -#ifndef ANGLE_PLATFORM_FRONTENDFEATURES_H_ -#define ANGLE_PLATFORM_FRONTENDFEATURES_H_ - -#include "platform/Feature.h" - -namespace angle -{ - -struct FrontendFeatures : FeatureSetBase -{ - FrontendFeatures(); - ~FrontendFeatures(); - - FeatureInfo loseContextOnOutOfMemory = { - "loseContextOnOutOfMemory", - FeatureCategory::FrontendWorkarounds, - "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs", - &members, - }; - - FeatureInfo disableProgramCachingForTransformFeedback = { - "disableProgramCachingForTransformFeedback", - FeatureCategory::FrontendWorkarounds, - "On some GPUs, program binaries don't contain transform feedback varyings", - &members, - }; - - FeatureInfo scalarizeVecAndMatConstructorArgs = { - "scalarizeVecAndMatConstructorArgs", FeatureCategory::FrontendWorkarounds, - "Always rewrite vec/mat constructors to be consistent", &members, - "http://crbug.com/1165751"}; - - FeatureInfo disableProgramBinary = {"disableProgramBinary", FeatureCategory::FrontendFeatures, - "Disable support for GL_OES_get_program_binary", &members, - "http://anglebug.com/5007"}; - - FeatureInfo disableAnisotropicFiltering = { - "disableAnisotropicFiltering", - FeatureCategory::FrontendWorkarounds, - "Disable support for anisotropic filtering", - &members, - }; - - FeatureInfo allowCompressedFormats = { - "allowCompressedFormats", - FeatureCategory::FrontendWorkarounds, - "Allow compressed formats", - &members, - }; - - FeatureInfo forceDepthAttachmentInitOnClear = { - "forceDepthAttachmentInitOnClear", FeatureCategory::FrontendWorkarounds, - "Force depth attachment initialization on clear ops", &members, - "https://anglebug.com/7246"}; - - FeatureInfo enableCaptureLimits = {"enableCaptureLimits", FeatureCategory::FrontendFeatures, - "Set the context limits like frame capturing was enabled", - &members, "http://anglebug.com/5750"}; - - FeatureInfo enableCompressingPipelineCacheInThreadPool = { - "enableCompressingPipelineCacheInThreadPool", FeatureCategory::FrontendWorkarounds, - "Enable compressing pipeline cache in thread pool.", &members, "http://anglebug.com/4722"}; - - FeatureInfo forceRobustResourceInit = { - "forceRobustResourceInit", FeatureCategory::FrontendFeatures, - "Force-enable robust resource init", &members, "http://anglebug.com/6041"}; - - FeatureInfo forceInitShaderVariables = { - "forceInitShaderVariables", - FeatureCategory::FrontendFeatures, - "Force-enable shader variable initialization", - &members, - }; - - FeatureInfo enableProgramBinaryForCapture = { - "enableProgramBinaryForCapture", FeatureCategory::FrontendFeatures, - "Even if FrameCapture is enabled, enable GL_OES_get_program_binary", &members, - "http://anglebug.com/5658"}; - - FeatureInfo forceGlErrorChecking = { - "forceGlErrorChecking", FeatureCategory::FrontendFeatures, - "Force GL error checking (i.e. prevent applications from disabling error checking", - &members, "https://issuetracker.google.com/220069903"}; - - FeatureInfo emulatePixelLocalStorage = { - "emulatePixelLocalStorage", FeatureCategory::FrontendFeatures, - "Emulate ANGLE_shader_pixel_local_storage using shader images", &members, - "http://anglebug.com/7279"}; -}; - -inline FrontendFeatures::FrontendFeatures() = default; -inline FrontendFeatures::~FrontendFeatures() = default; - -} // namespace angle - -#endif // ANGLE_PLATFORM_FRONTENDFEATURES_H_ diff --git a/milepost/ext/angle_headers/platform/Platform.h b/milepost/ext/angle_headers/platform/Platform.h deleted file mode 100644 index 2c9537e..0000000 --- a/milepost/ext/angle_headers/platform/Platform.h +++ /dev/null @@ -1,10 +0,0 @@ -// -// Copyright 2020 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Platform.h: Simple forwarding header to PlatformMethods.h. -// Ideally we can remove this file at some point since "Platform.h" is overloaded. -// - -#include "PlatformMethods.h" diff --git a/milepost/ext/angle_headers/platform/PlatformMethods.h b/milepost/ext/angle_headers/platform/PlatformMethods.h deleted file mode 100644 index 48ef335..0000000 --- a/milepost/ext/angle_headers/platform/PlatformMethods.h +++ /dev/null @@ -1,334 +0,0 @@ -// -// Copyright 2015 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// PlatformMethods.h: The public interface ANGLE exposes to the API layer, for -// doing platform-specific tasks like gathering data, or for tracing. - -#ifndef ANGLE_PLATFORMMETHODS_H -#define ANGLE_PLATFORMMETHODS_H - -#include -#include -#include - -#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x6AFB - -#if !defined(ANGLE_PLATFORM_EXPORT) -# if defined(_WIN32) -# if !defined(LIBANGLE_IMPLEMENTATION) -# define ANGLE_PLATFORM_EXPORT __declspec(dllimport) -# else -# define ANGLE_PLATFORM_EXPORT __declspec(dllexport) -# endif -# elif defined(__GNUC__) || defined(__clang__) -# define ANGLE_PLATFORM_EXPORT __attribute__((visibility("default"))) -# endif -#endif -#if !defined(ANGLE_PLATFORM_EXPORT) -# define ANGLE_PLATFORM_EXPORT -#endif - -#if defined(_WIN32) -# define ANGLE_APIENTRY __stdcall -#else -# define ANGLE_APIENTRY -#endif - -namespace angle -{ -struct FeaturesD3D; -struct FeaturesVk; -struct FeaturesMtl; -using TraceEventHandle = uint64_t; -using EGLDisplayType = void *; -struct PlatformMethods; - -// Use a C-like API to not trigger undefined calling behaviour. -// Avoid using decltype here to work around sanitizer limitations. -// TODO(jmadill): Use decltype here if/when UBSAN is fixed. - -// System -------------------------------------------------------------- - -// Wall clock time in seconds since the epoch. -// TODO(jmadill): investigate using an ANGLE internal time library -using CurrentTimeFunc = double (*)(PlatformMethods *platform); -inline double DefaultCurrentTime(PlatformMethods *platform) -{ - return 0.0; -} - -// Monotonically increasing time in seconds from an arbitrary fixed point in the past. -// This function is expected to return at least millisecond-precision values. For this reason, -// it is recommended that the fixed point be no further in the past than the epoch. -using MonotonicallyIncreasingTimeFunc = double (*)(PlatformMethods *platform); -inline double DefaultMonotonicallyIncreasingTime(PlatformMethods *platform) -{ - return 0.0; -} - -// Logging ------------------------------------------------------------ - -// Log an error message within the platform implementation. -using LogErrorFunc = void (*)(PlatformMethods *platform, const char *errorMessage); -inline void DefaultLogError(PlatformMethods *platform, const char *errorMessage) {} - -// Log a warning message within the platform implementation. -using LogWarningFunc = void (*)(PlatformMethods *platform, const char *warningMessage); -inline void DefaultLogWarning(PlatformMethods *platform, const char *warningMessage) {} - -// Log an info message within the platform implementation. -using LogInfoFunc = void (*)(PlatformMethods *platform, const char *infoMessage); -inline void DefaultLogInfo(PlatformMethods *platform, const char *infoMessage) {} - -// Tracing -------- - -// Get a pointer to the enabled state of the given trace category. The -// embedder can dynamically change the enabled state as trace event -// recording is started and stopped by the application. Only long-lived -// literal strings should be given as the category name. The implementation -// expects the returned pointer to be held permanently in a local static. If -// the unsigned char is non-zero, tracing is enabled. If tracing is enabled, -// addTraceEvent is expected to be called by the trace event macros. -using GetTraceCategoryEnabledFlagFunc = const unsigned char *(*)(PlatformMethods *platform, - const char *categoryName); -inline const unsigned char *DefaultGetTraceCategoryEnabledFlag(PlatformMethods *platform, - const char *categoryName) -{ - return nullptr; -} - -// -// Add a trace event to the platform tracing system. Depending on the actual -// enabled state, this event may be recorded or dropped. -// - phase specifies the type of event: -// - BEGIN ('B'): Marks the beginning of a scoped event. -// - END ('E'): Marks the end of a scoped event. -// - COMPLETE ('X'): Marks the beginning of a scoped event, but doesn't -// need a matching END event. Instead, at the end of the scope, -// updateTraceEventDuration() must be called with the TraceEventHandle -// returned from addTraceEvent(). -// - INSTANT ('I'): Standalone, instantaneous event. -// - START ('S'): Marks the beginning of an asynchronous event (the end -// event can occur in a different scope or thread). The id parameter is -// used to match START/FINISH pairs. -// - FINISH ('F'): Marks the end of an asynchronous event. -// - COUNTER ('C'): Used to trace integer quantities that change over -// time. The argument values are expected to be of type int. -// - METADATA ('M'): Reserved for internal use. -// - categoryEnabled is the pointer returned by getTraceCategoryEnabledFlag. -// - name is the name of the event. Also used to match BEGIN/END and -// START/FINISH pairs. -// - id optionally allows events of the same name to be distinguished from -// each other. For example, to trace the construction and destruction of -// objects, specify the pointer as the id parameter. -// - timestamp should be a time value returned from monotonicallyIncreasingTime. -// - numArgs specifies the number of elements in argNames, argTypes, and -// argValues. -// - argNames is the array of argument names. Use long-lived literal strings -// or specify the COPY flag. -// - argTypes is the array of argument types: -// - BOOL (1): bool -// - UINT (2): unsigned long long -// - INT (3): long long -// - DOUBLE (4): double -// - POINTER (5): void* -// - STRING (6): char* (long-lived null-terminated char* string) -// - COPY_STRING (7): char* (temporary null-terminated char* string) -// - CONVERTABLE (8): WebConvertableToTraceFormat -// - argValues is the array of argument values. Each value is the unsigned -// long long member of a union of all supported types. -// - flags can be 0 or one or more of the following, ORed together: -// - COPY (0x1): treat all strings (name, argNames and argValues of type -// string) as temporary so that they will be copied by addTraceEvent. -// - HAS_ID (0x2): use the id argument to uniquely identify the event for -// matching with other events of the same name. -// - MANGLE_ID (0x4): specify this flag if the id parameter is the value -// of a pointer. -using AddTraceEventFunc = angle::TraceEventHandle (*)(PlatformMethods *platform, - char phase, - const unsigned char *categoryEnabledFlag, - const char *name, - unsigned long long id, - double timestamp, - int numArgs, - const char **argNames, - const unsigned char *argTypes, - const unsigned long long *argValues, - unsigned char flags); -inline angle::TraceEventHandle DefaultAddTraceEvent(PlatformMethods *platform, - char phase, - const unsigned char *categoryEnabledFlag, - const char *name, - unsigned long long id, - double timestamp, - int numArgs, - const char **argNames, - const unsigned char *argTypes, - const unsigned long long *argValues, - unsigned char flags) -{ - return 0; -} - -// Set the duration field of a COMPLETE trace event. -using UpdateTraceEventDurationFunc = void (*)(PlatformMethods *platform, - const unsigned char *categoryEnabledFlag, - const char *name, - angle::TraceEventHandle eventHandle); -inline void DefaultUpdateTraceEventDuration(PlatformMethods *platform, - const unsigned char *categoryEnabledFlag, - const char *name, - angle::TraceEventHandle eventHandle) -{} - -// Callbacks for reporting histogram data. -// CustomCounts histogram has exponential bucket sizes, so that min=1, max=1000000, bucketCount=50 -// would do. -using HistogramCustomCountsFunc = void (*)(PlatformMethods *platform, - const char *name, - int sample, - int min, - int max, - int bucketCount); -inline void DefaultHistogramCustomCounts(PlatformMethods *platform, - const char *name, - int sample, - int min, - int max, - int bucketCount) -{} -// Enumeration histogram buckets are linear, boundaryValue should be larger than any possible sample -// value. -using HistogramEnumerationFunc = void (*)(PlatformMethods *platform, - const char *name, - int sample, - int boundaryValue); -inline void DefaultHistogramEnumeration(PlatformMethods *platform, - const char *name, - int sample, - int boundaryValue) -{} -// Unlike enumeration histograms, sparse histograms only allocate memory for non-empty buckets. -using HistogramSparseFunc = void (*)(PlatformMethods *platform, const char *name, int sample); -inline void DefaultHistogramSparse(PlatformMethods *platform, const char *name, int sample) {} -// Boolean histograms track two-state variables. -using HistogramBooleanFunc = void (*)(PlatformMethods *platform, const char *name, bool sample); -inline void DefaultHistogramBoolean(PlatformMethods *platform, const char *name, bool sample) {} - -// Callback on a successful program link with the program binary. Can be used to store -// shaders to disk. Keys are a 160-bit SHA-1 hash. -using ProgramKeyType = std::array; -using CacheProgramFunc = void (*)(PlatformMethods *platform, - const ProgramKeyType &key, - size_t programSize, - const uint8_t *programBytes); -inline void DefaultCacheProgram(PlatformMethods *platform, - const ProgramKeyType &key, - size_t programSize, - const uint8_t *programBytes) -{} - -using PostWorkerTaskCallback = void (*)(void *userData); -using PostWorkerTaskFunc = void (*)(PlatformMethods *platform, - PostWorkerTaskCallback callback, - void *userData); -constexpr PostWorkerTaskFunc DefaultPostWorkerTask = nullptr; - -// Placeholder values where feature override callbacks used to be. They are deprecated in favor of -// EGL_ANGLE_feature_control. The placeholders are there to keep the layout of the PlatformMethods -// constant to support drop-in replacement of ANGLE's .so files in applications built with an older -// header. -using PlaceholderCallbackFunc = void (*)(...); -inline void DefaultPlaceholderCallback(...) {} - -// Platform methods are enumerated here once. -#define ANGLE_PLATFORM_OP(OP) \ - OP(currentTime, CurrentTime) \ - OP(monotonicallyIncreasingTime, MonotonicallyIncreasingTime) \ - OP(logError, LogError) \ - OP(logWarning, LogWarning) \ - OP(logInfo, LogInfo) \ - OP(getTraceCategoryEnabledFlag, GetTraceCategoryEnabledFlag) \ - OP(addTraceEvent, AddTraceEvent) \ - OP(updateTraceEventDuration, UpdateTraceEventDuration) \ - OP(histogramCustomCounts, HistogramCustomCounts) \ - OP(histogramEnumeration, HistogramEnumeration) \ - OP(histogramSparse, HistogramSparse) \ - OP(histogramBoolean, HistogramBoolean) \ - OP(placeholder1, PlaceholderCallback) \ - OP(placeholder2, PlaceholderCallback) \ - OP(cacheProgram, CacheProgram) \ - OP(placeholder3, PlaceholderCallback) \ - OP(postWorkerTask, PostWorkerTask) - -#define ANGLE_PLATFORM_METHOD_DEF(Name, CapsName) CapsName##Func Name = Default##CapsName; - -struct ANGLE_PLATFORM_EXPORT PlatformMethods -{ - inline PlatformMethods(); - - // User data pointer for any implementation specific members. Put it at the start of the - // platform structure so it doesn't become overwritten if one version of the platform - // adds or removes new members. - void *context = 0; - - ANGLE_PLATFORM_OP(ANGLE_PLATFORM_METHOD_DEF) -}; - -inline PlatformMethods::PlatformMethods() = default; - -#undef ANGLE_PLATFORM_METHOD_DEF - -// Subtract one to account for the context pointer. -constexpr unsigned int g_NumPlatformMethods = (sizeof(PlatformMethods) / sizeof(uintptr_t)) - 1; - -// No further uses of platform methods is allowed. EGL extensions should be used instead. While -// methods are being removed, use PlaceholderCallback to keep the layout of PlatformMethods -// constant. -static_assert(g_NumPlatformMethods == 17, "Avoid adding methods to PlatformMethods"); - -#define ANGLE_PLATFORM_METHOD_STRING(Name) #Name -#define ANGLE_PLATFORM_METHOD_STRING2(Name, CapsName) ANGLE_PLATFORM_METHOD_STRING(Name), - -constexpr const char *const g_PlatformMethodNames[g_NumPlatformMethods] = { - ANGLE_PLATFORM_OP(ANGLE_PLATFORM_METHOD_STRING2)}; - -#undef ANGLE_PLATFORM_METHOD_STRING2 -#undef ANGLE_PLATFORM_METHOD_STRING - -} // namespace angle - -extern "C" { - -// Gets the platform methods on the passed-in EGL display. If the method name signature does not -// match the compiled signature for this ANGLE, false is returned. On success true is returned. -// The application should set any platform methods it cares about on the returned pointer. -// If display is not valid, behaviour is undefined. - -ANGLE_PLATFORM_EXPORT bool ANGLE_APIENTRY ANGLEGetDisplayPlatform(angle::EGLDisplayType display, - const char *const methodNames[], - unsigned int methodNameCount, - void *context, - void *platformMethodsOut); - -// Sets the platform methods back to their defaults. -// If display is not valid, behaviour is undefined. -ANGLE_PLATFORM_EXPORT void ANGLE_APIENTRY ANGLEResetDisplayPlatform(angle::EGLDisplayType display); -} // extern "C" - -namespace angle -{ -typedef bool(ANGLE_APIENTRY *GetDisplayPlatformFunc)(angle::EGLDisplayType, - const char *const *, - unsigned int, - void *, - void *); -typedef void(ANGLE_APIENTRY *ResetDisplayPlatformFunc)(angle::EGLDisplayType); -} // namespace angle - -// This function is not exported -angle::PlatformMethods *ANGLEPlatformCurrent(); - -#endif // ANGLE_PLATFORMMETHODS_H diff --git a/milepost/ext/angle_headers/platform/d3d_features.json b/milepost/ext/angle_headers/platform/d3d_features.json deleted file mode 100644 index 49f0669..0000000 --- a/milepost/ext/angle_headers/platform/d3d_features.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "description": [ - "Copyright 2022 The ANGLE Project Authors. All rights reserved.", - "Use of this source code is governed by a BSD-style license that can be", - "found in the LICENSE file.", - "", - "d3d_features.json: Features and workarounds for D3D driver bugs and other issues." - ], - "features": [ - { - "name": "mrt_perf_workaround", - "category": "Workarounds", - "description": [ - "Some drivers have a bug where they ignore null render targets" - ] - }, - { - "name": "set_data_faster_than_image_upload", - "category": "Workarounds", - "description": [ - "Set data faster than image upload" - ] - }, - { - "name": "zero_max_lod_workaround", - "category": "Workarounds", - "description": [ - "Missing an option to disable mipmaps on a mipmapped texture" - ] - }, - { - "name": "use_instanced_point_sprite_emulation", - "category": "Workarounds", - "description": [ - "Some D3D11 renderers do not support geometry shaders for pointsprite emulation" - ] - }, - { - "name": "depth_stencil_blit_extra_copy", - "category": "Workarounds", - "description": [ - "Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging ", - "texture to a depth/stencil" - ], - "issue": "http://anglebug.com/1452" - }, - { - "name": "expand_integer_pow_expressions", - "category": "Workarounds", - "description": [ - "The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions" - ] - }, - { - "name": "flush_after_ending_transform_feedback", - "category": "Workarounds", - "description": [ - "Some drivers sometimes write out-of-order results to StreamOut buffers when transform ", - "feedback is used to repeatedly write to the same buffer positions" - ] - }, - { - "name": "get_dimensions_ignores_base_level", - "category": "Workarounds", - "description": [ - "Some drivers do not take into account the base level of the ", - "texture in the results of the HLSL GetDimensions builtin" - ] - }, - { - "name": "pre_add_texel_fetch_offsets", - "category": "Workarounds", - "description": [ - "HLSL's function texture.Load returns 0 when the parameter Location is negative, even if ", - "the sum of Offset and Location is in range" - ] - }, - { - "name": "emulate_tiny_stencil_textures", - "category": "Workarounds", - "description": [ - "1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly" - ] - }, - { - "name": "disable_B5G6R5_support", - "category": "Workarounds", - "description": [ - "Textures with the format ", - "DXGI_FORMAT_B5G6R5_UNORM have incorrect data" - ] - }, - { - "name": "rewrite_unary_minus_operator", - "category": "Workarounds", - "description": [ - "Evaluating unary minus operator on integer may get wrong answer in vertex shaders" - ] - }, - { - "name": "emulate_isnan_float", - "category": "Workarounds", - "description": [ - "Using isnan() on highp float will get wrong answer" - ], - "issue": "https://crbug.com/650547" - }, - { - "name": "call_clear_twice", - "category": "Workarounds", - "description": [ - "Using clear() may not take effect" - ], - "issue": "https://crbug.com/655534" - }, - { - "name": "use_system_memory_for_constant_buffers", - "category": "Workarounds", - "description": [ - "Copying from staging storage to constant buffer ", - "storage does not work" - ], - "issue": "https://crbug.com/593024" - }, - { - "name": "select_view_in_geometry_shader", - "category": "Workarounds", - "description": [ - "The viewport or render target slice will be selected in the geometry shader stage for ", - "the ANGLE_multiview extension" - ] - }, - { - "name": "add_mock_texture_no_render_target", - "category": "Workarounds", - "description": [ - "On some drivers when rendering with no render target, two bugs lead to incorrect behavior" - ], - "issue": "http://anglebug.com/2152" - }, - { - "name": "skip_VS_constant_register_zero", - "category": "Workarounds", - "description": [ - "In specific cases the driver doesn't handle constant register zero correctly" - ] - }, - { - "name": "force_atomic_value_resolution", - "category": "Workarounds", - "description": [ - "On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve ", - "when used in the .yzw components of a RWByteAddressBuffer.Store operation" - ], - "issue": "http://anglebug.com/3246" - }, - { - "name": "allow_clear_for_robust_resource_init", - "category": "Workarounds", - "description": [ - "Some drivers corrupt texture data when clearing for robust resource initialization." - ], - "issue": "http://crbug.com/941620" - }, - { - "name": "allow_translate_uniform_block_to_structured_buffer", - "category": "Workarounds", - "description": [ - "There is a slow fxc compile performance issue with dynamic uniform indexing if ", - "translating a uniform block with a large array member to cbuffer." - ], - "issue": "http://anglebug.com/3682" - }, - { - "name": "allow_ES3_on_FL10_0", - "category": "Workarounds", - "description": [ - "Allow ES3 on 10.0 devices" - ] - } - ] -} diff --git a/milepost/ext/angle_headers/platform/frontend_features.json b/milepost/ext/angle_headers/platform/frontend_features.json deleted file mode 100644 index a91b583..0000000 --- a/milepost/ext/angle_headers/platform/frontend_features.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "description": [ - "Copyright 2022 The ANGLE Project Authors. All rights reserved.", - "Use of this source code is governed by a BSD-style license that can be", - "found in the LICENSE file.", - "", - "frontend_features.json: Features/workarounds for driver bugs and other behaviors seen", - "on all platforms." - ], - "features": [ - { - "name": "lose_context_on_out_of_memory", - "category": "Workarounds", - "description": [ - "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs" - ] - }, - { - "name": "disable_program_caching_for_transform_feedback", - "category": "Workarounds", - "description": [ - "On some GPUs, program binaries don't contain transform feedback varyings" - ] - }, - { - "name": "scalarize_vec_and_mat_constructor_args", - "category": "Workarounds", - "description": [ - "Always rewrite vec/mat constructors to be consistent" - ], - "issue": "http://crbug.com/1165751" - }, - { - "name": "disable_program_binary", - "category": "Features", - "description": [ - "Disable support for GL_OES_get_program_binary" - ], - "issue": "http://anglebug.com/5007" - }, - { - "name": "disable_anisotropic_filtering", - "category": "Workarounds", - "description": [ - "Disable support for anisotropic filtering" - ] - }, - { - "name": "allow_compressed_formats", - "category": "Workarounds", - "description": [ - "Allow compressed formats" - ] - }, - { - "name": "force_depth_attachment_init_on_clear", - "category": "Workarounds", - "description": [ - "Force depth attachment initialization on clear ops" - ], - "issue": "https://anglebug.com/7246" - }, - { - "name": "enable_capture_limits", - "category": "Features", - "description": [ - "Set the context limits like frame capturing was enabled" - ], - "issue": "http://anglebug.com/5750" - }, - { - "name": "enable_compressing_pipeline_cache_in_thread_pool", - "category": "Workarounds", - "description": [ - "Enable compressing pipeline cache in thread pool." - ], - "issue": "http://anglebug.com/4722" - }, - { - "name": "force_robust_resource_init", - "category": "Features", - "description": [ - "Force-enable robust resource init" - ], - "issue": "http://anglebug.com/6041" - }, - { - "name": "force_init_shader_variables", - "category": "Features", - "description": [ - "Force-enable shader variable initialization" - ] - }, - { - "name": "enable_program_binary_for_capture", - "category": "Features", - "description": [ - "Even if FrameCapture is enabled, enable GL_OES_get_program_binary" - ], - "issue": "http://anglebug.com/5658" - }, - { - "name": "force_gl_error_checking", - "category": "Features", - "description": [ - "Force GL error checking (i.e. prevent applications from disabling error checking" - ], - "issue": "https://issuetracker.google.com/220069903" - }, - { - "name": "emulate_pixel_local_storage", - "category": "Features", - "description": [ - "Emulate ANGLE_shader_pixel_local_storage using shader images" - ], - "issue": "http://anglebug.com/7279" - } - ] -} diff --git a/milepost/ext/angle_headers/platform/gen_features.py b/milepost/ext/angle_headers/platform/gen_features.py deleted file mode 100755 index da93a6a..0000000 --- a/milepost/ext/angle_headers/platform/gen_features.py +++ /dev/null @@ -1,221 +0,0 @@ -#! /usr/bin/python3 - -# Copyright 2022 The ANGLE Project Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -# -# gen_features.py: -# Code generation for ANGLE features. -# NOTE: don't run this script directly. Run scripts/run_code_generation.py. - -from collections import namedtuple -import json -import os -import re -import sys - -feature_files = { - 'd3d_features.json': ('D3D', 'FeaturesD3D'), - 'frontend_features.json': ('Frontend', 'FrontendFeatures'), - 'gl_features.json': ('OpenGL', 'FeaturesGL'), - 'mtl_features.json': ('Metal', 'FeaturesMtl'), - 'vk_features.json': ('Vulkan', 'FeaturesVk'), -} -feature_list_header_file = '../../util/angle_features_autogen.h' -feature_list_source_file = '../../util/angle_features_autogen.cpp' - -template_header = u"""// GENERATED FILE - DO NOT EDIT. -// Generated by {script_name} using data from {input_file_name}. -// -{description} - -#ifndef ANGLE_PLATFORM_{NAME}_H_ -#define ANGLE_PLATFORM_{NAME}_H_ - -#include "platform/Feature.h" - -namespace angle -{{ - -struct {name} : FeatureSetBase -{{ - {name}(); - ~{name}(); - -{features} -}}; - -inline {name}::{name}() = default; -inline {name}::~{name}() = default; - -}} // namespace angle - -#endif // ANGLE_PLATFORM_{NAME}_H_ -""" - -template_feature = u"""FeatureInfo {var_name} = {{ - "{display_name}", FeatureCategory::{category}, - {description}, - &members, {issue} -}}; -""" - -template_feature_list_header = u"""// GENERATED FILE - DO NOT EDIT. -// Generated by {script_name} using data from {input_file_name}. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// angle_features_autogen.h: List of ANGLE features to help enable/disable them in tests. - -#ifndef ANGLE_SRC_TESTS_TEST_UTILS_ANGLE_FEATURES_AUTOGEN_H_ -#define ANGLE_SRC_TESTS_TEST_UTILS_ANGLE_FEATURES_AUTOGEN_H_ - -#include "util_export.h" - -namespace angle -{{ -enum class Feature -{{ -{features} - - InvalidEnum, - EnumCount = InvalidEnum, -}}; - -ANGLE_UTIL_EXPORT extern const char *GetFeatureName(Feature feature); - -}} // namespace angle - -#endif // ANGLE_SRC_TESTS_TEST_UTILS_ANGLE_FEATURES_AUTOGEN_H_ -""" - -template_feature_enum = u"""{VarName},""" - -template_feature_list_source = u"""// GENERATED FILE - DO NOT EDIT. -// Generated by {script_name} using data from {input_file_name}. -// -// Copyright 2022 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// angle_features_autogen.cpp: List of ANGLE features to help enable/disable them in tests. - -#include "angle_features_autogen.h" - -#include "common/PackedEnums.h" - -namespace angle -{{ -namespace -{{ -constexpr PackedEnumMap kFeatureNames = {{ {{ -{features} -}} }}; -}} // anonymous namespace - -const char *GetFeatureName(Feature feature) -{{ - return kFeatureNames[feature]; -}} - -}} // namespace angle -""" - -template_feature_string = u"""{{Feature::{VarName}, "{display_name}"}},""" - - -def make_camel_case(json_name): - assert '_' in json_name, 'feature names in the json file are expected to be in snake_case' - return re.sub('_(.)', lambda m: m.group(1).upper(), json_name) - - -def make_header_name(class_name): - return class_name + '_autogen.h' - - -def main(): - if len(sys.argv) == 2 and sys.argv[1] == 'inputs': - print(','.join(list(feature_files.keys()))) - return - if len(sys.argv) == 2 and sys.argv[1] == 'outputs': - print(','.join( - [make_header_name(class_name) for (_, class_name) in feature_files.values()]) + ',' + - feature_list_header_file + ',' + feature_list_source_file) - return - - name_map = {} - - for src_file, (category_prefix, class_name) in feature_files.items(): - with open(src_file) as fin: - src = json.loads(fin.read()) - - features_json = src['features'] - features = [] - - # Go over the list of features and write the header file that declares the features struct - for feature_json in features_json: - json_name = feature_json['name'] - var_name = make_camel_case(json_name) - # Use the same (camelCase) name for display as well - display_name = var_name - issue = feature_json.get('issue', None) - feature = template_feature.format( - var_name=var_name, - display_name=display_name, - category=category_prefix + feature_json['category'], - description='\n'.join('"' + line + '"' for line in feature_json['description']), - issue='' if issue is None else '"' + issue + '"') - - features.append(feature) - - # Keep track of the feature names. Sometimes the same feature name is present in - # multiple backends. That's ok for the purposes of feature overriding. - name_map[var_name] = display_name - - description = '\n'.join(['// ' + line for line in src['description']]) - header_file = make_header_name(class_name) - - header = template_header.format( - script_name=os.path.basename(__file__), - input_file_name=src_file, - description=description.replace(src_file, header_file), - name=class_name, - NAME=class_name.upper(), - features='\n'.join(features)) - - with open(header_file, 'w') as fout: - fout.write(header) - fout.close() - - # Generate helpers for use by tests to override a feature or not. - feature_enums = [] - feature_strings = [] - for var_name, display_name in sorted(name_map.items(), key=lambda item: item[0].lower()): - VarName = var_name[0].upper() + var_name[1:] - - feature_enums.append(template_feature_enum.format(VarName=VarName)) - - feature_strings.append( - template_feature_string.format(VarName=VarName, display_name=display_name)) - - with open(feature_list_header_file, 'w') as fout: - fout.write( - template_feature_list_header.format( - script_name=os.path.basename(__file__), - input_file_name='*_features.json', - features='\n'.join(feature_enums))) - fout.close() - - with open(feature_list_source_file, 'w') as fout: - fout.write( - template_feature_list_source.format( - script_name=os.path.basename(__file__), - input_file_name='*_features.json', - features='\n'.join(feature_strings))) - fout.close() - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/milepost/ext/angle_headers/platform/gl_features.json b/milepost/ext/angle_headers/platform/gl_features.json deleted file mode 100644 index 8a682e8..0000000 --- a/milepost/ext/angle_headers/platform/gl_features.json +++ /dev/null @@ -1,672 +0,0 @@ -{ - "description": [ - "Copyright 2022 The ANGLE Project Authors. All rights reserved.", - "Use of this source code is governed by a BSD-style license that can be", - "found in the LICENSE file.", - "", - "gl_features.json: angle::Features and workarounds for GL driver bugs and other issues." - ], - "features": [ - { - "name": "avoid_1_bit_alpha_texture_formats", - "category": "Workarounds", - "description": [ - "Issue with 1-bit alpha framebuffer formats" - ] - }, - { - "name": "RGBA4_is_not_supported_for_color_rendering", - "category": "Workarounds", - "description": [ - "GL_RGBA4 is not color renderable" - ] - }, - { - "name": "allow_ETC_formats", - "category": "Workarounds", - "description": [ - "Enable ETC2/EAC on desktop OpenGL" - ] - }, - { - "name": "allow_astc_formats", - "category": "Workarounds", - "description": [ - "Enable ASTC on desktop OpenGL" - ] - }, - { - "name": "does_SRGB_clears_on_linear_framebuffer_attachments", - "category": "Workarounds", - "description": [ - "Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled" - ] - }, - { - "name": "do_while_GLSL_causes_GPU_hang", - "category": "Workarounds", - "description": [ - "Some GLSL constructs involving do-while loops cause GPU hangs" - ], - "issue": "http://crbug.com/644669" - }, - { - "name": "vertex_ID_does_not_include_base_vertex", - "category": "Workarounds", - "description": [ - "gl_VertexID in GLSL vertex shader doesn't include base vertex value" - ] - }, - { - "name": "finish_does_not_cause_queries_to_be_available", - "category": "Workarounds", - "description": [ - "glFinish doesn't cause all queries to report available result" - ] - }, - { - "name": "always_call_use_program_after_link", - "category": "Workarounds", - "description": [ - "Always call useProgram after a successful link to avoid a driver bug" - ], - "issue": "http://crbug.com/110263" - }, - { - "name": "unpack_overlapping_rows_separately_unpack_buffer", - "category": "Workarounds", - "description": [ - "In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row" - ] - }, - { - "name": "pack_overlapping_rows_separately_pack_buffer", - "category": "Workarounds", - "description": [ - "In the case of packing to a pixel pack buffer, pack overlapping rows row by row" - ] - }, - { - "name": "initialize_current_vertex_attributes", - "category": "Workarounds", - "description": [ - "During initialization, assign the current vertex attributes to the spec-mandated defaults" - ] - }, - { - "name": "emulate_abs_int_function", - "category": "Workarounds", - "description": [ - "abs(i) where i is an integer returns unexpected result" - ], - "issue": "http://crbug.com/642227" - }, - { - "name": "add_and_true_to_loop_condition", - "category": "Workarounds", - "description": [ - "Calculation of loop conditions in for and while loop has bug" - ] - }, - { - "name": "unpack_last_row_separately_for_padding_inclusion", - "category": "Workarounds", - "description": [ - "When uploading textures from an unpack buffer, some drivers count an extra row padding" - ], - "issue": "http://anglebug.com/1512" - }, - { - "name": "pack_last_row_separately_for_padding_inclusion", - "category": "Workarounds", - "description": [ - "When uploading textures from an pack buffer, some drivers count an extra row padding" - ], - "issue": "http://anglebug.com/1512" - }, - { - "name": "emulate_isnan_float", - "category": "Workarounds", - "description": [ - "Using isnan() on highp float will get wrong answer" - ], - "issue": "http://crbug.com/650547" - }, - { - "name": "use_unused_blocks_with_standard_or_shared_layout", - "category": "Workarounds", - "description": [ - "Unused std140 or shared uniform blocks will be treated as inactive" - ] - }, - { - "name": "remove_invariant_and_centroid_for_ESSL3", - "category": "Workarounds", - "description": [ - "Fix spec difference between GLSL 4.1 or lower and ESSL3" - ] - }, - { - "name": "rewrite_float_unary_minus_operator", - "category": "Workarounds", - "description": [ - "Using '-' will get wrong answer" - ], - "issue": "http://crbug.com/308366" - }, - { - "name": "emulate_atan_2_float", - "category": "Workarounds", - "description": [ - "atan(y, x) may return a wrong answer" - ], - "issue": "http://crbug.com/672380" - }, - { - "name": "reapply_UBO_bindings_after_using_binary_program", - "category": "Workarounds", - "description": [ - "Some drivers forget about UBO bindings when using program binaries" - ], - "issue": "http://anglebug.com/1637" - }, - { - "name": "emulate_max_vertex_attrib_stride", - "category": "Workarounds", - "description": [ - "Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried" - ], - "issue": "http://anglebug.com/1936" - }, - { - "name": "dont_initialize_uninitialized_locals", - "category": "Workarounds", - "description": [ - "Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests" - ], - "issue": "http://anglebug.com/2046" - }, - { - "name": "clamp_point_size", - "category": "Workarounds", - "description": [ - "The point size range reported from the API is inconsistent with the actual behavior" - ] - }, - { - "name": "dont_use_loops_to_initialize_variables", - "category": "Workarounds", - "description": [ - "For loops used to initialize variables hit native GLSL compiler bugs" - ], - "issue": "http://crbug.com/809422" - }, - { - "name": "clamp_frag_depth", - "category": "Workarounds", - "description": [ - "gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer" - ] - }, - { - "name": "rewrite_repeated_assign_to_swizzled", - "category": "Workarounds", - "description": [ - "Repeated assignment to swizzled values inside a ", - "GLSL user-defined function have incorrect results" - ] - }, - { - "name": "disable_blend_func_extended", - "category": "Workarounds", - "description": [ - "ARB_blend_func_extended does not pass the tests" - ], - "issue": "http://anglebug.com/1085" - }, - { - "name": "unsized_SRGB_read_pixels_doesnt_transform", - "category": "Workarounds", - "description": [ - "Drivers returning raw sRGB values instead of linearized values when calling glReadPixels ", - "on unsized sRGB texture formats" - ], - "issue": "http://crbug.com/550292 http://crbug.com/565179" - }, - { - "name": "query_counter_bits_generates_errors", - "category": "Workarounds", - "description": [ - "Drivers generate errors when querying the number of bits in timer queries" - ], - "issue": "http://anglebug.com/3027" - }, - { - "name": "dont_relink_programs_in_parallel", - "category": "Workarounds", - "description": [ - "Relinking a program in parallel is buggy" - ], - "issue": "http://anglebug.com/3045" - }, - { - "name": "disable_worker_contexts", - "category": "Workarounds", - "description": [ - "Some tests have been seen to fail using worker contexts" - ], - "issue": "http://crbug.com/849576" - }, - { - "name": "limit_webgl_max_texture_size_to_4096", - "category": "Workarounds", - "description": [ - "Limit webgl max texture size to 4096 to avoid frequent ", - "out-of-memory errors" - ], - "issue": "http://crbug.com/927470" - }, - { - "name": "limit_max_MSAA_samples_to_4", - "category": "Workarounds", - "description": [ - "Various rendering bugs have been observed when using higher MSAA counts" - ], - "issue": "http://crbug.com/797243" - }, - { - "name": "allow_clear_for_robust_resource_init", - "category": "Workarounds", - "description": [ - "Using glClear for robust resource initialization is buggy on some drivers and leads to ", - "texture corruption. Default to data uploads except on MacOS where it is very slow." - ], - "issue": "https://crbug.com/848952 http://crbug.com/883276" - }, - { - "name": "clamp_array_access", - "category": "Workarounds", - "description": [ - "Clamp uniform array access to avoid reading invalid memory." - ], - "issue": "http://anglebug.com/2978" - }, - { - "name": "reset_TexImage2D_base_level", - "category": "Workarounds", - "description": [ - "Reset texture base level before calling glTexImage2D to ", - "work around pixel comparison failure." - ], - "issue": "https://crbug.com/705865" - }, - { - "name": "clear_to_zero_or_one_broken", - "category": "Workarounds", - "description": [ - "Clears when the clear color is all zeros or ones do not work." - ], - "issue": "https://crbug.com/710443" - }, - { - "name": "limit_max_3d_array_texture_size_to_1024", - "category": "Workarounds", - "description": [ - "Limit max 3d texture size and max array texture layers to 1024 to avoid system hang" - ], - "issue": "http://crbug.com/927470" - }, - { - "name": "adjust_src_dst_region_for_BlitFramebuffer", - "category": "Workarounds", - "description": [ - "Many platforms have issues with blitFramebuffer when the parameters are large." - ], - "issue": "http://crbug.com/830046" - }, - { - "name": "clip_src_region_for_BlitFramebuffer", - "category": "Workarounds", - "description": [ - "Issues with blitFramebuffer when the parameters don't match the framebuffer size." - ], - "issue": "http://crbug.com/830046" - }, - { - "name": "RGB_DXT1_textures_sample_zero_alpha", - "category": "Workarounds", - "description": [ - "Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac." - ], - "issue": "http://anglebug.com/3729" - }, - { - "name": "unfold_short_circuits", - "category": "Workarounds", - "description": [ - "Mac incorrectly executes both sides of && and || expressions when they should ", - "short-circuit." - ], - "issue": "http://anglebug.com/482" - }, - { - "name": "emulate_primitive_restart_fixed_index", - "category": "Workarounds", - "description": [ - "When GL_PRIMITIVE_RESTART_FIXED_INDEX is not available, emulate it with ", - "GL_PRIMITIVE_RESTART and glPrimitiveRestartIndex." - ], - "issue": "http://anglebug.com/3997" - }, - { - "name": "set_primitive_restart_fixed_index_for_draw_arrays", - "category": "Workarounds", - "description": [ - "Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart ", - "index is within the number of primitives being drawn." - ], - "issue": "http://anglebug.com/3997" - }, - { - "name": "remove_dynamic_indexing_of_swizzled_vector", - "category": "Workarounds", - "description": [ - "Dynamic indexing of swizzled l-values doesn't work correctly on various platforms." - ], - "issue": "http://crbug.com/709351" - }, - { - "name": "pre_add_texel_fetch_offsets", - "category": "Workarounds", - "description": [ - "Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid ", - "even if the sum of position and offset is in range, so we need to add workarounds by ", - "rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, ", - "position + offset, lod)." - ], - "issue": "http://crbug.com/642605" - }, - { - "name": "regenerate_struct_names", - "category": "Workarounds", - "description": [ - "All Mac drivers do not handle struct scopes correctly. This workaround overwrites a struct", - "name with a unique prefix." - ], - "issue": "http://crbug.com/403957" - }, - { - "name": "read_pixels_using_implementation_color_read_format_for_norm16", - "category": "Workarounds", - "description": [ - "Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from ", - "EXT_texture_norm16 correctly" - ], - "issue": "http://anglebug.com/4214" - }, - { - "name": "flush_before_delete_texture_if_copied_to", - "category": "Workarounds", - "description": [ - "Some drivers track CopyTex{Sub}Image texture dependencies incorrectly. Flush", - " before glDeleteTextures in this case" - ], - "issue": "http://anglebug.com/4267" - }, - { - "name": "rewrite_row_major_matrices", - "category": "Workarounds", - "description": [ - "Rewrite row major matrices in shaders as column major as a driver bug workaround" - ], - "issue": "http://anglebug.com/2273" - }, - { - "name": "disable_draw_buffers_indexed", - "category": "Workarounds", - "description": [ - "Disable OES_draw_buffers_indexed extension." - ] - }, - { - "name": "disable_semaphore_fd", - "category": "Workarounds", - "description": [ - "Disable GL_EXT_semaphore_fd extension" - ], - "issue": "https://crbug.com/1046462" - }, - { - "name": "disable_timestamp_queries", - "category": "Workarounds", - "description": [ - "Disable GL_EXT_disjoint_timer_query extension" - ], - "issue": "https://crbug.com/811661" - }, - { - "name": "decode_encode_SRGB_for_GenerateMipmap", - "category": "Workarounds", - "description": [ - "Decode and encode before generateMipmap for srgb format textures." - ], - "issue": "http://anglebug.com/4646" - }, - { - "name": "emulate_CopyTexImage2D", - "category": "Workarounds", - "description": [ - "Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D." - ] - }, - { - "name": "emulate_CopyTexImage2D_from_renderbuffers", - "category": "Workarounds", - "description": [ - "CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers." - ], - "issue": "https://anglebug.com/4674" - }, - { - "name": "disable_GPU_switching_support", - "category": "Workarounds", - "description": [ - "Disable GPU switching support (use only the low-power GPU) on older MacBook Pros." - ], - "issue": "https://crbug.com/1091824" - }, - { - "name": "disable_native_parallel_compile", - "category": "Workarounds", - "description": [ - "Do not use native KHR_parallel_shader_compile even when available." - ], - "issue": "http://crbug.com/1094869" - }, - { - "name": "emulate_pack_skip_rows_and_pack_skip_pixels", - "category": "Workarounds", - "description": [ - "GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver." - ], - "issue": "https://anglebug.com/4849" - }, - { - "name": "clamp_msc_rate", - "category": "Workarounds", - "description": [ - "Some drivers return bogus values for GetMscRate, so we clamp it to 30Hz" - ], - "issue": "https://crbug.com/1042393" - }, - { - "name": "bind_transform_feedback_buffer_before_bind_buffer_range", - "category": "Workarounds", - "description": [ - "Bind transform feedback buffers to the generic binding point before calling ", - "glBindBufferBase or glBindBufferRange." - ], - "issue": "https://anglebug.com/5140" - }, - { - "name": "disable_sync_control_support", - "category": "Workarounds", - "description": [ - "Speculative fix for issues on Linux/Wayland where exposing GLX_OML_sync_control renders ", - "Chrome unusable" - ], - "issue": "https://crbug.com/1137851" - }, - { - "name": "keep_buffer_shadow_copy", - "category": "Workarounds", - "description": [ - "Maintain a shadow copy of buffer data when the GL API does not permit reading data back." - ] - }, - { - "name": "set_zero_level_before_GenerateMipmap", - "category": "Workarounds", - "description": [ - "glGenerateMipmap fails if the zero texture level is not set on some Mac drivers." - ] - }, - { - "name": "promote_packed_formats_to_8_bit_per_channel", - "category": "Workarounds", - "description": [ - "Packed color formats are buggy on Macs with AMD GPUs" - ], - "issue": "http://anglebug.com/5469" - }, - { - "name": "init_fragment_output_variables", - "category": "Workarounds", - "description": [ - "No init gl_FragColor causes context lost" - ], - "issue": "http://crbug.com/1171371" - }, - { - "name": "shift_instanced_array_data_with_offset", - "category": "Workarounds", - "description": [ - "glDrawArraysInstanced is buggy on certain new Mac Intel GPUs" - ], - "issue": "http://crbug.com/1144207" - }, - { - "name": "sync_vertex_arrays_to_default", - "category": "Workarounds", - "description": [ - "Only use the default VAO because of missing support or driver bugs" - ], - "issue": "http://anglebug.com/5577" - }, - { - "name": "sanitize_AMDGPU_renderer_string", - "category": "Workarounds", - "description": [ - "Strip precise kernel and DRM version information from amdgpu renderer strings." - ], - "issue": "http://crbug.com/1181193" - }, - { - "name": "unbind_FBO_before_switching_context", - "category": "Workarounds", - "description": [ - "Imagination GL drivers are buggy with context switching." - ], - "issue": "http://crbug.com/1181193" - }, - { - "name": "flush_on_framebuffer_change", - "category": "Workarounds", - "description": [ - "Switching framebuffers without a flush can lead to ", - "crashes on Intel 9th Generation GPU Macs." - ], - "issue": "http://crbug.com/1181068" - }, - { - "name": "disable_multisampled_render_to_texture", - "category": "Workarounds", - "description": [ - "Many drivers have bugs when using GL_EXT_multisampled_render_to_texture" - ], - "issue": "http://anglebug.com/2894" - }, - { - "name": "upload_texture_data_in_chunks", - "category": "Workarounds", - "description": [ - "Upload texture data in <120kb chunks to work around Mac driver hangs and crashes." - ], - "issue": "http://crbug.com/1181068" - }, - { - "name": "emulate_immutable_compressed_texture_3D", - "category": "Workarounds", - "description": [ - "Use non-immutable texture allocation to work around a driver bug." - ], - "issue": "https://crbug.com/1060012" - }, - { - "name": "emulate_RGB10", - "category": "Workarounds", - "description": [ - "Emulate RGB10 support using RGB10_A2." - ], - "issue": "https://crbug.com/1300575" - }, - { - "name": "always_unbind_framebuffer_texture_2D", - "category": "Workarounds", - "description": [ - "Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug." - ], - "issue": "https://anglebug.com/5536" - }, - { - "name": "disable_texture_clamp_to_border", - "category": "Workarounds", - "description": [ - "Imagination devices generate INVALID_ENUM when setting the texture border color." - ], - "issue": "https://anglebug.com/7405" - }, - { - "name": "pass_highp_to_pack_unorm_snorm_builtins", - "category": "Workarounds", - "description": [ - "packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4." - ], - "issue": "http://anglebug.com/7527" - }, - { - "name": "supports_fragment_shader_interlock_NV", - "category": "Features", - "description": [ - "GL context supports NV_fragment_shader_interlock extension" - ], - "issue": "http://anglebug.com/7279" - }, - { - "name": "supports_fragment_shader_ordering_INTEL", - "category": "Features", - "description": [ - "GL context supports GL_INTEL_fragment_shader_ordering extension" - ], - "issue": "http://anglebug.com/7279" - }, - { - "name": "supports_fragment_shader_interlock_ARB", - "category": "Features", - "description": [ - "GL context supports ARB_fragment_shader_interlock extension" - ], - "issue": "http://anglebug.com/7279" - } - ] -} diff --git a/milepost/ext/angle_headers/platform/mtl_features.json b/milepost/ext/angle_headers/platform/mtl_features.json deleted file mode 100644 index ded57d2..0000000 --- a/milepost/ext/angle_headers/platform/mtl_features.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "description": [ - "Copyright 2022 The ANGLE Project Authors. All rights reserved.", - "Use of this source code is governed by a BSD-style license that can be", - "found in the LICENSE file.", - "", - "mtl_features.json: Optional features for the Metal renderer." - ], - "features": [ - { - "name": "has_base_vertex_instanced_draw", - "category": "Features", - "description": [ - "The renderer supports base vertex instanced draw" - ] - }, - { - "name": "has_explicit_mem_barrier", - "category": "Features", - "description": [ - "The renderer supports explicit memory barrier" - ] - }, - { - "name": "has_cheap_render_pass", - "category": "Features", - "description": [ - "The renderer can cheaply break a render pass." - ] - }, - { - "name": "has_non_uniform_dispatch", - "category": "Features", - "description": [ - "The renderer supports non uniform compute shader dispatch's group size" - ] - }, - { - "name": "has_shader_stencil_output", - "category": "Features", - "description": [ - "The renderer supports stencil output from fragment shader" - ] - }, - { - "name": "has_texture_swizzle", - "category": "Features", - "description": [ - "The renderer supports texture swizzle" - ] - }, - { - "name": "has_depth_auto_resolve", - "category": "Features", - "description": [ - "The renderer supports MSAA depth auto resolve at the end of render pass" - ] - }, - { - "name": "has_stencil_auto_resolve", - "category": "Features", - "description": [ - "The renderer supports MSAA stencil auto resolve at the end of render pass" - ] - }, - { - "name": "has_events", - "category": "Features", - "description": [ - "The renderer supports MTL(Shared)Event" - ] - }, - { - "name": "allow_inline_const_vertex_data", - "category": "Features", - "description": [ - "The renderer supports using inline constant data for small client vertex data" - ] - }, - { - "name": "allow_separate_depth_stencil_buffers", - "category": "Features", - "description": [ - "Some Apple platforms such as iOS allows separate depth and stencil buffers, ", - "whereas others such as macOS don't" - ] - }, - { - "name": "allow_runtime_sampler_compare_mode", - "category": "Features", - "description": [ - "The renderer supports changing sampler's compare mode outside shaders" - ] - }, - { - "name": "allow_sampler_compare_gradient", - "category": "Features", - "description": [ - "The renderer supports sample_compare with gradients" - ] - }, - { - "name": "allow_sampler_compare_lod", - "category": "Features", - "description": [ - "The renderer supports sample_compare with lod" - ] - }, - { - "name": "allow_buffer_read_write", - "category": "Features", - "description": [ - "The renderer supports buffer read and write in the same shader" - ] - }, - { - "name": "allow_multisample_store_and_resolve", - "category": "Features", - "description": [ - "The renderer supports MSAA store and resolve in the same pass" - ] - }, - { - "name": "allow_gen_multiple_mips_per_pass", - "category": "Features", - "description": [ - "The renderer supports generating multiple mipmaps per pass" - ] - }, - { - "name": "force_D24S8_as_unsupported", - "category": "Features", - "description": [ - "Force Depth24Stencil8 format as unsupported." - ] - }, - { - "name": "force_buffer_GPU_storage", - "category": "Features", - "description": [ - "On systems that support both buffer' memory allocation on GPU and shared memory (such as ", - "macOS), force using GPU memory allocation for buffers everytime or not." - ] - }, - { - "name": "direct_metal_generation", - "category": "Features", - "description": [ - "Direct translation to Metal." - ], - "issue": "http://anglebug.com/5505" - }, - { - "name": "force_non_CS_base_mipmap_generation", - "category": "Features", - "description": [ - "Turn this feature on to disallow Compute Shader based mipmap generation. Compute Shader ", - "based mipmap generation might cause GPU hang on some older iOS devices." - ] - }, - { - "name": "emulate_transform_feedback", - "category": "Features", - "description": [ - "Turn this on to allow transform feedback in Metal using a 2-pass VS for GLES3." - ] - }, - { - "name": "rewrite_row_major_matrices", - "category": "Features", - "description": [ - "Rewrite row major matrices in shaders as column major." - ] - }, - { - "name": "intel_explicit_bool_cast_workaround", - "category": "Workarounds", - "description": [ - "Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel ", - "driver" - ] - }, - { - "name": "intel_disable_fast_math", - "category": "Workarounds", - "description": [ - "Disable fast math in atan and invariance cases when running below macOS 12.0" - ] - }, - { - "name": "multisample_color_format_shader_read_workaround", - "category": "Workarounds", - "description": [ - "Add shaderRead usage to some multisampled texture formats" - ], - "issue": "http://anglebug.com/7049" - }, - { - "name": "copy_IOSurface_to_non_IOSurface_for_read_optimization", - "category": "Workarounds", - "description": [ - "some GPUs are faster to read an IOSurface texture by first copying the texture to a ", - "non-IOSurface texture" - ], - "issue": "http://anglebug.com/7117" - }, - { - "name": "copy_texture_to_buffer_for_read_optimization", - "category": "Workarounds", - "description": [ - "some GPUs are faster to read a texture by first copying the texture to a buffer" - ], - "issue": "http://anglebug.com/7117" - }, - { - "name": "limit_max_draw_buffers_for_testing", - "category": "Features", - "description": [ - "Used to check the backend works when the device's advertized limit is less than the code's limit" - ], - "issue": "http://anglebug.com/7280" - }, - { - "name": "limit_max_color_target_bits_for_testing", - "category": "Features", - "description": [ - "Metal iOS has a limit on the number of color target bits per pixel." - ], - "issue": "http://anglebug.com/7280" - } - ] -} diff --git a/milepost/ext/angle_headers/platform/vk_features.json b/milepost/ext/angle_headers/platform/vk_features.json deleted file mode 100644 index 72bc1fa..0000000 --- a/milepost/ext/angle_headers/platform/vk_features.json +++ /dev/null @@ -1,938 +0,0 @@ -{ - "description": [ - "Copyright 2022 The ANGLE Project Authors. All rights reserved.", - "Use of this source code is governed by a BSD-style license that can be", - "found in the LICENSE file.", - "", - "vk_features.json: Optional features for the Vulkan renderer." - ], - "features": [ - { - "name": "bresenham_line_rasterization", - "category": "Features", - "description": [ - "Enable Bresenham line rasterization via VK_EXT_line_rasterization extension" - ] - }, - { - "name": "provoking_vertex", - "category": "Features", - "description": [ - "Enable provoking vertex mode via VK_EXT_provoking_vertex extension" - ] - }, - { - "name": "force_fallback_format", - "category": "Workarounds", - "description": [ - "Force a fallback format for angle_end2end_tests" - ] - }, - { - "name": "clamp_point_size", - "category": "Workarounds", - "description": [ - "The point size range reported from the API is inconsistent with the actual behavior" - ], - "issue": "http://anglebug.com/2970" - }, - { - "name": "depth_clamping", - "category": "Workarounds", - "description": [ - "The depth value is not clamped to [0,1] for floating point depth buffers." - ], - "issue": "http://anglebug.com/3970" - }, - { - "name": "mutable_mipmap_texture_upload", - "category": "Features", - "description": [ - "Enable uploading the previously defined mutable mipmap texture." - ], - "issue": "https://anglebug.com/7308" - }, - { - "name": "supports_renderpass2", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_create_renderpass2 extension" - ] - }, - { - "name": "supports_incremental_present", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_incremental_present extension" - ] - }, - { - "name": "supports_android_hardware_buffer", - "category": "Features", - "description": [ - "VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension" - ] - }, - { - "name": "supports_GGP_frame_token", - "category": "Features", - "description": [ - "VkDevice supports the VK_GGP_frame_token extension" - ] - }, - { - "name": "supports_external_memory_fd", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_external_memory_fd extension" - ] - }, - { - "name": "supports_external_memory_fuchsia", - "category": "Features", - "description": [ - "VkDevice supports the VK_FUCHSIA_external_memory extension" - ] - }, - { - "name": "supports_filtering_precision", - "category": "Features", - "description": [ - "VkDevice supports the VK_GOOGLE_sampler_filtering_precision extension" - ] - }, - { - "name": "supports_external_fence_capabilities", - "category": "Features", - "description": [ - "VkInstance supports the VK_KHR_external_fence_capabilities extension" - ] - }, - { - "name": "supports_external_semaphore_capabilities", - "category": "Features", - "description": [ - "VkInstance supports the VK_KHR_external_semaphore_capabilities extension" - ] - }, - { - "name": "supports_external_semaphore_fd", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_external_semaphore_fd extension" - ] - }, - { - "name": "supports_external_semaphore_fuchsia", - "category": "Features", - "description": [ - "VkDevice supports the VK_FUCHSIA_external_semaphore extension" - ] - }, - { - "name": "supports_external_fence_fd", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_external_fence_fd extension" - ], - "issue": "http://anglebug.com/2517" - }, - { - "name": "supports_android_native_fence_sync", - "category": "Features", - "description": [ - "VkDevice supports the EGL_ANDROID_native_fence_sync extension" - ], - "issue": "http://anglebug.com/2517" - }, - { - "name": "supports_image_cube_array", - "category": "Features", - "description": [ - "VkDevice supports the imageCubeArray feature properly" - ], - "issue": "http://anglebug.com/3584" - }, - { - "name": "supports_pipeline_statistics_query", - "category": "Features", - "description": [ - "VkDevice supports the pipelineStatisticsQuery feature" - ], - "issue": "http://anglebug.com/5430" - }, - { - "name": "supports_shader_stencil_export", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_shader_stencil_export extension" - ] - }, - { - "name": "supports_YUV_sampler_conversion", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_sampler_ycbcr_conversion extension" - ] - }, - { - "name": "emulate_transform_feedback", - "category": "Features", - "description": [ - "Emulate transform feedback as the VK_EXT_transform_feedback is not present." - ], - "issue": "http://anglebug.com/3205" - }, - { - "name": "supports_transform_feedback_extension", - "category": "Features", - "description": [ - "Transform feedback uses the VK_EXT_transform_feedback extension." - ], - "issue": "http://anglebug.com/3206" - }, - { - "name": "supports_geometry_streams_capability", - "category": "Features", - "description": [ - "Implementation supports the GeometryStreams SPIR-V capability." - ], - "issue": "http://anglebug.com/3206" - }, - { - "name": "supports_index_type_uint8", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_index_type_uint8 extension" - ], - "issue": "http://anglebug.com/4405" - }, - { - "name": "supports_custom_border_color", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_custom_border_color extension" - ], - "issue": "http://anglebug.com/3577" - }, - { - "name": "supports_multi_draw_indirect", - "category": "Features", - "description": [ - "VkDevice supports the multiDrawIndirect extension" - ], - "issue": "http://anglebug.com/6439" - }, - { - "name": "supports_depth_stencil_resolve", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_depth_stencil_resolve ", - "extension with the independentResolveNone feature" - ], - "issue": "http://anglebug.com/4836" - }, - { - "name": "supports_multisampled_render_to_single_sampled", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_multisampled_render_to_single_sampled extension" - ], - "issue": "http://anglebug.com/4836" - }, - { - "name": "supports_multiview", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_multiview extension" - ], - "issue": "http://anglebug.com/6048" - }, - { - "name": "disable_fifo_present_mode", - "category": "Workarounds", - "description": [ - "VK_PRESENT_MODE_FIFO_KHR causes random timeouts" - ], - "issue": "http://anglebug.com/3153" - }, - { - "name": "force_D16_tex_filter", - "category": "Workarounds", - "description": [ - "VK_FORMAT_D16_UNORM does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, ", - "which prevents OES_depth_texture from being supported." - ], - "issue": "http://anglebug.com/3452" - }, - { - "name": "disable_flipping_blit_with_command", - "category": "Workarounds", - "description": [ - "vkCmdBlitImage with flipped coordinates blits incorrectly." - ], - "issue": "http://anglebug.com/3498" - }, - { - "name": "per_frame_window_size_query", - "category": "Workarounds", - "description": [ - "Vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE when window resizing" - ], - "issue": "http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625" - }, - { - "name": "pad_buffers_to_max_vertex_attrib_stride", - "category": "Workarounds", - "description": [ - "Vulkan considers vertex attribute accesses to count up to the last multiple of the ", - "stride. This additional access supports AMD's robust buffer access implementation. ", - "AMDVLK in particular will return incorrect values when the vertex access extends into ", - "the range that would be the stride padding and the buffer is too small. ", - "This workaround limits GL_MAX_VERTEX_ATTRIB_STRIDE to a maximum value and ", - "pads up every buffer allocation size to be a multiple of the maximum stride." - ], - "issue": "http://anglebug.com/4428" - }, - { - "name": "supports_external_memory_dma_buf_and_modifiers", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier ", - "extensions" - ], - "issue": "http://anglebug.com/6248" - }, - { - "name": "supports_external_memory_host", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_external_memory_host extension" - ] - }, - { - "name": "allocate_non_zero_memory", - "category": "Features", - "description": [ - "Fill new allocations with non-zero values to flush out errors." - ], - "issue": "http://anglebug.com/4384" - }, - { - "name": "log_memory_report_callbacks", - "category": "Features", - "description": [ - "Log each callback from VK_EXT_device_memory_report" - ] - }, - { - "name": "log_memory_report_stats", - "category": "Features", - "description": [ - "Log stats from VK_EXT_device_memory_report each swap" - ] - }, - { - "name": "shadow_buffers", - "category": "Features", - "description": [ - "Allocate a shadow buffer for GL buffer objects to reduce glMap* latency." - ], - "issue": "http://anglebug.com/4339" - }, - { - "name": "prefer_CPU_for_buffer_sub_data", - "category": "Features", - "description": [ - "Prefer use CPU to do bufferSubData instead of staged update." - ], - "issue": "http://issuetracker.google.com/200067929" - }, - { - "name": "persistently_mapped_buffers", - "category": "Features", - "description": [ - "Persistently map buffer memory to reduce map/unmap IOCTL overhead." - ], - "issue": "http://anglebug.com/2162" - }, - { - "name": "extra_buffer_logging_and_checking", - "category": "Features", - "description": [ - "Enable extra buffer logging and checking to catch rare crashes" - ], - "issue": "https://issuetracker.google.com/236098131" - }, - { - "name": "enable_pre_rotate_surfaces", - "category": "Features", - "description": [ - "Enable Android pre-rotation for landscape applications" - ], - "issue": "http://anglebug.com/3502" - }, - { - "name": "enable_precision_qualifiers", - "category": "Features", - "description": [ - "Enable precision qualifiers in shaders" - ], - "issue": "http://anglebug.com/3078" - }, - { - "name": "prefer_aggregate_barrier_calls", - "category": "Workarounds", - "description": [ - "Single barrier call is preferred over multiple calls with ", - "fine grained pipeline stage dependency information" - ], - "issue": "http://anglebug.com/4633" - }, - { - "name": "prefer_skipping_invalidate_for_emulated_formats", - "category": "Workarounds", - "description": [ - "Skipping invalidate is preferred for emulated formats that have extra channels over ", - "re-clearing the image" - ], - "issue": "http://anglebug.com/6860" - }, - { - "name": "async_command_queue", - "category": "Features", - "description": [ - "Use CommandQueue worker thread to dispatch work to GPU." - ], - "issue": "http://anglebug.com/4324" - }, - { - "name": "supports_shader_float16", - "category": "Features", - "description": [ - "VkDevice supports the VK_KHR_shader_float16_int8 extension ", - "and has the shaderFloat16 feature" - ], - "issue": "http://anglebug.com/4551" - }, - { - "name": "allow_GenerateMipmap_with_compute", - "category": "Features", - "description": [ - "Use the compute path to generate mipmaps on devices that meet the minimum requirements, ", - "and the performance is better." - ], - "issue": "http://anglebug.com/4551" - }, - { - "name": "supports_render_pass_store_op_none", - "category": "Features", - "description": [ - "VkDevice supports VK_QCOM_render_pass_store_ops extension." - ], - "issue": "http://anglebug.com/5055" - }, - { - "name": "supports_render_pass_load_store_op_none", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_load_store_op_none extension." - ], - "issue": "http://anglebug.com/5371" - }, - { - "name": "disallow_mixed_depth_stencil_load_op_none_and_load", - "category": "Workarounds", - "description": [ - "Disallow use of LOAD_OP_NONE for only one of the depth or stencil aspects of a ", - "depth/stencil attachment" - ], - "issue": "http://anglebug.com/7370" - }, - { - "name": "supports_depth_clip_control", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_depth_clip_control extension." - ], - "issue": "http://anglebug.com/5421" - }, - { - "name": "supports_blend_operation_advanced", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_blend_operation_advanced extension." - ], - "issue": "http://anglebug.com/3586" - }, - { - "name": "force_max_uniform_buffer_size_16KB", - "category": "Workarounds", - "description": [ - "Force max uniform buffer size to 16K on some device due to bug" - ], - "issue": "https://issuetracker.google.com/161903006" - }, - { - "name": "supports_image_format_list", - "category": "Features", - "description": [ - "Enable VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT by default for ICDs ", - "that support VK_KHR_image_format_list" - ], - "issue": "http://anglebug.com/5281" - }, - { - "name": "enable_multisampled_render_to_texture", - "category": "Workarounds", - "description": [ - "Expose EXT_multisampled_render_to_texture" - ], - "issue": "http://anglebug.com/4937" - }, - { - "name": "defer_flush_until_end_render_pass", - "category": "Workarounds", - "description": [ - "Allow glFlush to be deferred until renderpass ends" - ], - "issue": "https://issuetracker.google.com/issues/166475273" - }, - { - "name": "wait_idle_before_swapchain_recreation", - "category": "Workarounds", - "description": [ - "Before passing an oldSwapchain to VkSwapchainCreateInfoKHR, wait for queue to be idle. ", - "Works around a bug on platforms which destroy oldSwapchain in vkCreateSwapchainKHR." - ], - "issue": "http://anglebug.com/5061" - }, - { - "name": "force_texture_lod_offset_1", - "category": "Workarounds", - "description": [ - "Increase the minimum texture level-of-detail by 1 when sampling." - ] - }, - { - "name": "force_texture_lod_offset_2", - "category": "Workarounds", - "description": [ - "Increase the minimum texture level-of-detail by 2 when sampling." - ] - }, - { - "name": "force_texture_lod_offset_3", - "category": "Workarounds", - "description": [ - "Increase the minimum texture level-of-detail by 3 when sampling." - ] - }, - { - "name": "force_texture_lod_offset_4", - "category": "Workarounds", - "description": [ - "Increase the minimum texture level-of-detail by 4 when sampling." - ] - }, - { - "name": "force_nearest_filtering", - "category": "Workarounds", - "description": [ - "Force nearest filtering when sampling." - ] - }, - { - "name": "force_nearest_mip_filtering", - "category": "Workarounds", - "description": [ - "Force nearest mip filtering when sampling." - ] - }, - { - "name": "compress_vertex_data", - "category": "Workarounds", - "description": [ - "Compress vertex data to smaller data types when ", - "possible. Using this feature makes ANGLE non-conformant." - ] - }, - { - "name": "prefer_draw_clear_over_vkCmdClearAttachments", - "category": "Workarounds", - "description": [ - "On some hardware, clear using a draw call instead of vkCmdClearAttachments in the middle ", - "of render pass due to bugs" - ], - "issue": "https://issuetracker.google.com/166809097" - }, - { - "name": "emulated_prerotation_90", - "category": "Features", - "description": [ - "Emulate 90-degree prerotation." - ], - "issue": "http://anglebug.com/4901" - }, - { - "name": "emulated_prerotation_180", - "category": "Features", - "description": [ - "Emulate 180-degree prerotation." - ], - "issue": "http://anglebug.com/4901" - }, - { - "name": "emulated_prerotation_270", - "category": "Features", - "description": [ - "Emulate 270-degree prerotation." - ], - "issue": "http://anglebug.com/4901" - }, - { - "name": "generate_SPIRV_through_glslang", - "category": "Features", - "description": [ - "Translate SPIR-V through glslang." - ], - "issue": "http://anglebug.com/4889" - }, - { - "name": "prefer_driver_uniform_over_spec_const", - "category": "Features", - "description": [ - "Prefer using driver uniforms instead of specialization constants." - ], - "issue": "http://anglebug.com/7406" - }, - { - "name": "expose_non_conformant_extensions_and_versions", - "category": "Workarounds", - "description": [ - "Expose GLES versions and extensions that are not conformant." - ], - "issue": "http://anglebug.com/5375" - }, - { - "name": "emulate_R32f_image_atomic_exchange", - "category": "Workarounds", - "description": [ - "Emulate r32f images with r32ui to support imageAtomicExchange." - ], - "issue": "http://anglebug.com/5535" - }, - { - "name": "supports_negative_viewport", - "category": "Features", - "description": [ - "The driver supports inverting the viewport with a negative height." - ] - }, - { - "name": "force_fragment_shader_precision_highp_to_mediump", - "category": "Workarounds", - "description": [ - "Forces highp precision in fragment shader to mediump." - ], - "issue": "https://issuetracker.google.com/184850002" - }, - { - "name": "prefer_submit_at_FBO_boundary", - "category": "Workarounds", - "description": [ - "Submit commands to driver at each FBO boundary for performance improvements." - ], - "issue": "https://issuetracker.google.com/187425444" - }, - { - "name": "use_multiple_descriptors_for_external_formats", - "category": "Workarounds", - "description": [ - "Return a default descriptor count for external formats." - ], - "issue": "http://anglebug.com/6141" - }, - { - "name": "supports_protected_memory", - "category": "Features", - "description": [ - "VkDevice supports protected memory" - ], - "issue": "http://anglebug.com/3965" - }, - { - "name": "supports_host_query_reset", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_host_query_reset extension" - ], - "issue": "http://anglebug.com/6692" - }, - { - "name": "supports_pipeline_creation_cache_control", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_pipeline_creation_cache_control extension" - ], - "issue": "http://anglebug.com/5881" - }, - { - "name": "supports_pipeline_creation_feedback", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_pipeline_creation_feedback extension" - ], - "issue": "http://anglebug.com/5881" - }, - { - "name": "supports_primitives_generated_query", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_primitives_generated_query extension" - ], - "issue": "http://anglebug.com/5430" - }, - { - "name": "supports_surface_capabilities2_extension", - "category": "Features", - "description": [ - "VkInstance supports the VK_KHR_get_surface_capabilities2 extension" - ] - }, - { - "name": "supports_surface_protected_capabilities_extension", - "category": "Features", - "description": [ - "VkInstance supports the VK_KHR_surface_protected_capabilities extension" - ] - }, - { - "name": "supports_surfaceless_query_extension", - "category": "Features", - "description": [ - "VkInstance supports the VK_GOOGLE_surfaceless_query extension" - ] - }, - { - "name": "supports_surface_protected_swapchains", - "category": "Features", - "description": [ - "VkSurface supportsProtected for protected swapchains" - ] - }, - { - "name": "override_surface_format_RGB8_to_RGBA8", - "category": "Workarounds", - "description": [ - "Override surface format GL_RGB8 to GL_RGBA8" - ], - "issue": "http://anglebug.com/6651" - }, - { - "name": "supports_shared_presentable_image_extension", - "category": "Features", - "description": [ - "VkSurface supports the VK_KHR_shared_presentable_images extension" - ] - }, - { - "name": "supports_shader_framebuffer_fetch", - "category": "Features", - "description": [ - "Whether the Vulkan backend supports coherent framebuffer fetch" - ] - }, - { - "name": "supports_shader_framebuffer_fetch_non_coherent", - "category": "Features", - "description": [ - "Whether the Vulkan backend supports non-coherent framebuffer fetch" - ] - }, - { - "name": "permanently_switch_to_framebuffer_fetch_mode", - "category": "Features", - "description": [ - "Whether the context should permanently switch to framebuffer fetch mode on first", - "encounter" - ] - }, - { - "name": "supports_lock_surface_extension", - "category": "Features", - "description": [ - "Surface supports the EGL_KHR_lock_surface3 extension" - ] - }, - { - "name": "swapbuffers_on_flush_or_finish_with_single_buffer", - "category": "Features", - "description": [ - "Bypass deferredFlush with calling swapbuffers on flush or finish when in Shared ", - "Present mode" - ], - "issue": "http://anglebug.com/6878" - }, - { - "name": "emulate_dithering", - "category": "Features", - "description": [ - "Emulate OpenGL dithering" - ], - "issue": "http://anglebug.com/6755" - }, - { - "name": "round_output_after_dithering", - "category": "Workarounds", - "description": [ - "Round output after dithering to workaround a driver bug that rounds the output up" - ], - "issue": "http://anglebug.com/6953" - }, - { - "name": "emulate_advanced_blend_equations", - "category": "Features", - "description": [ - "Emulate GL_KHR_blend_equation_advanced" - ], - "issue": "http://anglebug.com/3586" - }, - { - "name": "precision_safe_division", - "category": "Workarounds", - "description": [ - "Special case handling for platforms that do not generate 1.0f even when the dividend and", - "divisor have the same value" - ] - }, - { - "name": "bottom_left_origin_present_region_rectangles", - "category": "Workarounds", - "description": [ - "On some platforms present region rectangles are expected to have a bottom-left origin, ", - "instead of top-left origin as from spec" - ] - }, - { - "name": "force_submit_immutable_texture_updates", - "category": "AppWorkarounds", - "description": [ - "Force submit updates to immutable textures" - ], - "issue": "http://anglebug.com/6929" - }, - { - "name": "retain_SPIRV_debug_info", - "category": "Features", - "description": [ - "Retain debug info in SPIR-V blob." - ], - "issue": "http://anglebug.com/5901" - }, - { - "name": "warm_up_pipeline_cache_at_link", - "category": "Features", - "description": [ - "Warm up the Vulkan pipeline cache at link time" - ], - "issue": "http://anglebug.com/5881" - }, - { - "name": "prefer_device_local_memory_host_visible", - "category": "Features", - "description": [ - "Prefer adding HOST_VISIBLE flag for DEVICE_LOCAL memory when picking memory types" - ], - "issue": "http://anglebug.com/7047" - }, - { - "name": "supports_extended_dynamic_state", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_extended_dynamic_state extension" - ], - "issue": "http://anglebug.com/5906" - }, - { - "name": "supports_extended_dynamic_state2", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_extended_dynamic_state2 extension" - ], - "issue": "http://anglebug.com/5906" - }, - { - "name": "supports_fragment_shading_rate", - "category": "Features", - "description": [ - "VkDevice supports VK_KHR_fragment_shading_rate extension" - ], - "issue": "http://anglebug.com/7172" - }, - { - "name": "supports_fragment_shader_pixel_interlock", - "category": "Features", - "description": [ - "VkDevice supports the VK_EXT_fragment_shader_interlock extension ", - "and has the fragmentShaderPixelInterlock feature" - ] - }, - { - "name": "explicitly_enable_per_sample_shading", - "category": "Workarounds", - "description": [ - "Explicitly enable per-sample shading if the fragment shader contains the ", - "sample qualifier" - ], - "issue": "http://anglebug.com/6876" - }, - { - "name": "force_continuous_refresh_on_shared_present", - "category": "Features", - "description": [ - "Force to create vulkan swapchain with continuous refresh on shared present" - ], - "issue": "https://issuetracker.google.com/229267970" - }, - { - "name": "supports_image_2d_view_of_3d", - "category": "Features", - "description": [ - "VkDevice supports VK_EXT_image_2d_view_of_3d" - ], - "issue": "https://anglebug.com/7320" - }, - { - "name": "supports_imageless_framebuffer", - "category": "Features", - "description": [ - "VkDevice supports VK_KHR_imageless_framebuffer extension" - ], - "issue": "http://anglebug.com/7553" - }, - { - "name": "prefer_linear_filter_for_YUV", - "category": "Features", - "description": [ - "Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion" - ] - }, - { - "name": "supports_yuv_target", - "category": "Features", - "description": [ - "VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment" - ] - }, - { - "name": "use_non_zero_stencil_write_mask_static_state", - "category": "Workarounds", - "description": [ - "Work around a driver bug where 0 in stencil write mask static state would make the", - "corresponding dynamic state malfunction in the presence of discard or alpha to coverage" - ], - "issue": "http://anglebug.com/7556" - } - ] -} diff --git a/milepost/ext/angle_headers/vulkan/vulkan_fuchsia_ext.h b/milepost/ext/angle_headers/vulkan/vulkan_fuchsia_ext.h deleted file mode 100644 index f5c3cf6..0000000 --- a/milepost/ext/angle_headers/vulkan/vulkan_fuchsia_ext.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// Copyright 2019 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// vulkan_fuchsia_ext: -// Defines Fuchsia-specific Vulkan extensions when compiling on other -// platforms. -// - -#ifndef COMMON_VULKAN_FUCHSIA_EXT_H_ -#define COMMON_VULKAN_FUCHSIA_EXT_H_ - -#if !defined(VK_NO_PROTOTYPES) -# define VK_NO_PROTOTYPES -#endif - -#include - -// If this is not Fuchsia then define Fuchsia-specific types explicitly and include -// vulkan_fuchsia.h to make it possible to compile the code on other platforms. -// -// TODO(https://anglebug.com/6040): Update all code to avoid dependencies on -// Fuchsia-specific types when compiling on other platforms. Then remove this header. -#if !defined(ANGLE_PLATFORM_FUCHSIA) -typedef uint32_t zx_handle_t; -# define ZX_HANDLE_INVALID ((zx_handle_t)0) -# include -#endif - -#endif // COMMON_VULKAN_FUCHSIA_EXT_H_ diff --git a/milepost/ext/angle_install_notes.md b/milepost/ext/angle_install_notes.md deleted file mode 100644 index c49a07c..0000000 --- a/milepost/ext/angle_install_notes.md +++ /dev/null @@ -1,84 +0,0 @@ -## Angle install on macOS - -* Get ninja if needed: `brew install ninja` -* Get the `depot_tools`repo: `git clone https://chromium.googlesource.com/* chromium/tools/depot_tools.git` -* Set path: `export PATH=/path/to/depot_tools:$PATH` - -* Maybe necessary to fiddle with certificates here, otherwise `fetch angle` fails in the subsequent steps. - -``` -cd /Applications/Python\ 3.6 -sudo ./Install\ Certificates.command -``` -* Fetch angle: - -``` -mkdir angle -cd angle -fetch angle -``` -* Generate build config: `gn gen out/Debug` - - * To see available arguments: `gn args out/Debug --list` - * To change arguments: `gn args out/Debug` - -For example, to generate dwarf dsyms files, set: - -``` -enable_dsyms=true -use_debug_fission=true -symbol_level=2 -``` - -We also need to set `is_component_build=false` in order to have self-contained librarries. - -Then, build with `autoninja -C out/Debug`and wait until you pass out. - -## Angle install on windows - -* need Python3 (can install through win app store) -* need Windows SDK -* clone `depot_tools`: `git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git` -or download and unzip bundle at [https://storage.googleapis.com/chrome-infra/depot_tools.zip](https://storage.googleapis.com/chrome-infra/depot_tools.zip) -* set `depot_tools` in path env variable through control panel>System and security>system>advanced system settings -* run `gclient` in a cmd shell -* set `DEPOT_TOOLS_WIN_TOOLCHAIN=0` -* `mkdir angle` -* `cd angle` -* `fetch angle` -* wait a million years - -* if it fails when running `python3 third_party/depot_tools/download_from_google_storage.py ...` - -> open `DEPS` and change `third_party/depot_tools` to `../depot_tools` -* run `gclient sync` to complete previous step - -* `gn gen out/Debug` -* `gn args out/Debug` and edit arguments: -``` -is_component_build = false -angle_build_tests = false -angle_enable_metal = false -angle_enable_d3d9 = false -angle_enable_gl = false -angle_enable_vulkan = false -``` - - -* `ninja -C out/Debug` -* link with `libEGL.dll.lib` and `libGLESv2.dll.lib` -* put `libEGL.dll` and `libGLESv2.dll` in same directory as executable - -## To get debugging kinda working with renderdoc: - -Run `gn args out/Debug` and set - * `angle_enable_trace = true` - * `angle_enable_annotator_run_time_checks = true` - -* `autoninja -C out/Debug` -* wait a while - -In renderdoc, set env variables -`RENDERDOC_HOOK_EGL 0` (if you want to trace underlying native API) -`RENDERDOC_HOOK_EGL 1` (if you want to trace EGL calls. You also need to put `libEGL` in the renderdoc folder so it's found when capturing stuff. Unfortunately though, that seems to provoke crashes...) - -`ANGLE_ENABLE_DEBUG_MARKERS 1` (to turn on debug markers) diff --git a/milepost/resources/Andale Mono.ttf b/milepost/resources/Andale Mono.ttf deleted file mode 100644 index e766a6e..0000000 Binary files a/milepost/resources/Andale Mono.ttf and /dev/null differ diff --git a/milepost/resources/Andale Mono_old.ttf b/milepost/resources/Andale Mono_old.ttf deleted file mode 100644 index e766a6e..0000000 Binary files a/milepost/resources/Andale Mono_old.ttf and /dev/null differ diff --git a/milepost/resources/CMUTypewriter-Regular.ttf b/milepost/resources/CMUTypewriter-Regular.ttf deleted file mode 100644 index 1a9fd6c..0000000 Binary files a/milepost/resources/CMUTypewriter-Regular.ttf and /dev/null differ diff --git a/milepost/resources/OpenSansLatinSubset.ttf b/milepost/resources/OpenSansLatinSubset.ttf deleted file mode 100644 index acfe2d8..0000000 Binary files a/milepost/resources/OpenSansLatinSubset.ttf and /dev/null differ diff --git a/milepost/scripts/embed_text.py b/milepost/scripts/embed_text.py deleted file mode 100644 index a8fa369..0000000 --- a/milepost/scripts/embed_text.py +++ /dev/null @@ -1,44 +0,0 @@ -import os -from datetime import datetime -from argparse import ArgumentParser - -parser = ArgumentParser() -parser.add_argument("inputFiles", nargs="+") -parser.add_argument("-o", "--output") -parser.add_argument("-p", "--prefix") - -args = parser.parse_args() - -output = open(args.output, "w") -output.write("/*********************************************************************\n") -output.write("*\n") -output.write("*\tfile: %s\n" % os.path.basename(args.output)) -output.write("*\tnote: string literals auto-generated by embed_text.py\n") -output.write("*\tdate: %s\n" % datetime.now().strftime("%d/%m%Y")) -output.write("*\n") -output.write("**********************************************************************/\n") - -outSymbol = (os.path.splitext(os.path.basename(args.output))[0]).upper() - -output.write("#ifndef __%s_H__\n" % outSymbol) -output.write("#define __%s_H__\n" % outSymbol) -output.write("\n\n") - -for fileName in args.inputFiles: - f = open(fileName, "r") - lines = f.read().splitlines() - - output.write("//NOTE: string imported from %s\n" % fileName) - - stringName = os.path.splitext(os.path.basename(fileName))[0] - output.write(f"const char* {args.prefix}{stringName} = ") - - for line in lines: - output.write("\n\"%s\\n\"" % line) - - output.write(";\n\n") - f.close() - -output.write("#endif // __%s_H__\n" % outSymbol) - -output.close() diff --git a/milepost/src/platform/orca_log.c b/milepost/src/platform/orca_log.c deleted file mode 100644 index 5bf1068..0000000 --- a/milepost/src/platform/orca_log.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************//** -* -* @file: orca_log.c -* @author: Martin Fouilleul -* @date: 18/04/2023 -* -*****************************************************************/ -#include"platform_log.c" -#include"util/memory.h" -#include"util/strings.h" - -typedef enum -{ - ORCA_LOG_OUTPUT_CONSOLE, - ORCA_LOG_OUTPUT_FILE -} orca_log_output_kind; - -typedef struct log_output -{ - orca_log_output_kind kind; - //TODO: file output -} log_output; - -static log_output _logDefaultOutput = {.kind = ORCA_LOG_OUTPUT_CONSOLE}; -log_output* LOG_DEFAULT_OUTPUT = &_logDefaultOutput; - -void ORCA_IMPORT(orca_log)(log_level level, - int fileLen, - const char* file, - int functionLen, - const char* function, - int line, - int msgLen, - const char* msg); - -typedef struct orca_log_context -{ - mem_arena* arena; - str8_list list; -} orca_log_context; - -char* log_stbsp_callback(char const* buf, void* user, int len) -{ - orca_log_context* ctx = (orca_log_context*)user; - - str8 string = str8_push_buffer(ctx->arena, len, (char*)buf); - str8_list_push(ctx->arena, &ctx->list, string); - - return((char*)buf); -} - -void platform_log_push(log_output* output, - log_level level, - str8 function, - str8 file, - int line, - const char* fmt, - va_list ap) -{ - mem_arena* scratch = mem_scratch(); - mem_arena_scope tmp = mem_arena_scope_begin(scratch); - - orca_log_context ctx = {.arena = scratch, - .list = {0}}; - - char buf[STB_SPRINTF_MIN]; - stbsp_vsprintfcb(log_stbsp_callback, &ctx, buf, fmt, ap); - - str8 string = str8_list_join(scratch, ctx.list); - - orca_log(level, str8_ip(function), str8_ip(file), line, str8_ip(string)); - - mem_arena_scope_end(tmp); -} diff --git a/milepost/src/platform/platform_assert.h b/milepost/src/platform/platform_assert.h deleted file mode 100644 index 9d9f6d2..0000000 --- a/milepost/src/platform/platform_assert.h +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************//** -* -* @file: platform_assert.h -* @author: Martin Fouilleul -* @date: 18/04/2023 -* -*****************************************************************/ -#ifndef __PLATFORM_ASSERT_H_ -#define __PLATFORM_ASSERT_H_ - -#include"platform.h" - -//NOTE: assert macros -#ifndef NO_ASSERT - #ifdef PLATFORM_ORCA - int ORCA_IMPORT(orca_assert)(const char* file, const char* function, int line, const char* src, const char* msg); - #define _ASSERT_(x, msg) ((x) || orca_assert(__FILE__, __FUNCTION__, __LINE__, #x, msg)) - #else - #include - #define _ASSERT_(x, msg) assert(x && msg) - #endif - - #define ASSERT(x, ...) _ASSERT_(x, #__VA_ARGS__) - - #ifdef DEBUG - #define DEBUG_ASSERT(x, ...) ASSERT(x, ##__VA_ARGS__ ) - #else - #define DEBUG_ASSERT(x, ...) - #endif -#else - #define ASSERT(x, ...) - #define DEBUG_ASSERT(x, ...) -#endif - -#endif //__PLATFORM_ASSERT_H_ diff --git a/milepost/src/platform/platform_log.h b/milepost/src/platform/platform_log.h deleted file mode 100644 index 6c9ec5a..0000000 --- a/milepost/src/platform/platform_log.h +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************//** -* -* @file: platform_log.h -* @author: Martin Fouilleul -* @date: 18/04/2023 -* -*****************************************************************/ -#ifndef __PLATFORM_LOG_H_ -#define __PLATFORM_LOG_H_ - -#include"platform.h" -#include"util/strings.h" - -typedef enum { LOG_LEVEL_ERROR, - LOG_LEVEL_WARNING, - LOG_LEVEL_INFO, - LOG_LEVEL_COUNT } log_level; - -typedef struct log_output log_output; - -extern log_output* LOG_DEFAULT_OUTPUT; - -MP_API void log_set_level(log_level level); -MP_API void log_set_output(log_output* output); -MP_API void log_push(log_level level, - str8 function, - str8 file, - int line, - const char* fmt, - ...); - -#define log_generic(level, msg, ...) log_push(level, STR8(__FUNCTION__), STR8(__FILE__), __LINE__, msg, ##__VA_ARGS__) - -#define log_error(msg, ...) log_generic(LOG_LEVEL_ERROR, msg, ##__VA_ARGS__) - -#ifndef LOG_COMPILE_WARNING - #define LOG_COMPILE_WARNING 1 -#endif - -#ifndef LOG_COMPILE_INFO - #define LOG_COMPILE_INFO 1 -#endif - -#if LOG_COMPILE_WARNING || LOG_COMPILE_INFO - #define log_warning(msg, ...) log_generic(LOG_LEVEL_WARNING, msg, ##__VA_ARGS__) - - #if LOG_COMPILE_INFO - #define log_info(msg, ...) log_generic(LOG_LEVEL_INFO, msg, ##__VA_ARGS__ ) - #else - #define log_info(msg, ...) - #endif -#else - #define log_warning(msg, ...) - #define log_info(msg, ...) -#endif - - -#endif //__PLATFORM_LOG_H_ diff --git a/milepost/src/platform/platform_math.h b/milepost/src/platform/platform_math.h deleted file mode 100644 index 032a711..0000000 --- a/milepost/src/platform/platform_math.h +++ /dev/null @@ -1,27 +0,0 @@ -/************************************************************//** -* -* @file: platform_math.h -* @author: Martin Fouilleul -* @date: 26/04/2023 -* -*****************************************************************/ -#ifndef __PLATFORM_MATH_H_ -#define __PLATFORM_MATH_H_ - -#include"platform.h" - -#if !PLATFORM_ORCA - #define _USE_MATH_DEFINES //NOTE: necessary for MSVC - #include -#else - -#define M_PI 3.14159265358979323846 - -double ORCA_IMPORT(fabs)(double x); -double ORCA_IMPORT(sqrt)(double sqrt); -double ORCA_IMPORT(cos)(double x); -double ORCA_IMPORT(sin)(double x); - -#endif - -#endif //__PLATFORM_MATH_H_ diff --git a/milepost/src/platform/platform_strings.h b/milepost/src/platform/platform_strings.h deleted file mode 100644 index 90b203b..0000000 --- a/milepost/src/platform/platform_strings.h +++ /dev/null @@ -1,27 +0,0 @@ -/************************************************************//** -* -* @file: platform_strings.h -* @author: Martin Fouilleul -* @date: 18/04/2023 -* -*****************************************************************/ -#ifndef __PLATFORM_STRINGS_H_ -#define __PLATFORM_STRINGS_H_ - -#include"platform.h" -#include"platform_varg.h" - -#if PLATFORM_ORCA - #include"ext/stb_sprintf.h" - - size_t strlen(const char *s); - int strcmp(const char *s1, const char *s2); - char* strcpy(char *restrict s1, const char *restrict s2); - - #define vsnprintf stbsp_vsnprintf - -#else - #include -#endif - -#endif //__PLATFORM_STRINGS_H_ diff --git a/milepost/src/platform/platform_varg.h b/milepost/src/platform/platform_varg.h deleted file mode 100644 index 89f94a2..0000000 --- a/milepost/src/platform/platform_varg.h +++ /dev/null @@ -1,23 +0,0 @@ -/************************************************************//** -* -* @file: platform_varg.h -* @author: Martin Fouilleul -* @date: 17/04/2023 -* -*****************************************************************/ -#ifndef __PLATFORM_VARG_H_ -#define __PLATFORM_VARG_H_ - -#include"platform.h" - -#if PLATFORM_ORCA - #define va_list __builtin_va_list - #define va_start __builtin_va_start - #define va_arg __builtin_va_arg - #define va_copy __builtin_va_copy - #define va_end __builtin_va_end -#else - #include -#endif - -#endif //__PLATFORM_VARG_H_ diff --git a/milepost/src/platform/std_log.c b/milepost/src/platform/std_log.c deleted file mode 100644 index 38d32a9..0000000 --- a/milepost/src/platform/std_log.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************//** -* -* @file: std_log.c -* @author: Martin Fouilleul -* @date: 18/04/2023 -* -*****************************************************************/ -#include -#include"platform_log.c" - -#if PLATFORM_WINDOWS - #include - #define isatty _isatty - #define fileno _fileno -#elif PLATFORM_MACOS || PLATFORM_LINUX - #include -#endif - -static const char* LOG_HEADINGS[LOG_LEVEL_COUNT] = { - "Error", - "Warning", - "Info"}; - -static const char* LOG_FORMATS[LOG_LEVEL_COUNT] = { - "\033[38;5;9m\033[1m", - "\033[38;5;13m\033[1m", - "\033[38;5;10m\033[1m"}; - -static const char* LOG_FORMAT_STOP = "\033[m"; - -typedef struct log_output -{ - FILE* f; -} log_output; - -static log_output _logDefaultOutput = {0}; -log_output* LOG_DEFAULT_OUTPUT = &_logDefaultOutput; - -void platform_log_push(log_output* output, - log_level level, - str8 function, - str8 file, - int line, - const char* fmt, - va_list ap) -{ - if(output == LOG_DEFAULT_OUTPUT && output->f == 0) - { - output->f = stdout; - } - - int fd = fileno(output->f); - if(isatty(fd)) - { - fprintf(output->f, - "%s%s:%s %.*s() in %.*s:%i: ", - LOG_FORMATS[level], - LOG_HEADINGS[level], - LOG_FORMAT_STOP, - str8_ip(function), - str8_ip(file), - line); - } - else - { - fprintf(output->f, - "%s: %.*s() in %.*s:%i: ", - LOG_HEADINGS[level], - str8_ip(function), - str8_ip(file), - line); - } - vfprintf(output->f, fmt, ap); -} diff --git a/resources/Andale Mono.ttf b/resources/Andale Mono.ttf deleted file mode 100644 index e766a6e..0000000 Binary files a/resources/Andale Mono.ttf and /dev/null differ diff --git a/resources/Menlo Italics.ttf b/resources/Menlo Italics.ttf deleted file mode 100644 index 0a65167..0000000 Binary files a/resources/Menlo Italics.ttf and /dev/null differ diff --git a/resources/OpenSansLatinSubset.ttf b/resources/OpenSansLatinSubset.ttf deleted file mode 100644 index acfe2d8..0000000 Binary files a/resources/OpenSansLatinSubset.ttf and /dev/null differ diff --git a/samples/fluid/build.bat b/samples/fluid/build.bat index 5395ce1..5543721 100644 --- a/samples/fluid/build.bat +++ b/samples/fluid/build.bat @@ -10,7 +10,8 @@ set wasmFlags=--target=wasm32^ -O2 ^ -mbulk-memory ^ -D__ORCA__ ^ - -isystem ..\..\cstdlib\include -I ..\..\sdk -I..\..\milepost\ext -I ..\..\milepost -I ..\..\milepost\src + -isystem ..\..\src\libc-shim\include ^ + -I..\..\ext -I ..\..\src set shaders=src/shaders/advect.glsl^ src/shaders/blit_div_fragment.glsl^ @@ -26,10 +27,11 @@ set shaders=src/shaders/advect.glsl^ src/shaders/splat.glsl^ src/shaders/subtract_pressure.glsl -call python3 ../../milepost/scripts/embed_text.py --prefix=glsl_ --output src/glsl_shaders.h %shaders% + +call python3 ../../scripts/embed_text_files.py --prefix=glsl_ --output src/glsl_shaders.h %shaders% IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% -clang %wasmFlags% -o .\module.wasm ..\..\sdk\orca.c ..\..\cstdlib\src\*.c src\main.c +clang %wasmFlags% -o .\module.wasm ..\..\src\orca.c ..\..\src\libc-shim\src\*.c src\main.c IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% orca bundle --orca-dir ..\.. --icon icon.png --name Fluid module.wasm diff --git a/samples/fluid/build.sh b/samples/fluid/build.sh index c2439c3..f5c1443 100755 --- a/samples/fluid/build.sh +++ b/samples/fluid/build.sh @@ -11,11 +11,10 @@ else CLANG=clang fi -STDLIB_DIR=../../cstdlib -ORCA_SDK_DIR=../../sdk -MILEPOST_DIR=../../milepost +ORCA_DIR=../.. +STDLIB_DIR=../../src/libc-shim -python3 ../../milepost/scripts/embed_text.py --prefix=glsl_ --output src/glsl_shaders.h src/shaders/*.glsl +python3 ../../scripts/embed_text_files.py --prefix=glsl_ --output src/glsl_shaders.h src/shaders/*.glsl wasmFlags="--target=wasm32 \ --no-standard-libraries \ @@ -27,9 +26,9 @@ wasmFlags="--target=wasm32 \ -mbulk-memory \ -D__ORCA__ \ -I $STDLIB_DIR/include \ - -I $ORCA_SDK_DIR \ - -I $MILEPOST_DIR/ext -I $MILEPOST_DIR -I $MILEPOST_DIR/src" + -I $ORCA_DIR/ext \ + -I $ORCA_DIR/src" -$CLANG $wasmFlags -o ./module.wasm ../../sdk/orca.c ../../cstdlib/src/*.c src/main.c +$CLANG $wasmFlags -o ./module.wasm ../../src/orca.c $STDLIB_DIR/src/*.c src/main.c orca bundle --orca-dir ../.. --icon icon.png --name Fluid module.wasm diff --git a/samples/fluid/src/main.c b/samples/fluid/src/main.c index fe17f4e..aafdfbe 100644 --- a/samples/fluid/src/main.c +++ b/samples/fluid/src/main.c @@ -8,6 +8,7 @@ *****************************************************************/ #include"orca.h" +#include"math.h" #include"glsl_shaders.h" //---------------------------------------------------------------- diff --git a/samples/glesTriangle/build.bat b/samples/glesTriangle/build.bat index 60d97e4..79de6f7 100644 --- a/samples/glesTriangle/build.bat +++ b/samples/glesTriangle/build.bat @@ -10,9 +10,10 @@ set wasmFlags=--target=wasm32^ -O2 ^ -mbulk-memory ^ -D__ORCA__ ^ - -isystem ..\..\cstdlib\include -I ..\..\sdk -I..\..\milepost\ext -I ..\..\milepost -I ..\..\milepost\src + -isystem ..\..\src\libc-shim\include ^ + -I..\..\ext -I ..\..\src -clang %wasmFlags% -o .\module.wasm ..\..\sdk\orca.c ..\..\cstdlib\src\*.c src\main.c +clang %wasmFlags% -o .\module.wasm ..\..\src\orca.c ..\..\src\libc-shim\src\*.c src\main.c IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% orca bundle --orca-dir ..\.. --name Triangle module.wasm diff --git a/samples/glesTriangle/build.sh b/samples/glesTriangle/build.sh index 32f59df..cc31884 100755 --- a/samples/glesTriangle/build.sh +++ b/samples/glesTriangle/build.sh @@ -11,9 +11,8 @@ else CLANG=clang fi -STDLIB_DIR=../../cstdlib -ORCA_SDK_DIR=../../sdk -MILEPOST_DIR=../../milepost +ORCA_DIR=../.. +STDLIB_DIR=../../src/libc-shim wasmFlags="--target=wasm32 \ --no-standard-libraries \ @@ -25,9 +24,9 @@ wasmFlags="--target=wasm32 \ -mbulk-memory \ -D__ORCA__ \ -I $STDLIB_DIR/include \ - -I $ORCA_SDK_DIR \ - -I $MILEPOST_DIR/ext -I $MILEPOST_DIR -I $MILEPOST_DIR/src" + -I $ORCA_DIR/ext \ + -I $ORCA_DIR/src" -$CLANG $wasmFlags -o ./module.wasm ../../sdk/orca.c ../../cstdlib/src/*.c src/main.c +$CLANG $wasmFlags -o ./module.wasm ../../src/orca.c ../../src/libc-shim/src/*.c src/main.c orca bundle --orca-dir ../.. --name Triangle module.wasm diff --git a/samples/glesTriangle/src/main.c b/samples/glesTriangle/src/main.c index c0b0dd6..4042a2d 100644 --- a/samples/glesTriangle/src/main.c +++ b/samples/glesTriangle/src/main.c @@ -1,5 +1,3 @@ -#include -#include #include #include diff --git a/samples/pong/build.bat b/samples/pong/build.bat index 66c17f1..fe01ecf 100644 --- a/samples/pong/build.bat +++ b/samples/pong/build.bat @@ -10,9 +10,10 @@ set wasmFlags=--target=wasm32^ -O2 ^ -mbulk-memory ^ -D__ORCA__ ^ - -isystem ..\..\cstdlib\include -I ..\..\sdk -I..\..\milepost\ext -I ..\..\milepost -I ..\..\milepost\src + -isystem ..\..\src\libc-shim\include ^ + -I..\..\ext -I ..\..\src -clang %wasmFlags% -o .\module.wasm ..\..\sdk\orca.c ..\..\cstdlib\src\*.c src\main.c +clang %wasmFlags% -o .\module.wasm ..\..\src\orca.c ..\..\src\libc-shim\src\*.c src\main.c IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% orca bundle --orca-dir ..\.. --name Pong --icon icon.png --resource-dir data module.wasm diff --git a/samples/pong/build.sh b/samples/pong/build.sh index c53ab3b..f1e643f 100755 --- a/samples/pong/build.sh +++ b/samples/pong/build.sh @@ -11,9 +11,8 @@ else CLANG=clang fi -STDLIB_DIR=../../cstdlib -ORCA_SDK_DIR=../../sdk -MILEPOST_DIR=../../milepost +ORCA_DIR=../.. +STDLIB_DIR=../../src/libc-shim wasmFlags="--target=wasm32 \ --no-standard-libraries \ @@ -25,9 +24,9 @@ wasmFlags="--target=wasm32 \ -mbulk-memory \ -D__ORCA__ \ -I $STDLIB_DIR/include \ - -I $ORCA_SDK_DIR \ - -I $MILEPOST_DIR/ext -I $MILEPOST_DIR -I $MILEPOST_DIR/src" + -I $ORCA_DIR/ext \ + -I $ORCA_DIR/src" -$CLANG $wasmFlags -o ./module.wasm ../../sdk/orca.c ../../cstdlib/src/*.c src/main.c +$CLANG $wasmFlags -o ./module.wasm ../../src/orca.c $STDLIB_DIR/src/*.c src/main.c orca bundle --orca-dir ../.. --name Pong --icon icon.png --resource-dir data module.wasm diff --git a/samples/pong/src/main.c b/samples/pong/src/main.c index 77ed230..8432f6c 100644 --- a/samples/pong/src/main.c +++ b/samples/pong/src/main.c @@ -1,5 +1,3 @@ -#include -#include #include #include @@ -75,15 +73,15 @@ ORCA_EXPORT void OnInit(void) if(mg_image_is_nil(waterImage)) { - log_error("coulnd't load ball image\n"); + log_error("couldn't load water image\n"); } if(mg_image_is_nil(ballImage)) { - log_error("coulnd't load ball image\n"); + log_error("couldn't load ball image\n"); } if(mg_image_is_nil(paddleImage)) { - log_error("coulnd't load paddle image\n"); + log_error("couldn't load paddle image\n"); } str8 fontStr = loadFile(mem_scratch(), STR8("/Literata-SemiBoldItalic.ttf")); @@ -113,23 +111,23 @@ ORCA_EXPORT void OnMouseDown(int button) ORCA_EXPORT void OnKeyDown(int key) { - if(key == KEY_SPACE) + if(key == MP_KEY_SPACE) { log_error("(this is just for testing errors)"); return; } - if(key == KEY_ENTER) + if(key == MP_KEY_ENTER) { log_warning("(this is just for testing warning)"); return; } log_info("key down: %i", key); - if(key == KEY_LEFT) + if(key == MP_KEY_LEFT) { leftDown = true; } - if(key == KEY_RIGHT) + if(key == MP_KEY_RIGHT) { rightDown = true; } @@ -137,17 +135,17 @@ ORCA_EXPORT void OnKeyDown(int key) ORCA_EXPORT void OnKeyUp(int key) { - if(key == KEY_ENTER || key == KEY_SPACE) + if(key == MP_KEY_ENTER || key == MP_KEY_SPACE) { return; } log_info("key up: %i", key); - if(key == KEY_LEFT) + if(key == MP_KEY_LEFT) { leftDown = false; } - if(key == KEY_RIGHT) + if(key == MP_KEY_RIGHT) { rightDown = false; } diff --git a/samples/ui/build.bat b/samples/ui/build.bat index 9befcf7..3c55217 100644 --- a/samples/ui/build.bat +++ b/samples/ui/build.bat @@ -10,9 +10,10 @@ set wasmFlags=--target=wasm32^ -O2 ^ -mbulk-memory ^ -D__ORCA__ ^ - -isystem ..\..\cstdlib\include -I ..\..\sdk -I..\..\milepost\ext -I ..\..\milepost -I ..\..\milepost\src + -isystem ..\..\src\libc-shim\include ^ + -I..\..\ext -I ..\..\src -clang %wasmFlags% -o .\module.wasm ..\..\sdk\orca.c ..\..\cstdlib\src\*.c src\main.c +clang %wasmFlags% -o .\module.wasm ..\..\src\orca.c ..\..\src\libc-shim\src\*.c src\main.c IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% orca bundle --orca-dir ..\.. --name UI --resource-dir data module.wasm diff --git a/samples/ui/build.sh b/samples/ui/build.sh index 8001b8d..4d9bede 100755 --- a/samples/ui/build.sh +++ b/samples/ui/build.sh @@ -11,6 +11,9 @@ else CLANG=clang fi +ORCA_DIR=../.. +STDLIB_DIR=../../src/libc-shim + wasmFlags="--target=wasm32 \ --no-standard-libraries \ -fno-builtin \ @@ -20,8 +23,11 @@ wasmFlags="--target=wasm32 \ -O2 \ -mbulk-memory \ -D__ORCA__ \ - -isystem ../../cstdlib/include -I ../../sdk -I../../milepost/ext -I ../../milepost -I ../../milepost/src" + -I $ORCA_DIR/ext \ + -I $STDLIB_DIR/include \ + -I $ORCA_DIR/ext \ + -I $ORCA_DIR/src" -$CLANG $wasmFlags -o ./module.wasm ../../sdk/orca.c ../../cstdlib/src/*.c src/main.c +$CLANG $wasmFlags -o ./module.wasm ../../src/orca.c $STDLIB_DIR/src/*.c src/main.c orca bundle --orca-dir ../.. --name UI --resource-dir data module.wasm diff --git a/samples/ui/src/main.c b/samples/ui/src/main.c index 2656209..547f8b0 100644 --- a/samples/ui/src/main.c +++ b/samples/ui/src/main.c @@ -1,7 +1,3 @@ -#include"keys.h" -#include"graphics.h" -#include"ui.h" - #include"orca.h" vec2 frameSize = {100, 100}; diff --git a/scripts/bundle.py b/scripts/bundle.py index 7fe9e9a..1997d25 100644 --- a/scripts/bundle.py +++ b/scripts/bundle.py @@ -67,14 +67,14 @@ def macos_make_app(args): #----------------------------------------------------------- #NOTE: copy orca runtime executable and libraries #----------------------------------------------------------- - orca_exe = os.path.join(args.orca_dir, 'build/bin/orca') - milepost_lib = os.path.join(args.orca_dir, 'build/bin/libmilepost.dylib') - gles_lib = os.path.join(args.orca_dir, 'build/bin/libGLESv2.dylib') - egl_lib = os.path.join(args.orca_dir, 'build/bin/libEGL.dylib') + orca_exe = os.path.join(args.orca_dir, 'build/bin/orca_runtime') + orca_lib = os.path.join(args.orca_dir, 'build/bin/liborca.dylib') + gles_lib = os.path.join(args.orca_dir, 'ext/angle/bin/libGLESv2.dylib') + egl_lib = os.path.join(args.orca_dir, 'ext/angle/bin/libEGL.dylib') renderer_lib = os.path.join(args.orca_dir, 'build/bin/mtl_renderer.metallib') shutil.copy(orca_exe, exe_dir) - shutil.copy(milepost_lib, exe_dir) + shutil.copy(orca_lib, exe_dir) shutil.copy(gles_lib, exe_dir) shutil.copy(egl_lib, exe_dir) shutil.copy(renderer_lib, exe_dir) @@ -101,10 +101,8 @@ def macos_make_app(args): #NOTE: copy runtime resources #----------------------------------------------------------- # default fonts - shutil.copy(os.path.join(args.orca_dir, 'resources/OpenSansLatinSubset.ttf'), res_dir) shutil.copy(os.path.join(args.orca_dir, 'resources/Menlo.ttf'), res_dir) shutil.copy(os.path.join(args.orca_dir, 'resources/Menlo Bold.ttf'), res_dir) - shutil.copy(os.path.join(args.orca_dir, 'resources/Menlo Italics.ttf'), res_dir) #----------------------------------------------------------- #NOTE make icon @@ -166,7 +164,7 @@ def macos_make_app(args): CFBundleSignature {bundle_sig} CFBundleExecutable - orca + orca_runtime CFBundleIconFile icon.icns NSHighResolutionCapable @@ -205,13 +203,13 @@ def windows_make_app(args): #----------------------------------------------------------- #NOTE: copy orca runtime executable and libraries #----------------------------------------------------------- - orca_exe = os.path.join(args.orca_dir, 'build/bin/orca.exe') - milepost_lib = os.path.join(args.orca_dir, 'build/bin/milepost.dll') - gles_lib = os.path.join(args.orca_dir, 'milepost/build/bin/libGLESv2.dll') - egl_lib = os.path.join(args.orca_dir, 'milepost/build/bin/libEGL.dll') + orca_exe = os.path.join(args.orca_dir, 'build/bin/orca_runtime.exe') + orca_lib = os.path.join(args.orca_dir, 'build/bin/orca.dll') + gles_lib = os.path.join(args.orca_dir, 'ext/angle/bin/libGLESv2.dll') + egl_lib = os.path.join(args.orca_dir, 'ext/angle/bin/libEGL.dll') - shutil.copy(orca_exe, exe_dir) - shutil.copy(milepost_lib, exe_dir) + shutil.copy(orca_exe, os.path.join(exe_dir, app_name + '.exe')) + shutil.copy(orca_lib, exe_dir) shutil.copy(gles_lib, exe_dir) shutil.copy(egl_lib, exe_dir) @@ -238,10 +236,8 @@ def windows_make_app(args): #NOTE: copy runtime resources #----------------------------------------------------------- # default fonts - shutil.copy(os.path.join(args.orca_dir, 'resources/OpenSansLatinSubset.ttf'), res_dir) shutil.copy(os.path.join(args.orca_dir, 'resources/Menlo.ttf'), res_dir) shutil.copy(os.path.join(args.orca_dir, 'resources/Menlo Bold.ttf'), res_dir) - shutil.copy(os.path.join(args.orca_dir, 'resources/Menlo Italics.ttf'), res_dir) #----------------------------------------------------------- #NOTE make icon diff --git a/scripts/checksums.json b/scripts/checksums.json index 74cea47..06dceb2 100644 --- a/scripts/checksums.json +++ b/scripts/checksums.json @@ -1,10 +1,10 @@ { "scripts/files/angle-windows-2019-2023-07-05.zip": "a333b5ccc8462151ee8df65c43cfacd70d9db2413f2e495da65670737b5b2d96", "scripts/files/angle-macos-jank-2023-07-05.zip": "c234b8db179a24757ab9f46610a032123718dd9bed967d2bf8e27d0d17eb0aff", - "milepost/build/bin/libEGL.dll": "b7bf51f83e88129ddc20c0c2cb904ec04c89059a30a2cd29b9b1ea11c80388fb", - "milepost/build/bin/libEGL.dll.lib": "4cec54c534136da413dea86bd271ccb9c5ae88e40aa91d1de7a01e701be8e1d7", - "milepost/build/bin/libGLESv2.dll": "193b53b0a16b702eaa28a73e84527acf7aecfd665e3e3f54a8d9db9ae73111e1", - "milepost/build/bin/libGLESv2.dll.lib": "ee87aac129efe8fe871825d181b85da1b1ea6626cb48be52c2e689f2804b953f", - "milepost/build/bin/libEGL.dylib": "96baea4b1c8578d30738764784d07b509d1153df694c094faba2ee8ccbfde2a9", - "milepost/build/bin/libGLESv2.dylib": "98ce9f6248a6447ba9199e96b8f6d87df9548d43ce583a2615717aab168ecb71" + "ext/angle/bin/libEGL.dll": "b7bf51f83e88129ddc20c0c2cb904ec04c89059a30a2cd29b9b1ea11c80388fb", + "ext/angle/lib/libEGL.dll.lib": "4cec54c534136da413dea86bd271ccb9c5ae88e40aa91d1de7a01e701be8e1d7", + "ext/angle/bin/libGLESv2.dll": "193b53b0a16b702eaa28a73e84527acf7aecfd665e3e3f54a8d9db9ae73111e1", + "ext/angle/lib/libGLESv2.dll.lib": "ee87aac129efe8fe871825d181b85da1b1ea6626cb48be52c2e689f2804b953f", + "ext/angle/bin/libEGL.dylib": "96baea4b1c8578d30738764784d07b509d1153df694c094faba2ee8ccbfde2a9", + "ext/angle/bin/libGLESv2.dylib": "98ce9f6248a6447ba9199e96b8f6d87df9548d43ce583a2615717aab168ecb71" } diff --git a/scripts/dev.py b/scripts/dev.py index 7f258ab..a84dd18 100644 --- a/scripts/dev.py +++ b/scripts/dev.py @@ -13,7 +13,7 @@ from .bindgen import bindgen from .gles_gen import gles_gen from .log import * from .utils import pushd, removeall - +from .embed_text_files import * ANGLE_VERSION = "2023-07-05" @@ -60,64 +60,61 @@ def build_runtime(args): ensure_programs() ensure_angle() - build_milepost("lib", args.release) + build_platform_layer("lib", args.release) build_wasm3(args.release) build_orca(args.release) def clean(args): yeet("build") - yeet("milepost/build") + yeet("ext/angle") yeet("scripts/files") yeet("scripts/__pycache__") -def build_milepost(target, release): - print("Building milepost...") - with pushd("milepost"): - os.makedirs("build/bin", exist_ok=True) - os.makedirs("build/lib", exist_ok=True) - os.makedirs("resources", exist_ok=True) +def build_platform_layer(target, release): + print("Building Orca platform layer...") - if target == "lib": - if platform.system() == "Windows": - build_milepost_lib_win(release) - elif platform.system() == "Darwin": - build_milepost_lib_mac(release) - else: - log_error(f"can't build milepost for unknown platform '{platform.system()}'") - exit(1) - elif target == "test": - with pushd("examples/test_app"): - # TODO? - subprocess.run(["./build.sh"]) - elif target == "clean": - removeall("bin") + os.makedirs("build/bin", exist_ok=True) + os.makedirs("build/lib", exist_ok=True) + + if target == "lib": + if platform.system() == "Windows": + build_platform_layer_lib_win(release) + elif platform.system() == "Darwin": + build_platform_layer_lib_mac(release) else: - log_error(f"unrecognized milepost target '{target}'") + log_error(f"can't build platform layer for unknown platform '{platform.system()}'") exit(1) + elif target == "test": + with pushd("examples/test_app"): + # TODO? + subprocess.run(["./build.sh"]) + elif target == "clean": + removeall("bin") + else: + log_error(f"unrecognized platform layer target '{target}'") + exit(1) -def build_milepost_lib_win(release): - # TODO(ben): delete embed_text.py - embed_text_glsl("src\\glsl_shaders.h", "glsl_", [ - "src\\glsl_shaders\\common.glsl", - "src\\glsl_shaders\\blit_vertex.glsl", - "src\\glsl_shaders\\blit_fragment.glsl", - "src\\glsl_shaders\\path_setup.glsl", - "src\\glsl_shaders\\segment_setup.glsl", - "src\\glsl_shaders\\backprop.glsl", - "src\\glsl_shaders\\merge.glsl", - "src\\glsl_shaders\\raster.glsl", - "src\\glsl_shaders\\balance_workgroups.glsl", +def build_platform_layer_lib_win(release): + + embed_text_files("src\\graphics\\glsl_shaders.h", "glsl_", [ + "src\\graphics\\glsl_shaders\\common.glsl", + "src\\graphics\\glsl_shaders\\blit_vertex.glsl", + "src\\graphics\\glsl_shaders\\blit_fragment.glsl", + "src\\graphics\\glsl_shaders\\path_setup.glsl", + "src\\graphics\\glsl_shaders\\segment_setup.glsl", + "src\\graphics\\glsl_shaders\\backprop.glsl", + "src\\graphics\\glsl_shaders\\merge.glsl", + "src\\graphics\\glsl_shaders\\raster.glsl", + "src\\graphics\\glsl_shaders\\balance_workgroups.glsl", ]) includes = [ "/I", "src", - "/I", "src/util", - "/I", "src/platform", "/I", "ext", - "/I", "ext/angle_headers", + "/I", "ext/angle/include", ] libs = [ "user32.lib", @@ -130,7 +127,7 @@ def build_milepost_lib_win(release): "ole32.lib", "shell32.lib", "shlwapi.lib", - "/LIBPATH:./build/bin", + "/LIBPATH:ext/angle/lib", "libEGL.dll.lib", "libGLESv2.dll.lib", "/DELAYLOAD:libEGL.dll", @@ -143,23 +140,23 @@ def build_milepost_lib_win(release): "/DMP_BUILD_DLL", "/std:c11", "/experimental:c11atomics", *includes, - "src/milepost.c", "/Fo:build/bin/milepost.o", + "src/orca.c", "/Fo:build/bin/orca.o", "/LD", "/link", - "/MANIFEST:EMBED", "/MANIFESTINPUT:src/win32_manifest.xml", + "/MANIFEST:EMBED", "/MANIFESTINPUT:src/app/win32_manifest.xml", *libs, - "/OUT:build/bin/milepost.dll", - "/IMPLIB:build/bin/milepost.dll.lib", + "/OUT:build/bin/orca.dll", + "/IMPLIB:build/bin/orca.dll.lib", ], check=True) -def build_milepost_lib_mac(release): +def build_platform_layer_lib_mac(release): sdk_dir = "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" flags = ["-mmacos-version-min=10.15.4", "-maes"] cflags = ["-std=c11"] debug_flags = ["-O3"] if release else ["-g", "-DDEBUG", "-DLOG_COMPILE_DEBUG"] ldflags = [f"-L{sdk_dir}/usr/lib", f"-F{sdk_dir}/System/Library/Frameworks/"] - includes = ["-Isrc", "-Isrc/util", "-Isrc/platform", "-Iext", "-Iext/angle_headers"] + includes = ["-Isrc", "-Isrc/util", "-Isrc/platform", "-Iext", "-Iext/angle/include"] # compile metal shader subprocess.run([ @@ -167,7 +164,7 @@ def build_milepost_lib_mac(release): # TODO: shaderFlagParam "-fno-fast-math", "-c", "-o", "build/mtl_renderer.air", - "src/mtl_renderer.metal", + "src/graphics/mtl_renderer.metal", ], check=True) subprocess.run([ "xcrun", "-sdk", "macosx", "metallib", @@ -175,30 +172,30 @@ def build_milepost_lib_mac(release): "build/mtl_renderer.air", ], check=True) - # compile milepost. We use one compilation unit for all C code, and one + # compile platform layer. We use one compilation unit for all C code, and one # compilation unit for all Objective-C code subprocess.run([ "clang", *debug_flags, "-c", - "-o", "build/milepost_c.o", + "-o", "build/orca_c.o", *cflags, *flags, *includes, - "src/milepost.c" + "src/orca.c" ], check=True) subprocess.run([ "clang", *debug_flags, "-c", - "-o", "build/milepost_objc.o", + "-o", "build/orca_objc.o", *flags, *includes, - "src/milepost.m" + "src/orca.m" ], check=True) # build dynamic library subprocess.run([ "ld", *ldflags, "-dylib", - "-o", "build/bin/libmilepost.dylib", - "build/milepost_c.o", "build/milepost_objc.o", - "-Lbuild/bin", "-lc", + "-o", "build/bin/liborca.dylib", + "build/orca_c.o", "build/orca_objc.o", + "-Lext/angle/bin", "-lc", "-framework", "Carbon", "-framework", "Cocoa", "-framework", "Metal", "-framework", "QuartzCore", "-weak-lEGL", "-weak-lGLESv2", ], check=True) @@ -207,20 +204,20 @@ def build_milepost_lib_mac(release): subprocess.run([ "install_name_tool", "-change", "./libEGL.dylib", "@rpath/libEGL.dylib", - "build/bin/libmilepost.dylib", + "build/bin/liborca.dylib", ], check=True) subprocess.run([ "install_name_tool", "-change", "./libGLESv2.dylib", "@rpath/libGLESv2.dylib", - "build/bin/libmilepost.dylib", + "build/bin/liborca.dylib", ], check=True) # add executable path to rpath. Client executable can still add its own # rpaths if needed, e.g. @executable_path/libs/ etc. subprocess.run([ "install_name_tool", - "-id", "@rpath/libmilepost.dylib", - "build/bin/libmilepost.dylib", + "-id", "@rpath/liborca.dylib", + "build/bin/liborca.dylib", ], check=True) @@ -279,7 +276,7 @@ def build_wasm3_lib_mac(release): def build_orca(release): - print("Building Orca...") + print("Building Orca runtime...") os.makedirs("build/bin", exist_ok=True) os.makedirs("build/lib", exist_ok=True) @@ -294,23 +291,19 @@ def build_orca(release): def build_orca_win(release): - # copy libraries - shutil.copy("milepost/build/bin/milepost.dll", "build/bin") - shutil.copy("milepost/build/bin/milepost.dll.lib", "build/bin") gen_all_bindings() # compile orca includes = [ "/I", "src", - "/I", "sdk", + "/I", "ext", + "/I", "ext/angle/include", "/I", "ext/wasm3/source", - "/I", "milepost/src", - "/I", "milepost/ext", ] libs = [ "/LIBPATH:build/bin", - "milepost.dll.lib", + "orca.dll.lib", "wasm3.lib", ] @@ -319,29 +312,21 @@ def build_orca_win(release): "/Zi", "/Zc:preprocessor", "/std:c11", "/experimental:c11atomics", *includes, - "src/main.c", + "src/runtime.c", "/link", *libs, - "/out:build/bin/orca.exe", + "/out:build/bin/orca_runtime.exe", ], check=True) def build_orca_mac(release): - # copy libraries - shutil.copy("milepost/build/bin/mtl_renderer.metallib", "build/bin/") - shutil.copy("milepost/build/bin/libmilepost.dylib", "build/bin/") - shutil.copy("milepost/build/bin/libGLESv2.dylib", "build/bin/") - shutil.copy("milepost/build/bin/libEGL.dylib", "build/bin/") includes = [ "-Isrc", - "-Isdk", - "-Imilepost/src", - "-Imilepost/src/util", - "-Imilepost/src/platform", - "-Iext/wasm3/source", - "-Imilepost/ext/", + "-Iext", + "-Iext/angle/include", + "-Iext/wasm3/source" ] - libs = ["-Lbuild/bin", "-Lbuild/lib", "-lmilepost", "-lwasm3"] + libs = ["-Lbuild/bin", "-Lbuild/lib", "-lorca", "-lwasm3"] debug_flags = ["-O2"] if release else ["-g", "-DLOG_COMPILE_DEBUG"] flags = [ *debug_flags, @@ -354,50 +339,50 @@ def build_orca_mac(release): # compile orca subprocess.run([ "clang", *flags, *includes, *libs, - "-o", "build/bin/orca", - "src/main.c", + "-o", "build/bin/orca_runtime", + "src/runtime.c", ], check=True) # fix libs imports subprocess.run([ "install_name_tool", - "-change", "build/bin/libmilepost.dylib", "@rpath/libmilepost.dylib", - "build/bin/orca", + "-change", "build/bin/liborca.dylib", "@rpath/liborca.dylib", + "build/bin/orca_runtime", ], check=True) subprocess.run([ "install_name_tool", "-add_rpath", "@executable_path/", - "build/bin/orca", + "build/bin/orca_runtime", ], check=True) def gen_all_bindings(): - bindgen("core", "src/core_api.json", - wasm3_bindings="src/core_api_bind_gen.c", + gles_gen("ext/gl.xml", + "src/wasmbind/gles_api.json", + "src/graphics/orca_gl31.h" ) - gles_gen("milepost/ext/gl.xml", - "src/gles_api.json", - "sdk/gl31.h" + bindgen("gles", "src/wasmbind/gles_api.json", + wasm3_bindings="src/wasmbind/gles_api_bind_gen.c", ) - bindgen("gles", "src/gles_api.json", - wasm3_bindings="src/gles_api_bind_gen.c", + bindgen("core", "src/wasmbind/core_api.json", + wasm3_bindings="src/wasmbind/core_api_bind_gen.c", ) - bindgen("canvas", "src/canvas_api.json", - guest_stubs="sdk/orca_surface.c", - guest_include="graphics.h", - wasm3_bindings="src/canvas_api_bind_gen.c", + bindgen("surface", "src/wasmbind/surface_api.json", + guest_stubs="src/graphics/orca_surface_stubs.c", + guest_include="graphics/graphics.h", + wasm3_bindings="src/wasmbind/surface_api_bind_gen.c", ) - bindgen("clock", "src/clock_api.json", - guest_stubs="sdk/orca_clock.c", - guest_include="platform_clock.h", - wasm3_bindings="src/clock_api_bind_gen.c", + + bindgen("clock", "src/wasmbind/clock_api.json", + guest_include="platform/platform_clock.h", + wasm3_bindings="src/wasmbind/clock_api_bind_gen.c", ) - bindgen("io", "src/io_api.json", - guest_stubs="sdk/io_stubs.c", - wasm3_bindings="src/io_api_bind_gen.c", + bindgen("io", "src/wasmbind/io_api.json", + guest_stubs="src/platform/orca_io_stubs.c", + wasm3_bindings="src/wasmbind/io_api_bind_gen.c", ) @@ -440,15 +425,15 @@ def verify_angle(): checkfiles = None if platform.system() == "Windows": checkfiles = [ - "milepost/build/bin/libEGL.dll", - "milepost/build/bin/libEGL.dll.lib", - "milepost/build/bin/libGLESv2.dll", - "milepost/build/bin/libGLESv2.dll.lib", + "ext/angle/bin/libEGL.dll", + "ext/angle/lib/libEGL.dll.lib", + "ext/angle/bin/libGLESv2.dll", + "ext/angle/lib/libGLESv2.dll.lib", ] elif platform.system() == "Darwin": checkfiles = [ - "milepost/build/bin/libEGL.dylib", - "milepost/build/bin/libGLESv2.dylib", + "ext/angle/bin/libEGL.dylib", + "ext/angle/bin/libGLESv2.dylib", ] if checkfiles is None: @@ -471,15 +456,8 @@ def download_angle(): print("Downloading ANGLE...") if platform.system() == "Windows": build = "windows-2019" - extensions = [ - ("dll", "milepost/build/bin/"), - ("lib", "milepost/build/bin/"), - ] elif platform.system() == "Darwin": build = "macos-jank" - extensions = [ - ("dylib", "milepost/build/bin/"), - ] else: log_error(f"could not automatically download ANGLE for unknown platform {platform.system()}") return @@ -500,48 +478,7 @@ def download_angle(): with ZipFile(filepath, "r") as anglezip: anglezip.extractall(path="scripts/files") - os.makedirs("milepost/build/bin", exist_ok=True) - for angleDir in ["bin", "lib"]: - for (ext, dest) in extensions: - for filepath in glob.glob(f"scripts/files/angle/{angleDir}/*.{ext}"): - shutil.copy(filepath, dest) - - -def embed_text_glsl(outputpath, prefix, shaders): - output = open(outputpath, "w") - output.write("/*********************************************************************\n") - output.write("*\n") - output.write("*\tfile: %s\n" % os.path.basename(outputpath)) - output.write("*\tnote: string literals auto-generated by build_runtime.py\n") - output.write("*\tdate: %s\n" % datetime.now().strftime("%d/%m%Y")) - output.write("*\n") - output.write("**********************************************************************/\n") - - outSymbol = (os.path.splitext(os.path.basename(outputpath))[0]).upper() - - output.write("#ifndef __%s_H__\n" % outSymbol) - output.write("#define __%s_H__\n" % outSymbol) - output.write("\n\n") - - for fileName in shaders: - f = open(fileName, "r") - lines = f.read().splitlines() - - output.write("//NOTE: string imported from %s\n" % fileName) - - stringName = os.path.splitext(os.path.basename(fileName))[0] - output.write(f"const char* {prefix}{stringName} = ") - - for line in lines: - output.write("\n\"%s\\n\"" % line) - - output.write(";\n\n") - f.close() - - output.write("#endif // __%s_H__\n" % outSymbol) - - output.close() - + shutil.copytree(f"scripts/files/angle/", "ext/angle", dirs_exist_ok=True) def yeet(path): os.makedirs(path, exist_ok=True) diff --git a/scripts/embed_text_files.py b/scripts/embed_text_files.py new file mode 100644 index 0000000..25a0234 --- /dev/null +++ b/scripts/embed_text_files.py @@ -0,0 +1,48 @@ +import os +from datetime import datetime +from argparse import ArgumentParser + + +def embed_text_files(outputpath, prefix, files): + output = open(outputpath, "w") + output.write("/*********************************************************************\n") + output.write("*\n") + output.write("*\tfile: %s\n" % os.path.basename(outputpath)) + output.write("*\tnote: string literals auto-generated by build_runtime.py\n") + output.write("*\tdate: %s\n" % datetime.now().strftime("%d/%m%Y")) + output.write("*\n") + output.write("**********************************************************************/\n") + + outSymbol = (os.path.splitext(os.path.basename(outputpath))[0]).upper() + + output.write("#ifndef __%s_H__\n" % outSymbol) + output.write("#define __%s_H__\n" % outSymbol) + output.write("\n\n") + + for fileName in files: + f = open(fileName, "r") + lines = f.read().splitlines() + + output.write("//NOTE: string imported from %s\n" % fileName) + + stringName = os.path.splitext(os.path.basename(fileName))[0] + output.write(f"const char* {prefix}{stringName} = ") + + for line in lines: + output.write("\n\"%s\\n\"" % line) + + output.write(";\n\n") + f.close() + + output.write("#endif // __%s_H__\n" % outSymbol) + output.close() + +if __name__ == "__main__": + parser = ArgumentParser() + parser.add_argument("inputFiles", nargs="+") + parser.add_argument("-o", "--output") + parser.add_argument("-p", "--prefix") + + args = parser.parse_args() + + embed_text_files(args.output, args.prefix, args.inputFiles) diff --git a/milepost/scripts/glapi.py b/scripts/glapi.py similarity index 98% rename from milepost/scripts/glapi.py rename to scripts/glapi.py index 60c5d42..75439ea 100644 --- a/milepost/scripts/glapi.py +++ b/scripts/glapi.py @@ -188,6 +188,10 @@ def emit_null_api(f, procs): f.write(retType + ' mg_' + name + '_noimpl(') params = command.findall('param') + + if len(params) == 0: + f.write('void') + for i, param in enumerate(params): argName = param.find('name').text @@ -235,7 +239,7 @@ f = open(loaderCPath, 'w') emit_doc(f, loaderName, '.c') f.write('#include"' + loaderName + '.h"\n') -f.write('#include"platform.h"\n\n') +f.write('#include"platform/platform.h"\n\n') f.write("mp_thread_local mg_gl_api* __mgGLAPI = 0;\n") diff --git a/sdk/GLES3/gl3.h b/sdk/GLES3/gl3.h deleted file mode 100644 index 3db2579..0000000 --- a/sdk/GLES3/gl3.h +++ /dev/null @@ -1,1192 +0,0 @@ -#ifndef __gles2_gl3_h_ -#define __gles2_gl3_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20211115 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.0 - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/sdk/GLES3/gl31.h b/sdk/GLES3/gl31.h deleted file mode 100644 index 502d6fe..0000000 --- a/sdk/GLES3/gl31.h +++ /dev/null @@ -1,1507 +0,0 @@ -#ifndef __gles2_gl31_h_ -#define __gles2_gl31_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20191013 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[01] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/sdk/GLES3/gl32.h b/sdk/GLES3/gl32.h deleted file mode 100644 index ae56b0e..0000000 --- a/sdk/GLES3/gl32.h +++ /dev/null @@ -1,1808 +0,0 @@ -#ifndef __gles2_gl32_h_ -#define __gles2_gl32_h_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ - -#include - -#ifndef GL_APIENTRYP -#define GL_APIENTRYP GL_APIENTRY* -#endif - -#ifndef GL_GLES_PROTOTYPES -#define GL_GLES_PROTOTYPES 1 -#endif - -/* Generated on date 20191013 */ - -/* Generated C header for: - * API: gles2 - * Profile: common - * Versions considered: 2\.[0-9]|3\.[012] - * Versions emitted: .* - * Default extensions included: None - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ - -#ifndef GL_ES_VERSION_2_0 -#define GL_ES_VERSION_2_0 1 -#include -typedef khronos_int8_t GLbyte; -typedef khronos_float_t GLclampf; -typedef khronos_int32_t GLfixed; -typedef khronos_int16_t GLshort; -typedef khronos_uint16_t GLushort; -typedef void GLvoid; -typedef struct __GLsync *GLsync; -typedef khronos_int64_t GLint64; -typedef khronos_uint64_t GLuint64; -typedef unsigned int GLenum; -typedef unsigned int GLuint; -typedef char GLchar; -typedef khronos_float_t GLfloat; -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -typedef unsigned int GLbitfield; -typedef int GLint; -typedef unsigned char GLboolean; -typedef int GLsizei; -typedef khronos_uint8_t GLubyte; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_FUNC_ADD 0x8006 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_CULL_FACE 0x0B44 -#define GL_BLEND 0x0BE2 -#define GL_DITHER 0x0BD0 -#define GL_STENCIL_TEST 0x0B90 -#define GL_DEPTH_TEST 0x0B71 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_LINE_WIDTH 0x0B21 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_VIEWPORT 0x0BA2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_FIXED 0x140C -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INVERT 0x150A -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_COMPILE_STATUS 0x8B81 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB565 0x8D62 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_NONE 0 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); -typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); -typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); -typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); -typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); -typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); -typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); -typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); -typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); -typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); -typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); -typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); -typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); -GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); -GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); -GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); -GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); -GL_APICALL void GL_APIENTRY glClearStencil (GLint s); -GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); -GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); -GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); -GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); -GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); -GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); -GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); -GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); -GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); -GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); -GL_APICALL void GL_APIENTRY glDisable (GLenum cap); -GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glEnable (GLenum cap); -GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); -GL_APICALL void GL_APIENTRY glFinish (void); -GL_APICALL void GL_APIENTRY glFlush (void); -GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); -GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); -GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); -GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL GLenum GL_APIENTRY glGetError (void); -GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); -GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); -GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); -GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); -GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); -GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); -GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); -GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); -GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); -GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); -GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); -GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); -GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); -GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); -GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); -GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); -GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_ES_VERSION_2_0 */ - -#ifndef GL_ES_VERSION_3_0 -#define GL_ES_VERSION_3_0 1 -typedef khronos_uint16_t GLhalf; -#define GL_READ_BUFFER 0x0C02 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_RED 0x1903 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_RG8 0x822B -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); -GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); -GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); -GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); -GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); -GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); -GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); -GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); -GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); -GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); -GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); -GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); -GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); -GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); -GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); -GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); -GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif -#endif /* GL_ES_VERSION_3_0 */ - -#ifndef GL_ES_VERSION_3_1 -#define GL_ES_VERSION_3_1 1 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_NAME_LENGTH 0x92F9 -#define GL_TYPE 0x92FA -#define GL_ARRAY_SIZE 0x92FB -#define GL_OFFSET 0x92FC -#define GL_BLOCK_INDEX 0x92FD -#define GL_ARRAY_STRIDE 0x92FE -#define GL_MATRIX_STRIDE 0x92FF -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_LOCATION 0x930E -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_STENCIL_INDEX 0x1901 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); -typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); -typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); -typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); -GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); -GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); -GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); -GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); -GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); -GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); -GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); -GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); -GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); -GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); -GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); -GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); -#endif -#endif /* GL_ES_VERSION_3_1 */ - -#ifndef GL_ES_VERSION_3_2 -#define GL_ES_VERSION_3_2 1 -typedef void (GL_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#define GL_MULTISAMPLE_LINE_WIDTH_RANGE 0x9381 -#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY 0x9382 -#define GL_MULTIPLY 0x9294 -#define GL_SCREEN 0x9295 -#define GL_OVERLAY 0x9296 -#define GL_DARKEN 0x9297 -#define GL_LIGHTEN 0x9298 -#define GL_COLORDODGE 0x9299 -#define GL_COLORBURN 0x929A -#define GL_HARDLIGHT 0x929B -#define GL_SOFTLIGHT 0x929C -#define GL_DIFFERENCE 0x929E -#define GL_EXCLUSION 0x92A0 -#define GL_HSL_HUE 0x92AD -#define GL_HSL_SATURATION 0x92AE -#define GL_HSL_COLOR 0x92AF -#define GL_HSL_LUMINOSITY 0x92B0 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_PRIMITIVE_BOUNDING_BOX 0x92BE -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 -#define GL_CONTEXT_FLAGS 0x821E -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_CONTEXT_LOST 0x0507 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_ISOLINES 0x8E7A -#define GL_QUADS 0x0007 -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_IS_PER_PATCH 0x92E7 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 -#define GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 -#define GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 -#define GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 -#define GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 -#define GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 -#define GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 -#define GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 -#define GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 -#define GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 -#define GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA -#define GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB -#define GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC -#define GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC -#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -typedef void (GL_APIENTRYP PFNGLBLENDBARRIERPROC) (void); -typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); -typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); -typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); -typedef void (GL_APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GL_APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); -typedef void (GL_APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); -typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#if GL_GLES_PROTOTYPES -GL_APICALL void GL_APIENTRY glBlendBarrier (void); -GL_APICALL void GL_APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); -GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); -GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); -GL_APICALL void GL_APIENTRY glPopDebugGroup (void); -GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); -GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); -GL_APICALL void GL_APIENTRY glEnablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDisablei (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GL_APICALL void GL_APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GL_APICALL void GL_APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GL_APICALL void GL_APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GL_APICALL void GL_APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GL_APICALL GLboolean GL_APIENTRY glIsEnabledi (GLenum target, GLuint index); -GL_APICALL void GL_APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -GL_APICALL void GL_APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -GL_APICALL void GL_APIENTRY glPrimitiveBoundingBox (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); -GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatus (void); -GL_APICALL void GL_APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -GL_APICALL void GL_APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GL_APICALL void GL_APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GL_APICALL void GL_APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GL_APICALL void GL_APIENTRY glMinSampleShading (GLfloat value); -GL_APICALL void GL_APIENTRY glPatchParameteri (GLenum pname, GLint value); -GL_APICALL void GL_APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GL_APICALL void GL_APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GL_APICALL void GL_APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GL_APICALL void GL_APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -GL_APICALL void GL_APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GL_APICALL void GL_APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -GL_APICALL void GL_APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -#endif -#endif /* GL_ES_VERSION_3_2 */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/sdk/GLES3/gl3platform.h b/sdk/GLES3/gl3platform.h deleted file mode 100644 index 8699212..0000000 --- a/sdk/GLES3/gl3platform.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __gl3platform_h_ -#define __gl3platform_h_ - -/* -** Copyright 2017-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for OpenGL ES 3.X gl3.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * Please contribute modifications back to Khronos as pull requests on the - * public github repository: - * https://github.com/KhronosGroup/OpenGL-Registry - */ - -#include - -#ifndef GL_APICALL -#define GL_APICALL KHRONOS_APICALL -#endif - -#ifndef GL_APIENTRY -#define GL_APIENTRY KHRONOS_APIENTRY -#endif - -#endif /* __gl3platform_h_ */ diff --git a/sdk/KHR/khrplatform.h b/sdk/KHR/khrplatform.h deleted file mode 100644 index ba47c26..0000000 --- a/sdk/KHR/khrplatform.h +++ /dev/null @@ -1,292 +0,0 @@ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2018 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Khronos platform-specific types and definitions. - * - * The master copy of khrplatform.h is maintained in the Khronos EGL - * Registry repository at https://github.com/KhronosGroup/EGL-Registry - * The last semantic modification to khrplatform.h was at commit ID: - * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by filing pull requests or issues on - * the EGL Registry repository linked above. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) -# define KHRONOS_STATIC 1 -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(KHRONOS_STATIC) - /* If the preprocessor constant KHRONOS_STATIC is defined, make the - * header compatible with static linking. */ -# define KHRONOS_APICALL -#elif defined(_WIN32) -# define KHRONOS_APICALL __declspec(dllimport) -#elif defined (__SYMBIAN32__) -# define KHRONOS_APICALL IMPORT_C -#elif (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303) \ - || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) -/* KHRONOS_APIATTRIBUTES is not used by the client API headers yet */ -# define KHRONOS_APICALL __attribute__((visibility("default"))) -#else -# define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(KHRONOS_STATIC) - /* Win32 but not WinCE */ -# define KHRONOS_APIENTRY __stdcall -#else -# define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined (__ARMCC_2__) -#define KHRONOS_APIATTRIBUTES __softfp -#else -#define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - -/* - * Using - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__VMS ) || defined(__sgi) - -/* - * Using - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; -#else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; -#endif /* __arch64__ */ -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; -#define KHRONOS_SUPPORT_INT64 0 -#define KHRONOS_SUPPORT_FLOAT 0 - -#else - -/* - * Generic fallback - */ -#include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#define KHRONOS_SUPPORT_INT64 1 -#define KHRONOS_SUPPORT_FLOAT 1 - -#endif - - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM -#define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ diff --git a/sdk/keys.h b/sdk/keys.h deleted file mode 100644 index a350dae..0000000 --- a/sdk/keys.h +++ /dev/null @@ -1,140 +0,0 @@ -/************************************************************//** -* -* @file: keys.h -* @author: Martin Fouilleul -* @date: 26/08/2022 -* @revision: -* -*****************************************************************/ -#ifndef __KEYS_H_ -#define __KEYS_H_ - -#include"util/typedefs.h" - -typedef i32 key_code; -static const key_code KEY_UNKNOWN = -1, - KEY_SPACE = 32, - KEY_APOSTROPHE = 39, // ' - KEY_COMMA = 44, // , - KEY_MINUS = 45, // - - KEY_PERIOD = 46, // . - KEY_SLASH = 47, // / - KEY_0 = 48, - KEY_1 = 49, - KEY_2 = 50, - KEY_3 = 51, - KEY_4 = 52, - KEY_5 = 53, - KEY_6 = 54, - KEY_7 = 55, - KEY_8 = 56, - KEY_9 = 57, - KEY_SEMICOLON = 59, // ; - KEY_EQUAL = 61, // = - KEY_A = 65, - KEY_B = 66, - KEY_C = 67, - KEY_D = 68, - KEY_E = 69, - KEY_F = 70, - KEY_G = 71, - KEY_H = 72, - KEY_I = 73, - KEY_J = 74, - KEY_K = 75, - KEY_L = 76, - KEY_M = 77, - KEY_N = 78, - KEY_O = 79, - KEY_P = 80, - KEY_Q = 81, - KEY_R = 82, - KEY_S = 83, - KEY_T = 84, - KEY_U = 85, - KEY_V = 86, - KEY_W = 87, - KEY_X = 88, - KEY_Y = 89, - KEY_Z = 90, - KEY_LEFT_BRACKET = 91, // [ - KEY_BACKSLASH = 92, // \ */ - KEY_RIGHT_BRACKET = 93, // ] - KEY_GRAVE_ACCENT = 96, // ` - KEY_WORLD_1 = 161, // non-US #1 - KEY_WORLD_2 = 162, // non-US #2 - KEY_ESCAPE = 256, - KEY_ENTER = 257, - KEY_TAB = 258, - KEY_BACKSPACE = 259, - KEY_INSERT = 260, - KEY_DELETE = 261, - KEY_RIGHT = 262, - KEY_LEFT = 263, - KEY_DOWN = 264, - KEY_UP = 265, - KEY_PAGE_UP = 266, - KEY_PAGE_DOWN = 267, - KEY_HOME = 268, - KEY_END = 269, - KEY_CAPS_LOCK = 280, - KEY_SCROLL_LOCK = 281, - KEY_NUM_LOCK = 282, - KEY_PRINT_SCREEN = 283, - KEY_PAUSE = 284, - KEY_F1 = 290, - KEY_F2 = 291, - KEY_F3 = 292, - KEY_F4 = 293, - KEY_F5 = 294, - KEY_F6 = 295, - KEY_F7 = 296, - KEY_F8 = 297, - KEY_F9 = 298, - KEY_F10 = 299, - KEY_F11 = 300, - KEY_F12 = 301, - KEY_F13 = 302, - KEY_F14 = 303, - KEY_F15 = 304, - KEY_F16 = 305, - KEY_F17 = 306, - KEY_F18 = 307, - KEY_F19 = 308, - KEY_F20 = 309, - KEY_F21 = 310, - KEY_F22 = 311, - KEY_F23 = 312, - KEY_F24 = 313, - KEY_F25 = 314, - KEY_KP_0 = 320, - KEY_KP_1 = 321, - KEY_KP_2 = 322, - KEY_KP_3 = 323, - KEY_KP_4 = 324, - KEY_KP_5 = 325, - KEY_KP_6 = 326, - KEY_KP_7 = 327, - KEY_KP_8 = 328, - KEY_KP_9 = 329, - KEY_KP_DECIMAL = 330, - KEY_KP_DIVIDE = 331, - KEY_KP_MULTIPLY = 332, - KEY_KP_SUBTRACT = 333, - KEY_KP_ADD = 334, - KEY_KP_ENTER = 335, - KEY_KP_EQUAL = 336, - KEY_LEFT_SHIFT = 340, - KEY_LEFT_CONTROL = 341, - KEY_LEFT_ALT = 342, - KEY_LEFT_SUPER = 343, - KEY_RIGHT_SHIFT = 344, - KEY_RIGHT_CONTROL = 345, - KEY_RIGHT_ALT = 346, - KEY_RIGHT_SUPER = 347, - KEY_MENU = 348; - -static const key_code KEY_MAX = KEY_MENU; - - -#endif //__KEYS_H_ diff --git a/sdk/orca.c b/sdk/orca.c deleted file mode 100644 index c92ab81..0000000 --- a/sdk/orca.c +++ /dev/null @@ -1,27 +0,0 @@ -/************************************************************//** -* -* @file: orca.c -* @author: Martin Fouilleul -* @date: 13/04/2023 -* -*****************************************************************/ - -#include"platform/orca_clock.c" -#include"platform/orca_memory.c" -#include"platform/orca_malloc.c" -#include"platform/orca_strings.c" -#include"platform/orca_log.c" -#include"platform/platform_io_common.c" - -#include"util/hash.c" -#include"util/memory.c" -#include"util/strings.c" -#include"util/utf8.c" - -#include"graphics_common.c" -#include"input_state.c" -#include"orca_exports.c" -#include"orca_surface.c" -#include"ui.c" - -#include"io_stubs.c" diff --git a/sdk/orca.h b/sdk/orca.h deleted file mode 100644 index 2c96e5b..0000000 --- a/sdk/orca.h +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************//** -* -* @file: orca.h -* @author: Martin Fouilleul -* @date: 13/04/2023 -* -*****************************************************************/ -#ifndef __ORCA_H_ -#define __ORCA_H_ - -#include"util/typedefs.h" -#include"util/lists.h" -#include"util/memory.h" -#include"util/strings.h" -#include"util/utf8.h" -#include"platform/platform.h" -#include"platform/platform_log.h" -#include"platform/platform_assert.h" -#include"platform/platform_clock.h" -#include"platform/platform_io.h" - -#include"math.h" - -#include"graphics.h" -#include"gl31.h" - -#if COMPILER_CLANG - #define ORCA_EXPORT __attribute__((visibility("default"))) -#else - #error "Orca apps can only be compiled with clang for now" -#endif - - -mg_surface mg_surface_canvas(); -mg_surface mg_surface_gles(); - - - - -#endif //__ORCA_H_ diff --git a/milepost/examples/atlas/build.bat b/sketches/atlas/build.bat similarity index 100% rename from milepost/examples/atlas/build.bat rename to sketches/atlas/build.bat diff --git a/milepost/examples/atlas/build.sh b/sketches/atlas/build.sh similarity index 100% rename from milepost/examples/atlas/build.sh rename to sketches/atlas/build.sh diff --git a/milepost/examples/atlas/main.c b/sketches/atlas/main.c similarity index 92% rename from milepost/examples/atlas/main.c rename to sketches/atlas/main.c index e1e0925..1aa04cb 100644 --- a/milepost/examples/atlas/main.c +++ b/sketches/atlas/main.c @@ -49,8 +49,8 @@ int main() mg_rect_atlas* atlas = mg_rect_atlas_create(&permanentArena, 16000, 16000); mg_image atlasImage = mg_image_create(surface, 16000, 16000); - str8 path1 = path_executable_relative(mem_scratch(), STR8("../resources/triceratops.png")); - str8 path2 = path_executable_relative(mem_scratch(), STR8("../resources/Top512.png")); + str8 path1 = path_executable_relative(mem_scratch(), STR8("../../sketches/resources/triceratops.png")); + str8 path2 = path_executable_relative(mem_scratch(), STR8("../../sketches/resources/Top512.png")); mg_image_region image1 = mg_image_atlas_alloc_from_file(atlas, atlasImage, path1, false); mg_image_region image2 = mg_image_atlas_alloc_from_file(atlas, atlasImage, path2, false); diff --git a/milepost/examples/canvas/build.bat b/sketches/canvas/build.bat similarity index 100% rename from milepost/examples/canvas/build.bat rename to sketches/canvas/build.bat diff --git a/milepost/examples/canvas/build.sh b/sketches/canvas/build.sh similarity index 70% rename from milepost/examples/canvas/build.sh rename to sketches/canvas/build.sh index ee7e2ad..7092b38 100755 --- a/milepost/examples/canvas/build.sh +++ b/sketches/canvas/build.sh @@ -1,10 +1,10 @@ #!/bin/bash -BINDIR=../../bin -RESDIR=../../resources +BINDIR=../../build/bin SRCDIR=../../src +EXTDIR=../../ext -INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app" +INCLUDES="-I$SRCDIR -I$EXTDIR" LIBS="-L$BINDIR -lmilepost" FLAGS="-mmacos-version-min=10.15.4 -DDEBUG -DLOG_COMPILE_DEBUG" diff --git a/milepost/examples/canvas/main.c b/sketches/canvas/main.c similarity index 100% rename from milepost/examples/canvas/main.c rename to sketches/canvas/main.c diff --git a/milepost/examples/image/build.bat b/sketches/image/build.bat similarity index 100% rename from milepost/examples/image/build.bat rename to sketches/image/build.bat diff --git a/milepost/examples/image/build.sh b/sketches/image/build.sh similarity index 100% rename from milepost/examples/image/build.sh rename to sketches/image/build.sh diff --git a/milepost/examples/image/main.c b/sketches/image/main.c similarity index 96% rename from milepost/examples/image/main.c rename to sketches/image/main.c index 4d7450a..f342298 100644 --- a/milepost/examples/image/main.c +++ b/sketches/image/main.c @@ -44,11 +44,11 @@ int main() } //NOTE: create image - str8 imagePath = path_executable_relative(mem_scratch(), STR8("../resources/triceratops.png")); + str8 imagePath = path_executable_relative(mem_scratch(), STR8("../../sketches/resources/triceratops.png")); mg_image image = mg_image_create_from_file(surface, imagePath, false); vec2 imageSize = mg_image_size(image); - str8 imagePath2 = path_executable_relative(mem_scratch(), STR8("../resources/Top512.png")); + str8 imagePath2 = path_executable_relative(mem_scratch(), STR8("../../sketches/resources/Top512.png")); mg_image image2 = mg_image_create_from_file(surface, imagePath2, false); vec2 imageSize2 = mg_image_size(image2); diff --git a/milepost/examples/multi_surface/build.bat b/sketches/multi_surface/build.bat similarity index 100% rename from milepost/examples/multi_surface/build.bat rename to sketches/multi_surface/build.bat diff --git a/milepost/examples/multi_surface/build.sh b/sketches/multi_surface/build.sh similarity index 100% rename from milepost/examples/multi_surface/build.sh rename to sketches/multi_surface/build.sh diff --git a/milepost/examples/multi_surface/main.c b/sketches/multi_surface/main.c similarity index 100% rename from milepost/examples/multi_surface/main.c rename to sketches/multi_surface/main.c diff --git a/milepost/examples/perf_text/build.bat b/sketches/perf_text/build.bat similarity index 100% rename from milepost/examples/perf_text/build.bat rename to sketches/perf_text/build.bat diff --git a/milepost/examples/perf_text/build.sh b/sketches/perf_text/build.sh similarity index 63% rename from milepost/examples/perf_text/build.sh rename to sketches/perf_text/build.sh index 3f176c1..eeee90e 100755 --- a/milepost/examples/perf_text/build.sh +++ b/sketches/perf_text/build.sh @@ -1,10 +1,10 @@ #!/bin/bash -BINDIR=../../bin -RESDIR=../../resources +BINDIR=../../build/bin SRCDIR=../../src +EXTDIR=../../ext -INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app -I$SRCDIR/graphics" +INCLUDES="-I$SRCDIR -I$EXTDIR" LIBS="-L$BINDIR -lmilepost" FLAGS="-O2 -mmacos-version-min=10.15.4" diff --git a/milepost/examples/perf_text/main.c b/sketches/perf_text/main.c similarity index 95% rename from milepost/examples/perf_text/main.c rename to sketches/perf_text/main.c index bcb9952..d1e9c58 100644 --- a/milepost/examples/perf_text/main.c +++ b/sketches/perf_text/main.c @@ -117,9 +117,9 @@ int main() mg_canvas canvas = mg_canvas_create(); int fontIndex = 0; - mg_font fonts[FONT_COUNT] = {create_font("../resources/OpenSansLatinSubset.ttf"), - create_font("../resources/CMUSerif-Roman.ttf"), - create_font("../resources/courier.ttf")}; + mg_font fonts[FONT_COUNT] = {create_font("../../resources/OpenSansLatinSubset.ttf"), + create_font("../../sketches/resources/CMUSerif-Roman.ttf"), + create_font("../../sketches/resources/Courier.ttf")}; mg_font_extents extents[FONT_COUNT]; f32 fontScales[FONT_COUNT]; diff --git a/milepost/examples/polygon/build.bat b/sketches/polygon/build.bat similarity index 100% rename from milepost/examples/polygon/build.bat rename to sketches/polygon/build.bat diff --git a/milepost/examples/polygon/build.sh b/sketches/polygon/build.sh similarity index 100% rename from milepost/examples/polygon/build.sh rename to sketches/polygon/build.sh diff --git a/milepost/examples/polygon/main.c b/sketches/polygon/main.c similarity index 100% rename from milepost/examples/polygon/main.c rename to sketches/polygon/main.c diff --git a/milepost/examples/render_thread/build.bat b/sketches/render_thread/build.bat similarity index 100% rename from milepost/examples/render_thread/build.bat rename to sketches/render_thread/build.bat diff --git a/milepost/examples/render_thread/build.sh b/sketches/render_thread/build.sh similarity index 100% rename from milepost/examples/render_thread/build.sh rename to sketches/render_thread/build.sh diff --git a/milepost/examples/render_thread/main.c b/sketches/render_thread/main.c similarity index 100% rename from milepost/examples/render_thread/main.c rename to sketches/render_thread/main.c diff --git a/milepost/resources/CMUSerif-Roman.ttf b/sketches/resources/CMUSerif-Roman.ttf similarity index 100% rename from milepost/resources/CMUSerif-Roman.ttf rename to sketches/resources/CMUSerif-Roman.ttf diff --git a/milepost/resources/Courier.ttf b/sketches/resources/Courier.ttf similarity index 100% rename from milepost/resources/Courier.ttf rename to sketches/resources/Courier.ttf diff --git a/milepost/resources/Top512.png b/sketches/resources/Top512.png similarity index 100% rename from milepost/resources/Top512.png rename to sketches/resources/Top512.png diff --git a/milepost/resources/triceratops.png b/sketches/resources/triceratops.png similarity index 100% rename from milepost/resources/triceratops.png rename to sketches/resources/triceratops.png diff --git a/milepost/examples/simpleWindow/build.bat b/sketches/simpleWindow/build.bat similarity index 100% rename from milepost/examples/simpleWindow/build.bat rename to sketches/simpleWindow/build.bat diff --git a/milepost/examples/simpleWindow/build.sh b/sketches/simpleWindow/build.sh similarity index 100% rename from milepost/examples/simpleWindow/build.sh rename to sketches/simpleWindow/build.sh diff --git a/milepost/examples/simpleWindow/main.c b/sketches/simpleWindow/main.c similarity index 100% rename from milepost/examples/simpleWindow/main.c rename to sketches/simpleWindow/main.c diff --git a/milepost/examples/smooth_resize/build.bat b/sketches/smooth_resize/build.bat similarity index 100% rename from milepost/examples/smooth_resize/build.bat rename to sketches/smooth_resize/build.bat diff --git a/milepost/examples/smooth_resize/build.sh b/sketches/smooth_resize/build.sh similarity index 100% rename from milepost/examples/smooth_resize/build.sh rename to sketches/smooth_resize/build.sh diff --git a/milepost/examples/smooth_resize/main.c b/sketches/smooth_resize/main.c similarity index 100% rename from milepost/examples/smooth_resize/main.c rename to sketches/smooth_resize/main.c diff --git a/milepost/examples/surface_sharing/build.bat b/sketches/surface_sharing/build.bat similarity index 100% rename from milepost/examples/surface_sharing/build.bat rename to sketches/surface_sharing/build.bat diff --git a/milepost/examples/surface_sharing/build.sh b/sketches/surface_sharing/build.sh similarity index 100% rename from milepost/examples/surface_sharing/build.sh rename to sketches/surface_sharing/build.sh diff --git a/milepost/examples/surface_sharing/main.c b/sketches/surface_sharing/main.c similarity index 100% rename from milepost/examples/surface_sharing/main.c rename to sketches/surface_sharing/main.c diff --git a/milepost/examples/tiger/Ghostscript_Tiger.svg b/sketches/tiger/Ghostscript_Tiger.svg similarity index 100% rename from milepost/examples/tiger/Ghostscript_Tiger.svg rename to sketches/tiger/Ghostscript_Tiger.svg diff --git a/milepost/examples/tiger/build.bat b/sketches/tiger/build.bat similarity index 100% rename from milepost/examples/tiger/build.bat rename to sketches/tiger/build.bat diff --git a/milepost/examples/tiger/build.sh b/sketches/tiger/build.sh similarity index 70% rename from milepost/examples/tiger/build.sh rename to sketches/tiger/build.sh index 99b54e1..00bb31a 100755 --- a/milepost/examples/tiger/build.sh +++ b/sketches/tiger/build.sh @@ -1,10 +1,10 @@ #!/bin/bash -BINDIR=../../bin -RESDIR=../../resources +BINDIR=../../build/bin SRCDIR=../../src +EXTDIR=../../ext -INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app" +INCLUDES="-I$SRCDIR -I$EXTDIR" LIBS="-L$BINDIR -lmilepost" FLAGS="-mmacos-version-min=10.15.4 -DDEBUG -DLOG_COMPILE_DEBUG" diff --git a/milepost/examples/tiger/main.c b/sketches/tiger/main.c similarity index 100% rename from milepost/examples/tiger/main.c rename to sketches/tiger/main.c diff --git a/milepost/examples/tiger/svg2mg.py b/sketches/tiger/svg2mg.py similarity index 100% rename from milepost/examples/tiger/svg2mg.py rename to sketches/tiger/svg2mg.py diff --git a/milepost/examples/tiger/tiger.c b/sketches/tiger/tiger.c similarity index 100% rename from milepost/examples/tiger/tiger.c rename to sketches/tiger/tiger.c diff --git a/milepost/examples/triangleGL/build.bat b/sketches/triangleGL/build.bat similarity index 100% rename from milepost/examples/triangleGL/build.bat rename to sketches/triangleGL/build.bat diff --git a/milepost/examples/triangleGL/build.sh b/sketches/triangleGL/build.sh similarity index 100% rename from milepost/examples/triangleGL/build.sh rename to sketches/triangleGL/build.sh diff --git a/milepost/examples/triangleGL/main.c b/sketches/triangleGL/main.c similarity index 100% rename from milepost/examples/triangleGL/main.c rename to sketches/triangleGL/main.c diff --git a/milepost/examples/triangleGLES/build.bat b/sketches/triangleGLES/build.bat similarity index 100% rename from milepost/examples/triangleGLES/build.bat rename to sketches/triangleGLES/build.bat diff --git a/milepost/examples/triangleGLES/build.sh b/sketches/triangleGLES/build.sh similarity index 100% rename from milepost/examples/triangleGLES/build.sh rename to sketches/triangleGLES/build.sh diff --git a/milepost/examples/triangleGLES/main.c b/sketches/triangleGLES/main.c similarity index 100% rename from milepost/examples/triangleGLES/main.c rename to sketches/triangleGLES/main.c diff --git a/milepost/examples/triangleMetal/build.sh b/sketches/triangleMetal/build.sh similarity index 100% rename from milepost/examples/triangleMetal/build.sh rename to sketches/triangleMetal/build.sh diff --git a/milepost/examples/triangleMetal/main.m b/sketches/triangleMetal/main.m similarity index 100% rename from milepost/examples/triangleMetal/main.m rename to sketches/triangleMetal/main.m diff --git a/milepost/examples/triangleMetal/shader.metal b/sketches/triangleMetal/shader.metal similarity index 100% rename from milepost/examples/triangleMetal/shader.metal rename to sketches/triangleMetal/shader.metal diff --git a/milepost/examples/triangleMetal/vertex.h b/sketches/triangleMetal/vertex.h similarity index 100% rename from milepost/examples/triangleMetal/vertex.h rename to sketches/triangleMetal/vertex.h diff --git a/milepost/examples/ui/build.bat b/sketches/ui/build.bat similarity index 100% rename from milepost/examples/ui/build.bat rename to sketches/ui/build.bat diff --git a/milepost/examples/ui/build.sh b/sketches/ui/build.sh similarity index 100% rename from milepost/examples/ui/build.sh rename to sketches/ui/build.sh diff --git a/milepost/examples/ui/main.c b/sketches/ui/main.c similarity index 100% rename from milepost/examples/ui/main.c rename to sketches/ui/main.c diff --git a/milepost/src/mp_app.c b/src/app/mp_app.c similarity index 99% rename from milepost/src/mp_app.c rename to src/app/mp_app.c index 7cc9f68..621a7ef 100644 --- a/milepost/src/mp_app.c +++ b/src/app/mp_app.c @@ -6,7 +6,7 @@ * @revision: * *****************************************************************/ -#include"platform_assert.h" +#include"platform/platform_debug.h" #include"mp_app_internal.h" mp_app __mpApp = {0}; diff --git a/milepost/src/mp_app.h b/src/app/mp_app.h similarity index 98% rename from milepost/src/mp_app.h rename to src/app/mp_app.h index 49b876c..73a7d7f 100644 --- a/milepost/src/mp_app.h +++ b/src/app/mp_app.h @@ -254,6 +254,8 @@ typedef struct mp_event } mp_event; +//NOTE: these APIs are not directly available to Orca apps +#if !defined(PLATFORM_ORCA) || !(PLATFORM_ORCA) //-------------------------------------------------------------------- // app management //-------------------------------------------------------------------- @@ -382,8 +384,12 @@ MP_API int mp_file_remove(str8 path); MP_API int mp_directory_create(str8 path); + +#endif // !defined(PLATFORM_ORCA) || !(PLATFORM_ORCA) + #ifdef __cplusplus } // extern "C" #endif + #endif //__PLATFORM_APP_H_ diff --git a/milepost/src/mp_app_internal.h b/src/app/mp_app_internal.h similarity index 96% rename from milepost/src/mp_app_internal.h rename to src/app/mp_app_internal.h index 931934b..454baef 100644 --- a/milepost/src/mp_app_internal.h +++ b/src/app/mp_app_internal.h @@ -11,8 +11,8 @@ #include"mp_app.h" -#include"platform.h" -#include"ringbuffer.h" +#include"platform/platform.h" +#include"util/ringbuffer.h" #if PLATFORM_WINDOWS #include"win32_app.h" diff --git a/sdk/orca_exports.c b/src/app/orca_app.c similarity index 51% rename from sdk/orca_exports.c rename to src/app/orca_app.c index 6f0c477..281a359 100644 --- a/sdk/orca_exports.c +++ b/src/app/orca_app.c @@ -1,3 +1,4 @@ #include"orca.h" +//This is used to pass raw events from the runtime ORCA_EXPORT mp_event _OrcaRawEvent; diff --git a/milepost/src/osx_app.h b/src/app/osx_app.h similarity index 98% rename from milepost/src/osx_app.h rename to src/app/osx_app.h index 0dfbc67..1be6020 100644 --- a/milepost/src/osx_app.h +++ b/src/app/osx_app.h @@ -10,7 +10,7 @@ #define __OSX_APP_H_ #include"mp_app.h" -#include"graphics.h" +#include"graphics/graphics.h" #ifdef __OBJC__ #import diff --git a/milepost/src/osx_app.m b/src/app/osx_app.m similarity index 99% rename from milepost/src/osx_app.m rename to src/app/osx_app.m index 1653d6a..546d632 100644 --- a/milepost/src/osx_app.m +++ b/src/app/osx_app.m @@ -16,9 +16,9 @@ #include"ringbuffer.h" #include"memory.h" #include"macro_helpers.h" -#include"platform_log.h" +#include"platform_debug.h" #include"platform_clock.h" -#include"graphics_surface.h" +#include"graphics/graphics_surface.h" #include"mp_app.c" diff --git a/milepost/src/win32_app.c b/src/app/win32_app.c similarity index 96% rename from milepost/src/win32_app.c rename to src/app/win32_app.c index 354e4c9..5ba5f96 100644 --- a/milepost/src/win32_app.c +++ b/src/app/win32_app.c @@ -1,1526 +1,1526 @@ -/************************************************************//** -* -* @file: win32_app.c -* @author: Martin Fouilleul -* @date: 16/12/2022 -* @revision: -* -*****************************************************************/ - -#include -#include"mp_app.c" -#include"platform_thread.h" - -void mp_init_keys() -{ - memset(__mpApp.keyCodes, MP_KEY_UNKNOWN, 256*sizeof(int)); - - __mpApp.keyCodes[0x00B] = MP_KEY_0; - __mpApp.keyCodes[0x002] = MP_KEY_1; - __mpApp.keyCodes[0x003] = MP_KEY_2; - __mpApp.keyCodes[0x004] = MP_KEY_3; - __mpApp.keyCodes[0x005] = MP_KEY_4; - __mpApp.keyCodes[0x006] = MP_KEY_5; - __mpApp.keyCodes[0x007] = MP_KEY_6; - __mpApp.keyCodes[0x008] = MP_KEY_7; - __mpApp.keyCodes[0x009] = MP_KEY_8; - __mpApp.keyCodes[0x00A] = MP_KEY_9; - __mpApp.keyCodes[0x01E] = MP_KEY_A; - __mpApp.keyCodes[0x030] = MP_KEY_B; - __mpApp.keyCodes[0x02E] = MP_KEY_C; - __mpApp.keyCodes[0x020] = MP_KEY_D; - __mpApp.keyCodes[0x012] = MP_KEY_E; - __mpApp.keyCodes[0x021] = MP_KEY_F; - __mpApp.keyCodes[0x022] = MP_KEY_G; - __mpApp.keyCodes[0x023] = MP_KEY_H; - __mpApp.keyCodes[0x017] = MP_KEY_I; - __mpApp.keyCodes[0x024] = MP_KEY_J; - __mpApp.keyCodes[0x025] = MP_KEY_K; - __mpApp.keyCodes[0x026] = MP_KEY_L; - __mpApp.keyCodes[0x032] = MP_KEY_M; - __mpApp.keyCodes[0x031] = MP_KEY_N; - __mpApp.keyCodes[0x018] = MP_KEY_O; - __mpApp.keyCodes[0x019] = MP_KEY_P; - __mpApp.keyCodes[0x010] = MP_KEY_Q; - __mpApp.keyCodes[0x013] = MP_KEY_R; - __mpApp.keyCodes[0x01F] = MP_KEY_S; - __mpApp.keyCodes[0x014] = MP_KEY_T; - __mpApp.keyCodes[0x016] = MP_KEY_U; - __mpApp.keyCodes[0x02F] = MP_KEY_V; - __mpApp.keyCodes[0x011] = MP_KEY_W; - __mpApp.keyCodes[0x02D] = MP_KEY_X; - __mpApp.keyCodes[0x015] = MP_KEY_Y; - __mpApp.keyCodes[0x02C] = MP_KEY_Z; - __mpApp.keyCodes[0x028] = MP_KEY_APOSTROPHE; - __mpApp.keyCodes[0x02B] = MP_KEY_BACKSLASH; - __mpApp.keyCodes[0x033] = MP_KEY_COMMA; - __mpApp.keyCodes[0x00D] = MP_KEY_EQUAL; - __mpApp.keyCodes[0x029] = MP_KEY_GRAVE_ACCENT; - __mpApp.keyCodes[0x01A] = MP_KEY_LEFT_BRACKET; - __mpApp.keyCodes[0x00C] = MP_KEY_MINUS; - __mpApp.keyCodes[0x034] = MP_KEY_PERIOD; - __mpApp.keyCodes[0x01B] = MP_KEY_RIGHT_BRACKET; - __mpApp.keyCodes[0x027] = MP_KEY_SEMICOLON; - __mpApp.keyCodes[0x035] = MP_KEY_SLASH; - __mpApp.keyCodes[0x056] = MP_KEY_WORLD_2; - __mpApp.keyCodes[0x00E] = MP_KEY_BACKSPACE; - __mpApp.keyCodes[0x153] = MP_KEY_DELETE; - __mpApp.keyCodes[0x14F] = MP_KEY_END; - __mpApp.keyCodes[0x01C] = MP_KEY_ENTER; - __mpApp.keyCodes[0x001] = MP_KEY_ESCAPE; - __mpApp.keyCodes[0x147] = MP_KEY_HOME; - __mpApp.keyCodes[0x152] = MP_KEY_INSERT; - __mpApp.keyCodes[0x15D] = MP_KEY_MENU; - __mpApp.keyCodes[0x151] = MP_KEY_PAGE_DOWN; - __mpApp.keyCodes[0x149] = MP_KEY_PAGE_UP; - __mpApp.keyCodes[0x045] = MP_KEY_PAUSE; - __mpApp.keyCodes[0x146] = MP_KEY_PAUSE; - __mpApp.keyCodes[0x039] = MP_KEY_SPACE; - __mpApp.keyCodes[0x00F] = MP_KEY_TAB; - __mpApp.keyCodes[0x03A] = MP_KEY_CAPS_LOCK; - __mpApp.keyCodes[0x145] = MP_KEY_NUM_LOCK; - __mpApp.keyCodes[0x046] = MP_KEY_SCROLL_LOCK; - __mpApp.keyCodes[0x03B] = MP_KEY_F1; - __mpApp.keyCodes[0x03C] = MP_KEY_F2; - __mpApp.keyCodes[0x03D] = MP_KEY_F3; - __mpApp.keyCodes[0x03E] = MP_KEY_F4; - __mpApp.keyCodes[0x03F] = MP_KEY_F5; - __mpApp.keyCodes[0x040] = MP_KEY_F6; - __mpApp.keyCodes[0x041] = MP_KEY_F7; - __mpApp.keyCodes[0x042] = MP_KEY_F8; - __mpApp.keyCodes[0x043] = MP_KEY_F9; - __mpApp.keyCodes[0x044] = MP_KEY_F10; - __mpApp.keyCodes[0x057] = MP_KEY_F11; - __mpApp.keyCodes[0x058] = MP_KEY_F12; - __mpApp.keyCodes[0x064] = MP_KEY_F13; - __mpApp.keyCodes[0x065] = MP_KEY_F14; - __mpApp.keyCodes[0x066] = MP_KEY_F15; - __mpApp.keyCodes[0x067] = MP_KEY_F16; - __mpApp.keyCodes[0x068] = MP_KEY_F17; - __mpApp.keyCodes[0x069] = MP_KEY_F18; - __mpApp.keyCodes[0x06A] = MP_KEY_F19; - __mpApp.keyCodes[0x06B] = MP_KEY_F20; - __mpApp.keyCodes[0x06C] = MP_KEY_F21; - __mpApp.keyCodes[0x06D] = MP_KEY_F22; - __mpApp.keyCodes[0x06E] = MP_KEY_F23; - __mpApp.keyCodes[0x076] = MP_KEY_F24; - __mpApp.keyCodes[0x038] = MP_KEY_LEFT_ALT; - __mpApp.keyCodes[0x01D] = MP_KEY_LEFT_CONTROL; - __mpApp.keyCodes[0x02A] = MP_KEY_LEFT_SHIFT; - __mpApp.keyCodes[0x15B] = MP_KEY_LEFT_SUPER; - __mpApp.keyCodes[0x137] = MP_KEY_PRINT_SCREEN; - __mpApp.keyCodes[0x138] = MP_KEY_RIGHT_ALT; - __mpApp.keyCodes[0x11D] = MP_KEY_RIGHT_CONTROL; - __mpApp.keyCodes[0x036] = MP_KEY_RIGHT_SHIFT; - __mpApp.keyCodes[0x15C] = MP_KEY_RIGHT_SUPER; - __mpApp.keyCodes[0x150] = MP_KEY_DOWN; - __mpApp.keyCodes[0x14B] = MP_KEY_LEFT; - __mpApp.keyCodes[0x14D] = MP_KEY_RIGHT; - __mpApp.keyCodes[0x148] = MP_KEY_UP; - __mpApp.keyCodes[0x052] = MP_KEY_KP_0; - __mpApp.keyCodes[0x04F] = MP_KEY_KP_1; - __mpApp.keyCodes[0x050] = MP_KEY_KP_2; - __mpApp.keyCodes[0x051] = MP_KEY_KP_3; - __mpApp.keyCodes[0x04B] = MP_KEY_KP_4; - __mpApp.keyCodes[0x04C] = MP_KEY_KP_5; - __mpApp.keyCodes[0x04D] = MP_KEY_KP_6; - __mpApp.keyCodes[0x047] = MP_KEY_KP_7; - __mpApp.keyCodes[0x048] = MP_KEY_KP_8; - __mpApp.keyCodes[0x049] = MP_KEY_KP_9; - __mpApp.keyCodes[0x04E] = MP_KEY_KP_ADD; - __mpApp.keyCodes[0x053] = MP_KEY_KP_DECIMAL; - __mpApp.keyCodes[0x135] = MP_KEY_KP_DIVIDE; - __mpApp.keyCodes[0x11C] = MP_KEY_KP_ENTER; - __mpApp.keyCodes[0x037] = MP_KEY_KP_MULTIPLY; - __mpApp.keyCodes[0x04A] = MP_KEY_KP_SUBTRACT; - - memset(__mpApp.nativeKeys, 0, sizeof(int)*MP_KEY_COUNT); - for(int nativeKey=0; nativeKey<256; nativeKey++) - { - mp_key_code mpKey = __mpApp.keyCodes[nativeKey]; - if(mpKey) - { - __mpApp.nativeKeys[mpKey] = nativeKey; - } - } -} - -void mp_init() -{ - if(!__mpApp.init) - { - memset(&__mpApp, 0, sizeof(__mpApp)); - - mp_init_common(); - mp_init_keys(); - - __mpApp.win32.savedConsoleCodePage = GetConsoleOutputCP(); - SetConsoleOutputCP(CP_UTF8); - - DWORD mode; - GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &mode); - mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; - SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), mode); - - SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); - - u32 wheelScrollLines = 3; - SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &wheelScrollLines, 0); - __mpApp.win32.wheelScrollLines = wheelScrollLines; - } -} - -void mp_terminate() -{ - if(__mpApp.init) - { - SetConsoleOutputCP(__mpApp.win32.savedConsoleCodePage); - - mp_terminate_common(); - __mpApp = (mp_app){0}; - } -} - -static mp_key_code mp_convert_win32_key(int code) -{ - return(__mpApp.keyCodes[code]); -} - -static mp_keymod_flags mp_get_mod_keys() -{ - mp_keymod_flags mods = 0; - if(GetKeyState(VK_SHIFT) & 0x8000) - { - mods |= MP_KEYMOD_SHIFT; - } - if(GetKeyState(VK_CONTROL) & 0x8000) - { - mods |= MP_KEYMOD_CTRL; - mods |= MP_KEYMOD_MAIN_MODIFIER; - } - if(GetKeyState(VK_MENU) & 0x8000) - { - mods |= MP_KEYMOD_ALT; - } - if((GetKeyState(VK_LWIN) | GetKeyState(VK_RWIN)) & 0x8000) - { - mods |= MP_KEYMOD_CMD; - } - return(mods); -} - -static void process_mouse_event(mp_window_data* window, mp_key_action action, mp_key_code button) -{ - if(action == MP_KEY_PRESS) - { - if(!__mpApp.win32.mouseCaptureMask) - { - SetCapture(window->win32.hWnd); - } - __mpApp.win32.mouseCaptureMask |= (1<win32.hWnd, &clientRect); - POINT point = {0}; - ClientToScreen(window->win32.hWnd, &point); - - int clientWidth = (clientRect.right - clientRect.left); - int clientHeight = (clientRect.bottom - clientRect.top); - - HWND insertAfter = window->win32.hWnd; - - for_list(&window->win32.layers, layer, mp_layer, listElt) - { - SetWindowPos(layer->hWnd, - insertAfter, - point.x, - point.y, - clientWidth, - clientHeight, - SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER); - - insertAfter = layer->hWnd; - } -} - -LRESULT WinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) -{ - LRESULT result = 0; - - mp_window_data* mpWindow = GetPropW(windowHandle, L"MilePost"); - //TODO: put messages in queue - - switch(message) - { - case WM_CLOSE: - { - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_WINDOW_CLOSE; - mp_queue_event(&event); - } break; - - case WM_DPICHANGED: - { - u32 dpi = HIWORD(wParam); - RECT rect = *(RECT*)lParam; - - SetWindowPos(mpWindow->win32.hWnd, - HWND_TOP, - rect.left, - rect.top, - rect.right - rect.left, - rect.bottom - rect.top, - SWP_NOACTIVATE | SWP_NOZORDER); - - //TODO: send a message - - } break; - - //TODO: enter/exit size & move - case WM_WINDOWPOSCHANGED: - { - win32_update_child_layers(mpWindow); - result = DefWindowProc(windowHandle, message, wParam, lParam); - } break; - - case WM_SIZING: - case WM_MOVING: - { - RECT* rect = (RECT*)lParam; - - mp_event event = {0}; - event.type = message == WM_SIZING ? MP_EVENT_WINDOW_RESIZE : MP_EVENT_WINDOW_MOVE; - event.window = mp_window_handle_from_ptr(mpWindow); - - event.move.frame = mp_window_get_frame_rect(event.window); - event.move.content = mp_window_get_content_rect(event.window); - - mp_queue_event(&event); - - win32_update_child_layers(mpWindow); - } break; - - case WM_SETFOCUS: - { - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_WINDOW_FOCUS; - mp_queue_event(&event); - } break; - - case WM_KILLFOCUS: - { - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_WINDOW_UNFOCUS; - mp_queue_event(&event); - } break; - - case WM_SIZE: - { - bool minimized = (wParam == SIZE_MINIMIZED); - if(minimized != mpWindow->minimized) - { - mpWindow->minimized = minimized; - - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - - if(minimized) - { - event.type = MP_EVENT_WINDOW_HIDE; - } - else if(mpWindow->minimized) - { - event.type = MP_EVENT_WINDOW_SHOW; - } - mp_queue_event(&event); - } - } break; - - case WM_LBUTTONDOWN: - { - process_mouse_event(mpWindow, MP_KEY_PRESS, MP_MOUSE_LEFT); - } break; - - case WM_RBUTTONDOWN: - { - process_mouse_event(mpWindow, MP_KEY_PRESS, MP_MOUSE_RIGHT); - } break; - - case WM_MBUTTONDOWN: - { - process_mouse_event(mpWindow, MP_KEY_PRESS, MP_MOUSE_MIDDLE); - } break; - - case WM_LBUTTONUP: - { - process_mouse_event(mpWindow, MP_KEY_RELEASE, MP_MOUSE_LEFT); - } break; - - case WM_RBUTTONUP: - { - process_mouse_event(mpWindow, MP_KEY_RELEASE, MP_MOUSE_RIGHT); - } break; - - case WM_MBUTTONUP: - { - process_mouse_event(mpWindow, MP_KEY_RELEASE, MP_MOUSE_MIDDLE); - } break; - - case WM_MOUSEMOVE: - { - RECT rect; - GetClientRect(mpWindow->win32.hWnd, &rect); - - u32 dpi = GetDpiForWindow(mpWindow->win32.hWnd); - f32 scaling = (f32)dpi/96.; - - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_MOUSE_MOVE; - event.mouse.x = LOWORD(lParam) / scaling; - event.mouse.y = HIWORD(lParam) / scaling; - - if(__mpApp.win32.mouseTracked || __mpApp.win32.mouseCaptureMask) - { - event.mouse.deltaX = event.mouse.x - __mpApp.win32.lastMousePos.x; - event.mouse.deltaY = event.mouse.y - __mpApp.win32.lastMousePos.y; - } - __mpApp.win32.lastMousePos = (vec2){event.mouse.x, event.mouse.y}; - - if(!__mpApp.win32.mouseTracked) - { - __mpApp.win32.mouseTracked = true; - - TRACKMOUSEEVENT track; - memset(&track, 0, sizeof(track)); - track.cbSize = sizeof(track); - track.dwFlags = TME_LEAVE; - track.hwndTrack = mpWindow->win32.hWnd; - TrackMouseEvent(&track); - - mp_event enter = {.window = event.window, - .type = MP_EVENT_MOUSE_ENTER, - .mouse.x = event.mouse.x, - .mouse.y = event.mouse.y}; - mp_queue_event(&enter); - } - - mp_queue_event(&event); - } break; - - case WM_MOUSELEAVE: - { - __mpApp.win32.mouseTracked = false; - - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_MOUSE_LEAVE; - mp_queue_event(&event); - } break; - - case WM_MOUSEWHEEL: - { - process_wheel_event(mpWindow, 0, (float)((i16)HIWORD(wParam))); - } break; - - case WM_MOUSEHWHEEL: - { - process_wheel_event(mpWindow, (float)((i16)HIWORD(wParam)), 0); - } break; - - case WM_KEYDOWN: - case WM_SYSKEYDOWN: - { - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_KEYBOARD_KEY; - event.key.action = (lParam & 0x40000000) ? MP_KEY_REPEAT : MP_KEY_PRESS; - event.key.code = mp_convert_win32_key(HIWORD(lParam) & 0x1ff); - event.key.mods = mp_get_mod_keys(); - mp_queue_event(&event); - } break; - - case WM_KEYUP: - case WM_SYSKEYUP: - { - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_KEYBOARD_KEY; - event.key.action = MP_KEY_RELEASE; - event.key.code = mp_convert_win32_key(HIWORD(lParam) & 0x1ff); - event.key.mods = mp_get_mod_keys(); - mp_queue_event(&event); - } break; - - case WM_CHAR: - { - if((u32)wParam >= 32) - { - mp_event event = {0}; - event.window = mp_window_handle_from_ptr(mpWindow); - event.type = MP_EVENT_KEYBOARD_CHAR; - event.character.codepoint = (utf32)wParam; - str8 seq = utf8_encode(event.character.sequence, event.character.codepoint); - event.character.seqLen = seq.len; - mp_queue_event(&event); - } - } break; - - case WM_SETTINGCHANGE: - { - if((u32)wParam == SPI_SETWHEELSCROLLLINES) - { - u32 wheelScrollLines; - if(SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &wheelScrollLines, 0) != 0) { - __mpApp.win32.wheelScrollLines = wheelScrollLines; - } - } - } break; - - case WM_DROPFILES: - { - //TODO - } break; - - case MP_WM_USER_DISPATCH_PROC: - { - mp_dispatch_proc proc = (mp_dispatch_proc)wParam; - void* user = (void*)lParam; - result = proc(user); - } break; - - default: - { - result = DefWindowProc(windowHandle, message, wParam, lParam); - } break; - } - - return(result); -} - -//-------------------------------------------------------------------- -// app management -//-------------------------------------------------------------------- - -bool mp_should_quit() -{ - return(__mpApp.shouldQuit); -} - -void mp_cancel_quit() -{ - __mpApp.shouldQuit = false; -} - -void mp_request_quit() -{ - __mpApp.shouldQuit = true; -} - -void mp_pump_events(f64 timeout) -{ - MSG message; - - if(timeout < 0) - { - WaitMessage(); - } - else if(timeout > 0) - { - MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeout * 1e3), QS_ALLEVENTS); - } - - while(PeekMessage(&message, 0, 0, 0, PM_REMOVE)) - { - TranslateMessage(&message); - DispatchMessage(&message); - } -} - -i32 mp_dispatch_on_main_thread_sync(mp_window main_window, mp_dispatch_proc proc, void* user) -{ - mp_window_data* window_data = mp_window_ptr_from_handle(main_window); - DEBUG_ASSERT(window_data != NULL); - - LRESULT result = SendMessage(window_data->win32.hWnd, MP_WM_USER_DISPATCH_PROC, (WPARAM)proc, (LPARAM)user); - return result; -} - -//-------------------------------------------------------------------- -// window management -//-------------------------------------------------------------------- - -//WARN: the following header pulls in objbase.h (even with WIN32_LEAN_AND_MEAN), which -// #defines interface to struct... so make sure to #undef interface since it's a -// name we want to be able to use throughout the codebase -#include -#undef interface - -mp_window mp_window_create(mp_rect rect, const char* title, mp_window_style style) -{ - WNDCLASS windowClass = {.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC, - .lpfnWndProc = WinProc, - .hInstance = GetModuleHandleW(NULL), - .lpszClassName = "ApplicationWindowClass", - .hCursor = LoadCursor(0, IDC_ARROW)}; - - if(!RegisterClass(&windowClass)) - { - //TODO: error - goto quit; - } - - u32 dpiX, dpiY; - HMONITOR monitor = MonitorFromPoint((POINT){rect.x, rect.y}, MONITOR_DEFAULTTOPRIMARY); - GetDpiForMonitor(monitor, MDT_EFFECTIVE_DPI, &dpiX, &dpiY); - - f32 scaleX = (f32)dpiX/96.; - f32 scaleY = (f32)dpiY/96.; - - RECT frame = { - rect.x * scaleX, - rect.y * scaleY, - (rect.x + rect.w)*scaleX, - (rect.y + rect.h)*scaleY - }; - - DWORD winStyle = WS_OVERLAPPEDWINDOW; - AdjustWindowRect(&frame, winStyle, FALSE); - - HWND windowHandle = CreateWindow("ApplicationWindowClass", "Test Window", - winStyle, - frame.left, frame.top, - frame.right-frame.left, - frame.bottom-frame.top, - 0, 0, windowClass.hInstance, 0); - - if(!windowHandle) - { - //TODO: error - goto quit; - } - - UpdateWindow(windowHandle); - - //TODO: return wrapped window - quit:; - mp_window_data* window = mp_window_alloc(); - window->win32.hWnd = windowHandle; - window->win32.layers = (list_info){0}; - - SetPropW(windowHandle, L"MilePost", window); - - return(mp_window_handle_from_ptr(window)); -} - -void mp_window_destroy(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - DestroyWindow(windowData->win32.hWnd); - //TODO: check when to unregister class - - mp_window_recycle_ptr(windowData); - } -} - -void* mp_window_native_pointer(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - return(windowData->win32.hWnd); - } - else - { - return(0); - } -} - -bool mp_window_should_close(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - return(windowData->shouldClose); - } - else - { - return(false); - } -} - -void mp_window_request_close(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - windowData->shouldClose = true; - PostMessage(windowData->win32.hWnd, WM_CLOSE, 0, 0); - } -} - -void mp_window_cancel_close(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - windowData->shouldClose = false; - } -} - - -bool mp_window_is_hidden(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - return(IsWindowVisible(windowData->win32.hWnd)); - } - else - { - return(false); - } -} - -void mp_window_hide(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - ShowWindow(windowData->win32.hWnd, SW_HIDE); - } -} - -void mp_window_show(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - ShowWindow(windowData->win32.hWnd, SW_NORMAL); - } -} - -bool mp_window_is_minimized(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - return(windowData->minimized); - } - else - { - return(false); - } -} - -void mp_window_minimize(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - ShowWindow(windowData->win32.hWnd, SW_MINIMIZE); - } -} - -void mp_window_maximize(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - ShowWindow(windowData->win32.hWnd, SW_MAXIMIZE); - } -} - -void mp_window_restore(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - ShowWindow(windowData->win32.hWnd, SW_RESTORE); - } -} - -bool mp_window_has_focus(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - return(GetActiveWindow() == windowData->win32.hWnd); - } - else - { - return(false); - } -} - -void mp_window_focus(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - SetFocus(windowData->win32.hWnd); - } -} - -void mp_window_unfocus(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - SetFocus(0); - } -} - -void mp_window_send_to_back(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - SetWindowPos(windowData->win32.hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - } -} - -void mp_window_bring_to_front(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - if(!IsWindowVisible(windowData->win32.hWnd)) - { - ShowWindow(windowData->win32.hWnd, SW_NORMAL); - } - SetWindowPos(windowData->win32.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - } -} - -mp_rect mp_window_get_frame_rect(mp_window window) -{ - mp_rect rect = {0}; - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - //NOTE: GetWindowRect() includes the drop shadow, which we don't want, so we call - // DwmGetWindowAttribute() instead. - // Note that contrary to what the GetWindowRect() docs suggests when mentionning - // this, DwmGetWindowAttributes() _does_ seem to adjust for DPI. - u32 dpi = GetDpiForWindow(windowData->win32.hWnd); - f32 scale = (float)dpi/96.; - - RECT frame; - HRESULT res = DwmGetWindowAttribute(windowData->win32.hWnd, - DWMWA_EXTENDED_FRAME_BOUNDS, - &frame, - sizeof(RECT)); - if(res == S_OK) - { - rect = (mp_rect){ - frame.left / scale, - frame.top / scale, - (frame.right - frame.left)/scale, - (frame.bottom - frame.top)/scale}; - } - } - return(rect); -} - -mp_rect win32_get_drop_shadow_offsets(HWND hWnd) -{ - RECT frameIncludingShadow; - RECT frameExcludingShadow; - - GetWindowRect(hWnd, &frameIncludingShadow); - DwmGetWindowAttribute(hWnd, - DWMWA_EXTENDED_FRAME_BOUNDS, - &frameExcludingShadow, - sizeof(RECT)); - - mp_rect extents = { - .x = frameIncludingShadow.left - frameExcludingShadow.left, - .y = frameIncludingShadow.top - frameExcludingShadow.top, - .w = frameIncludingShadow.right - frameExcludingShadow.right, - .h = frameIncludingShadow.bottom- frameExcludingShadow.bottom - }; - - return(extents); -} - -void mp_window_set_frame_rect(mp_window window, mp_rect rect) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - u32 dpi = GetDpiForWindow(windowData->win32.hWnd); - f32 scale = (float)dpi/96.; - - //NOTE compute the size of the drop shadow to add it in setwindowpos - mp_rect shadowOffsets = win32_get_drop_shadow_offsets(windowData->win32.hWnd); - - RECT frame = { - rect.x * scale + shadowOffsets.x, - rect.y * scale + shadowOffsets.y, - (rect.x + rect.w)*scale + shadowOffsets.w, - (rect.y + rect.h)*scale + shadowOffsets.h - }; - - SetWindowPos(windowData->win32.hWnd, - HWND_TOP, - frame.left, - frame.top, - frame.right - frame.left, - frame.bottom - frame.top, - SWP_NOZORDER|SWP_NOACTIVATE); - } -} - -mp_rect mp_window_get_content_rect(mp_window window) -{ - mp_rect rect = {0}; - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - RECT client; - if(GetClientRect(windowData->win32.hWnd, &client)) - { - u32 dpi = GetDpiForWindow(windowData->win32.hWnd); - f32 scale = (float)dpi/96.; - - POINT origin = {0, 0}; - ClientToScreen(windowData->win32.hWnd, &origin); - - rect = (mp_rect){ - origin.x/scale, - origin.y/scale, - (client.right - client.left)/scale, - (client.bottom - client.top)/scale}; - } - } - return(rect); -} - -void mp_window_set_content_rect(mp_window window, mp_rect rect) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - u32 dpi = GetDpiForWindow(windowData->win32.hWnd); - f32 scale = (float)dpi/96.; - - RECT frame = { - rect.x * scale, - rect.y * scale, - (rect.x + rect.w)*scale, - (rect.y + rect.h)*scale}; - - DWORD style = GetWindowLong(windowData->win32.hWnd, GWL_STYLE); - BOOL menu = (GetMenu(windowData->win32.hWnd) != NULL); - AdjustWindowRect(&frame, style, menu); - - SetWindowPos(windowData->win32.hWnd, - HWND_TOP, - frame.left, - frame.top, - frame.right - frame.left, - frame.bottom - frame.top, - SWP_NOZORDER|SWP_NOACTIVATE); - } -} - -void mp_window_center(mp_window window) -{ - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - - mp_rect frame = mp_window_get_frame_rect(window); - - HMONITOR monitor = MonitorFromWindow(windowData->win32.hWnd, MONITOR_DEFAULTTOPRIMARY); - if(monitor) - { - MONITORINFO monitorInfo = {.cbSize = sizeof(MONITORINFO)}; - GetMonitorInfoW(monitor, &monitorInfo); - - int dpiX, dpiY; - GetDpiForMonitor(monitor, MDT_EFFECTIVE_DPI, &dpiX, &dpiY); - f32 scaleX = dpiX/96.; - f32 scaleY = dpiY/96.; - - f32 monX = monitorInfo.rcWork.left/scaleX; - f32 monY = monitorInfo.rcWork.top/scaleY; - f32 monW = (monitorInfo.rcWork.right - monitorInfo.rcWork.left)/scaleX; - f32 monH = (monitorInfo.rcWork.bottom - monitorInfo.rcWork.top)/scaleY; - - frame.x = monX + 0.5*(monW - frame.w); - frame.y = monY + 0.5*(monH - frame.h); - - mp_window_set_frame_rect(window, frame); - } - } -} - - -//-------------------------------------------------------------------------------- -// clipboard functions -//-------------------------------------------------------------------------------- - -MP_API void mp_clipboard_clear(void) -{ - if(OpenClipboard(NULL)) - { - EmptyClipboard(); - CloseClipboard(); - } -} - -MP_API void mp_clipboard_set_string(str8 string) -{ - if(OpenClipboard(NULL)) - { - EmptyClipboard(); - - int wideCount = MultiByteToWideChar(CP_UTF8, 0, string.ptr, string.len, 0, 0); - HANDLE handle = GlobalAlloc(GMEM_MOVEABLE, (wideCount+1)*sizeof(wchar_t)); - if(handle) - { - char* memory = GlobalLock(handle); - if(memory) - { - MultiByteToWideChar(CP_UTF8, 0, string.ptr, string.len, (wchar_t*)memory, wideCount); - ((wchar_t*)memory)[wideCount] = '\0'; - - GlobalUnlock(handle); - SetClipboardData(CF_UNICODETEXT, handle); - } - } - CloseClipboard(); - } -} - -MP_API str8 mp_clipboard_get_string(mem_arena* arena) -{ - str8 string = {0}; - - if(OpenClipboard(NULL)) - { - HANDLE handle = GetClipboardData(CF_UNICODETEXT); - if(handle) - { - char* memory = GlobalLock(handle); - if(memory) - { - u64 size = WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)memory, -1, 0, 0, 0, 0); - if(size) - { - string.ptr = mem_arena_alloc(arena, size); - string.len = size - 1; - WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)memory, -1, string.ptr, size, 0, 0); - GlobalUnlock(handle); - } - } - } - CloseClipboard(); - } - return(string); -} - -MP_API str8 mp_clipboard_copy_string(str8 backing) -{ - //TODO - return((str8){0}); -} - - -//-------------------------------------------------------------------------------- -// win32 surfaces -//-------------------------------------------------------------------------------- - -#include"graphics_surface.h" - -vec2 mg_win32_surface_contents_scaling(mg_surface_data* surface) -{ - u32 dpi = GetDpiForWindow(surface->layer.hWnd); - vec2 contentsScaling = (vec2){(float)dpi/96., (float)dpi/96.}; - return(contentsScaling); -} - -vec2 mg_win32_surface_get_size(mg_surface_data* surface) -{ - vec2 size = {0}; - RECT rect; - if(GetClientRect(surface->layer.hWnd, &rect)) - { - u32 dpi = GetDpiForWindow(surface->layer.hWnd); - f32 scale = (float)dpi/96.; - size = (vec2){(rect.right - rect.left)/scale, (rect.bottom - rect.top)/scale}; - } - return(size); -} - -bool mg_win32_surface_get_hidden(mg_surface_data* surface) -{ - bool hidden = !IsWindowVisible(surface->layer.hWnd); - return(hidden); -} - -void mg_win32_surface_set_hidden(mg_surface_data* surface, bool hidden) -{ - ShowWindow(surface->layer.hWnd, hidden ? SW_HIDE : SW_NORMAL); -} - -void* mg_win32_surface_native_layer(mg_surface_data* surface) -{ - return((void*)surface->layer.hWnd); -} - -mg_surface_id mg_win32_surface_remote_id(mg_surface_data* surface) -{ - return((mg_surface_id)surface->layer.hWnd); -} - -void mg_win32_surface_host_connect(mg_surface_data* surface, mg_surface_id remoteID) -{ - HWND dstWnd = surface->layer.hWnd; - HWND srcWnd = (HWND)remoteID; - - RECT dstRect; - GetClientRect(dstWnd, &dstRect); - - SetParent(srcWnd, dstWnd); - ShowWindow(srcWnd, SW_NORMAL); - - SetWindowPos(srcWnd, - HWND_TOP, - 0, - 0, - dstRect.right - dstRect.left, - dstRect.bottom - dstRect.top, - SWP_NOACTIVATE | SWP_NOZORDER); -} - -void mg_surface_cleanup(mg_surface_data* surface) -{ - list_remove(&surface->layer.parent->win32.layers, &surface->layer.listElt); - DestroyWindow(surface->layer.hWnd); -} - -LRESULT LayerWinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) -{ - if(message == WM_NCHITTEST) - { - return(HTTRANSPARENT); - } - else - { - return(DefWindowProc(windowHandle, message, wParam, lParam)); - } -} - -void mg_surface_init_for_window(mg_surface_data* surface, mp_window_data* window) -{ - surface->contentsScaling = mg_win32_surface_contents_scaling; - surface->getSize = mg_win32_surface_get_size; - surface->getHidden = mg_win32_surface_get_hidden; - surface->setHidden = mg_win32_surface_set_hidden; - surface->nativeLayer = mg_win32_surface_native_layer; - - //NOTE(martin): create a child window for the surface - WNDCLASS layerWindowClass = {.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC, - .lpfnWndProc = LayerWinProc, - .hInstance = GetModuleHandleW(NULL), - .lpszClassName = "layer_window_class", - .hCursor = LoadCursor(0, IDC_ARROW)}; - - RegisterClass(&layerWindowClass); - - RECT parentRect; - GetClientRect(window->win32.hWnd, &parentRect); - POINT point = {0}; - ClientToScreen(window->win32.hWnd, &point); - - int clientWidth = parentRect.right - parentRect.left; - int clientHeight = parentRect.bottom - parentRect.top; - - surface->layer.hWnd = CreateWindow("layer_window_class", "layer", - WS_POPUP | WS_VISIBLE, - point.x, point.y, clientWidth, clientHeight, - window->win32.hWnd, - 0, - layerWindowClass.hInstance, - 0); - - HRGN region = CreateRectRgn(0, 0, -1, -1); - - DWM_BLURBEHIND bb = {0}; - bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; - bb.hRgnBlur = region; - bb.fEnable = TRUE; - - HRESULT res = DwmEnableBlurBehindWindow(surface->layer.hWnd, &bb); - - DeleteObject(region); - if(res != S_OK) - { - log_error("couldn't enable blur behind\n"); - } - - surface->layer.parent = window; - list_append(&window->win32.layers, &surface->layer.listElt); -} - -void mg_surface_init_remote(mg_surface_data* surface, u32 width, u32 height) -{ - surface->contentsScaling = mg_win32_surface_contents_scaling; - surface->getSize = mg_win32_surface_get_size; - surface->getHidden = mg_win32_surface_get_hidden; - surface->setHidden = mg_win32_surface_set_hidden; - surface->nativeLayer = mg_win32_surface_native_layer; - surface->remoteID = mg_win32_surface_remote_id; - - WNDCLASS layerWindowClass = {.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC, - .lpfnWndProc = DefWindowProc, - .hInstance = GetModuleHandleW(NULL), - .lpszClassName = "server_layer_window_class", - .hCursor = LoadCursor(0, IDC_ARROW)}; - - RegisterClass(&layerWindowClass); - - //NOTE(martin): create a temporary parent window. This seems like a necessary hack, because if layer window is created as - // a normal window first, and then parented to the client window, it breaks resizing the parent - // window for some reason... - HWND tmpParent = CreateWindow("server_layer_window_class", "layerParent", - WS_OVERLAPPED, - 0, 0, width, height, - 0, - 0, - layerWindowClass.hInstance, - 0); - - //NOTE: create the layer window - surface->layer.hWnd = CreateWindowEx(WS_EX_NOACTIVATE, - "server_layer_window_class", "layer", - WS_CHILD, - 0, 0, width, height, - tmpParent, - 0, - layerWindowClass.hInstance, - 0); - - //NOTE: unparent it and destroy tmp parent - SetParent(surface->layer.hWnd, 0); - DestroyWindow(tmpParent); -} - -mg_surface_data* mg_win32_surface_create_host(mp_window window) -{ - mg_surface_data* surface = 0; - mp_window_data* windowData = mp_window_ptr_from_handle(window); - if(windowData) - { - surface = malloc_type(mg_surface_data); - if(surface) - { - memset(surface, 0, sizeof(mg_surface_data)); - mg_surface_init_for_window(surface, windowData); - - surface->api = MG_HOST; - surface->hostConnect = mg_win32_surface_host_connect; - } - } - return(surface); -} - -//-------------------------------------------------------------------- -// native open/save/alert windows -//-------------------------------------------------------------------- - -//TODO: GetOpenFileName() doesn't seem to support selecting folders, and -// requires filters which pair a "descriptive" name with an extension - -#define interface struct -#include -#include -#undef interface - - -MP_API str8 mp_open_dialog(mem_arena* arena, - const char* title, - const char* defaultPath, - int filterCount, - const char** filters, - bool directory) -{ - str8 res = {0}; - HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); - if(SUCCEEDED(hr)) - { - IFileOpenDialog* dialog = 0; - hr = CoCreateInstance(&CLSID_FileOpenDialog, NULL, CLSCTX_ALL, &IID_IFileOpenDialog, (void**)&dialog); - if(SUCCEEDED(hr)) - { - if(directory) - { - FILEOPENDIALOGOPTIONS opt; - dialog->lpVtbl->GetOptions(dialog, &opt); - dialog->lpVtbl->SetOptions(dialog, opt | FOS_PICKFOLDERS); - } - - if(filterCount && filters) - { - mem_arena_scope tmp = mem_arena_scope_begin(arena); - COMDLG_FILTERSPEC* filterSpecs = mem_arena_alloc_array(arena, COMDLG_FILTERSPEC, filterCount); - for(int i=0; ilpVtbl->SetFileTypes(dialog, filterCount, filterSpecs); - - mem_arena_scope_end(tmp); - } - - if(defaultPath) - { - mem_arena_scope tmp = mem_arena_scope_begin(arena); - int pathWideSize = MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, NULL, 0); - LPWSTR pathWide = mem_arena_alloc_array(arena, wchar_t, pathWideSize); - MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, pathWide, pathWideSize); - - IShellItem* item = 0; - hr = SHCreateItemFromParsingName(pathWide, NULL, &IID_IShellItem, (void**)&item); - if(SUCCEEDED(hr)) - { - hr = dialog->lpVtbl->SetFolder(dialog, item); - item->lpVtbl->Release(item); - } - mem_arena_scope_end(tmp); - } - - hr = dialog->lpVtbl->Show(dialog, NULL); - if(SUCCEEDED(hr)) - { - IShellItem* item; - hr = dialog->lpVtbl->GetResult(dialog, &item); - if(SUCCEEDED(hr)) - { - PWSTR filePath; - hr = item->lpVtbl->GetDisplayName(item, SIGDN_FILESYSPATH, &filePath); - - if(SUCCEEDED(hr)) - { - int utf8Size = WideCharToMultiByte(CP_UTF8, 0, filePath, -1, NULL, 0, NULL, NULL); - if(utf8Size > 0) - { - res.ptr = mem_arena_alloc(arena, utf8Size); - res.len = utf8Size-1; - WideCharToMultiByte(CP_UTF8, 0, filePath, -1, res.ptr, utf8Size, NULL, NULL); - } - CoTaskMemFree(filePath); - } - item->lpVtbl->Release(item); - } - } - } - } - CoUninitialize(); - return(res); -} - -MP_API str8 mp_save_dialog(mem_arena* arena, - const char* title, - const char* defaultPath, - int filterCount, - const char** filters) -{ - str8 res = {0}; - HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); - if(SUCCEEDED(hr)) - { - IFileOpenDialog* dialog = 0; - hr = CoCreateInstance(&CLSID_FileSaveDialog, NULL, CLSCTX_ALL, &IID_IFileSaveDialog, (void**)&dialog); - if(SUCCEEDED(hr)) - { - if(filterCount && filters) - { - mem_arena_scope tmp = mem_arena_scope_begin(arena); - COMDLG_FILTERSPEC* filterSpecs = mem_arena_alloc_array(arena, COMDLG_FILTERSPEC, filterCount); - for(int i=0; ilpVtbl->SetFileTypes(dialog, filterCount, filterSpecs); - - mem_arena_scope_end(tmp); - } - - if(defaultPath) - { - mem_arena_scope tmp = mem_arena_scope_begin(arena); - int pathWideSize = MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, NULL, 0); - LPWSTR pathWide = mem_arena_alloc_array(arena, wchar_t, pathWideSize); - MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, pathWide, pathWideSize); - - IShellItem* item = 0; - hr = SHCreateItemFromParsingName(pathWide, NULL, &IID_IShellItem, (void**)&item); - if(SUCCEEDED(hr)) - { - hr = dialog->lpVtbl->SetFolder(dialog, item); - item->lpVtbl->Release(item); - } - mem_arena_scope_end(tmp); - } - - hr = dialog->lpVtbl->Show(dialog, NULL); - if(SUCCEEDED(hr)) - { - IShellItem* item; - hr = dialog->lpVtbl->GetResult(dialog, &item); - if(SUCCEEDED(hr)) - { - PWSTR filePath; - hr = item->lpVtbl->GetDisplayName(item, SIGDN_FILESYSPATH, &filePath); - - if(SUCCEEDED(hr)) - { - int utf8Size = WideCharToMultiByte(CP_UTF8, 0, filePath, -1, NULL, 0, NULL, NULL); - if(utf8Size > 0) - { - res.ptr = mem_arena_alloc(arena, utf8Size); - res.len = utf8Size-1; - WideCharToMultiByte(CP_UTF8, 0, filePath, -1, res.ptr, utf8Size, NULL, NULL); - } - CoTaskMemFree(filePath); - } - item->lpVtbl->Release(item); - } - } - } - } - CoUninitialize(); - return(res); -} - -#include - -MP_API int mp_alert_popup(const char* title, - const char* message, - u32 count, - const char** options) -{ - mem_arena* scratch = mem_scratch(); - mem_arena_scope tmp = mem_arena_scope_begin(scratch); - TASKDIALOG_BUTTON* buttons = mem_arena_alloc_array(scratch, TASKDIALOG_BUTTON, count); - - for(int i=0; i +#include"mp_app.c" +#include"platform/platform_thread.h" + +void mp_init_keys() +{ + memset(__mpApp.keyCodes, MP_KEY_UNKNOWN, 256*sizeof(int)); + + __mpApp.keyCodes[0x00B] = MP_KEY_0; + __mpApp.keyCodes[0x002] = MP_KEY_1; + __mpApp.keyCodes[0x003] = MP_KEY_2; + __mpApp.keyCodes[0x004] = MP_KEY_3; + __mpApp.keyCodes[0x005] = MP_KEY_4; + __mpApp.keyCodes[0x006] = MP_KEY_5; + __mpApp.keyCodes[0x007] = MP_KEY_6; + __mpApp.keyCodes[0x008] = MP_KEY_7; + __mpApp.keyCodes[0x009] = MP_KEY_8; + __mpApp.keyCodes[0x00A] = MP_KEY_9; + __mpApp.keyCodes[0x01E] = MP_KEY_A; + __mpApp.keyCodes[0x030] = MP_KEY_B; + __mpApp.keyCodes[0x02E] = MP_KEY_C; + __mpApp.keyCodes[0x020] = MP_KEY_D; + __mpApp.keyCodes[0x012] = MP_KEY_E; + __mpApp.keyCodes[0x021] = MP_KEY_F; + __mpApp.keyCodes[0x022] = MP_KEY_G; + __mpApp.keyCodes[0x023] = MP_KEY_H; + __mpApp.keyCodes[0x017] = MP_KEY_I; + __mpApp.keyCodes[0x024] = MP_KEY_J; + __mpApp.keyCodes[0x025] = MP_KEY_K; + __mpApp.keyCodes[0x026] = MP_KEY_L; + __mpApp.keyCodes[0x032] = MP_KEY_M; + __mpApp.keyCodes[0x031] = MP_KEY_N; + __mpApp.keyCodes[0x018] = MP_KEY_O; + __mpApp.keyCodes[0x019] = MP_KEY_P; + __mpApp.keyCodes[0x010] = MP_KEY_Q; + __mpApp.keyCodes[0x013] = MP_KEY_R; + __mpApp.keyCodes[0x01F] = MP_KEY_S; + __mpApp.keyCodes[0x014] = MP_KEY_T; + __mpApp.keyCodes[0x016] = MP_KEY_U; + __mpApp.keyCodes[0x02F] = MP_KEY_V; + __mpApp.keyCodes[0x011] = MP_KEY_W; + __mpApp.keyCodes[0x02D] = MP_KEY_X; + __mpApp.keyCodes[0x015] = MP_KEY_Y; + __mpApp.keyCodes[0x02C] = MP_KEY_Z; + __mpApp.keyCodes[0x028] = MP_KEY_APOSTROPHE; + __mpApp.keyCodes[0x02B] = MP_KEY_BACKSLASH; + __mpApp.keyCodes[0x033] = MP_KEY_COMMA; + __mpApp.keyCodes[0x00D] = MP_KEY_EQUAL; + __mpApp.keyCodes[0x029] = MP_KEY_GRAVE_ACCENT; + __mpApp.keyCodes[0x01A] = MP_KEY_LEFT_BRACKET; + __mpApp.keyCodes[0x00C] = MP_KEY_MINUS; + __mpApp.keyCodes[0x034] = MP_KEY_PERIOD; + __mpApp.keyCodes[0x01B] = MP_KEY_RIGHT_BRACKET; + __mpApp.keyCodes[0x027] = MP_KEY_SEMICOLON; + __mpApp.keyCodes[0x035] = MP_KEY_SLASH; + __mpApp.keyCodes[0x056] = MP_KEY_WORLD_2; + __mpApp.keyCodes[0x00E] = MP_KEY_BACKSPACE; + __mpApp.keyCodes[0x153] = MP_KEY_DELETE; + __mpApp.keyCodes[0x14F] = MP_KEY_END; + __mpApp.keyCodes[0x01C] = MP_KEY_ENTER; + __mpApp.keyCodes[0x001] = MP_KEY_ESCAPE; + __mpApp.keyCodes[0x147] = MP_KEY_HOME; + __mpApp.keyCodes[0x152] = MP_KEY_INSERT; + __mpApp.keyCodes[0x15D] = MP_KEY_MENU; + __mpApp.keyCodes[0x151] = MP_KEY_PAGE_DOWN; + __mpApp.keyCodes[0x149] = MP_KEY_PAGE_UP; + __mpApp.keyCodes[0x045] = MP_KEY_PAUSE; + __mpApp.keyCodes[0x146] = MP_KEY_PAUSE; + __mpApp.keyCodes[0x039] = MP_KEY_SPACE; + __mpApp.keyCodes[0x00F] = MP_KEY_TAB; + __mpApp.keyCodes[0x03A] = MP_KEY_CAPS_LOCK; + __mpApp.keyCodes[0x145] = MP_KEY_NUM_LOCK; + __mpApp.keyCodes[0x046] = MP_KEY_SCROLL_LOCK; + __mpApp.keyCodes[0x03B] = MP_KEY_F1; + __mpApp.keyCodes[0x03C] = MP_KEY_F2; + __mpApp.keyCodes[0x03D] = MP_KEY_F3; + __mpApp.keyCodes[0x03E] = MP_KEY_F4; + __mpApp.keyCodes[0x03F] = MP_KEY_F5; + __mpApp.keyCodes[0x040] = MP_KEY_F6; + __mpApp.keyCodes[0x041] = MP_KEY_F7; + __mpApp.keyCodes[0x042] = MP_KEY_F8; + __mpApp.keyCodes[0x043] = MP_KEY_F9; + __mpApp.keyCodes[0x044] = MP_KEY_F10; + __mpApp.keyCodes[0x057] = MP_KEY_F11; + __mpApp.keyCodes[0x058] = MP_KEY_F12; + __mpApp.keyCodes[0x064] = MP_KEY_F13; + __mpApp.keyCodes[0x065] = MP_KEY_F14; + __mpApp.keyCodes[0x066] = MP_KEY_F15; + __mpApp.keyCodes[0x067] = MP_KEY_F16; + __mpApp.keyCodes[0x068] = MP_KEY_F17; + __mpApp.keyCodes[0x069] = MP_KEY_F18; + __mpApp.keyCodes[0x06A] = MP_KEY_F19; + __mpApp.keyCodes[0x06B] = MP_KEY_F20; + __mpApp.keyCodes[0x06C] = MP_KEY_F21; + __mpApp.keyCodes[0x06D] = MP_KEY_F22; + __mpApp.keyCodes[0x06E] = MP_KEY_F23; + __mpApp.keyCodes[0x076] = MP_KEY_F24; + __mpApp.keyCodes[0x038] = MP_KEY_LEFT_ALT; + __mpApp.keyCodes[0x01D] = MP_KEY_LEFT_CONTROL; + __mpApp.keyCodes[0x02A] = MP_KEY_LEFT_SHIFT; + __mpApp.keyCodes[0x15B] = MP_KEY_LEFT_SUPER; + __mpApp.keyCodes[0x137] = MP_KEY_PRINT_SCREEN; + __mpApp.keyCodes[0x138] = MP_KEY_RIGHT_ALT; + __mpApp.keyCodes[0x11D] = MP_KEY_RIGHT_CONTROL; + __mpApp.keyCodes[0x036] = MP_KEY_RIGHT_SHIFT; + __mpApp.keyCodes[0x15C] = MP_KEY_RIGHT_SUPER; + __mpApp.keyCodes[0x150] = MP_KEY_DOWN; + __mpApp.keyCodes[0x14B] = MP_KEY_LEFT; + __mpApp.keyCodes[0x14D] = MP_KEY_RIGHT; + __mpApp.keyCodes[0x148] = MP_KEY_UP; + __mpApp.keyCodes[0x052] = MP_KEY_KP_0; + __mpApp.keyCodes[0x04F] = MP_KEY_KP_1; + __mpApp.keyCodes[0x050] = MP_KEY_KP_2; + __mpApp.keyCodes[0x051] = MP_KEY_KP_3; + __mpApp.keyCodes[0x04B] = MP_KEY_KP_4; + __mpApp.keyCodes[0x04C] = MP_KEY_KP_5; + __mpApp.keyCodes[0x04D] = MP_KEY_KP_6; + __mpApp.keyCodes[0x047] = MP_KEY_KP_7; + __mpApp.keyCodes[0x048] = MP_KEY_KP_8; + __mpApp.keyCodes[0x049] = MP_KEY_KP_9; + __mpApp.keyCodes[0x04E] = MP_KEY_KP_ADD; + __mpApp.keyCodes[0x053] = MP_KEY_KP_DECIMAL; + __mpApp.keyCodes[0x135] = MP_KEY_KP_DIVIDE; + __mpApp.keyCodes[0x11C] = MP_KEY_KP_ENTER; + __mpApp.keyCodes[0x037] = MP_KEY_KP_MULTIPLY; + __mpApp.keyCodes[0x04A] = MP_KEY_KP_SUBTRACT; + + memset(__mpApp.nativeKeys, 0, sizeof(int)*MP_KEY_COUNT); + for(int nativeKey=0; nativeKey<256; nativeKey++) + { + mp_key_code mpKey = __mpApp.keyCodes[nativeKey]; + if(mpKey) + { + __mpApp.nativeKeys[mpKey] = nativeKey; + } + } +} + +void mp_init() +{ + if(!__mpApp.init) + { + memset(&__mpApp, 0, sizeof(__mpApp)); + + mp_init_common(); + mp_init_keys(); + + __mpApp.win32.savedConsoleCodePage = GetConsoleOutputCP(); + SetConsoleOutputCP(CP_UTF8); + + DWORD mode; + GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &mode); + mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; + SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), mode); + + SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + + u32 wheelScrollLines = 3; + SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &wheelScrollLines, 0); + __mpApp.win32.wheelScrollLines = wheelScrollLines; + } +} + +void mp_terminate() +{ + if(__mpApp.init) + { + SetConsoleOutputCP(__mpApp.win32.savedConsoleCodePage); + + mp_terminate_common(); + __mpApp = (mp_app){0}; + } +} + +static mp_key_code mp_convert_win32_key(int code) +{ + return(__mpApp.keyCodes[code]); +} + +static mp_keymod_flags mp_get_mod_keys() +{ + mp_keymod_flags mods = 0; + if(GetKeyState(VK_SHIFT) & 0x8000) + { + mods |= MP_KEYMOD_SHIFT; + } + if(GetKeyState(VK_CONTROL) & 0x8000) + { + mods |= MP_KEYMOD_CTRL; + mods |= MP_KEYMOD_MAIN_MODIFIER; + } + if(GetKeyState(VK_MENU) & 0x8000) + { + mods |= MP_KEYMOD_ALT; + } + if((GetKeyState(VK_LWIN) | GetKeyState(VK_RWIN)) & 0x8000) + { + mods |= MP_KEYMOD_CMD; + } + return(mods); +} + +static void process_mouse_event(mp_window_data* window, mp_key_action action, mp_key_code button) +{ + if(action == MP_KEY_PRESS) + { + if(!__mpApp.win32.mouseCaptureMask) + { + SetCapture(window->win32.hWnd); + } + __mpApp.win32.mouseCaptureMask |= (1<win32.hWnd, &clientRect); + POINT point = {0}; + ClientToScreen(window->win32.hWnd, &point); + + int clientWidth = (clientRect.right - clientRect.left); + int clientHeight = (clientRect.bottom - clientRect.top); + + HWND insertAfter = window->win32.hWnd; + + for_list(&window->win32.layers, layer, mp_layer, listElt) + { + SetWindowPos(layer->hWnd, + insertAfter, + point.x, + point.y, + clientWidth, + clientHeight, + SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER); + + insertAfter = layer->hWnd; + } +} + +LRESULT WinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) +{ + LRESULT result = 0; + + mp_window_data* mpWindow = GetPropW(windowHandle, L"MilePost"); + //TODO: put messages in queue + + switch(message) + { + case WM_CLOSE: + { + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_WINDOW_CLOSE; + mp_queue_event(&event); + } break; + + case WM_DPICHANGED: + { + u32 dpi = HIWORD(wParam); + RECT rect = *(RECT*)lParam; + + SetWindowPos(mpWindow->win32.hWnd, + HWND_TOP, + rect.left, + rect.top, + rect.right - rect.left, + rect.bottom - rect.top, + SWP_NOACTIVATE | SWP_NOZORDER); + + //TODO: send a message + + } break; + + //TODO: enter/exit size & move + case WM_WINDOWPOSCHANGED: + { + win32_update_child_layers(mpWindow); + result = DefWindowProc(windowHandle, message, wParam, lParam); + } break; + + case WM_SIZING: + case WM_MOVING: + { + RECT* rect = (RECT*)lParam; + + mp_event event = {0}; + event.type = message == WM_SIZING ? MP_EVENT_WINDOW_RESIZE : MP_EVENT_WINDOW_MOVE; + event.window = mp_window_handle_from_ptr(mpWindow); + + event.move.frame = mp_window_get_frame_rect(event.window); + event.move.content = mp_window_get_content_rect(event.window); + + mp_queue_event(&event); + + win32_update_child_layers(mpWindow); + } break; + + case WM_SETFOCUS: + { + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_WINDOW_FOCUS; + mp_queue_event(&event); + } break; + + case WM_KILLFOCUS: + { + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_WINDOW_UNFOCUS; + mp_queue_event(&event); + } break; + + case WM_SIZE: + { + bool minimized = (wParam == SIZE_MINIMIZED); + if(minimized != mpWindow->minimized) + { + mpWindow->minimized = minimized; + + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + + if(minimized) + { + event.type = MP_EVENT_WINDOW_HIDE; + } + else if(mpWindow->minimized) + { + event.type = MP_EVENT_WINDOW_SHOW; + } + mp_queue_event(&event); + } + } break; + + case WM_LBUTTONDOWN: + { + process_mouse_event(mpWindow, MP_KEY_PRESS, MP_MOUSE_LEFT); + } break; + + case WM_RBUTTONDOWN: + { + process_mouse_event(mpWindow, MP_KEY_PRESS, MP_MOUSE_RIGHT); + } break; + + case WM_MBUTTONDOWN: + { + process_mouse_event(mpWindow, MP_KEY_PRESS, MP_MOUSE_MIDDLE); + } break; + + case WM_LBUTTONUP: + { + process_mouse_event(mpWindow, MP_KEY_RELEASE, MP_MOUSE_LEFT); + } break; + + case WM_RBUTTONUP: + { + process_mouse_event(mpWindow, MP_KEY_RELEASE, MP_MOUSE_RIGHT); + } break; + + case WM_MBUTTONUP: + { + process_mouse_event(mpWindow, MP_KEY_RELEASE, MP_MOUSE_MIDDLE); + } break; + + case WM_MOUSEMOVE: + { + RECT rect; + GetClientRect(mpWindow->win32.hWnd, &rect); + + u32 dpi = GetDpiForWindow(mpWindow->win32.hWnd); + f32 scaling = (f32)dpi/96.; + + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_MOUSE_MOVE; + event.mouse.x = LOWORD(lParam) / scaling; + event.mouse.y = HIWORD(lParam) / scaling; + + if(__mpApp.win32.mouseTracked || __mpApp.win32.mouseCaptureMask) + { + event.mouse.deltaX = event.mouse.x - __mpApp.win32.lastMousePos.x; + event.mouse.deltaY = event.mouse.y - __mpApp.win32.lastMousePos.y; + } + __mpApp.win32.lastMousePos = (vec2){event.mouse.x, event.mouse.y}; + + if(!__mpApp.win32.mouseTracked) + { + __mpApp.win32.mouseTracked = true; + + TRACKMOUSEEVENT track; + memset(&track, 0, sizeof(track)); + track.cbSize = sizeof(track); + track.dwFlags = TME_LEAVE; + track.hwndTrack = mpWindow->win32.hWnd; + TrackMouseEvent(&track); + + mp_event enter = {.window = event.window, + .type = MP_EVENT_MOUSE_ENTER, + .mouse.x = event.mouse.x, + .mouse.y = event.mouse.y}; + mp_queue_event(&enter); + } + + mp_queue_event(&event); + } break; + + case WM_MOUSELEAVE: + { + __mpApp.win32.mouseTracked = false; + + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_MOUSE_LEAVE; + mp_queue_event(&event); + } break; + + case WM_MOUSEWHEEL: + { + process_wheel_event(mpWindow, 0, (float)((i16)HIWORD(wParam))); + } break; + + case WM_MOUSEHWHEEL: + { + process_wheel_event(mpWindow, (float)((i16)HIWORD(wParam)), 0); + } break; + + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + { + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_KEYBOARD_KEY; + event.key.action = (lParam & 0x40000000) ? MP_KEY_REPEAT : MP_KEY_PRESS; + event.key.code = mp_convert_win32_key(HIWORD(lParam) & 0x1ff); + event.key.mods = mp_get_mod_keys(); + mp_queue_event(&event); + } break; + + case WM_KEYUP: + case WM_SYSKEYUP: + { + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_KEYBOARD_KEY; + event.key.action = MP_KEY_RELEASE; + event.key.code = mp_convert_win32_key(HIWORD(lParam) & 0x1ff); + event.key.mods = mp_get_mod_keys(); + mp_queue_event(&event); + } break; + + case WM_CHAR: + { + if((u32)wParam >= 32) + { + mp_event event = {0}; + event.window = mp_window_handle_from_ptr(mpWindow); + event.type = MP_EVENT_KEYBOARD_CHAR; + event.character.codepoint = (utf32)wParam; + str8 seq = utf8_encode(event.character.sequence, event.character.codepoint); + event.character.seqLen = seq.len; + mp_queue_event(&event); + } + } break; + + case WM_SETTINGCHANGE: + { + if((u32)wParam == SPI_SETWHEELSCROLLLINES) + { + u32 wheelScrollLines; + if(SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &wheelScrollLines, 0) != 0) { + __mpApp.win32.wheelScrollLines = wheelScrollLines; + } + } + } break; + + case WM_DROPFILES: + { + //TODO + } break; + + case MP_WM_USER_DISPATCH_PROC: + { + mp_dispatch_proc proc = (mp_dispatch_proc)wParam; + void* user = (void*)lParam; + result = proc(user); + } break; + + default: + { + result = DefWindowProc(windowHandle, message, wParam, lParam); + } break; + } + + return(result); +} + +//-------------------------------------------------------------------- +// app management +//-------------------------------------------------------------------- + +bool mp_should_quit() +{ + return(__mpApp.shouldQuit); +} + +void mp_cancel_quit() +{ + __mpApp.shouldQuit = false; +} + +void mp_request_quit() +{ + __mpApp.shouldQuit = true; +} + +void mp_pump_events(f64 timeout) +{ + MSG message; + + if(timeout < 0) + { + WaitMessage(); + } + else if(timeout > 0) + { + MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeout * 1e3), QS_ALLEVENTS); + } + + while(PeekMessage(&message, 0, 0, 0, PM_REMOVE)) + { + TranslateMessage(&message); + DispatchMessage(&message); + } +} + +i32 mp_dispatch_on_main_thread_sync(mp_window main_window, mp_dispatch_proc proc, void* user) +{ + mp_window_data* window_data = mp_window_ptr_from_handle(main_window); + DEBUG_ASSERT(window_data != NULL); + + LRESULT result = SendMessage(window_data->win32.hWnd, MP_WM_USER_DISPATCH_PROC, (WPARAM)proc, (LPARAM)user); + return result; +} + +//-------------------------------------------------------------------- +// window management +//-------------------------------------------------------------------- + +//WARN: the following header pulls in objbase.h (even with WIN32_LEAN_AND_MEAN), which +// #defines interface to struct... so make sure to #undef interface since it's a +// name we want to be able to use throughout the codebase +#include +#undef interface + +mp_window mp_window_create(mp_rect rect, const char* title, mp_window_style style) +{ + WNDCLASS windowClass = {.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC, + .lpfnWndProc = WinProc, + .hInstance = GetModuleHandleW(NULL), + .lpszClassName = "ApplicationWindowClass", + .hCursor = LoadCursor(0, IDC_ARROW)}; + + if(!RegisterClass(&windowClass)) + { + //TODO: error + goto quit; + } + + u32 dpiX, dpiY; + HMONITOR monitor = MonitorFromPoint((POINT){rect.x, rect.y}, MONITOR_DEFAULTTOPRIMARY); + GetDpiForMonitor(monitor, MDT_EFFECTIVE_DPI, &dpiX, &dpiY); + + f32 scaleX = (f32)dpiX/96.; + f32 scaleY = (f32)dpiY/96.; + + RECT frame = { + rect.x * scaleX, + rect.y * scaleY, + (rect.x + rect.w)*scaleX, + (rect.y + rect.h)*scaleY + }; + + DWORD winStyle = WS_OVERLAPPEDWINDOW; + AdjustWindowRect(&frame, winStyle, FALSE); + + HWND windowHandle = CreateWindow("ApplicationWindowClass", "Test Window", + winStyle, + frame.left, frame.top, + frame.right-frame.left, + frame.bottom-frame.top, + 0, 0, windowClass.hInstance, 0); + + if(!windowHandle) + { + //TODO: error + goto quit; + } + + UpdateWindow(windowHandle); + + //TODO: return wrapped window + quit:; + mp_window_data* window = mp_window_alloc(); + window->win32.hWnd = windowHandle; + window->win32.layers = (list_info){0}; + + SetPropW(windowHandle, L"MilePost", window); + + return(mp_window_handle_from_ptr(window)); +} + +void mp_window_destroy(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + DestroyWindow(windowData->win32.hWnd); + //TODO: check when to unregister class + + mp_window_recycle_ptr(windowData); + } +} + +void* mp_window_native_pointer(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + return(windowData->win32.hWnd); + } + else + { + return(0); + } +} + +bool mp_window_should_close(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + return(windowData->shouldClose); + } + else + { + return(false); + } +} + +void mp_window_request_close(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + windowData->shouldClose = true; + PostMessage(windowData->win32.hWnd, WM_CLOSE, 0, 0); + } +} + +void mp_window_cancel_close(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + windowData->shouldClose = false; + } +} + + +bool mp_window_is_hidden(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + return(IsWindowVisible(windowData->win32.hWnd)); + } + else + { + return(false); + } +} + +void mp_window_hide(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + ShowWindow(windowData->win32.hWnd, SW_HIDE); + } +} + +void mp_window_show(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + ShowWindow(windowData->win32.hWnd, SW_NORMAL); + } +} + +bool mp_window_is_minimized(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + return(windowData->minimized); + } + else + { + return(false); + } +} + +void mp_window_minimize(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + ShowWindow(windowData->win32.hWnd, SW_MINIMIZE); + } +} + +void mp_window_maximize(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + ShowWindow(windowData->win32.hWnd, SW_MAXIMIZE); + } +} + +void mp_window_restore(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + ShowWindow(windowData->win32.hWnd, SW_RESTORE); + } +} + +bool mp_window_has_focus(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + return(GetActiveWindow() == windowData->win32.hWnd); + } + else + { + return(false); + } +} + +void mp_window_focus(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + SetFocus(windowData->win32.hWnd); + } +} + +void mp_window_unfocus(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + SetFocus(0); + } +} + +void mp_window_send_to_back(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + SetWindowPos(windowData->win32.hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + } +} + +void mp_window_bring_to_front(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + if(!IsWindowVisible(windowData->win32.hWnd)) + { + ShowWindow(windowData->win32.hWnd, SW_NORMAL); + } + SetWindowPos(windowData->win32.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + } +} + +mp_rect mp_window_get_frame_rect(mp_window window) +{ + mp_rect rect = {0}; + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + //NOTE: GetWindowRect() includes the drop shadow, which we don't want, so we call + // DwmGetWindowAttribute() instead. + // Note that contrary to what the GetWindowRect() docs suggests when mentionning + // this, DwmGetWindowAttributes() _does_ seem to adjust for DPI. + u32 dpi = GetDpiForWindow(windowData->win32.hWnd); + f32 scale = (float)dpi/96.; + + RECT frame; + HRESULT res = DwmGetWindowAttribute(windowData->win32.hWnd, + DWMWA_EXTENDED_FRAME_BOUNDS, + &frame, + sizeof(RECT)); + if(res == S_OK) + { + rect = (mp_rect){ + frame.left / scale, + frame.top / scale, + (frame.right - frame.left)/scale, + (frame.bottom - frame.top)/scale}; + } + } + return(rect); +} + +mp_rect win32_get_drop_shadow_offsets(HWND hWnd) +{ + RECT frameIncludingShadow; + RECT frameExcludingShadow; + + GetWindowRect(hWnd, &frameIncludingShadow); + DwmGetWindowAttribute(hWnd, + DWMWA_EXTENDED_FRAME_BOUNDS, + &frameExcludingShadow, + sizeof(RECT)); + + mp_rect extents = { + .x = frameIncludingShadow.left - frameExcludingShadow.left, + .y = frameIncludingShadow.top - frameExcludingShadow.top, + .w = frameIncludingShadow.right - frameExcludingShadow.right, + .h = frameIncludingShadow.bottom- frameExcludingShadow.bottom + }; + + return(extents); +} + +void mp_window_set_frame_rect(mp_window window, mp_rect rect) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + u32 dpi = GetDpiForWindow(windowData->win32.hWnd); + f32 scale = (float)dpi/96.; + + //NOTE compute the size of the drop shadow to add it in setwindowpos + mp_rect shadowOffsets = win32_get_drop_shadow_offsets(windowData->win32.hWnd); + + RECT frame = { + rect.x * scale + shadowOffsets.x, + rect.y * scale + shadowOffsets.y, + (rect.x + rect.w)*scale + shadowOffsets.w, + (rect.y + rect.h)*scale + shadowOffsets.h + }; + + SetWindowPos(windowData->win32.hWnd, + HWND_TOP, + frame.left, + frame.top, + frame.right - frame.left, + frame.bottom - frame.top, + SWP_NOZORDER|SWP_NOACTIVATE); + } +} + +mp_rect mp_window_get_content_rect(mp_window window) +{ + mp_rect rect = {0}; + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + RECT client; + if(GetClientRect(windowData->win32.hWnd, &client)) + { + u32 dpi = GetDpiForWindow(windowData->win32.hWnd); + f32 scale = (float)dpi/96.; + + POINT origin = {0, 0}; + ClientToScreen(windowData->win32.hWnd, &origin); + + rect = (mp_rect){ + origin.x/scale, + origin.y/scale, + (client.right - client.left)/scale, + (client.bottom - client.top)/scale}; + } + } + return(rect); +} + +void mp_window_set_content_rect(mp_window window, mp_rect rect) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + u32 dpi = GetDpiForWindow(windowData->win32.hWnd); + f32 scale = (float)dpi/96.; + + RECT frame = { + rect.x * scale, + rect.y * scale, + (rect.x + rect.w)*scale, + (rect.y + rect.h)*scale}; + + DWORD style = GetWindowLong(windowData->win32.hWnd, GWL_STYLE); + BOOL menu = (GetMenu(windowData->win32.hWnd) != NULL); + AdjustWindowRect(&frame, style, menu); + + SetWindowPos(windowData->win32.hWnd, + HWND_TOP, + frame.left, + frame.top, + frame.right - frame.left, + frame.bottom - frame.top, + SWP_NOZORDER|SWP_NOACTIVATE); + } +} + +void mp_window_center(mp_window window) +{ + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + + mp_rect frame = mp_window_get_frame_rect(window); + + HMONITOR monitor = MonitorFromWindow(windowData->win32.hWnd, MONITOR_DEFAULTTOPRIMARY); + if(monitor) + { + MONITORINFO monitorInfo = {.cbSize = sizeof(MONITORINFO)}; + GetMonitorInfoW(monitor, &monitorInfo); + + int dpiX, dpiY; + GetDpiForMonitor(monitor, MDT_EFFECTIVE_DPI, &dpiX, &dpiY); + f32 scaleX = dpiX/96.; + f32 scaleY = dpiY/96.; + + f32 monX = monitorInfo.rcWork.left/scaleX; + f32 monY = monitorInfo.rcWork.top/scaleY; + f32 monW = (monitorInfo.rcWork.right - monitorInfo.rcWork.left)/scaleX; + f32 monH = (monitorInfo.rcWork.bottom - monitorInfo.rcWork.top)/scaleY; + + frame.x = monX + 0.5*(monW - frame.w); + frame.y = monY + 0.5*(monH - frame.h); + + mp_window_set_frame_rect(window, frame); + } + } +} + + +//-------------------------------------------------------------------------------- +// clipboard functions +//-------------------------------------------------------------------------------- + +MP_API void mp_clipboard_clear(void) +{ + if(OpenClipboard(NULL)) + { + EmptyClipboard(); + CloseClipboard(); + } +} + +MP_API void mp_clipboard_set_string(str8 string) +{ + if(OpenClipboard(NULL)) + { + EmptyClipboard(); + + int wideCount = MultiByteToWideChar(CP_UTF8, 0, string.ptr, string.len, 0, 0); + HANDLE handle = GlobalAlloc(GMEM_MOVEABLE, (wideCount+1)*sizeof(wchar_t)); + if(handle) + { + char* memory = GlobalLock(handle); + if(memory) + { + MultiByteToWideChar(CP_UTF8, 0, string.ptr, string.len, (wchar_t*)memory, wideCount); + ((wchar_t*)memory)[wideCount] = '\0'; + + GlobalUnlock(handle); + SetClipboardData(CF_UNICODETEXT, handle); + } + } + CloseClipboard(); + } +} + +MP_API str8 mp_clipboard_get_string(mem_arena* arena) +{ + str8 string = {0}; + + if(OpenClipboard(NULL)) + { + HANDLE handle = GetClipboardData(CF_UNICODETEXT); + if(handle) + { + char* memory = GlobalLock(handle); + if(memory) + { + u64 size = WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)memory, -1, 0, 0, 0, 0); + if(size) + { + string.ptr = mem_arena_alloc(arena, size); + string.len = size - 1; + WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)memory, -1, string.ptr, size, 0, 0); + GlobalUnlock(handle); + } + } + } + CloseClipboard(); + } + return(string); +} + +MP_API str8 mp_clipboard_copy_string(str8 backing) +{ + //TODO + return((str8){0}); +} + + +//-------------------------------------------------------------------------------- +// win32 surfaces +//-------------------------------------------------------------------------------- + +#include"graphics/graphics_surface.h" + +vec2 mg_win32_surface_contents_scaling(mg_surface_data* surface) +{ + u32 dpi = GetDpiForWindow(surface->layer.hWnd); + vec2 contentsScaling = (vec2){(float)dpi/96., (float)dpi/96.}; + return(contentsScaling); +} + +vec2 mg_win32_surface_get_size(mg_surface_data* surface) +{ + vec2 size = {0}; + RECT rect; + if(GetClientRect(surface->layer.hWnd, &rect)) + { + u32 dpi = GetDpiForWindow(surface->layer.hWnd); + f32 scale = (float)dpi/96.; + size = (vec2){(rect.right - rect.left)/scale, (rect.bottom - rect.top)/scale}; + } + return(size); +} + +bool mg_win32_surface_get_hidden(mg_surface_data* surface) +{ + bool hidden = !IsWindowVisible(surface->layer.hWnd); + return(hidden); +} + +void mg_win32_surface_set_hidden(mg_surface_data* surface, bool hidden) +{ + ShowWindow(surface->layer.hWnd, hidden ? SW_HIDE : SW_NORMAL); +} + +void* mg_win32_surface_native_layer(mg_surface_data* surface) +{ + return((void*)surface->layer.hWnd); +} + +mg_surface_id mg_win32_surface_remote_id(mg_surface_data* surface) +{ + return((mg_surface_id)surface->layer.hWnd); +} + +void mg_win32_surface_host_connect(mg_surface_data* surface, mg_surface_id remoteID) +{ + HWND dstWnd = surface->layer.hWnd; + HWND srcWnd = (HWND)remoteID; + + RECT dstRect; + GetClientRect(dstWnd, &dstRect); + + SetParent(srcWnd, dstWnd); + ShowWindow(srcWnd, SW_NORMAL); + + SetWindowPos(srcWnd, + HWND_TOP, + 0, + 0, + dstRect.right - dstRect.left, + dstRect.bottom - dstRect.top, + SWP_NOACTIVATE | SWP_NOZORDER); +} + +void mg_surface_cleanup(mg_surface_data* surface) +{ + list_remove(&surface->layer.parent->win32.layers, &surface->layer.listElt); + DestroyWindow(surface->layer.hWnd); +} + +LRESULT LayerWinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) +{ + if(message == WM_NCHITTEST) + { + return(HTTRANSPARENT); + } + else + { + return(DefWindowProc(windowHandle, message, wParam, lParam)); + } +} + +void mg_surface_init_for_window(mg_surface_data* surface, mp_window_data* window) +{ + surface->contentsScaling = mg_win32_surface_contents_scaling; + surface->getSize = mg_win32_surface_get_size; + surface->getHidden = mg_win32_surface_get_hidden; + surface->setHidden = mg_win32_surface_set_hidden; + surface->nativeLayer = mg_win32_surface_native_layer; + + //NOTE(martin): create a child window for the surface + WNDCLASS layerWindowClass = {.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC, + .lpfnWndProc = LayerWinProc, + .hInstance = GetModuleHandleW(NULL), + .lpszClassName = "layer_window_class", + .hCursor = LoadCursor(0, IDC_ARROW)}; + + RegisterClass(&layerWindowClass); + + RECT parentRect; + GetClientRect(window->win32.hWnd, &parentRect); + POINT point = {0}; + ClientToScreen(window->win32.hWnd, &point); + + int clientWidth = parentRect.right - parentRect.left; + int clientHeight = parentRect.bottom - parentRect.top; + + surface->layer.hWnd = CreateWindow("layer_window_class", "layer", + WS_POPUP | WS_VISIBLE, + point.x, point.y, clientWidth, clientHeight, + window->win32.hWnd, + 0, + layerWindowClass.hInstance, + 0); + + HRGN region = CreateRectRgn(0, 0, -1, -1); + + DWM_BLURBEHIND bb = {0}; + bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; + bb.hRgnBlur = region; + bb.fEnable = TRUE; + + HRESULT res = DwmEnableBlurBehindWindow(surface->layer.hWnd, &bb); + + DeleteObject(region); + if(res != S_OK) + { + log_error("couldn't enable blur behind\n"); + } + + surface->layer.parent = window; + list_append(&window->win32.layers, &surface->layer.listElt); +} + +void mg_surface_init_remote(mg_surface_data* surface, u32 width, u32 height) +{ + surface->contentsScaling = mg_win32_surface_contents_scaling; + surface->getSize = mg_win32_surface_get_size; + surface->getHidden = mg_win32_surface_get_hidden; + surface->setHidden = mg_win32_surface_set_hidden; + surface->nativeLayer = mg_win32_surface_native_layer; + surface->remoteID = mg_win32_surface_remote_id; + + WNDCLASS layerWindowClass = {.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC, + .lpfnWndProc = DefWindowProc, + .hInstance = GetModuleHandleW(NULL), + .lpszClassName = "server_layer_window_class", + .hCursor = LoadCursor(0, IDC_ARROW)}; + + RegisterClass(&layerWindowClass); + + //NOTE(martin): create a temporary parent window. This seems like a necessary hack, because if layer window is created as + // a normal window first, and then parented to the client window, it breaks resizing the parent + // window for some reason... + HWND tmpParent = CreateWindow("server_layer_window_class", "layerParent", + WS_OVERLAPPED, + 0, 0, width, height, + 0, + 0, + layerWindowClass.hInstance, + 0); + + //NOTE: create the layer window + surface->layer.hWnd = CreateWindowEx(WS_EX_NOACTIVATE, + "server_layer_window_class", "layer", + WS_CHILD, + 0, 0, width, height, + tmpParent, + 0, + layerWindowClass.hInstance, + 0); + + //NOTE: unparent it and destroy tmp parent + SetParent(surface->layer.hWnd, 0); + DestroyWindow(tmpParent); +} + +mg_surface_data* mg_win32_surface_create_host(mp_window window) +{ + mg_surface_data* surface = 0; + mp_window_data* windowData = mp_window_ptr_from_handle(window); + if(windowData) + { + surface = malloc_type(mg_surface_data); + if(surface) + { + memset(surface, 0, sizeof(mg_surface_data)); + mg_surface_init_for_window(surface, windowData); + + surface->api = MG_HOST; + surface->hostConnect = mg_win32_surface_host_connect; + } + } + return(surface); +} + +//-------------------------------------------------------------------- +// native open/save/alert windows +//-------------------------------------------------------------------- + +//TODO: GetOpenFileName() doesn't seem to support selecting folders, and +// requires filters which pair a "descriptive" name with an extension + +#define interface struct +#include +#include +#undef interface + + +MP_API str8 mp_open_dialog(mem_arena* arena, + const char* title, + const char* defaultPath, + int filterCount, + const char** filters, + bool directory) +{ + str8 res = {0}; + HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); + if(SUCCEEDED(hr)) + { + IFileOpenDialog* dialog = 0; + hr = CoCreateInstance(&CLSID_FileOpenDialog, NULL, CLSCTX_ALL, &IID_IFileOpenDialog, (void**)&dialog); + if(SUCCEEDED(hr)) + { + if(directory) + { + FILEOPENDIALOGOPTIONS opt; + dialog->lpVtbl->GetOptions(dialog, &opt); + dialog->lpVtbl->SetOptions(dialog, opt | FOS_PICKFOLDERS); + } + + if(filterCount && filters) + { + mem_arena_scope tmp = mem_arena_scope_begin(arena); + COMDLG_FILTERSPEC* filterSpecs = mem_arena_alloc_array(arena, COMDLG_FILTERSPEC, filterCount); + for(int i=0; ilpVtbl->SetFileTypes(dialog, filterCount, filterSpecs); + + mem_arena_scope_end(tmp); + } + + if(defaultPath) + { + mem_arena_scope tmp = mem_arena_scope_begin(arena); + int pathWideSize = MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, NULL, 0); + LPWSTR pathWide = mem_arena_alloc_array(arena, wchar_t, pathWideSize); + MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, pathWide, pathWideSize); + + IShellItem* item = 0; + hr = SHCreateItemFromParsingName(pathWide, NULL, &IID_IShellItem, (void**)&item); + if(SUCCEEDED(hr)) + { + hr = dialog->lpVtbl->SetFolder(dialog, item); + item->lpVtbl->Release(item); + } + mem_arena_scope_end(tmp); + } + + hr = dialog->lpVtbl->Show(dialog, NULL); + if(SUCCEEDED(hr)) + { + IShellItem* item; + hr = dialog->lpVtbl->GetResult(dialog, &item); + if(SUCCEEDED(hr)) + { + PWSTR filePath; + hr = item->lpVtbl->GetDisplayName(item, SIGDN_FILESYSPATH, &filePath); + + if(SUCCEEDED(hr)) + { + int utf8Size = WideCharToMultiByte(CP_UTF8, 0, filePath, -1, NULL, 0, NULL, NULL); + if(utf8Size > 0) + { + res.ptr = mem_arena_alloc(arena, utf8Size); + res.len = utf8Size-1; + WideCharToMultiByte(CP_UTF8, 0, filePath, -1, res.ptr, utf8Size, NULL, NULL); + } + CoTaskMemFree(filePath); + } + item->lpVtbl->Release(item); + } + } + } + } + CoUninitialize(); + return(res); +} + +MP_API str8 mp_save_dialog(mem_arena* arena, + const char* title, + const char* defaultPath, + int filterCount, + const char** filters) +{ + str8 res = {0}; + HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); + if(SUCCEEDED(hr)) + { + IFileOpenDialog* dialog = 0; + hr = CoCreateInstance(&CLSID_FileSaveDialog, NULL, CLSCTX_ALL, &IID_IFileSaveDialog, (void**)&dialog); + if(SUCCEEDED(hr)) + { + if(filterCount && filters) + { + mem_arena_scope tmp = mem_arena_scope_begin(arena); + COMDLG_FILTERSPEC* filterSpecs = mem_arena_alloc_array(arena, COMDLG_FILTERSPEC, filterCount); + for(int i=0; ilpVtbl->SetFileTypes(dialog, filterCount, filterSpecs); + + mem_arena_scope_end(tmp); + } + + if(defaultPath) + { + mem_arena_scope tmp = mem_arena_scope_begin(arena); + int pathWideSize = MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, NULL, 0); + LPWSTR pathWide = mem_arena_alloc_array(arena, wchar_t, pathWideSize); + MultiByteToWideChar(CP_UTF8, 0, defaultPath, -1, pathWide, pathWideSize); + + IShellItem* item = 0; + hr = SHCreateItemFromParsingName(pathWide, NULL, &IID_IShellItem, (void**)&item); + if(SUCCEEDED(hr)) + { + hr = dialog->lpVtbl->SetFolder(dialog, item); + item->lpVtbl->Release(item); + } + mem_arena_scope_end(tmp); + } + + hr = dialog->lpVtbl->Show(dialog, NULL); + if(SUCCEEDED(hr)) + { + IShellItem* item; + hr = dialog->lpVtbl->GetResult(dialog, &item); + if(SUCCEEDED(hr)) + { + PWSTR filePath; + hr = item->lpVtbl->GetDisplayName(item, SIGDN_FILESYSPATH, &filePath); + + if(SUCCEEDED(hr)) + { + int utf8Size = WideCharToMultiByte(CP_UTF8, 0, filePath, -1, NULL, 0, NULL, NULL); + if(utf8Size > 0) + { + res.ptr = mem_arena_alloc(arena, utf8Size); + res.len = utf8Size-1; + WideCharToMultiByte(CP_UTF8, 0, filePath, -1, res.ptr, utf8Size, NULL, NULL); + } + CoTaskMemFree(filePath); + } + item->lpVtbl->Release(item); + } + } + } + } + CoUninitialize(); + return(res); +} + +#include + +MP_API int mp_alert_popup(const char* title, + const char* message, + u32 count, + const char** options) +{ + mem_arena* scratch = mem_scratch(); + mem_arena_scope tmp = mem_arena_scope_begin(scratch); + TASKDIALOG_BUTTON* buttons = mem_arena_alloc_array(scratch, TASKDIALOG_BUTTON, count); + + for(int i=0; i - - - - - - - - -Orca Runtime - - - - - - + + + + + + + + + +Orca Runtime + + + + + + diff --git a/src/canvas_api_bind.c b/src/canvas_api_bind.c deleted file mode 100644 index 9c7175f..0000000 --- a/src/canvas_api_bind.c +++ /dev/null @@ -1,21 +0,0 @@ -#include"canvas_api_bind_gen.c" - -typedef struct wasm_str8 -{ - i64 len; - i32 offset; -} wasm_str8; - -const void* mg_text_outlines_stub(IM3Runtime runtime, IM3ImportContext _ctx, uint64_t* _sp, void* _mem) -{ - wasm_str8 wasmStr = *(wasm_str8*)((char*)_mem + *(i32*)&_sp[0]); - - ///////////////////////////////////////////////////////////////////// - //TODO: bound checks - str8 str = {.len = wasmStr.len, - .ptr = (char*)_mem + wasmStr.offset}; - ///////////////////////////////////////////////////////////////////// - - mg_text_outlines(str); - return(0); -} diff --git a/milepost/src/egl_surface.c b/src/graphics/egl_surface.c similarity index 99% rename from milepost/src/egl_surface.c rename to src/graphics/egl_surface.c index 970b2b4..dd2e28e 100644 --- a/milepost/src/egl_surface.c +++ b/src/graphics/egl_surface.c @@ -10,7 +10,7 @@ #define EGL_EGLEXT_PROTOTYPES #include #include -#include"mp_app_internal.h" +#include"app/mp_app_internal.h" #include"graphics_surface.h" #include"gl_loader.h" diff --git a/milepost/src/egl_surface.h b/src/graphics/egl_surface.h similarity index 95% rename from milepost/src/egl_surface.h rename to src/graphics/egl_surface.h index e73de5c..1846cf8 100644 --- a/milepost/src/egl_surface.h +++ b/src/graphics/egl_surface.h @@ -10,7 +10,7 @@ #define __EGL_SURFACE_H_ #include"graphics_surface.h" -#include"mp_app.h" +#include"app/mp_app.h" mg_surface_data* mg_egl_surface_create_for_window(mp_window window); mg_surface_data* mg_egl_surface_create_remote(u32 width, u32 height); diff --git a/milepost/src/gl_api.h b/src/graphics/gl_api.h similarity index 98% rename from milepost/src/gl_api.h rename to src/graphics/gl_api.h index b789fc4..d3e52fc 100644 --- a/milepost/src/gl_api.h +++ b/src/graphics/gl_api.h @@ -1,1123 +1,1123 @@ -/******************************************************** -* -* @file: gl_api.h -* @note: auto-generated by glapi.py from gl.xml -* @date: 07/082023 -* -*********************************************************/ -#ifndef __GL_API_H__ -#define __GL_API_H__ - -#include"GL/glcorearb.h" -#include"GLES3/gl32.h" - -typedef struct mg_gl_api -{ - const char* name; - PFNGLPOINTPARAMETERFVPROC PointParameterfv; - PFNGLUNIFORM3FVPROC Uniform3fv; - PFNGLUNIFORM1IPROC Uniform1i; - PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; - PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; - PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; - PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; - PFNGLCLAMPCOLORPROC ClampColor; - PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; - PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; - PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; - PFNGLBINDBUFFERPROC BindBuffer; - PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; - PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; - PFNGLPIXELSTOREIPROC PixelStorei; - PFNGLBINDTEXTUREPROC BindTexture; - PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; - PFNGLISTEXTUREPROC IsTexture; - PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; - PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; - PFNGLGETOBJECTLABELPROC GetObjectLabel; - PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; - PFNGLISFRAMEBUFFERPROC IsFramebuffer; - PFNGLCOMPILESHADERPROC CompileShader; - PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; - PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; - PFNGLUNIFORM1FVPROC Uniform1fv; - PFNGLTEXIMAGE2DPROC TexImage2D; - PFNGLFLUSHPROC Flush; - PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; - PFNGLISPROGRAMPROC IsProgram; - PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; - PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; - PFNGLCLIENTWAITSYNCPROC ClientWaitSync; - PFNGLUNIFORM1DPROC Uniform1d; - PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; - PFNGLCOLORMASKPROC ColorMask; - PFNGLCLEARDEPTHPROC ClearDepth; - PFNGLGETINTEGER64VPROC GetInteger64v; - PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; - PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; - PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; - PFNGLBLENDEQUATIONIPROC BlendEquationi; - PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; - PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; - PFNGLSAMPLEMASKIPROC SampleMaski; - PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; - PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; - PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; - PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; - PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; - PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; - PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; - PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; - PFNGLGETUNIFORMIVPROC GetUniformiv; - PFNGLBUFFERDATAPROC BufferData; - PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; - PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; - PFNGLISQUERYPROC IsQuery; - PFNGLCLEARCOLORPROC ClearColor; - PFNGLBLENDFUNCPROC BlendFunc; - PFNGLGETDOUBLEI_VPROC GetDoublei_v; - PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; - PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; - PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; - PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; - PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; - PFNGLMEMORYBARRIERPROC MemoryBarrier; - PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; - PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; - PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; - PFNGLGENTEXTURESPROC GenTextures; - PFNGLGETINTEGERVPROC GetIntegerv; - PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; - PFNGLUNIFORM4FVPROC Uniform4fv; - PFNGLHINTPROC Hint; - PFNGLTEXPARAMETERFPROC TexParameterf; - PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; - PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; - PFNGLCLEARPROC Clear; - PFNGLBINDBUFFERBASEPROC BindBufferBase; - PFNGLGETQUERYIVPROC GetQueryiv; - PFNGLPROGRAMBINARYPROC ProgramBinary; - PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; - PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; - PFNGLTEXSTORAGE2DPROC TexStorage2D; - PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; - PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; - PFNGLENABLEPROC Enable; - PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; - PFNGLLOGICOPPROC LogicOp; - PFNGLDEPTHFUNCPROC DepthFunc; - PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; - PFNGLUNIFORM2DPROC Uniform2d; - PFNGLDETACHSHADERPROC DetachShader; - PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; - PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; - PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; - PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; - PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; - PFNGLGETDOUBLEVPROC GetDoublev; - PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; - PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; - PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; - PFNGLDISPATCHCOMPUTEPROC DispatchCompute; - PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; - PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; - PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; - PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; - PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; - PFNGLSAMPLECOVERAGEPROC SampleCoverage; - PFNGLBUFFERSUBDATAPROC BufferSubData; - PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; - PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; - PFNGLGETPOINTERVPROC GetPointerv; - PFNGLGETNUNIFORMIVPROC GetnUniformiv; - PFNGLBLENDEQUATIONPROC BlendEquation; - PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; - PFNGLGETNUNIFORMFVPROC GetnUniformfv; - PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; - PFNGLUNIFORM2FVPROC Uniform2fv; - PFNGLUNIFORM3FPROC Uniform3f; - PFNGLGENERATEMIPMAPPROC GenerateMipmap; - PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; - PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; - PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers; - PFNGLSCISSORPROC Scissor; - PFNGLMAPBUFFERRANGEPROC MapBufferRange; - PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; - PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; - PFNGLUNIFORM2FPROC Uniform2f; - PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; - PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; - PFNGLISENABLEDPROC IsEnabled; - PFNGLCLEARBUFFERFIPROC ClearBufferfi; - PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; - PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; - PFNGLPOINTPARAMETERFPROC PointParameterf; - PFNGLGENVERTEXARRAYSPROC GenVertexArrays; - PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; - PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; - PFNGLDELETETEXTURESPROC DeleteTextures; - PFNGLBEGINQUERYPROC BeginQuery; - PFNGLUNIFORM4DVPROC Uniform4dv; - PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; - PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; - PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; - PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; - PFNGLUNIFORM3IPROC Uniform3i; - PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; - PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; - PFNGLSHADERSOURCEPROC ShaderSource; - PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; - PFNGLFINISHPROC Finish; - PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; - PFNGLDELETEPROGRAMPROC DeleteProgram; - PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; - PFNGLREADBUFFERPROC ReadBuffer; - PFNGLGENBUFFERSPROC GenBuffers; - PFNGLCLEARDEPTHFPROC ClearDepthf; - PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; - PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; - PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; - PFNGLBINDSAMPLERSPROC BindSamplers; - PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; - PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; - PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; - PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; - PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; - PFNGLPOLYGONMODEPROC PolygonMode; - PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; - PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; - PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; - PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; - PFNGLISSYNCPROC IsSync; - PFNGLTEXSTORAGE1DPROC TexStorage1D; - PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; - PFNGLISENABLEDIPROC IsEnabledi; - PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; - PFNGLGETBOOLEANI_VPROC GetBooleani_v; - PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; - PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; - PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; - PFNGLGETBOOLEANVPROC GetBooleanv; - PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; - PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; - PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; - PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; - PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; - PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; - PFNGLDELETESYNCPROC DeleteSync; - PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; - PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; - PFNGLSCISSORINDEXEDPROC ScissorIndexed; - PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; - PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; - PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; - PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; - PFNGLBINDBUFFERSBASEPROC BindBuffersBase; - PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; - PFNGLISSHADERPROC IsShader; - PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; - PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; - PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; - PFNGLBUFFERSTORAGEPROC BufferStorage; - PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; - PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; - PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; - PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; - PFNGLSTENCILMASKPROC StencilMask; - PFNGLBINDSAMPLERPROC BindSampler; - PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; - PFNGLBINDIMAGETEXTUREPROC BindImageTexture; - PFNGLDRAWBUFFERSPROC DrawBuffers; - PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; - PFNGLGETTEXIMAGEPROC GetTexImage; - PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; - PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; - PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; - PFNGLUNIFORM1UIPROC Uniform1ui; - PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; - PFNGLENDQUERYPROC EndQuery; - PFNGLGETUNIFORMUIVPROC GetUniformuiv; - PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; - PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; - PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; - PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; - PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; - PFNGLUNIFORM1FPROC Uniform1f; - PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; - PFNGLREADPIXELSPROC ReadPixels; - PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; - PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; - PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; - PFNGLCREATESHADERPROC CreateShader; - PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; - PFNGLATTACHSHADERPROC AttachShader; - PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; - PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; - PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; - PFNGLUNIFORM2IVPROC Uniform2iv; - PFNGLBINDBUFFERRANGEPROC BindBufferRange; - PFNGLTEXPARAMETERIVPROC TexParameteriv; - PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; - PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; - PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage; - PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; - PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; - PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; - PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; - PFNGLVIEWPORTPROC Viewport; - PFNGLBLENDFUNCIPROC BlendFunci; - PFNGLPOLYGONOFFSETPROC PolygonOffset; - PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; - PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; - PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; - PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; - PFNGLOBJECTLABELPROC ObjectLabel; - PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; - PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; - PFNGLBINDBUFFERSRANGEPROC BindBuffersRange; - PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; - PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; - PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; - PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; - PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; - PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; - PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; - PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; - PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; - PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; - PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; - PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; - PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; - PFNGLSTENCILOPPROC StencilOp; - PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; - PFNGLPOINTPARAMETERIPROC PointParameteri; - PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; - PFNGLCLEARBUFFERFVPROC ClearBufferfv; - PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; - PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; - PFNGLPOINTPARAMETERIVPROC PointParameteriv; - PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; - PFNGLTEXTUREVIEWPROC TextureView; - PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; - PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; - PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; - PFNGLQUERYCOUNTERPROC QueryCounter; - PFNGLGETUNIFORMFVPROC GetUniformfv; - PFNGLCLEARSTENCILPROC ClearStencil; - PFNGLGETPROGRAMIVPROC GetProgramiv; - PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; - PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; - PFNGLUNIFORM1IVPROC Uniform1iv; - PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; - PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; - PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; - PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; - PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; - PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; - PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; - PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; - PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; - PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; - PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; - PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; - PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; - PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; - PFNGLTEXPARAMETERIIVPROC TexParameterIiv; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; - PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; - PFNGLGETUNIFORMINDICESPROC GetUniformIndices; - PFNGLGETSHADERIVPROC GetShaderiv; - PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; - PFNGLUNIFORM3UIVPROC Uniform3uiv; - PFNGLPATCHPARAMETERIPROC PatchParameteri; - PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; - PFNGLWAITSYNCPROC WaitSync; - PFNGLCLEARTEXIMAGEPROC ClearTexImage; - PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; - PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; - PFNGLDEPTHRANGEPROC DepthRange; - PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; - PFNGLISRENDERBUFFERPROC IsRenderbuffer; - PFNGLCLEARBUFFERIVPROC ClearBufferiv; - PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; - PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; - PFNGLUSEPROGRAMPROC UseProgram; - PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; - PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; - PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; - PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; - PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; - PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; - PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; - PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; - PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; - PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; - PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; - PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; - PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; - PFNGLUNIFORM3DVPROC Uniform3dv; - PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; - PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; - PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; - PFNGLUNIFORM4DPROC Uniform4d; - PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; - PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; - PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; - PFNGLTEXPARAMETERIPROC TexParameteri; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; - PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; - PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; - PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; - PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; - PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; - PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; - PFNGLGETSYNCIVPROC GetSynciv; - PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; - PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; - PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; - PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; - PFNGLGENQUERIESPROC GenQueries; - PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; - PFNGLTEXBUFFERPROC TexBuffer; - PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; - PFNGLDISABLEPROC Disable; - PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; - PFNGLISSAMPLERPROC IsSampler; - PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; - PFNGLBINDVERTEXARRAYPROC BindVertexArray; - PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; - PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; - PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; - PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; - PFNGLGETSTRINGIPROC GetStringi; - PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; - PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; - PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; - PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; - PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; - PFNGLUNIFORM2IPROC Uniform2i; - PFNGLDRAWBUFFERPROC DrawBuffer; - PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; - PFNGLDELETEBUFFERSPROC DeleteBuffers; - PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; - PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; - PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; - PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; - PFNGLBLENDBARRIERPROC BlendBarrier; - PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; - PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; - PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; - PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; - PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; - PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; - PFNGLBINDTEXTURESPROC BindTextures; - PFNGLUNIFORM3DPROC Uniform3d; - PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; - PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; - PFNGLLINEWIDTHPROC LineWidth; - PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; - PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; - PFNGLUNIFORM1DVPROC Uniform1dv; - PFNGLCULLFACEPROC CullFace; - PFNGLCREATEPROGRAMPROC CreateProgram; - PFNGLUNIFORM4IPROC Uniform4i; - PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; - PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; - PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; - PFNGLUNIFORM4IVPROC Uniform4iv; - PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; - PFNGLBINDIMAGETEXTURESPROC BindImageTextures; - PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; - PFNGLFRONTFACEPROC FrontFace; - PFNGLPOPDEBUGGROUPPROC PopDebugGroup; - PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; - PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; - PFNGLISVERTEXARRAYPROC IsVertexArray; - PFNGLSCISSORARRAYVPROC ScissorArrayv; - PFNGLVALIDATEPROGRAMPROC ValidateProgram; - PFNGLUNIFORM2UIVPROC Uniform2uiv; - PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; - PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; - PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; - PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; - PFNGLTEXSTORAGE3DPROC TexStorage3D; - PFNGLPIXELSTOREFPROC PixelStoref; - PFNGLDEPTHRANGEFPROC DepthRangef; - PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; - PFNGLUNIFORM1UIVPROC Uniform1uiv; - PFNGLDISABLEIPROC Disablei; - PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; - PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; - PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; - PFNGLBLENDCOLORPROC BlendColor; - PFNGLGENSAMPLERSPROC GenSamplers; - PFNGLCOLORMASKIPROC ColorMaski; - PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; - PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; - PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; - PFNGLDELETESAMPLERSPROC DeleteSamplers; - PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; - PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; - PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; - PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; - PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; - PFNGLUNIFORM2DVPROC Uniform2dv; - PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; - PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; - PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; - PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; - PFNGLUNMAPBUFFERPROC UnmapBuffer; - PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; - PFNGLFENCESYNCPROC FenceSync; - PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; - PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; - PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; - PFNGLGETUNIFORMDVPROC GetUniformdv; - PFNGLTEXIMAGE3DPROC TexImage3D; - PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; - PFNGLLINKPROGRAMPROC LinkProgram; - PFNGLDELETEQUERIESPROC DeleteQueries; - PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; - PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; - PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; - PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; - PFNGLPROVOKINGVERTEXPROC ProvokingVertex; - PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; - PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; - PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; - PFNGLDRAWARRAYSPROC DrawArrays; - PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; - PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; - PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; - PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; - PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; - PFNGLDRAWELEMENTSPROC DrawElements; - PFNGLGETSHADERSOURCEPROC GetShaderSource; - PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; - PFNGLGETERRORPROC GetError; - PFNGLISBUFFERPROC IsBuffer; - PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; - PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; - PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; - PFNGLUNIFORM2UIPROC Uniform2ui; - PFNGLSTENCILFUNCPROC StencilFunc; - PFNGLENABLEIPROC Enablei; - PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; - PFNGLGETINTEGER64I_VPROC GetInteger64i_v; - PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; - PFNGLUNIFORM4UIPROC Uniform4ui; - PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; - PFNGLREADNPIXELSPROC ReadnPixels; - PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; - PFNGLPOINTSIZEPROC PointSize; - PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; - PFNGLVIEWPORTARRAYVPROC ViewportArrayv; - PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; - PFNGLUNIFORM3UIPROC Uniform3ui; - PFNGLUNIFORM4UIVPROC Uniform4uiv; - PFNGLUNIFORM3IVPROC Uniform3iv; - PFNGLUNIFORM4FPROC Uniform4f; - PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; - PFNGLGETINTEGERI_VPROC GetIntegeri_v; - PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; - PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; - PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; - PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; - PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; - PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; - PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; - PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; - PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; - PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; - PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; - PFNGLTEXPARAMETERFVPROC TexParameterfv; - PFNGLMAPBUFFERPROC MapBuffer; - PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; - PFNGLMINSAMPLESHADINGPROC MinSampleShading; - PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; - PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; - PFNGLGETPROGRAMBINARYPROC GetProgramBinary; - PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; - PFNGLDEPTHMASKPROC DepthMask; - PFNGLACTIVETEXTUREPROC ActiveTexture; - PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; - PFNGLPATCHPARAMETERFVPROC PatchParameterfv; - PFNGLSHADERBINARYPROC ShaderBinary; - PFNGLGETFLOATVPROC GetFloatv; - PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; - PFNGLTEXIMAGE1DPROC TexImage1D; - PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; - PFNGLCLEARBUFFERDATAPROC ClearBufferData; - PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; - PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; - PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; - PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; - PFNGLGETSTRINGPROC GetString; - PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; - PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; - PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; - PFNGLTEXBUFFERRANGEPROC TexBufferRange; - PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; - PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; - PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; - PFNGLDELETESHADERPROC DeleteShader; - PFNGLGETFLOATI_VPROC GetFloati_v; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; - PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; -} mg_gl_api; - -MP_API mg_gl_api* mg_gl_get_api(void); - -#define glPointParameterfv mg_gl_get_api()->PointParameterfv -#define glUniform3fv mg_gl_get_api()->Uniform3fv -#define glUniform1i mg_gl_get_api()->Uniform1i -#define glVertexAttribP3ui mg_gl_get_api()->VertexAttribP3ui -#define glVertexAttrib4sv mg_gl_get_api()->VertexAttrib4sv -#define glGetBufferParameteriv mg_gl_get_api()->GetBufferParameteriv -#define glProgramUniform2dv mg_gl_get_api()->ProgramUniform2dv -#define glClampColor mg_gl_get_api()->ClampColor -#define glCompressedTexImage3D mg_gl_get_api()->CompressedTexImage3D -#define glProgramUniformMatrix2x4fv mg_gl_get_api()->ProgramUniformMatrix2x4fv -#define glProgramUniform2d mg_gl_get_api()->ProgramUniform2d -#define glBindBuffer mg_gl_get_api()->BindBuffer -#define glGetUniformBlockIndex mg_gl_get_api()->GetUniformBlockIndex -#define glInvalidateFramebuffer mg_gl_get_api()->InvalidateFramebuffer -#define glPixelStorei mg_gl_get_api()->PixelStorei -#define glBindTexture mg_gl_get_api()->BindTexture -#define glVertexAttrib4Nuiv mg_gl_get_api()->VertexAttrib4Nuiv -#define glIsTexture mg_gl_get_api()->IsTexture -#define glVertexAttrib4d mg_gl_get_api()->VertexAttrib4d -#define glProgramUniformMatrix2x4dv mg_gl_get_api()->ProgramUniformMatrix2x4dv -#define glGetObjectLabel mg_gl_get_api()->GetObjectLabel -#define glBeginConditionalRender mg_gl_get_api()->BeginConditionalRender -#define glIsFramebuffer mg_gl_get_api()->IsFramebuffer -#define glCompileShader mg_gl_get_api()->CompileShader -#define glVertexAttribBinding mg_gl_get_api()->VertexAttribBinding -#define glVertexAttribL1dv mg_gl_get_api()->VertexAttribL1dv -#define glUniform1fv mg_gl_get_api()->Uniform1fv -#define glTexImage2D mg_gl_get_api()->TexImage2D -#define glFlush mg_gl_get_api()->Flush -#define glVertexAttribP2uiv mg_gl_get_api()->VertexAttribP2uiv -#define glIsProgram mg_gl_get_api()->IsProgram -#define glProgramUniform4fv mg_gl_get_api()->ProgramUniform4fv -#define glVertexAttribLPointer mg_gl_get_api()->VertexAttribLPointer -#define glClientWaitSync mg_gl_get_api()->ClientWaitSync -#define glUniform1d mg_gl_get_api()->Uniform1d -#define glProgramUniform1ui mg_gl_get_api()->ProgramUniform1ui -#define glColorMask mg_gl_get_api()->ColorMask -#define glClearDepth mg_gl_get_api()->ClearDepth -#define glGetInteger64v mg_gl_get_api()->GetInteger64v -#define glVertexAttribP2ui mg_gl_get_api()->VertexAttribP2ui -#define glVertexAttrib2dv mg_gl_get_api()->VertexAttrib2dv -#define glVertexAttribI4ui mg_gl_get_api()->VertexAttribI4ui -#define glBlendEquationi mg_gl_get_api()->BlendEquationi -#define glDrawRangeElements mg_gl_get_api()->DrawRangeElements -#define glInvalidateTexImage mg_gl_get_api()->InvalidateTexImage -#define glSampleMaski mg_gl_get_api()->SampleMaski -#define glGetProgramResourceLocationIndex mg_gl_get_api()->GetProgramResourceLocationIndex -#define glVertexAttrib4dv mg_gl_get_api()->VertexAttrib4dv -#define glBindFragDataLocation mg_gl_get_api()->BindFragDataLocation -#define glGetFragDataIndex mg_gl_get_api()->GetFragDataIndex -#define glGetTexLevelParameterfv mg_gl_get_api()->GetTexLevelParameterfv -#define glVertexAttribP4uiv mg_gl_get_api()->VertexAttribP4uiv -#define glMultiDrawArrays mg_gl_get_api()->MultiDrawArrays -#define glIsTransformFeedback mg_gl_get_api()->IsTransformFeedback -#define glGetUniformiv mg_gl_get_api()->GetUniformiv -#define glBufferData mg_gl_get_api()->BufferData -#define glGetCompressedTexImage mg_gl_get_api()->GetCompressedTexImage -#define glVertexAttrib3sv mg_gl_get_api()->VertexAttrib3sv -#define glIsQuery mg_gl_get_api()->IsQuery -#define glClearColor mg_gl_get_api()->ClearColor -#define glBlendFunc mg_gl_get_api()->BlendFunc -#define glGetDoublei_v mg_gl_get_api()->GetDoublei_v -#define glFramebufferTexture mg_gl_get_api()->FramebufferTexture -#define glStencilMaskSeparate mg_gl_get_api()->StencilMaskSeparate -#define glPrimitiveRestartIndex mg_gl_get_api()->PrimitiveRestartIndex -#define glVertexAttribP1ui mg_gl_get_api()->VertexAttribP1ui -#define glVertexAttribIFormat mg_gl_get_api()->VertexAttribIFormat -#define glMemoryBarrier mg_gl_get_api()->MemoryBarrier -#define glGetSubroutineUniformLocation mg_gl_get_api()->GetSubroutineUniformLocation -#define glBindRenderbuffer mg_gl_get_api()->BindRenderbuffer -#define glPushDebugGroup mg_gl_get_api()->PushDebugGroup -#define glGenTextures mg_gl_get_api()->GenTextures -#define glGetIntegerv mg_gl_get_api()->GetIntegerv -#define glGetQueryObjectuiv mg_gl_get_api()->GetQueryObjectuiv -#define glUniform4fv mg_gl_get_api()->Uniform4fv -#define glHint mg_gl_get_api()->Hint -#define glTexParameterf mg_gl_get_api()->TexParameterf -#define glProgramUniform2fv mg_gl_get_api()->ProgramUniform2fv -#define glDrawRangeElementsBaseVertex mg_gl_get_api()->DrawRangeElementsBaseVertex -#define glClear mg_gl_get_api()->Clear -#define glBindBufferBase mg_gl_get_api()->BindBufferBase -#define glGetQueryiv mg_gl_get_api()->GetQueryiv -#define glProgramBinary mg_gl_get_api()->ProgramBinary -#define glScissorIndexedv mg_gl_get_api()->ScissorIndexedv -#define glVertexAttrib1fv mg_gl_get_api()->VertexAttrib1fv -#define glTexStorage2D mg_gl_get_api()->TexStorage2D -#define glVertexAttrib4f mg_gl_get_api()->VertexAttrib4f -#define glProgramParameteri mg_gl_get_api()->ProgramParameteri -#define glEnable mg_gl_get_api()->Enable -#define glGetBufferPointerv mg_gl_get_api()->GetBufferPointerv -#define glLogicOp mg_gl_get_api()->LogicOp -#define glDepthFunc mg_gl_get_api()->DepthFunc -#define glVertexAttrib1dv mg_gl_get_api()->VertexAttrib1dv -#define glUniform2d mg_gl_get_api()->Uniform2d -#define glDetachShader mg_gl_get_api()->DetachShader -#define glVertexBindingDivisor mg_gl_get_api()->VertexBindingDivisor -#define glIsProgramPipeline mg_gl_get_api()->IsProgramPipeline -#define glProgramUniform1fv mg_gl_get_api()->ProgramUniform1fv -#define glCopyTexSubImage2D mg_gl_get_api()->CopyTexSubImage2D -#define glVertexAttrib2fv mg_gl_get_api()->VertexAttrib2fv -#define glGetDoublev mg_gl_get_api()->GetDoublev -#define glResumeTransformFeedback mg_gl_get_api()->ResumeTransformFeedback -#define glProgramUniform4d mg_gl_get_api()->ProgramUniform4d -#define glProgramUniform4uiv mg_gl_get_api()->ProgramUniform4uiv -#define glDispatchCompute mg_gl_get_api()->DispatchCompute -#define glVertexAttrib4bv mg_gl_get_api()->VertexAttrib4bv -#define glGetSamplerParameterfv mg_gl_get_api()->GetSamplerParameterfv -#define glProgramUniform3iv mg_gl_get_api()->ProgramUniform3iv -#define glVertexAttrib1s mg_gl_get_api()->VertexAttrib1s -#define glVertexAttribI2i mg_gl_get_api()->VertexAttribI2i -#define glSampleCoverage mg_gl_get_api()->SampleCoverage -#define glBufferSubData mg_gl_get_api()->BufferSubData -#define glVertexAttribI1ui mg_gl_get_api()->VertexAttribI1ui -#define glEndConditionalRender mg_gl_get_api()->EndConditionalRender -#define glGetPointerv mg_gl_get_api()->GetPointerv -#define glGetnUniformiv mg_gl_get_api()->GetnUniformiv -#define glBlendEquation mg_gl_get_api()->BlendEquation -#define glVertexAttribI4iv mg_gl_get_api()->VertexAttribI4iv -#define glGetnUniformfv mg_gl_get_api()->GetnUniformfv -#define glVertexAttrib4Nsv mg_gl_get_api()->VertexAttrib4Nsv -#define glUniform2fv mg_gl_get_api()->Uniform2fv -#define glUniform3f mg_gl_get_api()->Uniform3f -#define glGenerateMipmap mg_gl_get_api()->GenerateMipmap -#define glGenRenderbuffers mg_gl_get_api()->GenRenderbuffers -#define glDrawElementsBaseVertex mg_gl_get_api()->DrawElementsBaseVertex -#define glBindVertexBuffers mg_gl_get_api()->BindVertexBuffers -#define glScissor mg_gl_get_api()->Scissor -#define glMapBufferRange mg_gl_get_api()->MapBufferRange -#define glProgramUniformMatrix4x2fv mg_gl_get_api()->ProgramUniformMatrix4x2fv -#define glGetTexParameterfv mg_gl_get_api()->GetTexParameterfv -#define glUniform2f mg_gl_get_api()->Uniform2f -#define glVertexAttribFormat mg_gl_get_api()->VertexAttribFormat -#define glUniformMatrix2dv mg_gl_get_api()->UniformMatrix2dv -#define glIsEnabled mg_gl_get_api()->IsEnabled -#define glClearBufferfi mg_gl_get_api()->ClearBufferfi -#define glGetRenderbufferParameteriv mg_gl_get_api()->GetRenderbufferParameteriv -#define glFramebufferTextureLayer mg_gl_get_api()->FramebufferTextureLayer -#define glPointParameterf mg_gl_get_api()->PointParameterf -#define glGenVertexArrays mg_gl_get_api()->GenVertexArrays -#define glGetAttachedShaders mg_gl_get_api()->GetAttachedShaders -#define glFramebufferRenderbuffer mg_gl_get_api()->FramebufferRenderbuffer -#define glDeleteTextures mg_gl_get_api()->DeleteTextures -#define glBeginQuery mg_gl_get_api()->BeginQuery -#define glUniform4dv mg_gl_get_api()->Uniform4dv -#define glVertexAttribIPointer mg_gl_get_api()->VertexAttribIPointer -#define glGetSamplerParameterIiv mg_gl_get_api()->GetSamplerParameterIiv -#define glBeginQueryIndexed mg_gl_get_api()->BeginQueryIndexed -#define glBeginTransformFeedback mg_gl_get_api()->BeginTransformFeedback -#define glUniform3i mg_gl_get_api()->Uniform3i -#define glGetActiveUniformName mg_gl_get_api()->GetActiveUniformName -#define glGetProgramResourceLocation mg_gl_get_api()->GetProgramResourceLocation -#define glShaderSource mg_gl_get_api()->ShaderSource -#define glSamplerParameterIiv mg_gl_get_api()->SamplerParameterIiv -#define glFinish mg_gl_get_api()->Finish -#define glDrawArraysInstancedBaseInstance mg_gl_get_api()->DrawArraysInstancedBaseInstance -#define glDeleteProgram mg_gl_get_api()->DeleteProgram -#define glMultiDrawElementsBaseVertex mg_gl_get_api()->MultiDrawElementsBaseVertex -#define glReadBuffer mg_gl_get_api()->ReadBuffer -#define glGenBuffers mg_gl_get_api()->GenBuffers -#define glClearDepthf mg_gl_get_api()->ClearDepthf -#define glVertexAttribPointer mg_gl_get_api()->VertexAttribPointer -#define glVertexAttribL4dv mg_gl_get_api()->VertexAttribL4dv -#define glTexStorage2DMultisample mg_gl_get_api()->TexStorage2DMultisample -#define glBindSamplers mg_gl_get_api()->BindSamplers -#define glEnableVertexAttribArray mg_gl_get_api()->EnableVertexAttribArray -#define glVertexAttrib4ubv mg_gl_get_api()->VertexAttrib4ubv -#define glGetDebugMessageLog mg_gl_get_api()->GetDebugMessageLog -#define glDisableVertexAttribArray mg_gl_get_api()->DisableVertexAttribArray -#define glDrawElementsInstancedBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseInstance -#define glPolygonMode mg_gl_get_api()->PolygonMode -#define glVertexAttribP1uiv mg_gl_get_api()->VertexAttribP1uiv -#define glProgramUniform1iv mg_gl_get_api()->ProgramUniform1iv -#define glVertexAttribI1i mg_gl_get_api()->VertexAttribI1i -#define glGetTexLevelParameteriv mg_gl_get_api()->GetTexLevelParameteriv -#define glIsSync mg_gl_get_api()->IsSync -#define glTexStorage1D mg_gl_get_api()->TexStorage1D -#define glGetVertexAttribIiv mg_gl_get_api()->GetVertexAttribIiv -#define glIsEnabledi mg_gl_get_api()->IsEnabledi -#define glMultiDrawElementsIndirect mg_gl_get_api()->MultiDrawElementsIndirect -#define glGetBooleani_v mg_gl_get_api()->GetBooleani_v -#define glGetInternalformativ mg_gl_get_api()->GetInternalformativ -#define glVertexAttribI4ubv mg_gl_get_api()->VertexAttribI4ubv -#define glVertexAttrib2s mg_gl_get_api()->VertexAttrib2s -#define glGetBooleanv mg_gl_get_api()->GetBooleanv -#define glVertexAttrib4iv mg_gl_get_api()->VertexAttrib4iv -#define glGetObjectPtrLabel mg_gl_get_api()->GetObjectPtrLabel -#define glUniformMatrix2x4dv mg_gl_get_api()->UniformMatrix2x4dv -#define glProgramUniform4ui mg_gl_get_api()->ProgramUniform4ui -#define glGetVertexAttribdv mg_gl_get_api()->GetVertexAttribdv -#define glViewportIndexedf mg_gl_get_api()->ViewportIndexedf -#define glDeleteSync mg_gl_get_api()->DeleteSync -#define glCopyImageSubData mg_gl_get_api()->CopyImageSubData -#define glPrimitiveBoundingBox mg_gl_get_api()->PrimitiveBoundingBox -#define glScissorIndexed mg_gl_get_api()->ScissorIndexed -#define glGenTransformFeedbacks mg_gl_get_api()->GenTransformFeedbacks -#define glMemoryBarrierByRegion mg_gl_get_api()->MemoryBarrierByRegion -#define glDeleteTransformFeedbacks mg_gl_get_api()->DeleteTransformFeedbacks -#define glProgramUniform4f mg_gl_get_api()->ProgramUniform4f -#define glBindBuffersBase mg_gl_get_api()->BindBuffersBase -#define glGetTexParameterIuiv mg_gl_get_api()->GetTexParameterIuiv -#define glIsShader mg_gl_get_api()->IsShader -#define glProgramUniform3i mg_gl_get_api()->ProgramUniform3i -#define glGetActiveAtomicCounterBufferiv mg_gl_get_api()->GetActiveAtomicCounterBufferiv -#define glProgramUniformMatrix3x4fv mg_gl_get_api()->ProgramUniformMatrix3x4fv -#define glBufferStorage mg_gl_get_api()->BufferStorage -#define glGetUniformSubroutineuiv mg_gl_get_api()->GetUniformSubroutineuiv -#define glRenderbufferStorageMultisample mg_gl_get_api()->RenderbufferStorageMultisample -#define glGetMultisamplefv mg_gl_get_api()->GetMultisamplefv -#define glVertexAttribDivisor mg_gl_get_api()->VertexAttribDivisor -#define glStencilMask mg_gl_get_api()->StencilMask -#define glBindSampler mg_gl_get_api()->BindSampler -#define glUniformMatrix4dv mg_gl_get_api()->UniformMatrix4dv -#define glBindImageTexture mg_gl_get_api()->BindImageTexture -#define glDrawBuffers mg_gl_get_api()->DrawBuffers -#define glVertexAttrib4Nub mg_gl_get_api()->VertexAttrib4Nub -#define glGetTexImage mg_gl_get_api()->GetTexImage -#define glVertexAttrib3dv mg_gl_get_api()->VertexAttrib3dv -#define glBlitFramebuffer mg_gl_get_api()->BlitFramebuffer -#define glVertexAttrib2d mg_gl_get_api()->VertexAttrib2d -#define glUniform1ui mg_gl_get_api()->Uniform1ui -#define glInvalidateBufferSubData mg_gl_get_api()->InvalidateBufferSubData -#define glEndQuery mg_gl_get_api()->EndQuery -#define glGetUniformuiv mg_gl_get_api()->GetUniformuiv -#define glGetFramebufferAttachmentParameteriv mg_gl_get_api()->GetFramebufferAttachmentParameteriv -#define glProgramUniform2f mg_gl_get_api()->ProgramUniform2f -#define glUniformMatrix3x2fv mg_gl_get_api()->UniformMatrix3x2fv -#define glBindVertexBuffer mg_gl_get_api()->BindVertexBuffer -#define glVertexAttrib2sv mg_gl_get_api()->VertexAttrib2sv -#define glUniform1f mg_gl_get_api()->Uniform1f -#define glDebugMessageCallback mg_gl_get_api()->DebugMessageCallback -#define glReadPixels mg_gl_get_api()->ReadPixels -#define glCompressedTexSubImage1D mg_gl_get_api()->CompressedTexSubImage1D -#define glDrawArraysIndirect mg_gl_get_api()->DrawArraysIndirect -#define glBlendFuncSeparate mg_gl_get_api()->BlendFuncSeparate -#define glCreateShader mg_gl_get_api()->CreateShader -#define glGetTransformFeedbackVarying mg_gl_get_api()->GetTransformFeedbackVarying -#define glAttachShader mg_gl_get_api()->AttachShader -#define glUniformMatrix2x3dv mg_gl_get_api()->UniformMatrix2x3dv -#define glProgramUniform3uiv mg_gl_get_api()->ProgramUniform3uiv -#define glMultiDrawArraysIndirect mg_gl_get_api()->MultiDrawArraysIndirect -#define glUniform2iv mg_gl_get_api()->Uniform2iv -#define glBindBufferRange mg_gl_get_api()->BindBufferRange -#define glTexParameteriv mg_gl_get_api()->TexParameteriv -#define glVertexAttribL3d mg_gl_get_api()->VertexAttribL3d -#define glTexImage3DMultisample mg_gl_get_api()->TexImage3DMultisample -#define glClearTexSubImage mg_gl_get_api()->ClearTexSubImage -#define glVertexAttrib4Nusv mg_gl_get_api()->VertexAttrib4Nusv -#define glInvalidateSubFramebuffer mg_gl_get_api()->InvalidateSubFramebuffer -#define glGetShaderInfoLog mg_gl_get_api()->GetShaderInfoLog -#define glVertexAttribP4ui mg_gl_get_api()->VertexAttribP4ui -#define glViewport mg_gl_get_api()->Viewport -#define glBlendFunci mg_gl_get_api()->BlendFunci -#define glPolygonOffset mg_gl_get_api()->PolygonOffset -#define glProgramUniform2ui mg_gl_get_api()->ProgramUniform2ui -#define glSamplerParameteri mg_gl_get_api()->SamplerParameteri -#define glGetFramebufferParameteriv mg_gl_get_api()->GetFramebufferParameteriv -#define glVertexAttribI2iv mg_gl_get_api()->VertexAttribI2iv -#define glObjectLabel mg_gl_get_api()->ObjectLabel -#define glCompressedTexImage1D mg_gl_get_api()->CompressedTexImage1D -#define glInvalidateTexSubImage mg_gl_get_api()->InvalidateTexSubImage -#define glBindBuffersRange mg_gl_get_api()->BindBuffersRange -#define glCopyBufferSubData mg_gl_get_api()->CopyBufferSubData -#define glVertexAttrib4Nbv mg_gl_get_api()->VertexAttrib4Nbv -#define glObjectPtrLabel mg_gl_get_api()->ObjectPtrLabel -#define glProgramUniform3d mg_gl_get_api()->ProgramUniform3d -#define glGetProgramPipelineiv mg_gl_get_api()->GetProgramPipelineiv -#define glTexStorage3DMultisample mg_gl_get_api()->TexStorage3DMultisample -#define glVertexAttribL3dv mg_gl_get_api()->VertexAttribL3dv -#define glDeleteFramebuffers mg_gl_get_api()->DeleteFramebuffers -#define glCheckFramebufferStatus mg_gl_get_api()->CheckFramebufferStatus -#define glVertexAttribL2dv mg_gl_get_api()->VertexAttribL2dv -#define glProgramUniform1dv mg_gl_get_api()->ProgramUniform1dv -#define glVertexAttrib2f mg_gl_get_api()->VertexAttrib2f -#define glGetVertexAttribIuiv mg_gl_get_api()->GetVertexAttribIuiv -#define glStencilOp mg_gl_get_api()->StencilOp -#define glVertexAttrib3d mg_gl_get_api()->VertexAttrib3d -#define glPointParameteri mg_gl_get_api()->PointParameteri -#define glVertexAttribI1uiv mg_gl_get_api()->VertexAttribI1uiv -#define glClearBufferfv mg_gl_get_api()->ClearBufferfv -#define glBindFragDataLocationIndexed mg_gl_get_api()->BindFragDataLocationIndexed -#define glProgramUniform1d mg_gl_get_api()->ProgramUniform1d -#define glPointParameteriv mg_gl_get_api()->PointParameteriv -#define glFlushMappedBufferRange mg_gl_get_api()->FlushMappedBufferRange -#define glTextureView mg_gl_get_api()->TextureView -#define glGetProgramPipelineInfoLog mg_gl_get_api()->GetProgramPipelineInfoLog -#define glCopyTexImage2D mg_gl_get_api()->CopyTexImage2D -#define glProgramUniform3dv mg_gl_get_api()->ProgramUniform3dv -#define glQueryCounter mg_gl_get_api()->QueryCounter -#define glGetUniformfv mg_gl_get_api()->GetUniformfv -#define glClearStencil mg_gl_get_api()->ClearStencil -#define glGetProgramiv mg_gl_get_api()->GetProgramiv -#define glUniformSubroutinesuiv mg_gl_get_api()->UniformSubroutinesuiv -#define glGetProgramStageiv mg_gl_get_api()->GetProgramStageiv -#define glUniform1iv mg_gl_get_api()->Uniform1iv -#define glGetVertexAttribPointerv mg_gl_get_api()->GetVertexAttribPointerv -#define glTexSubImage1D mg_gl_get_api()->TexSubImage1D -#define glStencilFuncSeparate mg_gl_get_api()->StencilFuncSeparate -#define glGetSubroutineIndex mg_gl_get_api()->GetSubroutineIndex -#define glDrawElementsInstanced mg_gl_get_api()->DrawElementsInstanced -#define glBlendFuncSeparatei mg_gl_get_api()->BlendFuncSeparatei -#define glProgramUniformMatrix3x2dv mg_gl_get_api()->ProgramUniformMatrix3x2dv -#define glGetActiveUniformsiv mg_gl_get_api()->GetActiveUniformsiv -#define glUniformMatrix3fv mg_gl_get_api()->UniformMatrix3fv -#define glProgramUniformMatrix3x4dv mg_gl_get_api()->ProgramUniformMatrix3x4dv -#define glGetSamplerParameterIuiv mg_gl_get_api()->GetSamplerParameterIuiv -#define glVertexAttribI4i mg_gl_get_api()->VertexAttribI4i -#define glBlendEquationSeparate mg_gl_get_api()->BlendEquationSeparate -#define glUniformMatrix4x2fv mg_gl_get_api()->UniformMatrix4x2fv -#define glTexParameterIiv mg_gl_get_api()->TexParameterIiv -#define glDrawTransformFeedbackStream mg_gl_get_api()->DrawTransformFeedbackStream -#define glVertexAttribI1iv mg_gl_get_api()->VertexAttribI1iv -#define glGetUniformIndices mg_gl_get_api()->GetUniformIndices -#define glGetShaderiv mg_gl_get_api()->GetShaderiv -#define glGetActiveUniform mg_gl_get_api()->GetActiveUniform -#define glUniform3uiv mg_gl_get_api()->Uniform3uiv -#define glPatchParameteri mg_gl_get_api()->PatchParameteri -#define glProgramUniformMatrix2dv mg_gl_get_api()->ProgramUniformMatrix2dv -#define glWaitSync mg_gl_get_api()->WaitSync -#define glClearTexImage mg_gl_get_api()->ClearTexImage -#define glDepthRangeIndexed mg_gl_get_api()->DepthRangeIndexed -#define glGetTexParameterIiv mg_gl_get_api()->GetTexParameterIiv -#define glDepthRange mg_gl_get_api()->DepthRange -#define glGetActiveAttrib mg_gl_get_api()->GetActiveAttrib -#define glIsRenderbuffer mg_gl_get_api()->IsRenderbuffer -#define glClearBufferiv mg_gl_get_api()->ClearBufferiv -#define glProgramUniform3fv mg_gl_get_api()->ProgramUniform3fv -#define glVertexAttribI3uiv mg_gl_get_api()->VertexAttribI3uiv -#define glUseProgram mg_gl_get_api()->UseProgram -#define glGetActiveSubroutineName mg_gl_get_api()->GetActiveSubroutineName -#define glProgramUniformMatrix3fv mg_gl_get_api()->ProgramUniformMatrix3fv -#define glProgramUniformMatrix4x3dv mg_gl_get_api()->ProgramUniformMatrix4x3dv -#define glUniformMatrix4x3dv mg_gl_get_api()->UniformMatrix4x3dv -#define glProgramUniform4dv mg_gl_get_api()->ProgramUniform4dv -#define glGetBufferSubData mg_gl_get_api()->GetBufferSubData -#define glVertexAttrib4uiv mg_gl_get_api()->VertexAttrib4uiv -#define glVertexAttrib1f mg_gl_get_api()->VertexAttrib1f -#define glVertexAttrib4usv mg_gl_get_api()->VertexAttrib4usv -#define glDebugMessageInsert mg_gl_get_api()->DebugMessageInsert -#define glEndTransformFeedback mg_gl_get_api()->EndTransformFeedback -#define glTexImage2DMultisample mg_gl_get_api()->TexImage2DMultisample -#define glBindTransformFeedback mg_gl_get_api()->BindTransformFeedback -#define glUniform3dv mg_gl_get_api()->Uniform3dv -#define glUniformMatrix3x2dv mg_gl_get_api()->UniformMatrix3x2dv -#define glGetSamplerParameteriv mg_gl_get_api()->GetSamplerParameteriv -#define glVertexAttribP3uiv mg_gl_get_api()->VertexAttribP3uiv -#define glUniform4d mg_gl_get_api()->Uniform4d -#define glProgramUniformMatrix3dv mg_gl_get_api()->ProgramUniformMatrix3dv -#define glProgramUniform3ui mg_gl_get_api()->ProgramUniform3ui -#define glDeleteVertexArrays mg_gl_get_api()->DeleteVertexArrays -#define glTexParameteri mg_gl_get_api()->TexParameteri -#define glDrawElementsInstancedBaseVertex mg_gl_get_api()->DrawElementsInstancedBaseVertex -#define glGetQueryObjectui64v mg_gl_get_api()->GetQueryObjectui64v -#define glVertexAttrib4Niv mg_gl_get_api()->VertexAttrib4Niv -#define glSamplerParameterfv mg_gl_get_api()->SamplerParameterfv -#define glVertexAttribI4bv mg_gl_get_api()->VertexAttribI4bv -#define glProgramUniform1i mg_gl_get_api()->ProgramUniform1i -#define glProgramUniformMatrix4x2dv mg_gl_get_api()->ProgramUniformMatrix4x2dv -#define glGetSynciv mg_gl_get_api()->GetSynciv -#define glVertexAttrib3f mg_gl_get_api()->VertexAttrib3f -#define glGetQueryObjectiv mg_gl_get_api()->GetQueryObjectiv -#define glGetProgramInfoLog mg_gl_get_api()->GetProgramInfoLog -#define glGetActiveUniformBlockiv mg_gl_get_api()->GetActiveUniformBlockiv -#define glGenQueries mg_gl_get_api()->GenQueries -#define glProgramUniformMatrix4x3fv mg_gl_get_api()->ProgramUniformMatrix4x3fv -#define glTexBuffer mg_gl_get_api()->TexBuffer -#define glShaderStorageBlockBinding mg_gl_get_api()->ShaderStorageBlockBinding -#define glDisable mg_gl_get_api()->Disable -#define glVertexAttribI3ui mg_gl_get_api()->VertexAttribI3ui -#define glIsSampler mg_gl_get_api()->IsSampler -#define glActiveShaderProgram mg_gl_get_api()->ActiveShaderProgram -#define glBindVertexArray mg_gl_get_api()->BindVertexArray -#define glUniformMatrix2x3fv mg_gl_get_api()->UniformMatrix2x3fv -#define glDrawArraysInstanced mg_gl_get_api()->DrawArraysInstanced -#define glVertexAttribI2uiv mg_gl_get_api()->VertexAttribI2uiv -#define glGetQueryObjecti64v mg_gl_get_api()->GetQueryObjecti64v -#define glGetStringi mg_gl_get_api()->GetStringi -#define glBindProgramPipeline mg_gl_get_api()->BindProgramPipeline -#define glBindFramebuffer mg_gl_get_api()->BindFramebuffer -#define glVertexAttrib1d mg_gl_get_api()->VertexAttrib1d -#define glRenderbufferStorage mg_gl_get_api()->RenderbufferStorage -#define glReleaseShaderCompiler mg_gl_get_api()->ReleaseShaderCompiler -#define glUniform2i mg_gl_get_api()->Uniform2i -#define glDrawBuffer mg_gl_get_api()->DrawBuffer -#define glDeleteRenderbuffers mg_gl_get_api()->DeleteRenderbuffers -#define glDeleteBuffers mg_gl_get_api()->DeleteBuffers -#define glGenFramebuffers mg_gl_get_api()->GenFramebuffers -#define glProgramUniformMatrix4dv mg_gl_get_api()->ProgramUniformMatrix4dv -#define glProgramUniform3f mg_gl_get_api()->ProgramUniform3f -#define glProgramUniform2iv mg_gl_get_api()->ProgramUniform2iv -#define glBlendBarrier mg_gl_get_api()->BlendBarrier -#define glVertexAttribL2d mg_gl_get_api()->VertexAttribL2d -#define glCompressedTexSubImage2D mg_gl_get_api()->CompressedTexSubImage2D -#define glUniformMatrix2fv mg_gl_get_api()->UniformMatrix2fv -#define glSamplerParameterf mg_gl_get_api()->SamplerParameterf -#define glUniformMatrix4fv mg_gl_get_api()->UniformMatrix4fv -#define glVertexAttribI2ui mg_gl_get_api()->VertexAttribI2ui -#define glBindTextures mg_gl_get_api()->BindTextures -#define glUniform3d mg_gl_get_api()->Uniform3d -#define glViewportIndexedfv mg_gl_get_api()->ViewportIndexedfv -#define glVertexAttribI4sv mg_gl_get_api()->VertexAttribI4sv -#define glLineWidth mg_gl_get_api()->LineWidth -#define glGetVertexAttribfv mg_gl_get_api()->GetVertexAttribfv -#define glVertexAttribI3iv mg_gl_get_api()->VertexAttribI3iv -#define glUniform1dv mg_gl_get_api()->Uniform1dv -#define glCullFace mg_gl_get_api()->CullFace -#define glCreateProgram mg_gl_get_api()->CreateProgram -#define glUniform4i mg_gl_get_api()->Uniform4i -#define glUniformMatrix4x3fv mg_gl_get_api()->UniformMatrix4x3fv -#define glGetAttribLocation mg_gl_get_api()->GetAttribLocation -#define glGetShaderPrecisionFormat mg_gl_get_api()->GetShaderPrecisionFormat -#define glUniform4iv mg_gl_get_api()->Uniform4iv -#define glCompressedTexSubImage3D mg_gl_get_api()->CompressedTexSubImage3D -#define glBindImageTextures mg_gl_get_api()->BindImageTextures -#define glGetBufferParameteri64v mg_gl_get_api()->GetBufferParameteri64v -#define glFrontFace mg_gl_get_api()->FrontFace -#define glPopDebugGroup mg_gl_get_api()->PopDebugGroup -#define glVertexAttrib1sv mg_gl_get_api()->VertexAttrib1sv -#define glInvalidateBufferData mg_gl_get_api()->InvalidateBufferData -#define glIsVertexArray mg_gl_get_api()->IsVertexArray -#define glScissorArrayv mg_gl_get_api()->ScissorArrayv -#define glValidateProgram mg_gl_get_api()->ValidateProgram -#define glUniform2uiv mg_gl_get_api()->Uniform2uiv -#define glTexSubImage2D mg_gl_get_api()->TexSubImage2D -#define glDebugMessageControl mg_gl_get_api()->DebugMessageControl -#define glFramebufferParameteri mg_gl_get_api()->FramebufferParameteri -#define glGetUniformLocation mg_gl_get_api()->GetUniformLocation -#define glTexStorage3D mg_gl_get_api()->TexStorage3D -#define glPixelStoref mg_gl_get_api()->PixelStoref -#define glDepthRangef mg_gl_get_api()->DepthRangef -#define glVertexAttribI3i mg_gl_get_api()->VertexAttribI3i -#define glUniform1uiv mg_gl_get_api()->Uniform1uiv -#define glDisablei mg_gl_get_api()->Disablei -#define glGetInternalformati64v mg_gl_get_api()->GetInternalformati64v -#define glProgramUniformMatrix2x3dv mg_gl_get_api()->ProgramUniformMatrix2x3dv -#define glGetProgramResourceIndex mg_gl_get_api()->GetProgramResourceIndex -#define glBlendColor mg_gl_get_api()->BlendColor -#define glGenSamplers mg_gl_get_api()->GenSamplers -#define glColorMaski mg_gl_get_api()->ColorMaski -#define glGetGraphicsResetStatus mg_gl_get_api()->GetGraphicsResetStatus -#define glVertexAttribI4uiv mg_gl_get_api()->VertexAttribI4uiv -#define glCreateShaderProgramv mg_gl_get_api()->CreateShaderProgramv -#define glDeleteSamplers mg_gl_get_api()->DeleteSamplers -#define glVertexAttrib3s mg_gl_get_api()->VertexAttrib3s -#define glDrawTransformFeedback mg_gl_get_api()->DrawTransformFeedback -#define glVertexAttribL1d mg_gl_get_api()->VertexAttribL1d -#define glDrawElementsInstancedBaseVertexBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseVertexBaseInstance -#define glClearBufferSubData mg_gl_get_api()->ClearBufferSubData -#define glVertexAttribLFormat mg_gl_get_api()->VertexAttribLFormat -#define glUniform2dv mg_gl_get_api()->Uniform2dv -#define glCopyTexSubImage3D mg_gl_get_api()->CopyTexSubImage3D -#define glCopyTexImage1D mg_gl_get_api()->CopyTexImage1D -#define glFramebufferTexture3D mg_gl_get_api()->FramebufferTexture3D -#define glVertexAttribL4d mg_gl_get_api()->VertexAttribL4d -#define glUnmapBuffer mg_gl_get_api()->UnmapBuffer -#define glGetQueryIndexediv mg_gl_get_api()->GetQueryIndexediv -#define glFenceSync mg_gl_get_api()->FenceSync -#define glDispatchComputeIndirect mg_gl_get_api()->DispatchComputeIndirect -#define glSamplerParameterIuiv mg_gl_get_api()->SamplerParameterIuiv -#define glGetFragDataLocation mg_gl_get_api()->GetFragDataLocation -#define glGetUniformdv mg_gl_get_api()->GetUniformdv -#define glTexImage3D mg_gl_get_api()->TexImage3D -#define glValidateProgramPipeline mg_gl_get_api()->ValidateProgramPipeline -#define glLinkProgram mg_gl_get_api()->LinkProgram -#define glDeleteQueries mg_gl_get_api()->DeleteQueries -#define glFramebufferTexture1D mg_gl_get_api()->FramebufferTexture1D -#define glGetActiveSubroutineUniformName mg_gl_get_api()->GetActiveSubroutineUniformName -#define glProgramUniformMatrix3x2fv mg_gl_get_api()->ProgramUniformMatrix3x2fv -#define glGetTexParameteriv mg_gl_get_api()->GetTexParameteriv -#define glProvokingVertex mg_gl_get_api()->ProvokingVertex -#define glBindAttribLocation mg_gl_get_api()->BindAttribLocation -#define glVertexAttrib3fv mg_gl_get_api()->VertexAttrib3fv -#define glGetActiveUniformBlockName mg_gl_get_api()->GetActiveUniformBlockName -#define glDrawArrays mg_gl_get_api()->DrawArrays -#define glGetnUniformuiv mg_gl_get_api()->GetnUniformuiv -#define glProgramUniform1uiv mg_gl_get_api()->ProgramUniform1uiv -#define glDrawElementsIndirect mg_gl_get_api()->DrawElementsIndirect -#define glVertexAttribI4usv mg_gl_get_api()->VertexAttribI4usv -#define glBlendEquationSeparatei mg_gl_get_api()->BlendEquationSeparatei -#define glDrawElements mg_gl_get_api()->DrawElements -#define glGetShaderSource mg_gl_get_api()->GetShaderSource -#define glTransformFeedbackVaryings mg_gl_get_api()->TransformFeedbackVaryings -#define glGetError mg_gl_get_api()->GetError -#define glIsBuffer mg_gl_get_api()->IsBuffer -#define glClearBufferuiv mg_gl_get_api()->ClearBufferuiv -#define glGetVertexAttribiv mg_gl_get_api()->GetVertexAttribiv -#define glGetProgramResourceName mg_gl_get_api()->GetProgramResourceName -#define glUniform2ui mg_gl_get_api()->Uniform2ui -#define glStencilFunc mg_gl_get_api()->StencilFunc -#define glEnablei mg_gl_get_api()->Enablei -#define glSamplerParameteriv mg_gl_get_api()->SamplerParameteriv -#define glGetInteger64i_v mg_gl_get_api()->GetInteger64i_v -#define glProgramUniform4i mg_gl_get_api()->ProgramUniform4i -#define glUniform4ui mg_gl_get_api()->Uniform4ui -#define glUniformMatrix2x4fv mg_gl_get_api()->UniformMatrix2x4fv -#define glReadnPixels mg_gl_get_api()->ReadnPixels -#define glDrawTransformFeedbackInstanced mg_gl_get_api()->DrawTransformFeedbackInstanced -#define glPointSize mg_gl_get_api()->PointSize -#define glProgramUniformMatrix4fv mg_gl_get_api()->ProgramUniformMatrix4fv -#define glViewportArrayv mg_gl_get_api()->ViewportArrayv -#define glStencilOpSeparate mg_gl_get_api()->StencilOpSeparate -#define glUniform3ui mg_gl_get_api()->Uniform3ui -#define glUniform4uiv mg_gl_get_api()->Uniform4uiv -#define glUniform3iv mg_gl_get_api()->Uniform3iv -#define glUniform4f mg_gl_get_api()->Uniform4f -#define glFramebufferTexture2D mg_gl_get_api()->FramebufferTexture2D -#define glGetIntegeri_v mg_gl_get_api()->GetIntegeri_v -#define glMultiDrawElements mg_gl_get_api()->MultiDrawElements -#define glUniformMatrix4x2dv mg_gl_get_api()->UniformMatrix4x2dv -#define glProgramUniformMatrix2x3fv mg_gl_get_api()->ProgramUniformMatrix2x3fv -#define glCopyTexSubImage1D mg_gl_get_api()->CopyTexSubImage1D -#define glTexSubImage3D mg_gl_get_api()->TexSubImage3D -#define glGetActiveSubroutineUniformiv mg_gl_get_api()->GetActiveSubroutineUniformiv -#define glGenProgramPipelines mg_gl_get_api()->GenProgramPipelines -#define glProgramUniform4iv mg_gl_get_api()->ProgramUniform4iv -#define glUniformMatrix3x4fv mg_gl_get_api()->UniformMatrix3x4fv -#define glUniformBlockBinding mg_gl_get_api()->UniformBlockBinding -#define glDepthRangeArrayv mg_gl_get_api()->DepthRangeArrayv -#define glTexParameterfv mg_gl_get_api()->TexParameterfv -#define glMapBuffer mg_gl_get_api()->MapBuffer -#define glDeleteProgramPipelines mg_gl_get_api()->DeleteProgramPipelines -#define glMinSampleShading mg_gl_get_api()->MinSampleShading -#define glPauseTransformFeedback mg_gl_get_api()->PauseTransformFeedback -#define glEndQueryIndexed mg_gl_get_api()->EndQueryIndexed -#define glGetProgramBinary mg_gl_get_api()->GetProgramBinary -#define glProgramUniform2i mg_gl_get_api()->ProgramUniform2i -#define glDepthMask mg_gl_get_api()->DepthMask -#define glActiveTexture mg_gl_get_api()->ActiveTexture -#define glUseProgramStages mg_gl_get_api()->UseProgramStages -#define glPatchParameterfv mg_gl_get_api()->PatchParameterfv -#define glShaderBinary mg_gl_get_api()->ShaderBinary -#define glGetFloatv mg_gl_get_api()->GetFloatv -#define glProgramUniform1f mg_gl_get_api()->ProgramUniform1f -#define glTexImage1D mg_gl_get_api()->TexImage1D -#define glProgramUniform2uiv mg_gl_get_api()->ProgramUniform2uiv -#define glClearBufferData mg_gl_get_api()->ClearBufferData -#define glUniformMatrix3dv mg_gl_get_api()->UniformMatrix3dv -#define glCompressedTexImage2D mg_gl_get_api()->CompressedTexImage2D -#define glVertexAttrib4fv mg_gl_get_api()->VertexAttrib4fv -#define glGetProgramResourceiv mg_gl_get_api()->GetProgramResourceiv -#define glGetString mg_gl_get_api()->GetString -#define glProgramUniformMatrix2fv mg_gl_get_api()->ProgramUniformMatrix2fv -#define glGetVertexAttribLdv mg_gl_get_api()->GetVertexAttribLdv -#define glVertexAttrib4Nubv mg_gl_get_api()->VertexAttrib4Nubv -#define glTexBufferRange mg_gl_get_api()->TexBufferRange -#define glUniformMatrix3x4dv mg_gl_get_api()->UniformMatrix3x4dv -#define glGetProgramInterfaceiv mg_gl_get_api()->GetProgramInterfaceiv -#define glTexParameterIuiv mg_gl_get_api()->TexParameterIuiv -#define glDeleteShader mg_gl_get_api()->DeleteShader -#define glGetFloati_v mg_gl_get_api()->GetFloati_v -#define glDrawTransformFeedbackStreamInstanced mg_gl_get_api()->DrawTransformFeedbackStreamInstanced -#define glVertexAttrib4s mg_gl_get_api()->VertexAttrib4s -#endif // __GL_API_H__ +/******************************************************** +* +* @file: gl_api.h +* @note: auto-generated by glapi.py from gl.xml +* @date: 11/082023 +* +*********************************************************/ +#ifndef __GL_API_H__ +#define __GL_API_H__ + +#include"GL/glcorearb.h" +#include"GLES3/gl32.h" + +typedef struct mg_gl_api +{ + const char* name; + PFNGLGETPROGRAMBINARYPROC GetProgramBinary; + PFNGLFRONTFACEPROC FrontFace; + PFNGLDISABLEIPROC Disablei; + PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; + PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; + PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; + PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; + PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; + PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; + PFNGLCOLORMASKIPROC ColorMaski; + PFNGLBINDVERTEXARRAYPROC BindVertexArray; + PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; + PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; + PFNGLUNIFORM4IPROC Uniform4i; + PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; + PFNGLATTACHSHADERPROC AttachShader; + PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; + PFNGLCLEARCOLORPROC ClearColor; + PFNGLTEXPARAMETERIIVPROC TexParameterIiv; + PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; + PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; + PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; + PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; + PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; + PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; + PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; + PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; + PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; + PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; + PFNGLVIEWPORTPROC Viewport; + PFNGLGENTEXTURESPROC GenTextures; + PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; + PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; + PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; + PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; + PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; + PFNGLSCISSORINDEXEDPROC ScissorIndexed; + PFNGLTEXPARAMETERFPROC TexParameterf; + PFNGLBINDSAMPLERPROC BindSampler; + PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; + PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage; + PFNGLISENABLEDIPROC IsEnabledi; + PFNGLSCISSORPROC Scissor; + PFNGLPROGRAMBINARYPROC ProgramBinary; + PFNGLDISABLEPROC Disable; + PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; + PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; + PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; + PFNGLBLENDEQUATIONIPROC BlendEquationi; + PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; + PFNGLBLENDFUNCIPROC BlendFunci; + PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; + PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; + PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; + PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; + PFNGLUNIFORM1UIPROC Uniform1ui; + PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; + PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; + PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; + PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; + PFNGLPOLYGONOFFSETPROC PolygonOffset; + PFNGLISPROGRAMPROC IsProgram; + PFNGLCLEARDEPTHFPROC ClearDepthf; + PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; + PFNGLGETOBJECTLABELPROC GetObjectLabel; + PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; + PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; + PFNGLGENSAMPLERSPROC GenSamplers; + PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; + PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; + PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; + PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; + PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; + PFNGLGETINTEGER64VPROC GetInteger64v; + PFNGLGETSTRINGPROC GetString; + PFNGLISSYNCPROC IsSync; + PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; + PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; + PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; + PFNGLBEGINQUERYPROC BeginQuery; + PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; + PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; + PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; + PFNGLPOINTPARAMETERIPROC PointParameteri; + PFNGLPOLYGONMODEPROC PolygonMode; + PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; + PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; + PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; + PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; + PFNGLGETUNIFORMFVPROC GetUniformfv; + PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; + PFNGLTEXPARAMETERIVPROC TexParameteriv; + PFNGLISBUFFERPROC IsBuffer; + PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; + PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; + PFNGLBUFFERSTORAGEPROC BufferStorage; + PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; + PFNGLBINDTEXTURESPROC BindTextures; + PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; + PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; + PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; + PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; + PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; + PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; + PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; + PFNGLUNIFORM2FVPROC Uniform2fv; + PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; + PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; + PFNGLTEXBUFFERRANGEPROC TexBufferRange; + PFNGLGETSHADERIVPROC GetShaderiv; + PFNGLSTENCILMASKPROC StencilMask; + PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; + PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; + PFNGLDELETEQUERIESPROC DeleteQueries; + PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; + PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; + PFNGLUNIFORM1FPROC Uniform1f; + PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; + PFNGLCLEARBUFFERIVPROC ClearBufferiv; + PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; + PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; + PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; + PFNGLCLEARTEXIMAGEPROC ClearTexImage; + PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; + PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; + PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; + PFNGLUNIFORM2FPROC Uniform2f; + PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; + PFNGLTEXIMAGE2DPROC TexImage2D; + PFNGLLOGICOPPROC LogicOp; + PFNGLBINDTEXTUREPROC BindTexture; + PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; + PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; + PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; + PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; + PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; + PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; + PFNGLUNIFORM1DPROC Uniform1d; + PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; + PFNGLMINSAMPLESHADINGPROC MinSampleShading; + PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; + PFNGLTEXIMAGE1DPROC TexImage1D; + PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; + PFNGLLINEWIDTHPROC LineWidth; + PFNGLPOINTPARAMETERFPROC PointParameterf; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; + PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; + PFNGLUNIFORM4UIPROC Uniform4ui; + PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; + PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; + PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; + PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; + PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; + PFNGLGETBOOLEANVPROC GetBooleanv; + PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; + PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; + PFNGLUNIFORM2IVPROC Uniform2iv; + PFNGLBUFFERDATAPROC BufferData; + PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; + PFNGLGETSTRINGIPROC GetStringi; + PFNGLBINDIMAGETEXTUREPROC BindImageTexture; + PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; + PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; + PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; + PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; + PFNGLGETUNIFORMIVPROC GetUniformiv; + PFNGLDELETETEXTURESPROC DeleteTextures; + PFNGLCREATESHADERPROC CreateShader; + PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; + PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; + PFNGLDRAWBUFFERSPROC DrawBuffers; + PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; + PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; + PFNGLQUERYCOUNTERPROC QueryCounter; + PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; + PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; + PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; + PFNGLPOPDEBUGGROUPPROC PopDebugGroup; + PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; + PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; + PFNGLFLUSHPROC Flush; + PFNGLUNMAPBUFFERPROC UnmapBuffer; + PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; + PFNGLUNIFORM1FVPROC Uniform1fv; + PFNGLISFRAMEBUFFERPROC IsFramebuffer; + PFNGLVALIDATEPROGRAMPROC ValidateProgram; + PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; + PFNGLREADNPIXELSPROC ReadnPixels; + PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; + PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; + PFNGLPATCHPARAMETERIPROC PatchParameteri; + PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; + PFNGLGENQUERIESPROC GenQueries; + PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; + PFNGLBINDSAMPLERSPROC BindSamplers; + PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; + PFNGLENABLEIPROC Enablei; + PFNGLGETSYNCIVPROC GetSynciv; + PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; + PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; + PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; + PFNGLDEPTHRANGEFPROC DepthRangef; + PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; + PFNGLFINISHPROC Finish; + PFNGLBLENDFUNCPROC BlendFunc; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; + PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; + PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; + PFNGLUNIFORM2DPROC Uniform2d; + PFNGLGETNUNIFORMFVPROC GetnUniformfv; + PFNGLGETFLOATI_VPROC GetFloati_v; + PFNGLGETINTEGER64I_VPROC GetInteger64i_v; + PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; + PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; + PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; + PFNGLDELETEPROGRAMPROC DeleteProgram; + PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; + PFNGLGETUNIFORMUIVPROC GetUniformuiv; + PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; + PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; + PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; + PFNGLUNIFORM2IPROC Uniform2i; + PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; + PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; + PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; + PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; + PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; + PFNGLGETUNIFORMDVPROC GetUniformdv; + PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; + PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; + PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; + PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; + PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; + PFNGLPOINTPARAMETERFVPROC PointParameterfv; + PFNGLSAMPLECOVERAGEPROC SampleCoverage; + PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; + PFNGLREADPIXELSPROC ReadPixels; + PFNGLLINKPROGRAMPROC LinkProgram; + PFNGLWAITSYNCPROC WaitSync; + PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; + PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; + PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; + PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; + PFNGLBLENDBARRIERPROC BlendBarrier; + PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; + PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; + PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; + PFNGLUNIFORM1IVPROC Uniform1iv; + PFNGLENABLEPROC Enable; + PFNGLGENBUFFERSPROC GenBuffers; + PFNGLTEXSTORAGE3DPROC TexStorage3D; + PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; + PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; + PFNGLBLENDEQUATIONPROC BlendEquation; + PFNGLDEPTHRANGEPROC DepthRange; + PFNGLUNIFORM2DVPROC Uniform2dv; + PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; + PFNGLUNIFORM1DVPROC Uniform1dv; + PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; + PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; + PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; + PFNGLDEPTHFUNCPROC DepthFunc; + PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; + PFNGLBINDIMAGETEXTURESPROC BindImageTextures; + PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; + PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; + PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; + PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; + PFNGLMAPBUFFERRANGEPROC MapBufferRange; + PFNGLDETACHSHADERPROC DetachShader; + PFNGLGETBOOLEANI_VPROC GetBooleani_v; + PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; + PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; + PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; + PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; + PFNGLUNIFORM4DPROC Uniform4d; + PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; + PFNGLDELETEBUFFERSPROC DeleteBuffers; + PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; + PFNGLUNIFORM4FPROC Uniform4f; + PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; + PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; + PFNGLISRENDERBUFFERPROC IsRenderbuffer; + PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; + PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; + PFNGLCULLFACEPROC CullFace; + PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; + PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; + PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; + PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; + PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; + PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; + PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; + PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; + PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; + PFNGLREADBUFFERPROC ReadBuffer; + PFNGLDELETESHADERPROC DeleteShader; + PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; + PFNGLCLIENTWAITSYNCPROC ClientWaitSync; + PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; + PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; + PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; + PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; + PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; + PFNGLGETDOUBLEI_VPROC GetDoublei_v; + PFNGLTEXPARAMETERFVPROC TexParameterfv; + PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; + PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; + PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; + PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; + PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; + PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; + PFNGLISQUERYPROC IsQuery; + PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; + PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; + PFNGLUSEPROGRAMPROC UseProgram; + PFNGLCLEARPROC Clear; + PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; + PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; + PFNGLPIXELSTOREIPROC PixelStorei; + PFNGLUNIFORM1IPROC Uniform1i; + PFNGLUNIFORM1UIVPROC Uniform1uiv; + PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; + PFNGLBINDBUFFERPROC BindBuffer; + PFNGLACTIVETEXTUREPROC ActiveTexture; + PFNGLDELETESYNCPROC DeleteSync; + PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; + PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; + PFNGLUNIFORM3FVPROC Uniform3fv; + PFNGLGENVERTEXARRAYSPROC GenVertexArrays; + PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; + PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; + PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; + PFNGLBLENDCOLORPROC BlendColor; + PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; + PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; + PFNGLISSHADERPROC IsShader; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; + PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; + PFNGLBINDBUFFERSRANGEPROC BindBuffersRange; + PFNGLCOLORMASKPROC ColorMask; + PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; + PFNGLGETDOUBLEVPROC GetDoublev; + PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; + PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; + PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; + PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; + PFNGLPOINTPARAMETERIVPROC PointParameteriv; + PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; + PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; + PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; + PFNGLGETTEXIMAGEPROC GetTexImage; + PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; + PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; + PFNGLISSAMPLERPROC IsSampler; + PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; + PFNGLTEXSTORAGE1DPROC TexStorage1D; + PFNGLVIEWPORTARRAYVPROC ViewportArrayv; + PFNGLTEXIMAGE3DPROC TexImage3D; + PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; + PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; + PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; + PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; + PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; + PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; + PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; + PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; + PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; + PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; + PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; + PFNGLBINDBUFFERSBASEPROC BindBuffersBase; + PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; + PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; + PFNGLSHADERSOURCEPROC ShaderSource; + PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; + PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; + PFNGLUNIFORM3DPROC Uniform3d; + PFNGLCLEARBUFFERFVPROC ClearBufferfv; + PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; + PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; + PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; + PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; + PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; + PFNGLTEXTUREVIEWPROC TextureView; + PFNGLISENABLEDPROC IsEnabled; + PFNGLPATCHPARAMETERFVPROC PatchParameterfv; + PFNGLHINTPROC Hint; + PFNGLPIXELSTOREFPROC PixelStoref; + PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; + PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; + PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; + PFNGLOBJECTLABELPROC ObjectLabel; + PFNGLGETPOINTERVPROC GetPointerv; + PFNGLDELETESAMPLERSPROC DeleteSamplers; + PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; + PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; + PFNGLCLAMPCOLORPROC ClampColor; + PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; + PFNGLGETNUNIFORMIVPROC GetnUniformiv; + PFNGLUNIFORM3IVPROC Uniform3iv; + PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; + PFNGLBUFFERSUBDATAPROC BufferSubData; + PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; + PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; + PFNGLTEXBUFFERPROC TexBuffer; + PFNGLCREATEPROGRAMPROC CreateProgram; + PFNGLBINDBUFFERRANGEPROC BindBufferRange; + PFNGLISTEXTUREPROC IsTexture; + PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; + PFNGLDRAWELEMENTSPROC DrawElements; + PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; + PFNGLUNIFORM3DVPROC Uniform3dv; + PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; + PFNGLGENERATEMIPMAPPROC GenerateMipmap; + PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; + PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; + PFNGLCLEARDEPTHPROC ClearDepth; + PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; + PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; + PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; + PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; + PFNGLPOINTSIZEPROC PointSize; + PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; + PFNGLUNIFORM2UIVPROC Uniform2uiv; + PFNGLFENCESYNCPROC FenceSync; + PFNGLMAPBUFFERPROC MapBuffer; + PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; + PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; + PFNGLTEXPARAMETERIPROC TexParameteri; + PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; + PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; + PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; + PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; + PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; + PFNGLGETERRORPROC GetError; + PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; + PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; + PFNGLGETSHADERSOURCEPROC GetShaderSource; + PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; + PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; + PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; + PFNGLUNIFORM4DVPROC Uniform4dv; + PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; + PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; + PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; + PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; + PFNGLBINDBUFFERBASEPROC BindBufferBase; + PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; + PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; + PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; + PFNGLGETUNIFORMINDICESPROC GetUniformIndices; + PFNGLTEXSTORAGE2DPROC TexStorage2D; + PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; + PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; + PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; + PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; + PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; + PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; + PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers; + PFNGLPROVOKINGVERTEXPROC ProvokingVertex; + PFNGLUNIFORM3UIVPROC Uniform3uiv; + PFNGLISVERTEXARRAYPROC IsVertexArray; + PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; + PFNGLDISPATCHCOMPUTEPROC DispatchCompute; + PFNGLDRAWARRAYSPROC DrawArrays; + PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; + PFNGLUNIFORM3UIPROC Uniform3ui; + PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; + PFNGLCLEARBUFFERFIPROC ClearBufferfi; + PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; + PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; + PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; + PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; + PFNGLUNIFORM4UIVPROC Uniform4uiv; + PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; + PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; + PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; + PFNGLSHADERBINARYPROC ShaderBinary; + PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; + PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; + PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; + PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; + PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; + PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; + PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; + PFNGLUNIFORM4FVPROC Uniform4fv; + PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; + PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; + PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; + PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; + PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; + PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; + PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; + PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; + PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; + PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; + PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; + PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; + PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; + PFNGLSTENCILOPPROC StencilOp; + PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; + PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; + PFNGLGETQUERYIVPROC GetQueryiv; + PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; + PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; + PFNGLGETINTEGERI_VPROC GetIntegeri_v; + PFNGLGETINTEGERVPROC GetIntegerv; + PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; + PFNGLCLEARBUFFERDATAPROC ClearBufferData; + PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; + PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; + PFNGLGETPROGRAMIVPROC GetProgramiv; + PFNGLDEPTHMASKPROC DepthMask; + PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; + PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; + PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; + PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; + PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; + PFNGLSAMPLEMASKIPROC SampleMaski; + PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; + PFNGLUNIFORM4IVPROC Uniform4iv; + PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; + PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; + PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; + PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; + PFNGLCOMPILESHADERPROC CompileShader; + PFNGLDRAWBUFFERPROC DrawBuffer; + PFNGLUNIFORM3FPROC Uniform3f; + PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; + PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; + PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; + PFNGLSTENCILFUNCPROC StencilFunc; + PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; + PFNGLCLEARSTENCILPROC ClearStencil; + PFNGLSCISSORARRAYVPROC ScissorArrayv; + PFNGLMEMORYBARRIERPROC MemoryBarrier; + PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; + PFNGLGETFLOATVPROC GetFloatv; + PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; + PFNGLENDQUERYPROC EndQuery; + PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; + PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; + PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; + PFNGLUNIFORM3IPROC Uniform3i; + PFNGLUNIFORM2UIPROC Uniform2ui; + PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; + PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; +} mg_gl_api; + +MP_API mg_gl_api* mg_gl_get_api(void); + +#define glGetProgramBinary mg_gl_get_api()->GetProgramBinary +#define glFrontFace mg_gl_get_api()->FrontFace +#define glDisablei mg_gl_get_api()->Disablei +#define glBeginConditionalRender mg_gl_get_api()->BeginConditionalRender +#define glCopyTexSubImage3D mg_gl_get_api()->CopyTexSubImage3D +#define glCompressedTexSubImage1D mg_gl_get_api()->CompressedTexSubImage1D +#define glVertexAttribI4usv mg_gl_get_api()->VertexAttribI4usv +#define glVertexAttrib2sv mg_gl_get_api()->VertexAttrib2sv +#define glUniformMatrix2x3fv mg_gl_get_api()->UniformMatrix2x3fv +#define glMultiDrawArraysIndirect mg_gl_get_api()->MultiDrawArraysIndirect +#define glColorMaski mg_gl_get_api()->ColorMaski +#define glBindVertexArray mg_gl_get_api()->BindVertexArray +#define glProgramUniform3d mg_gl_get_api()->ProgramUniform3d +#define glGetBufferParameteri64v mg_gl_get_api()->GetBufferParameteri64v +#define glUniform4i mg_gl_get_api()->Uniform4i +#define glGetAttachedShaders mg_gl_get_api()->GetAttachedShaders +#define glAttachShader mg_gl_get_api()->AttachShader +#define glVertexAttribI2ui mg_gl_get_api()->VertexAttribI2ui +#define glClearColor mg_gl_get_api()->ClearColor +#define glTexParameterIiv mg_gl_get_api()->TexParameterIiv +#define glProgramUniform4d mg_gl_get_api()->ProgramUniform4d +#define glDrawTransformFeedbackStream mg_gl_get_api()->DrawTransformFeedbackStream +#define glVertexAttribI4iv mg_gl_get_api()->VertexAttribI4iv +#define glCopyBufferSubData mg_gl_get_api()->CopyBufferSubData +#define glDebugMessageInsert mg_gl_get_api()->DebugMessageInsert +#define glViewportIndexedf mg_gl_get_api()->ViewportIndexedf +#define glProgramUniform1fv mg_gl_get_api()->ProgramUniform1fv +#define glObjectPtrLabel mg_gl_get_api()->ObjectPtrLabel +#define glStencilMaskSeparate mg_gl_get_api()->StencilMaskSeparate +#define glUniformMatrix3x4dv mg_gl_get_api()->UniformMatrix3x4dv +#define glFramebufferTexture1D mg_gl_get_api()->FramebufferTexture1D +#define glViewport mg_gl_get_api()->Viewport +#define glGenTextures mg_gl_get_api()->GenTextures +#define glUniformBlockBinding mg_gl_get_api()->UniformBlockBinding +#define glVertexAttrib3sv mg_gl_get_api()->VertexAttrib3sv +#define glProgramUniformMatrix3x4fv mg_gl_get_api()->ProgramUniformMatrix3x4fv +#define glVertexAttrib2f mg_gl_get_api()->VertexAttrib2f +#define glGetActiveUniform mg_gl_get_api()->GetActiveUniform +#define glScissorIndexed mg_gl_get_api()->ScissorIndexed +#define glTexParameterf mg_gl_get_api()->TexParameterf +#define glBindSampler mg_gl_get_api()->BindSampler +#define glMultiDrawElementsIndirect mg_gl_get_api()->MultiDrawElementsIndirect +#define glClearTexSubImage mg_gl_get_api()->ClearTexSubImage +#define glIsEnabledi mg_gl_get_api()->IsEnabledi +#define glScissor mg_gl_get_api()->Scissor +#define glProgramBinary mg_gl_get_api()->ProgramBinary +#define glDisable mg_gl_get_api()->Disable +#define glGetActiveUniformBlockName mg_gl_get_api()->GetActiveUniformBlockName +#define glDrawRangeElementsBaseVertex mg_gl_get_api()->DrawRangeElementsBaseVertex +#define glDebugMessageCallback mg_gl_get_api()->DebugMessageCallback +#define glBlendEquationi mg_gl_get_api()->BlendEquationi +#define glVertexAttribI4uiv mg_gl_get_api()->VertexAttribI4uiv +#define glBlendFunci mg_gl_get_api()->BlendFunci +#define glValidateProgramPipeline mg_gl_get_api()->ValidateProgramPipeline +#define glDeleteVertexArrays mg_gl_get_api()->DeleteVertexArrays +#define glGenRenderbuffers mg_gl_get_api()->GenRenderbuffers +#define glCheckFramebufferStatus mg_gl_get_api()->CheckFramebufferStatus +#define glUniform1ui mg_gl_get_api()->Uniform1ui +#define glProgramUniform3ui mg_gl_get_api()->ProgramUniform3ui +#define glVertexAttrib4bv mg_gl_get_api()->VertexAttrib4bv +#define glGetProgramResourceLocationIndex mg_gl_get_api()->GetProgramResourceLocationIndex +#define glProgramUniform3fv mg_gl_get_api()->ProgramUniform3fv +#define glPolygonOffset mg_gl_get_api()->PolygonOffset +#define glIsProgram mg_gl_get_api()->IsProgram +#define glClearDepthf mg_gl_get_api()->ClearDepthf +#define glEndConditionalRender mg_gl_get_api()->EndConditionalRender +#define glGetObjectLabel mg_gl_get_api()->GetObjectLabel +#define glProgramUniformMatrix4x2fv mg_gl_get_api()->ProgramUniformMatrix4x2fv +#define glVertexAttribI3i mg_gl_get_api()->VertexAttribI3i +#define glGenSamplers mg_gl_get_api()->GenSamplers +#define glVertexAttribI2uiv mg_gl_get_api()->VertexAttribI2uiv +#define glStencilOpSeparate mg_gl_get_api()->StencilOpSeparate +#define glGetProgramInterfaceiv mg_gl_get_api()->GetProgramInterfaceiv +#define glGetObjectPtrLabel mg_gl_get_api()->GetObjectPtrLabel +#define glUniformMatrix2fv mg_gl_get_api()->UniformMatrix2fv +#define glGetInteger64v mg_gl_get_api()->GetInteger64v +#define glGetString mg_gl_get_api()->GetString +#define glIsSync mg_gl_get_api()->IsSync +#define glCopyTexImage1D mg_gl_get_api()->CopyTexImage1D +#define glSamplerParameterIiv mg_gl_get_api()->SamplerParameterIiv +#define glVertexAttrib3fv mg_gl_get_api()->VertexAttrib3fv +#define glBeginQuery mg_gl_get_api()->BeginQuery +#define glGetBufferPointerv mg_gl_get_api()->GetBufferPointerv +#define glBlitFramebuffer mg_gl_get_api()->BlitFramebuffer +#define glGetSamplerParameteriv mg_gl_get_api()->GetSamplerParameteriv +#define glPointParameteri mg_gl_get_api()->PointParameteri +#define glPolygonMode mg_gl_get_api()->PolygonMode +#define glDrawElementsIndirect mg_gl_get_api()->DrawElementsIndirect +#define glTexImage2DMultisample mg_gl_get_api()->TexImage2DMultisample +#define glVertexAttribL3d mg_gl_get_api()->VertexAttribL3d +#define glProgramUniform4i mg_gl_get_api()->ProgramUniform4i +#define glGetUniformfv mg_gl_get_api()->GetUniformfv +#define glDebugMessageControl mg_gl_get_api()->DebugMessageControl +#define glTexParameteriv mg_gl_get_api()->TexParameteriv +#define glIsBuffer mg_gl_get_api()->IsBuffer +#define glProgramUniformMatrix3dv mg_gl_get_api()->ProgramUniformMatrix3dv +#define glBindFramebuffer mg_gl_get_api()->BindFramebuffer +#define glBufferStorage mg_gl_get_api()->BufferStorage +#define glProgramUniform4fv mg_gl_get_api()->ProgramUniform4fv +#define glBindTextures mg_gl_get_api()->BindTextures +#define glCompressedTexImage3D mg_gl_get_api()->CompressedTexImage3D +#define glProgramUniformMatrix4x2dv mg_gl_get_api()->ProgramUniformMatrix4x2dv +#define glPushDebugGroup mg_gl_get_api()->PushDebugGroup +#define glSamplerParameteriv mg_gl_get_api()->SamplerParameteriv +#define glVertexAttribI2i mg_gl_get_api()->VertexAttribI2i +#define glBindTransformFeedback mg_gl_get_api()->BindTransformFeedback +#define glGetRenderbufferParameteriv mg_gl_get_api()->GetRenderbufferParameteriv +#define glUniform2fv mg_gl_get_api()->Uniform2fv +#define glVertexAttrib1dv mg_gl_get_api()->VertexAttrib1dv +#define glSamplerParameteri mg_gl_get_api()->SamplerParameteri +#define glTexBufferRange mg_gl_get_api()->TexBufferRange +#define glGetShaderiv mg_gl_get_api()->GetShaderiv +#define glStencilMask mg_gl_get_api()->StencilMask +#define glVertexAttrib3f mg_gl_get_api()->VertexAttrib3f +#define glGetProgramPipelineiv mg_gl_get_api()->GetProgramPipelineiv +#define glDeleteQueries mg_gl_get_api()->DeleteQueries +#define glProgramUniform3uiv mg_gl_get_api()->ProgramUniform3uiv +#define glProgramUniformMatrix2x4fv mg_gl_get_api()->ProgramUniformMatrix2x4fv +#define glUniform1f mg_gl_get_api()->Uniform1f +#define glTexSubImage1D mg_gl_get_api()->TexSubImage1D +#define glClearBufferiv mg_gl_get_api()->ClearBufferiv +#define glProgramUniform4uiv mg_gl_get_api()->ProgramUniform4uiv +#define glInvalidateTexImage mg_gl_get_api()->InvalidateTexImage +#define glClearBufferSubData mg_gl_get_api()->ClearBufferSubData +#define glClearTexImage mg_gl_get_api()->ClearTexImage +#define glVertexAttrib4d mg_gl_get_api()->VertexAttrib4d +#define glRenderbufferStorageMultisample mg_gl_get_api()->RenderbufferStorageMultisample +#define glFramebufferTextureLayer mg_gl_get_api()->FramebufferTextureLayer +#define glUniform2f mg_gl_get_api()->Uniform2f +#define glVertexAttribL4d mg_gl_get_api()->VertexAttribL4d +#define glTexImage2D mg_gl_get_api()->TexImage2D +#define glLogicOp mg_gl_get_api()->LogicOp +#define glBindTexture mg_gl_get_api()->BindTexture +#define glVertexAttrib1fv mg_gl_get_api()->VertexAttrib1fv +#define glProgramUniformMatrix3fv mg_gl_get_api()->ProgramUniformMatrix3fv +#define glGetFragDataIndex mg_gl_get_api()->GetFragDataIndex +#define glUniformMatrix2x3dv mg_gl_get_api()->UniformMatrix2x3dv +#define glGetVertexAttribLdv mg_gl_get_api()->GetVertexAttribLdv +#define glBindRenderbuffer mg_gl_get_api()->BindRenderbuffer +#define glUniform1d mg_gl_get_api()->Uniform1d +#define glUniformMatrix2x4fv mg_gl_get_api()->UniformMatrix2x4fv +#define glMinSampleShading mg_gl_get_api()->MinSampleShading +#define glCopyTexSubImage1D mg_gl_get_api()->CopyTexSubImage1D +#define glTexImage1D mg_gl_get_api()->TexImage1D +#define glVertexAttrib1f mg_gl_get_api()->VertexAttrib1f +#define glLineWidth mg_gl_get_api()->LineWidth +#define glPointParameterf mg_gl_get_api()->PointParameterf +#define glDrawElementsInstancedBaseVertexBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseVertexBaseInstance +#define glGetActiveSubroutineUniformiv mg_gl_get_api()->GetActiveSubroutineUniformiv +#define glUniform4ui mg_gl_get_api()->Uniform4ui +#define glVertexAttribBinding mg_gl_get_api()->VertexAttribBinding +#define glGetTexParameteriv mg_gl_get_api()->GetTexParameteriv +#define glRenderbufferStorage mg_gl_get_api()->RenderbufferStorage +#define glVertexAttrib4iv mg_gl_get_api()->VertexAttrib4iv +#define glUniformMatrix3fv mg_gl_get_api()->UniformMatrix3fv +#define glGetBooleanv mg_gl_get_api()->GetBooleanv +#define glProgramUniformMatrix2x3dv mg_gl_get_api()->ProgramUniformMatrix2x3dv +#define glProgramUniformMatrix4dv mg_gl_get_api()->ProgramUniformMatrix4dv +#define glUniform2iv mg_gl_get_api()->Uniform2iv +#define glBufferData mg_gl_get_api()->BufferData +#define glGetActiveSubroutineUniformName mg_gl_get_api()->GetActiveSubroutineUniformName +#define glGetStringi mg_gl_get_api()->GetStringi +#define glBindImageTexture mg_gl_get_api()->BindImageTexture +#define glProgramUniformMatrix3x2dv mg_gl_get_api()->ProgramUniformMatrix3x2dv +#define glVertexAttribL4dv mg_gl_get_api()->VertexAttribL4dv +#define glTexStorage3DMultisample mg_gl_get_api()->TexStorage3DMultisample +#define glDepthRangeArrayv mg_gl_get_api()->DepthRangeArrayv +#define glGetUniformiv mg_gl_get_api()->GetUniformiv +#define glDeleteTextures mg_gl_get_api()->DeleteTextures +#define glCreateShader mg_gl_get_api()->CreateShader +#define glVertexAttrib4s mg_gl_get_api()->VertexAttrib4s +#define glPrimitiveBoundingBox mg_gl_get_api()->PrimitiveBoundingBox +#define glDrawBuffers mg_gl_get_api()->DrawBuffers +#define glVertexAttrib2dv mg_gl_get_api()->VertexAttrib2dv +#define glTexParameterIuiv mg_gl_get_api()->TexParameterIuiv +#define glQueryCounter mg_gl_get_api()->QueryCounter +#define glVertexAttribL1dv mg_gl_get_api()->VertexAttribL1dv +#define glProgramUniform1d mg_gl_get_api()->ProgramUniform1d +#define glDeleteRenderbuffers mg_gl_get_api()->DeleteRenderbuffers +#define glPopDebugGroup mg_gl_get_api()->PopDebugGroup +#define glMultiDrawArrays mg_gl_get_api()->MultiDrawArrays +#define glGetActiveUniformsiv mg_gl_get_api()->GetActiveUniformsiv +#define glFlush mg_gl_get_api()->Flush +#define glUnmapBuffer mg_gl_get_api()->UnmapBuffer +#define glFramebufferTexture3D mg_gl_get_api()->FramebufferTexture3D +#define glUniform1fv mg_gl_get_api()->Uniform1fv +#define glIsFramebuffer mg_gl_get_api()->IsFramebuffer +#define glValidateProgram mg_gl_get_api()->ValidateProgram +#define glGetVertexAttribPointerv mg_gl_get_api()->GetVertexAttribPointerv +#define glReadnPixels mg_gl_get_api()->ReadnPixels +#define glVertexAttribP2ui mg_gl_get_api()->VertexAttribP2ui +#define glProgramUniform2i mg_gl_get_api()->ProgramUniform2i +#define glPatchParameteri mg_gl_get_api()->PatchParameteri +#define glVertexAttrib4Nub mg_gl_get_api()->VertexAttrib4Nub +#define glGenQueries mg_gl_get_api()->GenQueries +#define glProgramUniform2ui mg_gl_get_api()->ProgramUniform2ui +#define glBindSamplers mg_gl_get_api()->BindSamplers +#define glDisableVertexAttribArray mg_gl_get_api()->DisableVertexAttribArray +#define glEnablei mg_gl_get_api()->Enablei +#define glGetSynciv mg_gl_get_api()->GetSynciv +#define glVertexAttrib3s mg_gl_get_api()->VertexAttrib3s +#define glGetTexParameterIiv mg_gl_get_api()->GetTexParameterIiv +#define glVertexBindingDivisor mg_gl_get_api()->VertexBindingDivisor +#define glDepthRangef mg_gl_get_api()->DepthRangef +#define glVertexAttrib4Nuiv mg_gl_get_api()->VertexAttrib4Nuiv +#define glFinish mg_gl_get_api()->Finish +#define glBlendFunc mg_gl_get_api()->BlendFunc +#define glDrawTransformFeedbackStreamInstanced mg_gl_get_api()->DrawTransformFeedbackStreamInstanced +#define glUniformMatrix4x3fv mg_gl_get_api()->UniformMatrix4x3fv +#define glUniformMatrix4x2dv mg_gl_get_api()->UniformMatrix4x2dv +#define glUniform2d mg_gl_get_api()->Uniform2d +#define glGetnUniformfv mg_gl_get_api()->GetnUniformfv +#define glGetFloati_v mg_gl_get_api()->GetFloati_v +#define glGetInteger64i_v mg_gl_get_api()->GetInteger64i_v +#define glProgramUniform3f mg_gl_get_api()->ProgramUniform3f +#define glGetFramebufferParameteriv mg_gl_get_api()->GetFramebufferParameteriv +#define glVertexAttribI4bv mg_gl_get_api()->VertexAttribI4bv +#define glDeleteProgram mg_gl_get_api()->DeleteProgram +#define glCopyTexImage2D mg_gl_get_api()->CopyTexImage2D +#define glGetUniformuiv mg_gl_get_api()->GetUniformuiv +#define glDrawArraysIndirect mg_gl_get_api()->DrawArraysIndirect +#define glUniformMatrix4x2fv mg_gl_get_api()->UniformMatrix4x2fv +#define glFramebufferRenderbuffer mg_gl_get_api()->FramebufferRenderbuffer +#define glUniform2i mg_gl_get_api()->Uniform2i +#define glProgramUniform3dv mg_gl_get_api()->ProgramUniform3dv +#define glScissorIndexedv mg_gl_get_api()->ScissorIndexedv +#define glProgramUniform2d mg_gl_get_api()->ProgramUniform2d +#define glVertexAttrib4f mg_gl_get_api()->VertexAttrib4f +#define glBlendEquationSeparatei mg_gl_get_api()->BlendEquationSeparatei +#define glGetUniformdv mg_gl_get_api()->GetUniformdv +#define glDrawRangeElements mg_gl_get_api()->DrawRangeElements +#define glUniformMatrix3dv mg_gl_get_api()->UniformMatrix3dv +#define glProgramUniform2uiv mg_gl_get_api()->ProgramUniform2uiv +#define glVertexAttribI1uiv mg_gl_get_api()->VertexAttribI1uiv +#define glBeginQueryIndexed mg_gl_get_api()->BeginQueryIndexed +#define glPointParameterfv mg_gl_get_api()->PointParameterfv +#define glSampleCoverage mg_gl_get_api()->SampleCoverage +#define glResumeTransformFeedback mg_gl_get_api()->ResumeTransformFeedback +#define glReadPixels mg_gl_get_api()->ReadPixels +#define glLinkProgram mg_gl_get_api()->LinkProgram +#define glWaitSync mg_gl_get_api()->WaitSync +#define glActiveShaderProgram mg_gl_get_api()->ActiveShaderProgram +#define glGetQueryObjectiv mg_gl_get_api()->GetQueryObjectiv +#define glProgramUniform3i mg_gl_get_api()->ProgramUniform3i +#define glProgramUniform1ui mg_gl_get_api()->ProgramUniform1ui +#define glBlendBarrier mg_gl_get_api()->BlendBarrier +#define glVertexAttribI4ubv mg_gl_get_api()->VertexAttribI4ubv +#define glGetQueryObjecti64v mg_gl_get_api()->GetQueryObjecti64v +#define glUniformMatrix4dv mg_gl_get_api()->UniformMatrix4dv +#define glUniform1iv mg_gl_get_api()->Uniform1iv +#define glEnable mg_gl_get_api()->Enable +#define glGenBuffers mg_gl_get_api()->GenBuffers +#define glTexStorage3D mg_gl_get_api()->TexStorage3D +#define glInvalidateTexSubImage mg_gl_get_api()->InvalidateTexSubImage +#define glProgramUniform1i mg_gl_get_api()->ProgramUniform1i +#define glBlendEquation mg_gl_get_api()->BlendEquation +#define glDepthRange mg_gl_get_api()->DepthRange +#define glUniform2dv mg_gl_get_api()->Uniform2dv +#define glBlendFuncSeparate mg_gl_get_api()->BlendFuncSeparate +#define glUniform1dv mg_gl_get_api()->Uniform1dv +#define glEndQueryIndexed mg_gl_get_api()->EndQueryIndexed +#define glDeleteTransformFeedbacks mg_gl_get_api()->DeleteTransformFeedbacks +#define glBlendFuncSeparatei mg_gl_get_api()->BlendFuncSeparatei +#define glDepthFunc mg_gl_get_api()->DepthFunc +#define glInvalidateBufferData mg_gl_get_api()->InvalidateBufferData +#define glBindImageTextures mg_gl_get_api()->BindImageTextures +#define glDeleteFramebuffers mg_gl_get_api()->DeleteFramebuffers +#define glVertexAttribI2iv mg_gl_get_api()->VertexAttribI2iv +#define glVertexAttrib4sv mg_gl_get_api()->VertexAttrib4sv +#define glVertexAttribFormat mg_gl_get_api()->VertexAttribFormat +#define glMapBufferRange mg_gl_get_api()->MapBufferRange +#define glDetachShader mg_gl_get_api()->DetachShader +#define glGetBooleani_v mg_gl_get_api()->GetBooleani_v +#define glDepthRangeIndexed mg_gl_get_api()->DepthRangeIndexed +#define glPauseTransformFeedback mg_gl_get_api()->PauseTransformFeedback +#define glVertexAttribL3dv mg_gl_get_api()->VertexAttribL3dv +#define glPrimitiveRestartIndex mg_gl_get_api()->PrimitiveRestartIndex +#define glUniform4d mg_gl_get_api()->Uniform4d +#define glTransformFeedbackVaryings mg_gl_get_api()->TransformFeedbackVaryings +#define glDeleteBuffers mg_gl_get_api()->DeleteBuffers +#define glGetProgramResourceLocation mg_gl_get_api()->GetProgramResourceLocation +#define glUniform4f mg_gl_get_api()->Uniform4f +#define glGetSamplerParameterfv mg_gl_get_api()->GetSamplerParameterfv +#define glVertexAttribP4ui mg_gl_get_api()->VertexAttribP4ui +#define glIsRenderbuffer mg_gl_get_api()->IsRenderbuffer +#define glVertexAttrib4Nbv mg_gl_get_api()->VertexAttrib4Nbv +#define glVertexAttrib4Nsv mg_gl_get_api()->VertexAttrib4Nsv +#define glCullFace mg_gl_get_api()->CullFace +#define glMultiDrawElementsBaseVertex mg_gl_get_api()->MultiDrawElementsBaseVertex +#define glVertexAttribI3ui mg_gl_get_api()->VertexAttribI3ui +#define glGetUniformBlockIndex mg_gl_get_api()->GetUniformBlockIndex +#define glUseProgramStages mg_gl_get_api()->UseProgramStages +#define glGetActiveAttrib mg_gl_get_api()->GetActiveAttrib +#define glDrawArraysInstancedBaseInstance mg_gl_get_api()->DrawArraysInstancedBaseInstance +#define glIsProgramPipeline mg_gl_get_api()->IsProgramPipeline +#define glProgramUniform1uiv mg_gl_get_api()->ProgramUniform1uiv +#define glProgramUniform3iv mg_gl_get_api()->ProgramUniform3iv +#define glReadBuffer mg_gl_get_api()->ReadBuffer +#define glDeleteShader mg_gl_get_api()->DeleteShader +#define glCreateShaderProgramv mg_gl_get_api()->CreateShaderProgramv +#define glClientWaitSync mg_gl_get_api()->ClientWaitSync +#define glCompressedTexImage1D mg_gl_get_api()->CompressedTexImage1D +#define glVertexAttrib2d mg_gl_get_api()->VertexAttrib2d +#define glVertexAttrib3dv mg_gl_get_api()->VertexAttrib3dv +#define glVertexAttribI4i mg_gl_get_api()->VertexAttribI4i +#define glVertexAttribL2dv mg_gl_get_api()->VertexAttribL2dv +#define glGetDoublei_v mg_gl_get_api()->GetDoublei_v +#define glTexParameterfv mg_gl_get_api()->TexParameterfv +#define glGetAttribLocation mg_gl_get_api()->GetAttribLocation +#define glVertexAttribP1ui mg_gl_get_api()->VertexAttribP1ui +#define glVertexAttribIFormat mg_gl_get_api()->VertexAttribIFormat +#define glVertexAttribI1ui mg_gl_get_api()->VertexAttribI1ui +#define glGetVertexAttribiv mg_gl_get_api()->GetVertexAttribiv +#define glGetActiveSubroutineName mg_gl_get_api()->GetActiveSubroutineName +#define glIsQuery mg_gl_get_api()->IsQuery +#define glVertexAttrib1sv mg_gl_get_api()->VertexAttrib1sv +#define glProgramUniformMatrix2fv mg_gl_get_api()->ProgramUniformMatrix2fv +#define glUseProgram mg_gl_get_api()->UseProgram +#define glClear mg_gl_get_api()->Clear +#define glVertexAttrib4ubv mg_gl_get_api()->VertexAttrib4ubv +#define glInvalidateFramebuffer mg_gl_get_api()->InvalidateFramebuffer +#define glPixelStorei mg_gl_get_api()->PixelStorei +#define glUniform1i mg_gl_get_api()->Uniform1i +#define glUniform1uiv mg_gl_get_api()->Uniform1uiv +#define glTexImage3DMultisample mg_gl_get_api()->TexImage3DMultisample +#define glBindBuffer mg_gl_get_api()->BindBuffer +#define glActiveTexture mg_gl_get_api()->ActiveTexture +#define glDeleteSync mg_gl_get_api()->DeleteSync +#define glVertexAttrib4Niv mg_gl_get_api()->VertexAttrib4Niv +#define glVertexAttrib4uiv mg_gl_get_api()->VertexAttrib4uiv +#define glUniform3fv mg_gl_get_api()->Uniform3fv +#define glGenVertexArrays mg_gl_get_api()->GenVertexArrays +#define glProgramUniformMatrix3x2fv mg_gl_get_api()->ProgramUniformMatrix3x2fv +#define glBindAttribLocation mg_gl_get_api()->BindAttribLocation +#define glCopyTexSubImage2D mg_gl_get_api()->CopyTexSubImage2D +#define glBlendColor mg_gl_get_api()->BlendColor +#define glReleaseShaderCompiler mg_gl_get_api()->ReleaseShaderCompiler +#define glGenTransformFeedbacks mg_gl_get_api()->GenTransformFeedbacks +#define glIsShader mg_gl_get_api()->IsShader +#define glDrawElementsInstancedBaseVertex mg_gl_get_api()->DrawElementsInstancedBaseVertex +#define glVertexAttribLFormat mg_gl_get_api()->VertexAttribLFormat +#define glBindBuffersRange mg_gl_get_api()->BindBuffersRange +#define glColorMask mg_gl_get_api()->ColorMask +#define glUniformMatrix2x4dv mg_gl_get_api()->UniformMatrix2x4dv +#define glGetDoublev mg_gl_get_api()->GetDoublev +#define glUniformMatrix3x2dv mg_gl_get_api()->UniformMatrix3x2dv +#define glVertexAttribL2d mg_gl_get_api()->VertexAttribL2d +#define glFlushMappedBufferRange mg_gl_get_api()->FlushMappedBufferRange +#define glProgramUniform2iv mg_gl_get_api()->ProgramUniform2iv +#define glPointParameteriv mg_gl_get_api()->PointParameteriv +#define glUniformSubroutinesuiv mg_gl_get_api()->UniformSubroutinesuiv +#define glProgramUniformMatrix4x3fv mg_gl_get_api()->ProgramUniformMatrix4x3fv +#define glGetBufferParameteriv mg_gl_get_api()->GetBufferParameteriv +#define glGetTexImage mg_gl_get_api()->GetTexImage +#define glProgramUniformMatrix2x4dv mg_gl_get_api()->ProgramUniformMatrix2x4dv +#define glVertexAttribI1iv mg_gl_get_api()->VertexAttribI1iv +#define glIsSampler mg_gl_get_api()->IsSampler +#define glGetVertexAttribfv mg_gl_get_api()->GetVertexAttribfv +#define glTexStorage1D mg_gl_get_api()->TexStorage1D +#define glViewportArrayv mg_gl_get_api()->ViewportArrayv +#define glTexImage3D mg_gl_get_api()->TexImage3D +#define glProgramUniformMatrix4fv mg_gl_get_api()->ProgramUniformMatrix4fv +#define glGetTexLevelParameteriv mg_gl_get_api()->GetTexLevelParameteriv +#define glGetVertexAttribdv mg_gl_get_api()->GetVertexAttribdv +#define glInvalidateBufferSubData mg_gl_get_api()->InvalidateBufferSubData +#define glProgramUniform4f mg_gl_get_api()->ProgramUniform4f +#define glVertexAttrib2s mg_gl_get_api()->VertexAttrib2s +#define glTexSubImage3D mg_gl_get_api()->TexSubImage3D +#define glGetFragDataLocation mg_gl_get_api()->GetFragDataLocation +#define glVertexAttribI1i mg_gl_get_api()->VertexAttribI1i +#define glGetActiveAtomicCounterBufferiv mg_gl_get_api()->GetActiveAtomicCounterBufferiv +#define glTexStorage2DMultisample mg_gl_get_api()->TexStorage2DMultisample +#define glBindBuffersBase mg_gl_get_api()->BindBuffersBase +#define glGetUniformSubroutineuiv mg_gl_get_api()->GetUniformSubroutineuiv +#define glEndTransformFeedback mg_gl_get_api()->EndTransformFeedback +#define glShaderSource mg_gl_get_api()->ShaderSource +#define glGetQueryObjectuiv mg_gl_get_api()->GetQueryObjectuiv +#define glGetTexLevelParameterfv mg_gl_get_api()->GetTexLevelParameterfv +#define glUniform3d mg_gl_get_api()->Uniform3d +#define glClearBufferfv mg_gl_get_api()->ClearBufferfv +#define glGetSamplerParameterIiv mg_gl_get_api()->GetSamplerParameterIiv +#define glMemoryBarrierByRegion mg_gl_get_api()->MemoryBarrierByRegion +#define glGenProgramPipelines mg_gl_get_api()->GenProgramPipelines +#define glBindFragDataLocation mg_gl_get_api()->BindFragDataLocation +#define glGetShaderInfoLog mg_gl_get_api()->GetShaderInfoLog +#define glTextureView mg_gl_get_api()->TextureView +#define glIsEnabled mg_gl_get_api()->IsEnabled +#define glPatchParameterfv mg_gl_get_api()->PatchParameterfv +#define glHint mg_gl_get_api()->Hint +#define glPixelStoref mg_gl_get_api()->PixelStoref +#define glProgramUniform4iv mg_gl_get_api()->ProgramUniform4iv +#define glBlendEquationSeparate mg_gl_get_api()->BlendEquationSeparate +#define glClearBufferuiv mg_gl_get_api()->ClearBufferuiv +#define glObjectLabel mg_gl_get_api()->ObjectLabel +#define glGetPointerv mg_gl_get_api()->GetPointerv +#define glDeleteSamplers mg_gl_get_api()->DeleteSamplers +#define glProgramUniform2dv mg_gl_get_api()->ProgramUniform2dv +#define glEnableVertexAttribArray mg_gl_get_api()->EnableVertexAttribArray +#define glClampColor mg_gl_get_api()->ClampColor +#define glGetShaderPrecisionFormat mg_gl_get_api()->GetShaderPrecisionFormat +#define glGetnUniformiv mg_gl_get_api()->GetnUniformiv +#define glUniform3iv mg_gl_get_api()->Uniform3iv +#define glVertexAttribI3uiv mg_gl_get_api()->VertexAttribI3uiv +#define glBufferSubData mg_gl_get_api()->BufferSubData +#define glSamplerParameterfv mg_gl_get_api()->SamplerParameterfv +#define glVertexAttribI4sv mg_gl_get_api()->VertexAttribI4sv +#define glTexBuffer mg_gl_get_api()->TexBuffer +#define glCreateProgram mg_gl_get_api()->CreateProgram +#define glBindBufferRange mg_gl_get_api()->BindBufferRange +#define glIsTexture mg_gl_get_api()->IsTexture +#define glUniformMatrix3x2fv mg_gl_get_api()->UniformMatrix3x2fv +#define glDrawElements mg_gl_get_api()->DrawElements +#define glProgramUniform1f mg_gl_get_api()->ProgramUniform1f +#define glUniform3dv mg_gl_get_api()->Uniform3dv +#define glDrawElementsInstanced mg_gl_get_api()->DrawElementsInstanced +#define glGenerateMipmap mg_gl_get_api()->GenerateMipmap +#define glProgramUniform4ui mg_gl_get_api()->ProgramUniform4ui +#define glGetVertexAttribIuiv mg_gl_get_api()->GetVertexAttribIuiv +#define glClearDepth mg_gl_get_api()->ClearDepth +#define glDrawTransformFeedback mg_gl_get_api()->DrawTransformFeedback +#define glTexSubImage2D mg_gl_get_api()->TexSubImage2D +#define glVertexAttribP4uiv mg_gl_get_api()->VertexAttribP4uiv +#define glGetTexParameterIuiv mg_gl_get_api()->GetTexParameterIuiv +#define glPointSize mg_gl_get_api()->PointSize +#define glGetCompressedTexImage mg_gl_get_api()->GetCompressedTexImage +#define glUniform2uiv mg_gl_get_api()->Uniform2uiv +#define glFenceSync mg_gl_get_api()->FenceSync +#define glMapBuffer mg_gl_get_api()->MapBuffer +#define glGetFramebufferAttachmentParameteriv mg_gl_get_api()->GetFramebufferAttachmentParameteriv +#define glBeginTransformFeedback mg_gl_get_api()->BeginTransformFeedback +#define glTexParameteri mg_gl_get_api()->TexParameteri +#define glGetTexParameterfv mg_gl_get_api()->GetTexParameterfv +#define glVertexAttribL1d mg_gl_get_api()->VertexAttribL1d +#define glVertexAttrib4Nusv mg_gl_get_api()->VertexAttrib4Nusv +#define glProgramUniform2f mg_gl_get_api()->ProgramUniform2f +#define glVertexAttrib1d mg_gl_get_api()->VertexAttrib1d +#define glGetError mg_gl_get_api()->GetError +#define glVertexAttribP2uiv mg_gl_get_api()->VertexAttribP2uiv +#define glUniformMatrix4x3dv mg_gl_get_api()->UniformMatrix4x3dv +#define glGetShaderSource mg_gl_get_api()->GetShaderSource +#define glStencilFuncSeparate mg_gl_get_api()->StencilFuncSeparate +#define glFramebufferTexture mg_gl_get_api()->FramebufferTexture +#define glProgramUniformMatrix4x3dv mg_gl_get_api()->ProgramUniformMatrix4x3dv +#define glUniform4dv mg_gl_get_api()->Uniform4dv +#define glGetProgramInfoLog mg_gl_get_api()->GetProgramInfoLog +#define glProgramUniformMatrix3x4dv mg_gl_get_api()->ProgramUniformMatrix3x4dv +#define glUniformMatrix3x4fv mg_gl_get_api()->UniformMatrix3x4fv +#define glCompressedTexSubImage3D mg_gl_get_api()->CompressedTexSubImage3D +#define glDrawElementsInstancedBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseInstance +#define glBindBufferBase mg_gl_get_api()->BindBufferBase +#define glUniformMatrix2dv mg_gl_get_api()->UniformMatrix2dv +#define glGetTransformFeedbackVarying mg_gl_get_api()->GetTransformFeedbackVarying +#define glCompressedTexImage2D mg_gl_get_api()->CompressedTexImage2D +#define glGetUniformIndices mg_gl_get_api()->GetUniformIndices +#define glTexStorage2D mg_gl_get_api()->TexStorage2D +#define glVertexAttrib4usv mg_gl_get_api()->VertexAttrib4usv +#define glGetActiveUniformBlockiv mg_gl_get_api()->GetActiveUniformBlockiv +#define glCopyImageSubData mg_gl_get_api()->CopyImageSubData +#define glVertexAttribI4ui mg_gl_get_api()->VertexAttribI4ui +#define glVertexAttrib4fv mg_gl_get_api()->VertexAttrib4fv +#define glProgramUniform1iv mg_gl_get_api()->ProgramUniform1iv +#define glBindVertexBuffers mg_gl_get_api()->BindVertexBuffers +#define glProvokingVertex mg_gl_get_api()->ProvokingVertex +#define glUniform3uiv mg_gl_get_api()->Uniform3uiv +#define glIsVertexArray mg_gl_get_api()->IsVertexArray +#define glViewportIndexedfv mg_gl_get_api()->ViewportIndexedfv +#define glDispatchCompute mg_gl_get_api()->DispatchCompute +#define glDrawArrays mg_gl_get_api()->DrawArrays +#define glGetQueryIndexediv mg_gl_get_api()->GetQueryIndexediv +#define glUniform3ui mg_gl_get_api()->Uniform3ui +#define glMultiDrawElements mg_gl_get_api()->MultiDrawElements +#define glClearBufferfi mg_gl_get_api()->ClearBufferfi +#define glProgramUniformMatrix2dv mg_gl_get_api()->ProgramUniformMatrix2dv +#define glVertexAttribP3ui mg_gl_get_api()->VertexAttribP3ui +#define glVertexAttribI3iv mg_gl_get_api()->VertexAttribI3iv +#define glProgramParameteri mg_gl_get_api()->ProgramParameteri +#define glUniform4uiv mg_gl_get_api()->Uniform4uiv +#define glUniformMatrix4fv mg_gl_get_api()->UniformMatrix4fv +#define glVertexAttrib2fv mg_gl_get_api()->VertexAttrib2fv +#define glGetGraphicsResetStatus mg_gl_get_api()->GetGraphicsResetStatus +#define glShaderBinary mg_gl_get_api()->ShaderBinary +#define glShaderStorageBlockBinding mg_gl_get_api()->ShaderStorageBlockBinding +#define glDrawArraysInstanced mg_gl_get_api()->DrawArraysInstanced +#define glGetSubroutineIndex mg_gl_get_api()->GetSubroutineIndex +#define glGetVertexAttribIiv mg_gl_get_api()->GetVertexAttribIiv +#define glDrawElementsBaseVertex mg_gl_get_api()->DrawElementsBaseVertex +#define glGetProgramResourceName mg_gl_get_api()->GetProgramResourceName +#define glGetInternalformativ mg_gl_get_api()->GetInternalformativ +#define glUniform4fv mg_gl_get_api()->Uniform4fv +#define glVertexAttribLPointer mg_gl_get_api()->VertexAttribLPointer +#define glGetSamplerParameterIuiv mg_gl_get_api()->GetSamplerParameterIuiv +#define glVertexAttrib3d mg_gl_get_api()->VertexAttrib3d +#define glSamplerParameterf mg_gl_get_api()->SamplerParameterf +#define glGenFramebuffers mg_gl_get_api()->GenFramebuffers +#define glGetQueryObjectui64v mg_gl_get_api()->GetQueryObjectui64v +#define glGetProgramResourceiv mg_gl_get_api()->GetProgramResourceiv +#define glVertexAttribP3uiv mg_gl_get_api()->VertexAttribP3uiv +#define glVertexAttrib4dv mg_gl_get_api()->VertexAttrib4dv +#define glIsTransformFeedback mg_gl_get_api()->IsTransformFeedback +#define glDispatchComputeIndirect mg_gl_get_api()->DispatchComputeIndirect +#define glCompressedTexSubImage2D mg_gl_get_api()->CompressedTexSubImage2D +#define glBindVertexBuffer mg_gl_get_api()->BindVertexBuffer +#define glProgramUniform1dv mg_gl_get_api()->ProgramUniform1dv +#define glStencilOp mg_gl_get_api()->StencilOp +#define glVertexAttrib1s mg_gl_get_api()->VertexAttrib1s +#define glGetMultisamplefv mg_gl_get_api()->GetMultisamplefv +#define glGetQueryiv mg_gl_get_api()->GetQueryiv +#define glBindProgramPipeline mg_gl_get_api()->BindProgramPipeline +#define glFramebufferParameteri mg_gl_get_api()->FramebufferParameteri +#define glGetIntegeri_v mg_gl_get_api()->GetIntegeri_v +#define glGetIntegerv mg_gl_get_api()->GetIntegerv +#define glDeleteProgramPipelines mg_gl_get_api()->DeleteProgramPipelines +#define glClearBufferData mg_gl_get_api()->ClearBufferData +#define glProgramUniform2fv mg_gl_get_api()->ProgramUniform2fv +#define glGetSubroutineUniformLocation mg_gl_get_api()->GetSubroutineUniformLocation +#define glGetProgramiv mg_gl_get_api()->GetProgramiv +#define glDepthMask mg_gl_get_api()->DepthMask +#define glVertexAttribIPointer mg_gl_get_api()->VertexAttribIPointer +#define glGetActiveUniformName mg_gl_get_api()->GetActiveUniformName +#define glVertexAttribP1uiv mg_gl_get_api()->VertexAttribP1uiv +#define glProgramUniformMatrix2x3fv mg_gl_get_api()->ProgramUniformMatrix2x3fv +#define glGetUniformLocation mg_gl_get_api()->GetUniformLocation +#define glSampleMaski mg_gl_get_api()->SampleMaski +#define glGetBufferSubData mg_gl_get_api()->GetBufferSubData +#define glUniform4iv mg_gl_get_api()->Uniform4iv +#define glVertexAttribPointer mg_gl_get_api()->VertexAttribPointer +#define glFramebufferTexture2D mg_gl_get_api()->FramebufferTexture2D +#define glGetnUniformuiv mg_gl_get_api()->GetnUniformuiv +#define glGetInternalformati64v mg_gl_get_api()->GetInternalformati64v +#define glCompileShader mg_gl_get_api()->CompileShader +#define glDrawBuffer mg_gl_get_api()->DrawBuffer +#define glUniform3f mg_gl_get_api()->Uniform3f +#define glDrawTransformFeedbackInstanced mg_gl_get_api()->DrawTransformFeedbackInstanced +#define glProgramUniform4dv mg_gl_get_api()->ProgramUniform4dv +#define glGetProgramStageiv mg_gl_get_api()->GetProgramStageiv +#define glStencilFunc mg_gl_get_api()->StencilFunc +#define glGetProgramResourceIndex mg_gl_get_api()->GetProgramResourceIndex +#define glClearStencil mg_gl_get_api()->ClearStencil +#define glScissorArrayv mg_gl_get_api()->ScissorArrayv +#define glMemoryBarrier mg_gl_get_api()->MemoryBarrier +#define glSamplerParameterIuiv mg_gl_get_api()->SamplerParameterIuiv +#define glGetFloatv mg_gl_get_api()->GetFloatv +#define glBindFragDataLocationIndexed mg_gl_get_api()->BindFragDataLocationIndexed +#define glEndQuery mg_gl_get_api()->EndQuery +#define glVertexAttrib4Nubv mg_gl_get_api()->VertexAttrib4Nubv +#define glGetProgramPipelineInfoLog mg_gl_get_api()->GetProgramPipelineInfoLog +#define glVertexAttribDivisor mg_gl_get_api()->VertexAttribDivisor +#define glUniform3i mg_gl_get_api()->Uniform3i +#define glUniform2ui mg_gl_get_api()->Uniform2ui +#define glInvalidateSubFramebuffer mg_gl_get_api()->InvalidateSubFramebuffer +#define glGetDebugMessageLog mg_gl_get_api()->GetDebugMessageLog +#endif // __GL_API_H__ diff --git a/milepost/src/gl_canvas.c b/src/graphics/gl_canvas.c similarity index 96% rename from milepost/src/gl_canvas.c rename to src/graphics/gl_canvas.c index 2c43bee..2fbc670 100644 --- a/milepost/src/gl_canvas.c +++ b/src/graphics/gl_canvas.c @@ -7,7 +7,7 @@ * *****************************************************************/ #include"graphics_surface.h" -#include"macro_helpers.h" +#include"util/macro_helpers.h" #include"glsl_shaders.h" #include"gl_api.h" diff --git a/milepost/src/gl_loader.c b/src/graphics/gl_loader.c similarity index 97% rename from milepost/src/gl_loader.c rename to src/graphics/gl_loader.c index 27421f4..da206cc 100644 --- a/milepost/src/gl_loader.c +++ b/src/graphics/gl_loader.c @@ -1,9450 +1,9450 @@ -/******************************************************** -* -* @file: gl_loader.c -* @note: auto-generated by glapi.py from gl.xml -* @date: 07/082023 -* -*********************************************************/ -#include"gl_loader.h" -#include"platform.h" - -mp_thread_local mg_gl_api* __mgGLAPI = 0; -mg_gl_api __mgGLNoAPI; - -void mg_glPointParameterfv_noimpl(GLenum pname, const GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPointParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3fv_noimpl(GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1i_noimpl(GLint location, GLint v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP3ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP3ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4sv_noimpl(GLuint index, const GLshort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4sv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetBufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetBufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClampColor_noimpl(GLenum target, GLenum clamp) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClampColor is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCompressedTexImage3D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompressedTexImage3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix2x4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix2x4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindBuffer_noimpl(GLenum target, GLuint buffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glGetUniformBlockIndex_noimpl(GLuint program, const GLchar * uniformBlockName) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformBlockIndex is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glInvalidateFramebuffer_noimpl(GLenum target, GLsizei numAttachments, const GLenum * attachments) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glInvalidateFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPixelStorei_noimpl(GLenum pname, GLint param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPixelStorei is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindTexture_noimpl(GLenum target, GLuint texture) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindTexture is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Nuiv_noimpl(GLuint index, const GLuint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Nuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsTexture_noimpl(GLuint texture) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsTexture is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glVertexAttrib4d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix2x4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix2x4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetObjectLabel_noimpl(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetObjectLabel is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBeginConditionalRender_noimpl(GLuint id, GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBeginConditionalRender is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsFramebuffer_noimpl(GLuint framebuffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glCompileShader_noimpl(GLuint shader) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompileShader is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribBinding_noimpl(GLuint attribindex, GLuint bindingindex) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribBinding is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL1dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL1dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1fv_noimpl(GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexImage2D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFlush_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFlush is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP2uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP2uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsProgram_noimpl(GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glProgramUniform4fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribLPointer_noimpl(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribLPointer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLenum mg_glClientWaitSync_noimpl(GLsync sync, GLbitfield flags, GLuint64 timeout) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClientWaitSync is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLenum)0); -} -void mg_glUniform1d_noimpl(GLint location, GLdouble x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1ui_noimpl(GLuint program, GLint location, GLuint v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glColorMask_noimpl(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glColorMask is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearDepth_noimpl(GLdouble depth) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearDepth is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetInteger64v_noimpl(GLenum pname, GLint64 * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetInteger64v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP2ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP2ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib2dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4ui_noimpl(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendEquationi_noimpl(GLuint buf, GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendEquationi is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawRangeElements_noimpl(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawRangeElements is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glInvalidateTexImage_noimpl(GLuint texture, GLint level) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glInvalidateTexImage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSampleMaski_noimpl(GLuint maskNumber, GLbitfield mask) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSampleMaski is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetProgramResourceLocationIndex_noimpl(GLuint program, GLenum programInterface, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramResourceLocationIndex is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glVertexAttrib4dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindFragDataLocation_noimpl(GLuint program, GLuint color, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindFragDataLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetFragDataIndex_noimpl(GLuint program, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetFragDataIndex is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glGetTexLevelParameterfv_noimpl(GLenum target, GLint level, GLenum pname, GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexLevelParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP4uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP4uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMultiDrawArrays_noimpl(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMultiDrawArrays is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsTransformFeedback_noimpl(GLuint id) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glGetUniformiv_noimpl(GLuint program, GLint location, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBufferData_noimpl(GLenum target, GLsizeiptr size, const void * data, GLenum usage) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBufferData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetCompressedTexImage_noimpl(GLenum target, GLint level, void * img) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetCompressedTexImage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib3sv_noimpl(GLuint index, const GLshort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib3sv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsQuery_noimpl(GLuint id) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsQuery is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glClearColor_noimpl(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearColor is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendFunc_noimpl(GLenum sfactor, GLenum dfactor) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendFunc is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetDoublei_v_noimpl(GLenum target, GLuint index, GLdouble * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetDoublei_v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferTexture_noimpl(GLenum target, GLenum attachment, GLuint texture, GLint level) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferTexture is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glStencilMaskSeparate_noimpl(GLenum face, GLuint mask) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glStencilMaskSeparate is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPrimitiveRestartIndex_noimpl(GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPrimitiveRestartIndex is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP1ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP1ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribIFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribIFormat is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMemoryBarrier_noimpl(GLbitfield barriers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMemoryBarrier is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetSubroutineUniformLocation_noimpl(GLuint program, GLenum shadertype, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSubroutineUniformLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glBindRenderbuffer_noimpl(GLenum target, GLuint renderbuffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPushDebugGroup_noimpl(GLenum source, GLuint id, GLsizei length, const GLchar * message) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPushDebugGroup is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenTextures_noimpl(GLsizei n, GLuint * textures) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenTextures is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetIntegerv_noimpl(GLenum pname, GLint * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetIntegerv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetQueryObjectuiv_noimpl(GLuint id, GLenum pname, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetQueryObjectuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4fv_noimpl(GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glHint_noimpl(GLenum target, GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glHint is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexParameterf_noimpl(GLenum target, GLenum pname, GLfloat param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexParameterf is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawRangeElementsBaseVertex_noimpl(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawRangeElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClear_noimpl(GLbitfield mask) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClear is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindBufferBase_noimpl(GLenum target, GLuint index, GLuint buffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindBufferBase is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetQueryiv_noimpl(GLenum target, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetQueryiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramBinary_noimpl(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramBinary is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glScissorIndexedv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glScissorIndexedv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib1fv_noimpl(GLuint index, const GLfloat * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib1fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexStorage2D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexStorage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4f_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramParameteri_noimpl(GLuint program, GLenum pname, GLint value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramParameteri is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEnable_noimpl(GLenum cap) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEnable is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetBufferPointerv_noimpl(GLenum target, GLenum pname, void ** params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetBufferPointerv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glLogicOp_noimpl(GLenum opcode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glLogicOp is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDepthFunc_noimpl(GLenum func) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDepthFunc is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib1dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib1dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2d_noimpl(GLint location, GLdouble x, GLdouble y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDetachShader_noimpl(GLuint program, GLuint shader) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDetachShader is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexBindingDivisor_noimpl(GLuint bindingindex, GLuint divisor) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexBindingDivisor is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsProgramPipeline_noimpl(GLuint pipeline) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glProgramUniform1fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib2fv_noimpl(GLuint index, const GLfloat * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetDoublev_noimpl(GLenum pname, GLdouble * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetDoublev is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glResumeTransformFeedback_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glResumeTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDispatchCompute_noimpl(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDispatchCompute is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4bv_noimpl(GLuint index, const GLbyte * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4bv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetSamplerParameterfv_noimpl(GLuint sampler, GLenum pname, GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSamplerParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib1s_noimpl(GLuint index, GLshort x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib1s is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI2i_noimpl(GLuint index, GLint x, GLint y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI2i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSampleCoverage_noimpl(GLfloat value, GLboolean invert) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSampleCoverage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBufferSubData_noimpl(GLenum target, GLintptr offset, GLsizeiptr size, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI1ui_noimpl(GLuint index, GLuint x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI1ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEndConditionalRender_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEndConditionalRender is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetPointerv_noimpl(GLenum pname, void ** params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetPointerv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetnUniformiv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetnUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendEquation_noimpl(GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendEquation is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4iv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetnUniformfv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetnUniformfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Nsv_noimpl(GLuint index, const GLshort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Nsv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2fv_noimpl(GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3f_noimpl(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenerateMipmap_noimpl(GLenum target) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenerateMipmap is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenRenderbuffers_noimpl(GLsizei n, GLuint * renderbuffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenRenderbuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawElementsBaseVertex_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindVertexBuffers_noimpl(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindVertexBuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glScissor_noimpl(GLint x, GLint y, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glScissor is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void * mg_glMapBufferRange_noimpl(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMapBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((void *)0); -} -void mg_glProgramUniformMatrix4x2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix4x2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetTexParameterfv_noimpl(GLenum target, GLenum pname, GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2f_noimpl(GLint location, GLfloat v0, GLfloat v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribFormat is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsEnabled_noimpl(GLenum cap) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsEnabled is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glClearBufferfi_noimpl(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearBufferfi is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetRenderbufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetRenderbufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferTextureLayer_noimpl(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferTextureLayer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPointParameterf_noimpl(GLenum pname, GLfloat param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPointParameterf is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenVertexArrays_noimpl(GLsizei n, GLuint * arrays) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenVertexArrays is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetAttachedShaders_noimpl(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetAttachedShaders is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferRenderbuffer_noimpl(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteTextures_noimpl(GLsizei n, const GLuint * textures) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteTextures is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBeginQuery_noimpl(GLenum target, GLuint id) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBeginQuery is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4dv_noimpl(GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribIPointer_noimpl(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribIPointer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetSamplerParameterIiv_noimpl(GLuint sampler, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSamplerParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBeginQueryIndexed_noimpl(GLenum target, GLuint index, GLuint id) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBeginQueryIndexed is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBeginTransformFeedback_noimpl(GLenum primitiveMode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBeginTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3i_noimpl(GLint location, GLint v0, GLint v1, GLint v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveUniformName_noimpl(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveUniformName is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetProgramResourceLocation_noimpl(GLuint program, GLenum programInterface, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramResourceLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glShaderSource_noimpl(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glShaderSource is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSamplerParameterIiv_noimpl(GLuint sampler, GLenum pname, const GLint * param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSamplerParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFinish_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFinish is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawArraysInstancedBaseInstance_noimpl(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawArraysInstancedBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteProgram_noimpl(GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMultiDrawElementsBaseVertex_noimpl(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMultiDrawElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glReadBuffer_noimpl(GLenum src) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glReadBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenBuffers_noimpl(GLsizei n, GLuint * buffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenBuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearDepthf_noimpl(GLfloat d) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearDepthf is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribPointer_noimpl(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribPointer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL4dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexStorage2DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexStorage2DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindSamplers_noimpl(GLuint first, GLsizei count, const GLuint * samplers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindSamplers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEnableVertexAttribArray_noimpl(GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEnableVertexAttribArray is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4ubv_noimpl(GLuint index, const GLubyte * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4ubv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glGetDebugMessageLog_noimpl(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetDebugMessageLog is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glDisableVertexAttribArray_noimpl(GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDisableVertexAttribArray is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawElementsInstancedBaseInstance_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElementsInstancedBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPolygonMode_noimpl(GLenum face, GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPolygonMode is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP1uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP1uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI1i_noimpl(GLuint index, GLint x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI1i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetTexLevelParameteriv_noimpl(GLenum target, GLint level, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexLevelParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsSync_noimpl(GLsync sync) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsSync is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glTexStorage1D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexStorage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribIiv_noimpl(GLuint index, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribIiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsEnabledi_noimpl(GLenum target, GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsEnabledi is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glMultiDrawElementsIndirect_noimpl(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMultiDrawElementsIndirect is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetBooleani_v_noimpl(GLenum target, GLuint index, GLboolean * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetBooleani_v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetInternalformativ_noimpl(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetInternalformativ is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4ubv_noimpl(GLuint index, const GLubyte * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4ubv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib2s_noimpl(GLuint index, GLshort x, GLshort y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib2s is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetBooleanv_noimpl(GLenum pname, GLboolean * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetBooleanv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4iv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetObjectPtrLabel_noimpl(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetObjectPtrLabel is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix2x4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix2x4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribdv_noimpl(GLuint index, GLenum pname, GLdouble * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribdv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glViewportIndexedf_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glViewportIndexedf is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteSync_noimpl(GLsync sync) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteSync is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyImageSubData_noimpl(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyImageSubData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPrimitiveBoundingBox_noimpl(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPrimitiveBoundingBox is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glScissorIndexed_noimpl(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glScissorIndexed is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenTransformFeedbacks_noimpl(GLsizei n, GLuint * ids) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenTransformFeedbacks is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMemoryBarrierByRegion_noimpl(GLbitfield barriers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMemoryBarrierByRegion is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteTransformFeedbacks_noimpl(GLsizei n, const GLuint * ids) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteTransformFeedbacks is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindBuffersBase_noimpl(GLenum target, GLuint first, GLsizei count, const GLuint * buffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindBuffersBase is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetTexParameterIuiv_noimpl(GLenum target, GLenum pname, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsShader_noimpl(GLuint shader) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsShader is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glProgramUniform3i_noimpl(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveAtomicCounterBufferiv_noimpl(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveAtomicCounterBufferiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix3x4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix3x4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBufferStorage_noimpl(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBufferStorage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetUniformSubroutineuiv_noimpl(GLenum shadertype, GLint location, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformSubroutineuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glRenderbufferStorageMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glRenderbufferStorageMultisample is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetMultisamplefv_noimpl(GLenum pname, GLuint index, GLfloat * val) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetMultisamplefv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribDivisor_noimpl(GLuint index, GLuint divisor) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribDivisor is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glStencilMask_noimpl(GLuint mask) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glStencilMask is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindSampler_noimpl(GLuint unit, GLuint sampler) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindSampler is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindImageTexture_noimpl(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindImageTexture is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawBuffers_noimpl(GLsizei n, const GLenum * bufs) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawBuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Nub_noimpl(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Nub is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetTexImage_noimpl(GLenum target, GLint level, GLenum format, GLenum type, void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexImage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib3dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlitFramebuffer_noimpl(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlitFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib2d_noimpl(GLuint index, GLdouble x, GLdouble y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib2d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1ui_noimpl(GLint location, GLuint v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glInvalidateBufferSubData_noimpl(GLuint buffer, GLintptr offset, GLsizeiptr length) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glInvalidateBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEndQuery_noimpl(GLenum target) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEndQuery is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetUniformuiv_noimpl(GLuint program, GLint location, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetFramebufferAttachmentParameteriv_noimpl(GLenum target, GLenum attachment, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetFramebufferAttachmentParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix3x2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix3x2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindVertexBuffer_noimpl(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindVertexBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib2sv_noimpl(GLuint index, const GLshort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib2sv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1f_noimpl(GLint location, GLfloat v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDebugMessageCallback_noimpl(GLDEBUGPROC callback, const void * userParam) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDebugMessageCallback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glReadPixels_noimpl(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glReadPixels is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCompressedTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompressedTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawArraysIndirect_noimpl(GLenum mode, const void * indirect) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawArraysIndirect is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendFuncSeparate_noimpl(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendFuncSeparate is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glCreateShader_noimpl(GLenum type) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCreateShader is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glGetTransformFeedbackVarying_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTransformFeedbackVarying is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glAttachShader_noimpl(GLuint program, GLuint shader) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glAttachShader is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix2x3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix2x3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMultiDrawArraysIndirect_noimpl(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMultiDrawArraysIndirect is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2iv_noimpl(GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindBufferRange_noimpl(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexParameteriv_noimpl(GLenum target, GLenum pname, const GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL3d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL3d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexImage3DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexImage3DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearTexSubImage_noimpl(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearTexSubImage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Nusv_noimpl(GLuint index, const GLushort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Nusv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glInvalidateSubFramebuffer_noimpl(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glInvalidateSubFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetShaderInfoLog_noimpl(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetShaderInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP4ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP4ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glViewport_noimpl(GLint x, GLint y, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glViewport is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendFunci_noimpl(GLuint buf, GLenum src, GLenum dst) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendFunci is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPolygonOffset_noimpl(GLfloat factor, GLfloat units) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPolygonOffset is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSamplerParameteri_noimpl(GLuint sampler, GLenum pname, GLint param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSamplerParameteri is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetFramebufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetFramebufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI2iv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI2iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glObjectLabel_noimpl(GLenum identifier, GLuint name, GLsizei length, const GLchar * label) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glObjectLabel is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCompressedTexImage1D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompressedTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glInvalidateTexSubImage_noimpl(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glInvalidateTexSubImage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindBuffersRange_noimpl(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindBuffersRange is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyBufferSubData_noimpl(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Nbv_noimpl(GLuint index, const GLbyte * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Nbv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glObjectPtrLabel_noimpl(const void * ptr, GLsizei length, const GLchar * label) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glObjectPtrLabel is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramPipelineiv_noimpl(GLuint pipeline, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramPipelineiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexStorage3DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexStorage3DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL3dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteFramebuffers_noimpl(GLsizei n, const GLuint * framebuffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteFramebuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLenum mg_glCheckFramebufferStatus_noimpl(GLenum target) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCheckFramebufferStatus is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLenum)0); -} -void mg_glVertexAttribL2dv_noimpl(GLuint index, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib2f_noimpl(GLuint index, GLfloat x, GLfloat y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib2f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribIuiv_noimpl(GLuint index, GLenum pname, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribIuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glStencilOp_noimpl(GLenum fail, GLenum zfail, GLenum zpass) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glStencilOp is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib3d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib3d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPointParameteri_noimpl(GLenum pname, GLint param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPointParameteri is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI1uiv_noimpl(GLuint index, const GLuint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI1uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearBufferfv_noimpl(GLenum buffer, GLint drawbuffer, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearBufferfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindFragDataLocationIndexed_noimpl(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindFragDataLocationIndexed is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1d_noimpl(GLuint program, GLint location, GLdouble v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPointParameteriv_noimpl(GLenum pname, const GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPointParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFlushMappedBufferRange_noimpl(GLenum target, GLintptr offset, GLsizeiptr length) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFlushMappedBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTextureView_noimpl(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTextureView is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramPipelineInfoLog_noimpl(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramPipelineInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyTexImage2D_noimpl(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glQueryCounter_noimpl(GLuint id, GLenum target) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glQueryCounter is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetUniformfv_noimpl(GLuint program, GLint location, GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearStencil_noimpl(GLint s) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearStencil is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramiv_noimpl(GLuint program, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformSubroutinesuiv_noimpl(GLenum shadertype, GLsizei count, const GLuint * indices) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformSubroutinesuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramStageiv_noimpl(GLuint program, GLenum shadertype, GLenum pname, GLint * values) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramStageiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1iv_noimpl(GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribPointerv_noimpl(GLuint index, GLenum pname, void ** pointer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribPointerv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glStencilFuncSeparate_noimpl(GLenum face, GLenum func, GLint ref, GLuint mask) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glStencilFuncSeparate is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glGetSubroutineIndex_noimpl(GLuint program, GLenum shadertype, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSubroutineIndex is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glDrawElementsInstanced_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElementsInstanced is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendFuncSeparatei_noimpl(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendFuncSeparatei is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix3x2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix3x2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveUniformsiv_noimpl(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveUniformsiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix3x4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix3x4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetSamplerParameterIuiv_noimpl(GLuint sampler, GLenum pname, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSamplerParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4i_noimpl(GLuint index, GLint x, GLint y, GLint z, GLint w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendEquationSeparate_noimpl(GLenum modeRGB, GLenum modeAlpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendEquationSeparate is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix4x2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix4x2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexParameterIiv_noimpl(GLenum target, GLenum pname, const GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawTransformFeedbackStream_noimpl(GLenum mode, GLuint id, GLuint stream) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawTransformFeedbackStream is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI1iv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI1iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetUniformIndices_noimpl(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformIndices is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetShaderiv_noimpl(GLuint shader, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetShaderiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveUniform_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveUniform is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3uiv_noimpl(GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPatchParameteri_noimpl(GLenum pname, GLint value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPatchParameteri is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glWaitSync_noimpl(GLsync sync, GLbitfield flags, GLuint64 timeout) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glWaitSync is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearTexImage_noimpl(GLuint texture, GLint level, GLenum format, GLenum type, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearTexImage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDepthRangeIndexed_noimpl(GLuint index, GLdouble n, GLdouble f) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDepthRangeIndexed is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetTexParameterIiv_noimpl(GLenum target, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDepthRange_noimpl(GLdouble n, GLdouble f) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDepthRange is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveAttrib_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveAttrib is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsRenderbuffer_noimpl(GLuint renderbuffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glClearBufferiv_noimpl(GLenum buffer, GLint drawbuffer, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearBufferiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI3uiv_noimpl(GLuint index, const GLuint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI3uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUseProgram_noimpl(GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUseProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveSubroutineName_noimpl(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveSubroutineName is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix4x3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix4x3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix4x3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix4x3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetBufferSubData_noimpl(GLenum target, GLintptr offset, GLsizeiptr size, void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4uiv_noimpl(GLuint index, const GLuint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib1f_noimpl(GLuint index, GLfloat x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib1f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4usv_noimpl(GLuint index, const GLushort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4usv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDebugMessageInsert_noimpl(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDebugMessageInsert is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEndTransformFeedback_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEndTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexImage2DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexImage2DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindTransformFeedback_noimpl(GLenum target, GLuint id) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3dv_noimpl(GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix3x2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix3x2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetSamplerParameteriv_noimpl(GLuint sampler, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSamplerParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribP3uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribP3uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4d_noimpl(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteVertexArrays_noimpl(GLsizei n, const GLuint * arrays) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteVertexArrays is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexParameteri_noimpl(GLenum target, GLenum pname, GLint param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexParameteri is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawElementsInstancedBaseVertex_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElementsInstancedBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetQueryObjectui64v_noimpl(GLuint id, GLenum pname, GLuint64 * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetQueryObjectui64v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Niv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Niv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSamplerParameterfv_noimpl(GLuint sampler, GLenum pname, const GLfloat * param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSamplerParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4bv_noimpl(GLuint index, const GLbyte * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4bv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1i_noimpl(GLuint program, GLint location, GLint v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix4x2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix4x2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetSynciv_noimpl(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetSynciv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib3f_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib3f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetQueryObjectiv_noimpl(GLuint id, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetQueryObjectiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramInfoLog_noimpl(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveUniformBlockiv_noimpl(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveUniformBlockiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenQueries_noimpl(GLsizei n, GLuint * ids) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenQueries is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix4x3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix4x3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexBuffer_noimpl(GLenum target, GLenum internalformat, GLuint buffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glShaderStorageBlockBinding_noimpl(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glShaderStorageBlockBinding is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDisable_noimpl(GLenum cap) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDisable is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI3ui_noimpl(GLuint index, GLuint x, GLuint y, GLuint z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI3ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsSampler_noimpl(GLuint sampler) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsSampler is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glActiveShaderProgram_noimpl(GLuint pipeline, GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glActiveShaderProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindVertexArray_noimpl(GLuint array) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindVertexArray is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix2x3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix2x3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawArraysInstanced_noimpl(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawArraysInstanced is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI2uiv_noimpl(GLuint index, const GLuint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI2uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetQueryObjecti64v_noimpl(GLuint id, GLenum pname, GLint64 * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetQueryObjecti64v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -const GLubyte * mg_glGetStringi_noimpl(GLenum name, GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetStringi is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((const GLubyte *)0); -} -void mg_glBindProgramPipeline_noimpl(GLuint pipeline) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindFramebuffer_noimpl(GLenum target, GLuint framebuffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib1d_noimpl(GLuint index, GLdouble x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib1d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glRenderbufferStorage_noimpl(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glRenderbufferStorage is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glReleaseShaderCompiler_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glReleaseShaderCompiler is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2i_noimpl(GLint location, GLint v0, GLint v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawBuffer_noimpl(GLenum buf) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteRenderbuffers_noimpl(GLsizei n, const GLuint * renderbuffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteRenderbuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteBuffers_noimpl(GLsizei n, const GLuint * buffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteBuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenFramebuffers_noimpl(GLsizei n, GLuint * framebuffers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenFramebuffers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform3f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform3f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendBarrier_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendBarrier is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL2d_noimpl(GLuint index, GLdouble x, GLdouble y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL2d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCompressedTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompressedTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSamplerParameterf_noimpl(GLuint sampler, GLenum pname, GLfloat param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSamplerParameterf is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI2ui_noimpl(GLuint index, GLuint x, GLuint y) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI2ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindTextures_noimpl(GLuint first, GLsizei count, const GLuint * textures) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindTextures is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3d_noimpl(GLint location, GLdouble x, GLdouble y, GLdouble z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glViewportIndexedfv_noimpl(GLuint index, const GLfloat * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glViewportIndexedfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4sv_noimpl(GLuint index, const GLshort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4sv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glLineWidth_noimpl(GLfloat width) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glLineWidth is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribfv_noimpl(GLuint index, GLenum pname, GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI3iv_noimpl(GLuint index, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI3iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1dv_noimpl(GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCullFace_noimpl(GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCullFace is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glCreateProgram_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCreateProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glUniform4i_noimpl(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix4x3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix4x3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetAttribLocation_noimpl(GLuint program, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetAttribLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glGetShaderPrecisionFormat_noimpl(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetShaderPrecisionFormat is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4iv_noimpl(GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCompressedTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompressedTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindImageTextures_noimpl(GLuint first, GLsizei count, const GLuint * textures) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindImageTextures is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetBufferParameteri64v_noimpl(GLenum target, GLenum pname, GLint64 * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetBufferParameteri64v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFrontFace_noimpl(GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFrontFace is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPopDebugGroup_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPopDebugGroup is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib1sv_noimpl(GLuint index, const GLshort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib1sv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glInvalidateBufferData_noimpl(GLuint buffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glInvalidateBufferData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glIsVertexArray_noimpl(GLuint array) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsVertexArray is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glScissorArrayv_noimpl(GLuint first, GLsizei count, const GLint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glScissorArrayv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glValidateProgram_noimpl(GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glValidateProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2uiv_noimpl(GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDebugMessageControl_noimpl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDebugMessageControl is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferParameteri_noimpl(GLenum target, GLenum pname, GLint param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferParameteri is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetUniformLocation_noimpl(GLuint program, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glTexStorage3D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexStorage3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPixelStoref_noimpl(GLenum pname, GLfloat param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPixelStoref is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDepthRangef_noimpl(GLfloat n, GLfloat f) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDepthRangef is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI3i_noimpl(GLuint index, GLint x, GLint y, GLint z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI3i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform1uiv_noimpl(GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform1uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDisablei_noimpl(GLenum target, GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDisablei is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetInternalformati64v_noimpl(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetInternalformati64v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix2x3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix2x3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glGetProgramResourceIndex_noimpl(GLuint program, GLenum programInterface, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramResourceIndex is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glBlendColor_noimpl(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendColor is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenSamplers_noimpl(GLsizei count, GLuint * samplers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenSamplers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glColorMaski_noimpl(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glColorMaski is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLenum mg_glGetGraphicsResetStatus_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetGraphicsResetStatus is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLenum)0); -} -void mg_glVertexAttribI4uiv_noimpl(GLuint index, const GLuint * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLuint mg_glCreateShaderProgramv_noimpl(GLenum type, GLsizei count, const GLchar *const* strings) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCreateShaderProgramv is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLuint)0); -} -void mg_glDeleteSamplers_noimpl(GLsizei count, const GLuint * samplers) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteSamplers is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib3s_noimpl(GLuint index, GLshort x, GLshort y, GLshort z) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib3s is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawTransformFeedback_noimpl(GLenum mode, GLuint id) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL1d_noimpl(GLuint index, GLdouble x) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL1d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElementsInstancedBaseVertexBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearBufferSubData_noimpl(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribLFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribLFormat is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2dv_noimpl(GLint location, GLsizei count, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyTexImage1D_noimpl(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferTexture3D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferTexture3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribL4d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribL4d is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLboolean mg_glUnmapBuffer_noimpl(GLenum target) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUnmapBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glGetQueryIndexediv_noimpl(GLenum target, GLuint index, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetQueryIndexediv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLsync mg_glFenceSync_noimpl(GLenum condition, GLbitfield flags) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFenceSync is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLsync)0); -} -void mg_glDispatchComputeIndirect_noimpl(GLintptr indirect) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDispatchComputeIndirect is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSamplerParameterIuiv_noimpl(GLuint sampler, GLenum pname, const GLuint * param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSamplerParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLint mg_glGetFragDataLocation_noimpl(GLuint program, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetFragDataLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLint)0); -} -void mg_glGetUniformdv_noimpl(GLuint program, GLint location, GLdouble * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetUniformdv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexImage3D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexImage3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glValidateProgramPipeline_noimpl(GLuint pipeline) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glValidateProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glLinkProgram_noimpl(GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glLinkProgram is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteQueries_noimpl(GLsizei n, const GLuint * ids) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteQueries is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferTexture1D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferTexture1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveSubroutineUniformName_noimpl(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveSubroutineUniformName is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix3x2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix3x2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetTexParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetTexParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProvokingVertex_noimpl(GLenum mode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProvokingVertex is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBindAttribLocation_noimpl(GLuint program, GLuint index, const GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBindAttribLocation is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib3fv_noimpl(GLuint index, const GLfloat * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveUniformBlockName_noimpl(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveUniformBlockName is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawArrays_noimpl(GLenum mode, GLint first, GLsizei count) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawArrays is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetnUniformuiv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetnUniformuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawElementsIndirect_noimpl(GLenum mode, GLenum type, const void * indirect) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElementsIndirect is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttribI4usv_noimpl(GLuint index, const GLushort * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttribI4usv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glBlendEquationSeparatei_noimpl(GLuint buf, GLenum modeRGB, GLenum modeAlpha) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glBlendEquationSeparatei is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawElements_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawElements is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetShaderSource_noimpl(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetShaderSource is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTransformFeedbackVaryings_noimpl(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTransformFeedbackVaryings is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -GLenum mg_glGetError_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetError is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLenum)0); -} -GLboolean mg_glIsBuffer_noimpl(GLuint buffer) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glIsBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((GLboolean)0); -} -void mg_glClearBufferuiv_noimpl(GLenum buffer, GLint drawbuffer, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearBufferuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribiv_noimpl(GLuint index, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramResourceName_noimpl(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramResourceName is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform2ui_noimpl(GLint location, GLuint v0, GLuint v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform2ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glStencilFunc_noimpl(GLenum func, GLint ref, GLuint mask) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glStencilFunc is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEnablei_noimpl(GLenum target, GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEnablei is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glSamplerParameteriv_noimpl(GLuint sampler, GLenum pname, const GLint * param) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glSamplerParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetInteger64i_v_noimpl(GLenum target, GLuint index, GLint64 * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetInteger64i_v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4i_noimpl(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4ui_noimpl(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix2x4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix2x4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glReadnPixels_noimpl(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glReadnPixels is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawTransformFeedbackInstanced_noimpl(GLenum mode, GLuint id, GLsizei instancecount) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawTransformFeedbackInstanced is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPointSize_noimpl(GLfloat size) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPointSize is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glViewportArrayv_noimpl(GLuint first, GLsizei count, const GLfloat * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glViewportArrayv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glStencilOpSeparate_noimpl(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glStencilOpSeparate is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3ui_noimpl(GLint location, GLuint v0, GLuint v1, GLuint v2) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3ui is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4uiv_noimpl(GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform3iv_noimpl(GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform3iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniform4f_noimpl(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniform4f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glFramebufferTexture2D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glFramebufferTexture2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetIntegeri_v_noimpl(GLenum target, GLuint index, GLint * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetIntegeri_v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMultiDrawElements_noimpl(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMultiDrawElements is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix4x2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix4x2dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniformMatrix2x3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix2x3fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCopyTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCopyTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetActiveSubroutineUniformiv_noimpl(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetActiveSubroutineUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGenProgramPipelines_noimpl(GLsizei n, GLuint * pipelines) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGenProgramPipelines is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform4iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform4iv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix3x4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix3x4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformBlockBinding_noimpl(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformBlockBinding is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDepthRangeArrayv_noimpl(GLuint first, GLsizei count, const GLdouble * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDepthRangeArrayv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexParameterfv_noimpl(GLenum target, GLenum pname, const GLfloat * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void * mg_glMapBuffer_noimpl(GLenum target, GLenum access) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMapBuffer is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((void *)0); -} -void mg_glDeleteProgramPipelines_noimpl(GLsizei n, const GLuint * pipelines) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteProgramPipelines is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glMinSampleShading_noimpl(GLfloat value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glMinSampleShading is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPauseTransformFeedback_noimpl() -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPauseTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glEndQueryIndexed_noimpl(GLenum target, GLuint index) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glEndQueryIndexed is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramBinary_noimpl(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramBinary is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2i_noimpl(GLuint program, GLint location, GLint v0, GLint v1) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2i is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDepthMask_noimpl(GLboolean flag) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDepthMask is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glActiveTexture_noimpl(GLenum texture) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glActiveTexture is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUseProgramStages_noimpl(GLuint pipeline, GLbitfield stages, GLuint program) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUseProgramStages is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glPatchParameterfv_noimpl(GLenum pname, const GLfloat * values) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glPatchParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glShaderBinary_noimpl(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glShaderBinary is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetFloatv_noimpl(GLenum pname, GLfloat * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetFloatv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform1f_noimpl(GLuint program, GLint location, GLfloat v0) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform1f is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexImage1D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glProgramUniform2uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniform2uiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glClearBufferData_noimpl(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glClearBufferData is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix3dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glCompressedTexImage2D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glCompressedTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4fv_noimpl(GLuint index, const GLfloat * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramResourceiv_noimpl(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramResourceiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -const GLubyte * mg_glGetString_noimpl(GLenum name) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetString is not part of currently selected %s API\n", __mgGLAPI->name); - } - return((const GLubyte *)0); -} -void mg_glProgramUniformMatrix2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glProgramUniformMatrix2fv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetVertexAttribLdv_noimpl(GLuint index, GLenum pname, GLdouble * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetVertexAttribLdv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4Nubv_noimpl(GLuint index, const GLubyte * v) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4Nubv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexBufferRange_noimpl(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glUniformMatrix3x4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glUniformMatrix3x4dv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetProgramInterfaceiv_noimpl(GLuint program, GLenum programInterface, GLenum pname, GLint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetProgramInterfaceiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glTexParameterIuiv_noimpl(GLenum target, GLenum pname, const GLuint * params) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glTexParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDeleteShader_noimpl(GLuint shader) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDeleteShader is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glGetFloati_v_noimpl(GLenum target, GLuint index, GLfloat * data) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glGetFloati_v is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glDrawTransformFeedbackStreamInstanced_noimpl(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glDrawTransformFeedbackStreamInstanced is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -void mg_glVertexAttrib4s_noimpl(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) -{ - if(__mgGLAPI == &__mgGLNoAPI) - { - log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); - } - else - { - log_error("glVertexAttrib4s is not part of currently selected %s API\n", __mgGLAPI->name); - } -} -mg_gl_api __mgGLNoAPI = { - .PointParameterfv = mg_glPointParameterfv_noimpl, - .Uniform3fv = mg_glUniform3fv_noimpl, - .Uniform1i = mg_glUniform1i_noimpl, - .VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl, - .VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl, - .GetBufferParameteriv = mg_glGetBufferParameteriv_noimpl, - .ProgramUniform2dv = mg_glProgramUniform2dv_noimpl, - .ClampColor = mg_glClampColor_noimpl, - .CompressedTexImage3D = mg_glCompressedTexImage3D_noimpl, - .ProgramUniformMatrix2x4fv = mg_glProgramUniformMatrix2x4fv_noimpl, - .ProgramUniform2d = mg_glProgramUniform2d_noimpl, - .BindBuffer = mg_glBindBuffer_noimpl, - .GetUniformBlockIndex = mg_glGetUniformBlockIndex_noimpl, - .InvalidateFramebuffer = mg_glInvalidateFramebuffer_noimpl, - .PixelStorei = mg_glPixelStorei_noimpl, - .BindTexture = mg_glBindTexture_noimpl, - .VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl, - .IsTexture = mg_glIsTexture_noimpl, - .VertexAttrib4d = mg_glVertexAttrib4d_noimpl, - .ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl, - .GetObjectLabel = mg_glGetObjectLabel_noimpl, - .BeginConditionalRender = mg_glBeginConditionalRender_noimpl, - .IsFramebuffer = mg_glIsFramebuffer_noimpl, - .CompileShader = mg_glCompileShader_noimpl, - .VertexAttribBinding = mg_glVertexAttribBinding_noimpl, - .VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl, - .Uniform1fv = mg_glUniform1fv_noimpl, - .TexImage2D = mg_glTexImage2D_noimpl, - .Flush = mg_glFlush_noimpl, - .VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl, - .IsProgram = mg_glIsProgram_noimpl, - .ProgramUniform4fv = mg_glProgramUniform4fv_noimpl, - .VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl, - .ClientWaitSync = mg_glClientWaitSync_noimpl, - .Uniform1d = mg_glUniform1d_noimpl, - .ProgramUniform1ui = mg_glProgramUniform1ui_noimpl, - .ColorMask = mg_glColorMask_noimpl, - .ClearDepth = mg_glClearDepth_noimpl, - .GetInteger64v = mg_glGetInteger64v_noimpl, - .VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl, - .VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl, - .VertexAttribI4ui = mg_glVertexAttribI4ui_noimpl, - .BlendEquationi = mg_glBlendEquationi_noimpl, - .DrawRangeElements = mg_glDrawRangeElements_noimpl, - .InvalidateTexImage = mg_glInvalidateTexImage_noimpl, - .SampleMaski = mg_glSampleMaski_noimpl, - .GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl, - .VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl, - .BindFragDataLocation = mg_glBindFragDataLocation_noimpl, - .GetFragDataIndex = mg_glGetFragDataIndex_noimpl, - .GetTexLevelParameterfv = mg_glGetTexLevelParameterfv_noimpl, - .VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl, - .MultiDrawArrays = mg_glMultiDrawArrays_noimpl, - .IsTransformFeedback = mg_glIsTransformFeedback_noimpl, - .GetUniformiv = mg_glGetUniformiv_noimpl, - .BufferData = mg_glBufferData_noimpl, - .GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl, - .VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl, - .IsQuery = mg_glIsQuery_noimpl, - .ClearColor = mg_glClearColor_noimpl, - .BlendFunc = mg_glBlendFunc_noimpl, - .GetDoublei_v = mg_glGetDoublei_v_noimpl, - .FramebufferTexture = mg_glFramebufferTexture_noimpl, - .StencilMaskSeparate = mg_glStencilMaskSeparate_noimpl, - .PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl, - .VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl, - .VertexAttribIFormat = mg_glVertexAttribIFormat_noimpl, - .MemoryBarrier = mg_glMemoryBarrier_noimpl, - .GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl, - .BindRenderbuffer = mg_glBindRenderbuffer_noimpl, - .PushDebugGroup = mg_glPushDebugGroup_noimpl, - .GenTextures = mg_glGenTextures_noimpl, - .GetIntegerv = mg_glGetIntegerv_noimpl, - .GetQueryObjectuiv = mg_glGetQueryObjectuiv_noimpl, - .Uniform4fv = mg_glUniform4fv_noimpl, - .Hint = mg_glHint_noimpl, - .TexParameterf = mg_glTexParameterf_noimpl, - .ProgramUniform2fv = mg_glProgramUniform2fv_noimpl, - .DrawRangeElementsBaseVertex = mg_glDrawRangeElementsBaseVertex_noimpl, - .Clear = mg_glClear_noimpl, - .BindBufferBase = mg_glBindBufferBase_noimpl, - .GetQueryiv = mg_glGetQueryiv_noimpl, - .ProgramBinary = mg_glProgramBinary_noimpl, - .ScissorIndexedv = mg_glScissorIndexedv_noimpl, - .VertexAttrib1fv = mg_glVertexAttrib1fv_noimpl, - .TexStorage2D = mg_glTexStorage2D_noimpl, - .VertexAttrib4f = mg_glVertexAttrib4f_noimpl, - .ProgramParameteri = mg_glProgramParameteri_noimpl, - .Enable = mg_glEnable_noimpl, - .GetBufferPointerv = mg_glGetBufferPointerv_noimpl, - .LogicOp = mg_glLogicOp_noimpl, - .DepthFunc = mg_glDepthFunc_noimpl, - .VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl, - .Uniform2d = mg_glUniform2d_noimpl, - .DetachShader = mg_glDetachShader_noimpl, - .VertexBindingDivisor = mg_glVertexBindingDivisor_noimpl, - .IsProgramPipeline = mg_glIsProgramPipeline_noimpl, - .ProgramUniform1fv = mg_glProgramUniform1fv_noimpl, - .CopyTexSubImage2D = mg_glCopyTexSubImage2D_noimpl, - .VertexAttrib2fv = mg_glVertexAttrib2fv_noimpl, - .GetDoublev = mg_glGetDoublev_noimpl, - .ResumeTransformFeedback = mg_glResumeTransformFeedback_noimpl, - .ProgramUniform4d = mg_glProgramUniform4d_noimpl, - .ProgramUniform4uiv = mg_glProgramUniform4uiv_noimpl, - .DispatchCompute = mg_glDispatchCompute_noimpl, - .VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl, - .GetSamplerParameterfv = mg_glGetSamplerParameterfv_noimpl, - .ProgramUniform3iv = mg_glProgramUniform3iv_noimpl, - .VertexAttrib1s = mg_glVertexAttrib1s_noimpl, - .VertexAttribI2i = mg_glVertexAttribI2i_noimpl, - .SampleCoverage = mg_glSampleCoverage_noimpl, - .BufferSubData = mg_glBufferSubData_noimpl, - .VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl, - .EndConditionalRender = mg_glEndConditionalRender_noimpl, - .GetPointerv = mg_glGetPointerv_noimpl, - .GetnUniformiv = mg_glGetnUniformiv_noimpl, - .BlendEquation = mg_glBlendEquation_noimpl, - .VertexAttribI4iv = mg_glVertexAttribI4iv_noimpl, - .GetnUniformfv = mg_glGetnUniformfv_noimpl, - .VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl, - .Uniform2fv = mg_glUniform2fv_noimpl, - .Uniform3f = mg_glUniform3f_noimpl, - .GenerateMipmap = mg_glGenerateMipmap_noimpl, - .GenRenderbuffers = mg_glGenRenderbuffers_noimpl, - .DrawElementsBaseVertex = mg_glDrawElementsBaseVertex_noimpl, - .BindVertexBuffers = mg_glBindVertexBuffers_noimpl, - .Scissor = mg_glScissor_noimpl, - .MapBufferRange = mg_glMapBufferRange_noimpl, - .ProgramUniformMatrix4x2fv = mg_glProgramUniformMatrix4x2fv_noimpl, - .GetTexParameterfv = mg_glGetTexParameterfv_noimpl, - .Uniform2f = mg_glUniform2f_noimpl, - .VertexAttribFormat = mg_glVertexAttribFormat_noimpl, - .UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl, - .IsEnabled = mg_glIsEnabled_noimpl, - .ClearBufferfi = mg_glClearBufferfi_noimpl, - .GetRenderbufferParameteriv = mg_glGetRenderbufferParameteriv_noimpl, - .FramebufferTextureLayer = mg_glFramebufferTextureLayer_noimpl, - .PointParameterf = mg_glPointParameterf_noimpl, - .GenVertexArrays = mg_glGenVertexArrays_noimpl, - .GetAttachedShaders = mg_glGetAttachedShaders_noimpl, - .FramebufferRenderbuffer = mg_glFramebufferRenderbuffer_noimpl, - .DeleteTextures = mg_glDeleteTextures_noimpl, - .BeginQuery = mg_glBeginQuery_noimpl, - .Uniform4dv = mg_glUniform4dv_noimpl, - .VertexAttribIPointer = mg_glVertexAttribIPointer_noimpl, - .GetSamplerParameterIiv = mg_glGetSamplerParameterIiv_noimpl, - .BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl, - .BeginTransformFeedback = mg_glBeginTransformFeedback_noimpl, - .Uniform3i = mg_glUniform3i_noimpl, - .GetActiveUniformName = mg_glGetActiveUniformName_noimpl, - .GetProgramResourceLocation = mg_glGetProgramResourceLocation_noimpl, - .ShaderSource = mg_glShaderSource_noimpl, - .SamplerParameterIiv = mg_glSamplerParameterIiv_noimpl, - .Finish = mg_glFinish_noimpl, - .DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl, - .DeleteProgram = mg_glDeleteProgram_noimpl, - .MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl, - .ReadBuffer = mg_glReadBuffer_noimpl, - .GenBuffers = mg_glGenBuffers_noimpl, - .ClearDepthf = mg_glClearDepthf_noimpl, - .VertexAttribPointer = mg_glVertexAttribPointer_noimpl, - .VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl, - .TexStorage2DMultisample = mg_glTexStorage2DMultisample_noimpl, - .BindSamplers = mg_glBindSamplers_noimpl, - .EnableVertexAttribArray = mg_glEnableVertexAttribArray_noimpl, - .VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl, - .GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl, - .DisableVertexAttribArray = mg_glDisableVertexAttribArray_noimpl, - .DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl, - .PolygonMode = mg_glPolygonMode_noimpl, - .VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl, - .ProgramUniform1iv = mg_glProgramUniform1iv_noimpl, - .VertexAttribI1i = mg_glVertexAttribI1i_noimpl, - .GetTexLevelParameteriv = mg_glGetTexLevelParameteriv_noimpl, - .IsSync = mg_glIsSync_noimpl, - .TexStorage1D = mg_glTexStorage1D_noimpl, - .GetVertexAttribIiv = mg_glGetVertexAttribIiv_noimpl, - .IsEnabledi = mg_glIsEnabledi_noimpl, - .MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl, - .GetBooleani_v = mg_glGetBooleani_v_noimpl, - .GetInternalformativ = mg_glGetInternalformativ_noimpl, - .VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl, - .VertexAttrib2s = mg_glVertexAttrib2s_noimpl, - .GetBooleanv = mg_glGetBooleanv_noimpl, - .VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl, - .GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl, - .UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl, - .ProgramUniform4ui = mg_glProgramUniform4ui_noimpl, - .GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl, - .ViewportIndexedf = mg_glViewportIndexedf_noimpl, - .DeleteSync = mg_glDeleteSync_noimpl, - .CopyImageSubData = mg_glCopyImageSubData_noimpl, - .PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl, - .ScissorIndexed = mg_glScissorIndexed_noimpl, - .GenTransformFeedbacks = mg_glGenTransformFeedbacks_noimpl, - .MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl, - .DeleteTransformFeedbacks = mg_glDeleteTransformFeedbacks_noimpl, - .ProgramUniform4f = mg_glProgramUniform4f_noimpl, - .BindBuffersBase = mg_glBindBuffersBase_noimpl, - .GetTexParameterIuiv = mg_glGetTexParameterIuiv_noimpl, - .IsShader = mg_glIsShader_noimpl, - .ProgramUniform3i = mg_glProgramUniform3i_noimpl, - .GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl, - .ProgramUniformMatrix3x4fv = mg_glProgramUniformMatrix3x4fv_noimpl, - .BufferStorage = mg_glBufferStorage_noimpl, - .GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl, - .RenderbufferStorageMultisample = mg_glRenderbufferStorageMultisample_noimpl, - .GetMultisamplefv = mg_glGetMultisamplefv_noimpl, - .VertexAttribDivisor = mg_glVertexAttribDivisor_noimpl, - .StencilMask = mg_glStencilMask_noimpl, - .BindSampler = mg_glBindSampler_noimpl, - .UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl, - .BindImageTexture = mg_glBindImageTexture_noimpl, - .DrawBuffers = mg_glDrawBuffers_noimpl, - .VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl, - .GetTexImage = mg_glGetTexImage_noimpl, - .VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl, - .BlitFramebuffer = mg_glBlitFramebuffer_noimpl, - .VertexAttrib2d = mg_glVertexAttrib2d_noimpl, - .Uniform1ui = mg_glUniform1ui_noimpl, - .InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl, - .EndQuery = mg_glEndQuery_noimpl, - .GetUniformuiv = mg_glGetUniformuiv_noimpl, - .GetFramebufferAttachmentParameteriv = mg_glGetFramebufferAttachmentParameteriv_noimpl, - .ProgramUniform2f = mg_glProgramUniform2f_noimpl, - .UniformMatrix3x2fv = mg_glUniformMatrix3x2fv_noimpl, - .BindVertexBuffer = mg_glBindVertexBuffer_noimpl, - .VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl, - .Uniform1f = mg_glUniform1f_noimpl, - .DebugMessageCallback = mg_glDebugMessageCallback_noimpl, - .ReadPixels = mg_glReadPixels_noimpl, - .CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl, - .DrawArraysIndirect = mg_glDrawArraysIndirect_noimpl, - .BlendFuncSeparate = mg_glBlendFuncSeparate_noimpl, - .CreateShader = mg_glCreateShader_noimpl, - .GetTransformFeedbackVarying = mg_glGetTransformFeedbackVarying_noimpl, - .AttachShader = mg_glAttachShader_noimpl, - .UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl, - .ProgramUniform3uiv = mg_glProgramUniform3uiv_noimpl, - .MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl, - .Uniform2iv = mg_glUniform2iv_noimpl, - .BindBufferRange = mg_glBindBufferRange_noimpl, - .TexParameteriv = mg_glTexParameteriv_noimpl, - .VertexAttribL3d = mg_glVertexAttribL3d_noimpl, - .TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl, - .ClearTexSubImage = mg_glClearTexSubImage_noimpl, - .VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl, - .InvalidateSubFramebuffer = mg_glInvalidateSubFramebuffer_noimpl, - .GetShaderInfoLog = mg_glGetShaderInfoLog_noimpl, - .VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl, - .Viewport = mg_glViewport_noimpl, - .BlendFunci = mg_glBlendFunci_noimpl, - .PolygonOffset = mg_glPolygonOffset_noimpl, - .ProgramUniform2ui = mg_glProgramUniform2ui_noimpl, - .SamplerParameteri = mg_glSamplerParameteri_noimpl, - .GetFramebufferParameteriv = mg_glGetFramebufferParameteriv_noimpl, - .VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl, - .ObjectLabel = mg_glObjectLabel_noimpl, - .CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl, - .InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl, - .BindBuffersRange = mg_glBindBuffersRange_noimpl, - .CopyBufferSubData = mg_glCopyBufferSubData_noimpl, - .VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl, - .ObjectPtrLabel = mg_glObjectPtrLabel_noimpl, - .ProgramUniform3d = mg_glProgramUniform3d_noimpl, - .GetProgramPipelineiv = mg_glGetProgramPipelineiv_noimpl, - .TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl, - .VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl, - .DeleteFramebuffers = mg_glDeleteFramebuffers_noimpl, - .CheckFramebufferStatus = mg_glCheckFramebufferStatus_noimpl, - .VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl, - .ProgramUniform1dv = mg_glProgramUniform1dv_noimpl, - .VertexAttrib2f = mg_glVertexAttrib2f_noimpl, - .GetVertexAttribIuiv = mg_glGetVertexAttribIuiv_noimpl, - .StencilOp = mg_glStencilOp_noimpl, - .VertexAttrib3d = mg_glVertexAttrib3d_noimpl, - .PointParameteri = mg_glPointParameteri_noimpl, - .VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl, - .ClearBufferfv = mg_glClearBufferfv_noimpl, - .BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl, - .ProgramUniform1d = mg_glProgramUniform1d_noimpl, - .PointParameteriv = mg_glPointParameteriv_noimpl, - .FlushMappedBufferRange = mg_glFlushMappedBufferRange_noimpl, - .TextureView = mg_glTextureView_noimpl, - .GetProgramPipelineInfoLog = mg_glGetProgramPipelineInfoLog_noimpl, - .CopyTexImage2D = mg_glCopyTexImage2D_noimpl, - .ProgramUniform3dv = mg_glProgramUniform3dv_noimpl, - .QueryCounter = mg_glQueryCounter_noimpl, - .GetUniformfv = mg_glGetUniformfv_noimpl, - .ClearStencil = mg_glClearStencil_noimpl, - .GetProgramiv = mg_glGetProgramiv_noimpl, - .UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl, - .GetProgramStageiv = mg_glGetProgramStageiv_noimpl, - .Uniform1iv = mg_glUniform1iv_noimpl, - .GetVertexAttribPointerv = mg_glGetVertexAttribPointerv_noimpl, - .TexSubImage1D = mg_glTexSubImage1D_noimpl, - .StencilFuncSeparate = mg_glStencilFuncSeparate_noimpl, - .GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl, - .DrawElementsInstanced = mg_glDrawElementsInstanced_noimpl, - .BlendFuncSeparatei = mg_glBlendFuncSeparatei_noimpl, - .ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl, - .GetActiveUniformsiv = mg_glGetActiveUniformsiv_noimpl, - .UniformMatrix3fv = mg_glUniformMatrix3fv_noimpl, - .ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl, - .GetSamplerParameterIuiv = mg_glGetSamplerParameterIuiv_noimpl, - .VertexAttribI4i = mg_glVertexAttribI4i_noimpl, - .BlendEquationSeparate = mg_glBlendEquationSeparate_noimpl, - .UniformMatrix4x2fv = mg_glUniformMatrix4x2fv_noimpl, - .TexParameterIiv = mg_glTexParameterIiv_noimpl, - .DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl, - .VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl, - .GetUniformIndices = mg_glGetUniformIndices_noimpl, - .GetShaderiv = mg_glGetShaderiv_noimpl, - .GetActiveUniform = mg_glGetActiveUniform_noimpl, - .Uniform3uiv = mg_glUniform3uiv_noimpl, - .PatchParameteri = mg_glPatchParameteri_noimpl, - .ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl, - .WaitSync = mg_glWaitSync_noimpl, - .ClearTexImage = mg_glClearTexImage_noimpl, - .DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl, - .GetTexParameterIiv = mg_glGetTexParameterIiv_noimpl, - .DepthRange = mg_glDepthRange_noimpl, - .GetActiveAttrib = mg_glGetActiveAttrib_noimpl, - .IsRenderbuffer = mg_glIsRenderbuffer_noimpl, - .ClearBufferiv = mg_glClearBufferiv_noimpl, - .ProgramUniform3fv = mg_glProgramUniform3fv_noimpl, - .VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl, - .UseProgram = mg_glUseProgram_noimpl, - .GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl, - .ProgramUniformMatrix3fv = mg_glProgramUniformMatrix3fv_noimpl, - .ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl, - .UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl, - .ProgramUniform4dv = mg_glProgramUniform4dv_noimpl, - .GetBufferSubData = mg_glGetBufferSubData_noimpl, - .VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl, - .VertexAttrib1f = mg_glVertexAttrib1f_noimpl, - .VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl, - .DebugMessageInsert = mg_glDebugMessageInsert_noimpl, - .EndTransformFeedback = mg_glEndTransformFeedback_noimpl, - .TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl, - .BindTransformFeedback = mg_glBindTransformFeedback_noimpl, - .Uniform3dv = mg_glUniform3dv_noimpl, - .UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl, - .GetSamplerParameteriv = mg_glGetSamplerParameteriv_noimpl, - .VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl, - .Uniform4d = mg_glUniform4d_noimpl, - .ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl, - .ProgramUniform3ui = mg_glProgramUniform3ui_noimpl, - .DeleteVertexArrays = mg_glDeleteVertexArrays_noimpl, - .TexParameteri = mg_glTexParameteri_noimpl, - .DrawElementsInstancedBaseVertex = mg_glDrawElementsInstancedBaseVertex_noimpl, - .GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl, - .VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl, - .SamplerParameterfv = mg_glSamplerParameterfv_noimpl, - .VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl, - .ProgramUniform1i = mg_glProgramUniform1i_noimpl, - .ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl, - .GetSynciv = mg_glGetSynciv_noimpl, - .VertexAttrib3f = mg_glVertexAttrib3f_noimpl, - .GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl, - .GetProgramInfoLog = mg_glGetProgramInfoLog_noimpl, - .GetActiveUniformBlockiv = mg_glGetActiveUniformBlockiv_noimpl, - .GenQueries = mg_glGenQueries_noimpl, - .ProgramUniformMatrix4x3fv = mg_glProgramUniformMatrix4x3fv_noimpl, - .TexBuffer = mg_glTexBuffer_noimpl, - .ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl, - .Disable = mg_glDisable_noimpl, - .VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl, - .IsSampler = mg_glIsSampler_noimpl, - .ActiveShaderProgram = mg_glActiveShaderProgram_noimpl, - .BindVertexArray = mg_glBindVertexArray_noimpl, - .UniformMatrix2x3fv = mg_glUniformMatrix2x3fv_noimpl, - .DrawArraysInstanced = mg_glDrawArraysInstanced_noimpl, - .VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl, - .GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl, - .GetStringi = mg_glGetStringi_noimpl, - .BindProgramPipeline = mg_glBindProgramPipeline_noimpl, - .BindFramebuffer = mg_glBindFramebuffer_noimpl, - .VertexAttrib1d = mg_glVertexAttrib1d_noimpl, - .RenderbufferStorage = mg_glRenderbufferStorage_noimpl, - .ReleaseShaderCompiler = mg_glReleaseShaderCompiler_noimpl, - .Uniform2i = mg_glUniform2i_noimpl, - .DrawBuffer = mg_glDrawBuffer_noimpl, - .DeleteRenderbuffers = mg_glDeleteRenderbuffers_noimpl, - .DeleteBuffers = mg_glDeleteBuffers_noimpl, - .GenFramebuffers = mg_glGenFramebuffers_noimpl, - .ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl, - .ProgramUniform3f = mg_glProgramUniform3f_noimpl, - .ProgramUniform2iv = mg_glProgramUniform2iv_noimpl, - .BlendBarrier = mg_glBlendBarrier_noimpl, - .VertexAttribL2d = mg_glVertexAttribL2d_noimpl, - .CompressedTexSubImage2D = mg_glCompressedTexSubImage2D_noimpl, - .UniformMatrix2fv = mg_glUniformMatrix2fv_noimpl, - .SamplerParameterf = mg_glSamplerParameterf_noimpl, - .UniformMatrix4fv = mg_glUniformMatrix4fv_noimpl, - .VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl, - .BindTextures = mg_glBindTextures_noimpl, - .Uniform3d = mg_glUniform3d_noimpl, - .ViewportIndexedfv = mg_glViewportIndexedfv_noimpl, - .VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl, - .LineWidth = mg_glLineWidth_noimpl, - .GetVertexAttribfv = mg_glGetVertexAttribfv_noimpl, - .VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl, - .Uniform1dv = mg_glUniform1dv_noimpl, - .CullFace = mg_glCullFace_noimpl, - .CreateProgram = mg_glCreateProgram_noimpl, - .Uniform4i = mg_glUniform4i_noimpl, - .UniformMatrix4x3fv = mg_glUniformMatrix4x3fv_noimpl, - .GetAttribLocation = mg_glGetAttribLocation_noimpl, - .GetShaderPrecisionFormat = mg_glGetShaderPrecisionFormat_noimpl, - .Uniform4iv = mg_glUniform4iv_noimpl, - .CompressedTexSubImage3D = mg_glCompressedTexSubImage3D_noimpl, - .BindImageTextures = mg_glBindImageTextures_noimpl, - .GetBufferParameteri64v = mg_glGetBufferParameteri64v_noimpl, - .FrontFace = mg_glFrontFace_noimpl, - .PopDebugGroup = mg_glPopDebugGroup_noimpl, - .VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl, - .InvalidateBufferData = mg_glInvalidateBufferData_noimpl, - .IsVertexArray = mg_glIsVertexArray_noimpl, - .ScissorArrayv = mg_glScissorArrayv_noimpl, - .ValidateProgram = mg_glValidateProgram_noimpl, - .Uniform2uiv = mg_glUniform2uiv_noimpl, - .TexSubImage2D = mg_glTexSubImage2D_noimpl, - .DebugMessageControl = mg_glDebugMessageControl_noimpl, - .FramebufferParameteri = mg_glFramebufferParameteri_noimpl, - .GetUniformLocation = mg_glGetUniformLocation_noimpl, - .TexStorage3D = mg_glTexStorage3D_noimpl, - .PixelStoref = mg_glPixelStoref_noimpl, - .DepthRangef = mg_glDepthRangef_noimpl, - .VertexAttribI3i = mg_glVertexAttribI3i_noimpl, - .Uniform1uiv = mg_glUniform1uiv_noimpl, - .Disablei = mg_glDisablei_noimpl, - .GetInternalformati64v = mg_glGetInternalformati64v_noimpl, - .ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl, - .GetProgramResourceIndex = mg_glGetProgramResourceIndex_noimpl, - .BlendColor = mg_glBlendColor_noimpl, - .GenSamplers = mg_glGenSamplers_noimpl, - .ColorMaski = mg_glColorMaski_noimpl, - .GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl, - .VertexAttribI4uiv = mg_glVertexAttribI4uiv_noimpl, - .CreateShaderProgramv = mg_glCreateShaderProgramv_noimpl, - .DeleteSamplers = mg_glDeleteSamplers_noimpl, - .VertexAttrib3s = mg_glVertexAttrib3s_noimpl, - .DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl, - .VertexAttribL1d = mg_glVertexAttribL1d_noimpl, - .DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl, - .ClearBufferSubData = mg_glClearBufferSubData_noimpl, - .VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl, - .Uniform2dv = mg_glUniform2dv_noimpl, - .CopyTexSubImage3D = mg_glCopyTexSubImage3D_noimpl, - .CopyTexImage1D = mg_glCopyTexImage1D_noimpl, - .FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl, - .VertexAttribL4d = mg_glVertexAttribL4d_noimpl, - .UnmapBuffer = mg_glUnmapBuffer_noimpl, - .GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl, - .FenceSync = mg_glFenceSync_noimpl, - .DispatchComputeIndirect = mg_glDispatchComputeIndirect_noimpl, - .SamplerParameterIuiv = mg_glSamplerParameterIuiv_noimpl, - .GetFragDataLocation = mg_glGetFragDataLocation_noimpl, - .GetUniformdv = mg_glGetUniformdv_noimpl, - .TexImage3D = mg_glTexImage3D_noimpl, - .ValidateProgramPipeline = mg_glValidateProgramPipeline_noimpl, - .LinkProgram = mg_glLinkProgram_noimpl, - .DeleteQueries = mg_glDeleteQueries_noimpl, - .FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl, - .GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl, - .ProgramUniformMatrix3x2fv = mg_glProgramUniformMatrix3x2fv_noimpl, - .GetTexParameteriv = mg_glGetTexParameteriv_noimpl, - .ProvokingVertex = mg_glProvokingVertex_noimpl, - .BindAttribLocation = mg_glBindAttribLocation_noimpl, - .VertexAttrib3fv = mg_glVertexAttrib3fv_noimpl, - .GetActiveUniformBlockName = mg_glGetActiveUniformBlockName_noimpl, - .DrawArrays = mg_glDrawArrays_noimpl, - .GetnUniformuiv = mg_glGetnUniformuiv_noimpl, - .ProgramUniform1uiv = mg_glProgramUniform1uiv_noimpl, - .DrawElementsIndirect = mg_glDrawElementsIndirect_noimpl, - .VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl, - .BlendEquationSeparatei = mg_glBlendEquationSeparatei_noimpl, - .DrawElements = mg_glDrawElements_noimpl, - .GetShaderSource = mg_glGetShaderSource_noimpl, - .TransformFeedbackVaryings = mg_glTransformFeedbackVaryings_noimpl, - .GetError = mg_glGetError_noimpl, - .IsBuffer = mg_glIsBuffer_noimpl, - .ClearBufferuiv = mg_glClearBufferuiv_noimpl, - .GetVertexAttribiv = mg_glGetVertexAttribiv_noimpl, - .GetProgramResourceName = mg_glGetProgramResourceName_noimpl, - .Uniform2ui = mg_glUniform2ui_noimpl, - .StencilFunc = mg_glStencilFunc_noimpl, - .Enablei = mg_glEnablei_noimpl, - .SamplerParameteriv = mg_glSamplerParameteriv_noimpl, - .GetInteger64i_v = mg_glGetInteger64i_v_noimpl, - .ProgramUniform4i = mg_glProgramUniform4i_noimpl, - .Uniform4ui = mg_glUniform4ui_noimpl, - .UniformMatrix2x4fv = mg_glUniformMatrix2x4fv_noimpl, - .ReadnPixels = mg_glReadnPixels_noimpl, - .DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl, - .PointSize = mg_glPointSize_noimpl, - .ProgramUniformMatrix4fv = mg_glProgramUniformMatrix4fv_noimpl, - .ViewportArrayv = mg_glViewportArrayv_noimpl, - .StencilOpSeparate = mg_glStencilOpSeparate_noimpl, - .Uniform3ui = mg_glUniform3ui_noimpl, - .Uniform4uiv = mg_glUniform4uiv_noimpl, - .Uniform3iv = mg_glUniform3iv_noimpl, - .Uniform4f = mg_glUniform4f_noimpl, - .FramebufferTexture2D = mg_glFramebufferTexture2D_noimpl, - .GetIntegeri_v = mg_glGetIntegeri_v_noimpl, - .MultiDrawElements = mg_glMultiDrawElements_noimpl, - .UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl, - .ProgramUniformMatrix2x3fv = mg_glProgramUniformMatrix2x3fv_noimpl, - .CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl, - .TexSubImage3D = mg_glTexSubImage3D_noimpl, - .GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl, - .GenProgramPipelines = mg_glGenProgramPipelines_noimpl, - .ProgramUniform4iv = mg_glProgramUniform4iv_noimpl, - .UniformMatrix3x4fv = mg_glUniformMatrix3x4fv_noimpl, - .UniformBlockBinding = mg_glUniformBlockBinding_noimpl, - .DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl, - .TexParameterfv = mg_glTexParameterfv_noimpl, - .MapBuffer = mg_glMapBuffer_noimpl, - .DeleteProgramPipelines = mg_glDeleteProgramPipelines_noimpl, - .MinSampleShading = mg_glMinSampleShading_noimpl, - .PauseTransformFeedback = mg_glPauseTransformFeedback_noimpl, - .EndQueryIndexed = mg_glEndQueryIndexed_noimpl, - .GetProgramBinary = mg_glGetProgramBinary_noimpl, - .ProgramUniform2i = mg_glProgramUniform2i_noimpl, - .DepthMask = mg_glDepthMask_noimpl, - .ActiveTexture = mg_glActiveTexture_noimpl, - .UseProgramStages = mg_glUseProgramStages_noimpl, - .PatchParameterfv = mg_glPatchParameterfv_noimpl, - .ShaderBinary = mg_glShaderBinary_noimpl, - .GetFloatv = mg_glGetFloatv_noimpl, - .ProgramUniform1f = mg_glProgramUniform1f_noimpl, - .TexImage1D = mg_glTexImage1D_noimpl, - .ProgramUniform2uiv = mg_glProgramUniform2uiv_noimpl, - .ClearBufferData = mg_glClearBufferData_noimpl, - .UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl, - .CompressedTexImage2D = mg_glCompressedTexImage2D_noimpl, - .VertexAttrib4fv = mg_glVertexAttrib4fv_noimpl, - .GetProgramResourceiv = mg_glGetProgramResourceiv_noimpl, - .GetString = mg_glGetString_noimpl, - .ProgramUniformMatrix2fv = mg_glProgramUniformMatrix2fv_noimpl, - .GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl, - .VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl, - .TexBufferRange = mg_glTexBufferRange_noimpl, - .UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl, - .GetProgramInterfaceiv = mg_glGetProgramInterfaceiv_noimpl, - .TexParameterIuiv = mg_glTexParameterIuiv_noimpl, - .DeleteShader = mg_glDeleteShader_noimpl, - .GetFloati_v = mg_glGetFloati_v_noimpl, - .DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl, - .VertexAttrib4s = mg_glVertexAttrib4s_noimpl, -}; - -void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->name = "gl41"; - api->PointParameterfv = loadProc("glPointParameterfv"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); - api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); - api->ClampColor = loadProc("glClampColor"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniform2d = loadProc("glProgramUniform2d"); - api->BindBuffer = loadProc("glBindBuffer"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->InvalidateFramebuffer = mg_glInvalidateFramebuffer_noimpl; - api->PixelStorei = loadProc("glPixelStorei"); - api->BindTexture = loadProc("glBindTexture"); - api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); - api->IsTexture = loadProc("glIsTexture"); - api->VertexAttrib4d = loadProc("glVertexAttrib4d"); - api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); - api->GetObjectLabel = mg_glGetObjectLabel_noimpl; - api->BeginConditionalRender = loadProc("glBeginConditionalRender"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->CompileShader = loadProc("glCompileShader"); - api->VertexAttribBinding = mg_glVertexAttribBinding_noimpl; - api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->TexImage2D = loadProc("glTexImage2D"); - api->Flush = loadProc("glFlush"); - api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); - api->IsProgram = loadProc("glIsProgram"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->Uniform1d = loadProc("glUniform1d"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ColorMask = loadProc("glColorMask"); - api->ClearDepth = loadProc("glClearDepth"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); - api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; - api->SampleMaski = loadProc("glSampleMaski"); - api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; - api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); - api->BindFragDataLocation = loadProc("glBindFragDataLocation"); - api->GetFragDataIndex = loadProc("glGetFragDataIndex"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); - api->MultiDrawArrays = loadProc("glMultiDrawArrays"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->BufferData = loadProc("glBufferData"); - api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); - api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); - api->IsQuery = loadProc("glIsQuery"); - api->ClearColor = loadProc("glClearColor"); - api->BlendFunc = loadProc("glBlendFunc"); - api->GetDoublei_v = loadProc("glGetDoublei_v"); - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); - api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); - api->VertexAttribIFormat = mg_glVertexAttribIFormat_noimpl; - api->MemoryBarrier = mg_glMemoryBarrier_noimpl; - api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->PushDebugGroup = mg_glPushDebugGroup_noimpl; - api->GenTextures = loadProc("glGenTextures"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Hint = loadProc("glHint"); - api->TexParameterf = loadProc("glTexParameterf"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->Clear = loadProc("glClear"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ScissorIndexedv = loadProc("glScissorIndexedv"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->TexStorage2D = mg_glTexStorage2D_noimpl; - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->Enable = loadProc("glEnable"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->LogicOp = loadProc("glLogicOp"); - api->DepthFunc = loadProc("glDepthFunc"); - api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); - api->Uniform2d = loadProc("glUniform2d"); - api->DetachShader = loadProc("glDetachShader"); - api->VertexBindingDivisor = mg_glVertexBindingDivisor_noimpl; - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->GetDoublev = loadProc("glGetDoublev"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->ProgramUniform4d = loadProc("glProgramUniform4d"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->DispatchCompute = mg_glDispatchCompute_noimpl; - api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->VertexAttrib1s = loadProc("glVertexAttrib1s"); - api->VertexAttribI2i = loadProc("glVertexAttribI2i"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->BufferSubData = loadProc("glBufferSubData"); - api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); - api->EndConditionalRender = loadProc("glEndConditionalRender"); - api->GetPointerv = mg_glGetPointerv_noimpl; - api->GetnUniformiv = mg_glGetnUniformiv_noimpl; - api->BlendEquation = loadProc("glBlendEquation"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->GetnUniformfv = mg_glGetnUniformfv_noimpl; - api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3f = loadProc("glUniform3f"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; - api->Scissor = loadProc("glScissor"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->Uniform2f = loadProc("glUniform2f"); - api->VertexAttribFormat = mg_glVertexAttribFormat_noimpl; - api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); - api->IsEnabled = loadProc("glIsEnabled"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->PointParameterf = loadProc("glPointParameterf"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->BeginQuery = loadProc("glBeginQuery"); - api->Uniform4dv = loadProc("glUniform4dv"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->Uniform3i = loadProc("glUniform3i"); - api->GetActiveUniformName = loadProc("glGetActiveUniformName"); - api->GetProgramResourceLocation = mg_glGetProgramResourceLocation_noimpl; - api->ShaderSource = loadProc("glShaderSource"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->Finish = loadProc("glFinish"); - api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; - api->DeleteProgram = loadProc("glDeleteProgram"); - api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->GenBuffers = loadProc("glGenBuffers"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); - api->TexStorage2DMultisample = mg_glTexStorage2DMultisample_noimpl; - api->BindSamplers = mg_glBindSamplers_noimpl; - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); - api->GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl; - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; - api->PolygonMode = loadProc("glPolygonMode"); - api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->VertexAttribI1i = loadProc("glVertexAttribI1i"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsSync = loadProc("glIsSync"); - api->TexStorage1D = mg_glTexStorage1D_noimpl; - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetInternalformativ = mg_glGetInternalformativ_noimpl; - api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); - api->VertexAttrib2s = loadProc("glVertexAttrib2s"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); - api->GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl; - api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); - api->ViewportIndexedf = loadProc("glViewportIndexedf"); - api->DeleteSync = loadProc("glDeleteSync"); - api->CopyImageSubData = mg_glCopyImageSubData_noimpl; - api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; - api->ScissorIndexed = loadProc("glScissorIndexed"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->BindBuffersBase = mg_glBindBuffersBase_noimpl; - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->IsShader = loadProc("glIsShader"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->BufferStorage = mg_glBufferStorage_noimpl; - api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->StencilMask = loadProc("glStencilMask"); - api->BindSampler = loadProc("glBindSampler"); - api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); - api->BindImageTexture = mg_glBindImageTexture_noimpl; - api->DrawBuffers = loadProc("glDrawBuffers"); - api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); - api->GetTexImage = loadProc("glGetTexImage"); - api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->VertexAttrib2d = loadProc("glVertexAttrib2d"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; - api->EndQuery = loadProc("glEndQuery"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->BindVertexBuffer = mg_glBindVertexBuffer_noimpl; - api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); - api->Uniform1f = loadProc("glUniform1f"); - api->DebugMessageCallback = mg_glDebugMessageCallback_noimpl; - api->ReadPixels = loadProc("glReadPixels"); - api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->CreateShader = loadProc("glCreateShader"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->AttachShader = loadProc("glAttachShader"); - api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; - api->Uniform2iv = loadProc("glUniform2iv"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->VertexAttribL3d = loadProc("glVertexAttribL3d"); - api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); - api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; - api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); - api->InvalidateSubFramebuffer = mg_glInvalidateSubFramebuffer_noimpl; - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); - api->Viewport = loadProc("glViewport"); - api->BlendFunci = loadProc("glBlendFunci"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->GetFramebufferParameteriv = mg_glGetFramebufferParameteriv_noimpl; - api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); - api->ObjectLabel = mg_glObjectLabel_noimpl; - api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); - api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; - api->BindBuffersRange = mg_glBindBuffersRange_noimpl; - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); - api->ObjectPtrLabel = mg_glObjectPtrLabel_noimpl; - api->ProgramUniform3d = loadProc("glProgramUniform3d"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl; - api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); - api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->StencilOp = loadProc("glStencilOp"); - api->VertexAttrib3d = loadProc("glVertexAttrib3d"); - api->PointParameteri = loadProc("glPointParameteri"); - api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); - api->ProgramUniform1d = loadProc("glProgramUniform1d"); - api->PointParameteriv = loadProc("glPointParameteriv"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->TextureView = mg_glTextureView_noimpl; - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); - api->QueryCounter = loadProc("glQueryCounter"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->ClearStencil = loadProc("glClearStencil"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); - api->GetProgramStageiv = loadProc("glGetProgramStageiv"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->TexSubImage1D = loadProc("glTexSubImage1D"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); - api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); - api->WaitSync = loadProc("glWaitSync"); - api->ClearTexImage = mg_glClearTexImage_noimpl; - api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->DepthRange = loadProc("glDepthRange"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); - api->UseProgram = loadProc("glUseProgram"); - api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); - api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); - api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); - api->GetBufferSubData = loadProc("glGetBufferSubData"); - api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); - api->DebugMessageInsert = mg_glDebugMessageInsert_noimpl; - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->Uniform3dv = loadProc("glUniform3dv"); - api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); - api->Uniform4d = loadProc("glUniform4d"); - api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->TexParameteri = loadProc("glTexParameteri"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); - api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); - api->GetSynciv = loadProc("glGetSynciv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GenQueries = loadProc("glGenQueries"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->TexBuffer = loadProc("glTexBuffer"); - api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; - api->Disable = loadProc("glDisable"); - api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); - api->IsSampler = loadProc("glIsSampler"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); - api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); - api->GetStringi = loadProc("glGetStringi"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->VertexAttrib1d = loadProc("glVertexAttrib1d"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->Uniform2i = loadProc("glUniform2i"); - api->DrawBuffer = loadProc("glDrawBuffer"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->BlendBarrier = mg_glBlendBarrier_noimpl; - api->VertexAttribL2d = loadProc("glVertexAttribL2d"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); - api->BindTextures = mg_glBindTextures_noimpl; - api->Uniform3d = loadProc("glUniform3d"); - api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); - api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); - api->LineWidth = loadProc("glLineWidth"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); - api->Uniform1dv = loadProc("glUniform1dv"); - api->CullFace = loadProc("glCullFace"); - api->CreateProgram = loadProc("glCreateProgram"); - api->Uniform4i = loadProc("glUniform4i"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->BindImageTextures = mg_glBindImageTextures_noimpl; - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FrontFace = loadProc("glFrontFace"); - api->PopDebugGroup = mg_glPopDebugGroup_noimpl; - api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); - api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; - api->IsVertexArray = loadProc("glIsVertexArray"); - api->ScissorArrayv = loadProc("glScissorArrayv"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->DebugMessageControl = mg_glDebugMessageControl_noimpl; - api->FramebufferParameteri = mg_glFramebufferParameteri_noimpl; - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->TexStorage3D = mg_glTexStorage3D_noimpl; - api->PixelStoref = loadProc("glPixelStoref"); - api->DepthRangef = loadProc("glDepthRangef"); - api->VertexAttribI3i = loadProc("glVertexAttribI3i"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Disablei = loadProc("glDisablei"); - api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; - api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); - api->GetProgramResourceIndex = mg_glGetProgramResourceIndex_noimpl; - api->BlendColor = loadProc("glBlendColor"); - api->GenSamplers = loadProc("glGenSamplers"); - api->ColorMaski = loadProc("glColorMaski"); - api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->VertexAttrib3s = loadProc("glVertexAttrib3s"); - api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); - api->VertexAttribL1d = loadProc("glVertexAttribL1d"); - api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; - api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; - api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; - api->Uniform2dv = loadProc("glUniform2dv"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CopyTexImage1D = loadProc("glCopyTexImage1D"); - api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); - api->VertexAttribL4d = loadProc("glVertexAttribL4d"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); - api->FenceSync = loadProc("glFenceSync"); - api->DispatchComputeIndirect = mg_glDispatchComputeIndirect_noimpl; - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->GetUniformdv = loadProc("glGetUniformdv"); - api->TexImage3D = loadProc("glTexImage3D"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->LinkProgram = loadProc("glLinkProgram"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); - api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->ProvokingVertex = loadProc("glProvokingVertex"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->DrawArrays = loadProc("glDrawArrays"); - api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->DrawElements = loadProc("glDrawElements"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetError = loadProc("glGetError"); - api->IsBuffer = loadProc("glIsBuffer"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetProgramResourceName = mg_glGetProgramResourceName_noimpl; - api->Uniform2ui = loadProc("glUniform2ui"); - api->StencilFunc = loadProc("glStencilFunc"); - api->Enablei = loadProc("glEnablei"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->ReadnPixels = mg_glReadnPixels_noimpl; - api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; - api->PointSize = loadProc("glPointSize"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ViewportArrayv = loadProc("glViewportArrayv"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->MultiDrawElements = loadProc("glMultiDrawElements"); - api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->MapBuffer = loadProc("glMapBuffer"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->EndQueryIndexed = loadProc("glEndQueryIndexed"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->DepthMask = loadProc("glDepthMask"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->PatchParameterfv = loadProc("glPatchParameterfv"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetFloatv = loadProc("glGetFloatv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->TexImage1D = loadProc("glTexImage1D"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ClearBufferData = mg_glClearBufferData_noimpl; - api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->GetProgramResourceiv = mg_glGetProgramResourceiv_noimpl; - api->GetString = loadProc("glGetString"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); - api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); - api->TexBufferRange = mg_glTexBufferRange_noimpl; - api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); - api->GetProgramInterfaceiv = mg_glGetProgramInterfaceiv_noimpl; - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->DeleteShader = loadProc("glDeleteShader"); - api->GetFloati_v = loadProc("glGetFloati_v"); - api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; - api->VertexAttrib4s = loadProc("glVertexAttrib4s"); -} - -void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->name = "gl43"; - api->PointParameterfv = loadProc("glPointParameterfv"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); - api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); - api->ClampColor = loadProc("glClampColor"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniform2d = loadProc("glProgramUniform2d"); - api->BindBuffer = loadProc("glBindBuffer"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->PixelStorei = loadProc("glPixelStorei"); - api->BindTexture = loadProc("glBindTexture"); - api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); - api->IsTexture = loadProc("glIsTexture"); - api->VertexAttrib4d = loadProc("glVertexAttrib4d"); - api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); - api->GetObjectLabel = loadProc("glGetObjectLabel"); - api->BeginConditionalRender = loadProc("glBeginConditionalRender"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->CompileShader = loadProc("glCompileShader"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->TexImage2D = loadProc("glTexImage2D"); - api->Flush = loadProc("glFlush"); - api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); - api->IsProgram = loadProc("glIsProgram"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->Uniform1d = loadProc("glUniform1d"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ColorMask = loadProc("glColorMask"); - api->ClearDepth = loadProc("glClearDepth"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); - api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->InvalidateTexImage = loadProc("glInvalidateTexImage"); - api->SampleMaski = loadProc("glSampleMaski"); - api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); - api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); - api->BindFragDataLocation = loadProc("glBindFragDataLocation"); - api->GetFragDataIndex = loadProc("glGetFragDataIndex"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); - api->MultiDrawArrays = loadProc("glMultiDrawArrays"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->BufferData = loadProc("glBufferData"); - api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); - api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); - api->IsQuery = loadProc("glIsQuery"); - api->ClearColor = loadProc("glClearColor"); - api->BlendFunc = loadProc("glBlendFunc"); - api->GetDoublei_v = loadProc("glGetDoublei_v"); - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); - api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->PushDebugGroup = loadProc("glPushDebugGroup"); - api->GenTextures = loadProc("glGenTextures"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Hint = loadProc("glHint"); - api->TexParameterf = loadProc("glTexParameterf"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->Clear = loadProc("glClear"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ScissorIndexedv = loadProc("glScissorIndexedv"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->Enable = loadProc("glEnable"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->LogicOp = loadProc("glLogicOp"); - api->DepthFunc = loadProc("glDepthFunc"); - api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); - api->Uniform2d = loadProc("glUniform2d"); - api->DetachShader = loadProc("glDetachShader"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->GetDoublev = loadProc("glGetDoublev"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->ProgramUniform4d = loadProc("glProgramUniform4d"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->VertexAttrib1s = loadProc("glVertexAttrib1s"); - api->VertexAttribI2i = loadProc("glVertexAttribI2i"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->BufferSubData = loadProc("glBufferSubData"); - api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); - api->EndConditionalRender = loadProc("glEndConditionalRender"); - api->GetPointerv = loadProc("glGetPointerv"); - api->GetnUniformiv = mg_glGetnUniformiv_noimpl; - api->BlendEquation = loadProc("glBlendEquation"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->GetnUniformfv = mg_glGetnUniformfv_noimpl; - api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3f = loadProc("glUniform3f"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; - api->Scissor = loadProc("glScissor"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->Uniform2f = loadProc("glUniform2f"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); - api->IsEnabled = loadProc("glIsEnabled"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->PointParameterf = loadProc("glPointParameterf"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->BeginQuery = loadProc("glBeginQuery"); - api->Uniform4dv = loadProc("glUniform4dv"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->Uniform3i = loadProc("glUniform3i"); - api->GetActiveUniformName = loadProc("glGetActiveUniformName"); - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->ShaderSource = loadProc("glShaderSource"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->Finish = loadProc("glFinish"); - api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); - api->DeleteProgram = loadProc("glDeleteProgram"); - api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->GenBuffers = loadProc("glGenBuffers"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->BindSamplers = mg_glBindSamplers_noimpl; - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); - api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); - api->PolygonMode = loadProc("glPolygonMode"); - api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->VertexAttribI1i = loadProc("glVertexAttribI1i"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsSync = loadProc("glIsSync"); - api->TexStorage1D = loadProc("glTexStorage1D"); - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); - api->VertexAttrib2s = loadProc("glVertexAttrib2s"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); - api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); - api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); - api->ViewportIndexedf = loadProc("glViewportIndexedf"); - api->DeleteSync = loadProc("glDeleteSync"); - api->CopyImageSubData = loadProc("glCopyImageSubData"); - api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; - api->ScissorIndexed = loadProc("glScissorIndexed"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->BindBuffersBase = mg_glBindBuffersBase_noimpl; - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->IsShader = loadProc("glIsShader"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->BufferStorage = mg_glBufferStorage_noimpl; - api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->StencilMask = loadProc("glStencilMask"); - api->BindSampler = loadProc("glBindSampler"); - api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); - api->BindImageTexture = loadProc("glBindImageTexture"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); - api->GetTexImage = loadProc("glGetTexImage"); - api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->VertexAttrib2d = loadProc("glVertexAttrib2d"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); - api->EndQuery = loadProc("glEndQuery"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); - api->Uniform1f = loadProc("glUniform1f"); - api->DebugMessageCallback = loadProc("glDebugMessageCallback"); - api->ReadPixels = loadProc("glReadPixels"); - api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->CreateShader = loadProc("glCreateShader"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->AttachShader = loadProc("glAttachShader"); - api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); - api->Uniform2iv = loadProc("glUniform2iv"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->VertexAttribL3d = loadProc("glVertexAttribL3d"); - api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); - api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; - api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); - api->Viewport = loadProc("glViewport"); - api->BlendFunci = loadProc("glBlendFunci"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); - api->ObjectLabel = loadProc("glObjectLabel"); - api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); - api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); - api->BindBuffersRange = mg_glBindBuffersRange_noimpl; - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); - api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); - api->ProgramUniform3d = loadProc("glProgramUniform3d"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); - api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); - api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->StencilOp = loadProc("glStencilOp"); - api->VertexAttrib3d = loadProc("glVertexAttrib3d"); - api->PointParameteri = loadProc("glPointParameteri"); - api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); - api->ProgramUniform1d = loadProc("glProgramUniform1d"); - api->PointParameteriv = loadProc("glPointParameteriv"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->TextureView = loadProc("glTextureView"); - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); - api->QueryCounter = loadProc("glQueryCounter"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->ClearStencil = loadProc("glClearStencil"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); - api->GetProgramStageiv = loadProc("glGetProgramStageiv"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->TexSubImage1D = loadProc("glTexSubImage1D"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); - api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); - api->WaitSync = loadProc("glWaitSync"); - api->ClearTexImage = mg_glClearTexImage_noimpl; - api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->DepthRange = loadProc("glDepthRange"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); - api->UseProgram = loadProc("glUseProgram"); - api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); - api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); - api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); - api->GetBufferSubData = loadProc("glGetBufferSubData"); - api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); - api->DebugMessageInsert = loadProc("glDebugMessageInsert"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->Uniform3dv = loadProc("glUniform3dv"); - api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); - api->Uniform4d = loadProc("glUniform4d"); - api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->TexParameteri = loadProc("glTexParameteri"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); - api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); - api->GetSynciv = loadProc("glGetSynciv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GenQueries = loadProc("glGenQueries"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->TexBuffer = loadProc("glTexBuffer"); - api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); - api->Disable = loadProc("glDisable"); - api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); - api->IsSampler = loadProc("glIsSampler"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); - api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); - api->GetStringi = loadProc("glGetStringi"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->VertexAttrib1d = loadProc("glVertexAttrib1d"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->Uniform2i = loadProc("glUniform2i"); - api->DrawBuffer = loadProc("glDrawBuffer"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->BlendBarrier = mg_glBlendBarrier_noimpl; - api->VertexAttribL2d = loadProc("glVertexAttribL2d"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); - api->BindTextures = mg_glBindTextures_noimpl; - api->Uniform3d = loadProc("glUniform3d"); - api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); - api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); - api->LineWidth = loadProc("glLineWidth"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); - api->Uniform1dv = loadProc("glUniform1dv"); - api->CullFace = loadProc("glCullFace"); - api->CreateProgram = loadProc("glCreateProgram"); - api->Uniform4i = loadProc("glUniform4i"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->BindImageTextures = mg_glBindImageTextures_noimpl; - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FrontFace = loadProc("glFrontFace"); - api->PopDebugGroup = loadProc("glPopDebugGroup"); - api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); - api->InvalidateBufferData = loadProc("glInvalidateBufferData"); - api->IsVertexArray = loadProc("glIsVertexArray"); - api->ScissorArrayv = loadProc("glScissorArrayv"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->DebugMessageControl = loadProc("glDebugMessageControl"); - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->PixelStoref = loadProc("glPixelStoref"); - api->DepthRangef = loadProc("glDepthRangef"); - api->VertexAttribI3i = loadProc("glVertexAttribI3i"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Disablei = loadProc("glDisablei"); - api->GetInternalformati64v = loadProc("glGetInternalformati64v"); - api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->BlendColor = loadProc("glBlendColor"); - api->GenSamplers = loadProc("glGenSamplers"); - api->ColorMaski = loadProc("glColorMaski"); - api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->VertexAttrib3s = loadProc("glVertexAttrib3s"); - api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); - api->VertexAttribL1d = loadProc("glVertexAttribL1d"); - api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); - api->ClearBufferSubData = loadProc("glClearBufferSubData"); - api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); - api->Uniform2dv = loadProc("glUniform2dv"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CopyTexImage1D = loadProc("glCopyTexImage1D"); - api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); - api->VertexAttribL4d = loadProc("glVertexAttribL4d"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); - api->FenceSync = loadProc("glFenceSync"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->GetUniformdv = loadProc("glGetUniformdv"); - api->TexImage3D = loadProc("glTexImage3D"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->LinkProgram = loadProc("glLinkProgram"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); - api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->ProvokingVertex = loadProc("glProvokingVertex"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->DrawArrays = loadProc("glDrawArrays"); - api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->DrawElements = loadProc("glDrawElements"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetError = loadProc("glGetError"); - api->IsBuffer = loadProc("glIsBuffer"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->StencilFunc = loadProc("glStencilFunc"); - api->Enablei = loadProc("glEnablei"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->ReadnPixels = mg_glReadnPixels_noimpl; - api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); - api->PointSize = loadProc("glPointSize"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ViewportArrayv = loadProc("glViewportArrayv"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->MultiDrawElements = loadProc("glMultiDrawElements"); - api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->MapBuffer = loadProc("glMapBuffer"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->EndQueryIndexed = loadProc("glEndQueryIndexed"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->DepthMask = loadProc("glDepthMask"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->PatchParameterfv = loadProc("glPatchParameterfv"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetFloatv = loadProc("glGetFloatv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->TexImage1D = loadProc("glTexImage1D"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ClearBufferData = loadProc("glClearBufferData"); - api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetString = loadProc("glGetString"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); - api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); - api->TexBufferRange = loadProc("glTexBufferRange"); - api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->DeleteShader = loadProc("glDeleteShader"); - api->GetFloati_v = loadProc("glGetFloati_v"); - api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); - api->VertexAttrib4s = loadProc("glVertexAttrib4s"); -} - -void mg_gl_load_gl44(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->name = "gl44"; - api->PointParameterfv = loadProc("glPointParameterfv"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); - api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); - api->ClampColor = loadProc("glClampColor"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniform2d = loadProc("glProgramUniform2d"); - api->BindBuffer = loadProc("glBindBuffer"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->PixelStorei = loadProc("glPixelStorei"); - api->BindTexture = loadProc("glBindTexture"); - api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); - api->IsTexture = loadProc("glIsTexture"); - api->VertexAttrib4d = loadProc("glVertexAttrib4d"); - api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); - api->GetObjectLabel = loadProc("glGetObjectLabel"); - api->BeginConditionalRender = loadProc("glBeginConditionalRender"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->CompileShader = loadProc("glCompileShader"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->TexImage2D = loadProc("glTexImage2D"); - api->Flush = loadProc("glFlush"); - api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); - api->IsProgram = loadProc("glIsProgram"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->Uniform1d = loadProc("glUniform1d"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ColorMask = loadProc("glColorMask"); - api->ClearDepth = loadProc("glClearDepth"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); - api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->InvalidateTexImage = loadProc("glInvalidateTexImage"); - api->SampleMaski = loadProc("glSampleMaski"); - api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); - api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); - api->BindFragDataLocation = loadProc("glBindFragDataLocation"); - api->GetFragDataIndex = loadProc("glGetFragDataIndex"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); - api->MultiDrawArrays = loadProc("glMultiDrawArrays"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->BufferData = loadProc("glBufferData"); - api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); - api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); - api->IsQuery = loadProc("glIsQuery"); - api->ClearColor = loadProc("glClearColor"); - api->BlendFunc = loadProc("glBlendFunc"); - api->GetDoublei_v = loadProc("glGetDoublei_v"); - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); - api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->PushDebugGroup = loadProc("glPushDebugGroup"); - api->GenTextures = loadProc("glGenTextures"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Hint = loadProc("glHint"); - api->TexParameterf = loadProc("glTexParameterf"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->Clear = loadProc("glClear"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ScissorIndexedv = loadProc("glScissorIndexedv"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->Enable = loadProc("glEnable"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->LogicOp = loadProc("glLogicOp"); - api->DepthFunc = loadProc("glDepthFunc"); - api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); - api->Uniform2d = loadProc("glUniform2d"); - api->DetachShader = loadProc("glDetachShader"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->GetDoublev = loadProc("glGetDoublev"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->ProgramUniform4d = loadProc("glProgramUniform4d"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->VertexAttrib1s = loadProc("glVertexAttrib1s"); - api->VertexAttribI2i = loadProc("glVertexAttribI2i"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->BufferSubData = loadProc("glBufferSubData"); - api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); - api->EndConditionalRender = loadProc("glEndConditionalRender"); - api->GetPointerv = loadProc("glGetPointerv"); - api->GetnUniformiv = mg_glGetnUniformiv_noimpl; - api->BlendEquation = loadProc("glBlendEquation"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->GetnUniformfv = mg_glGetnUniformfv_noimpl; - api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3f = loadProc("glUniform3f"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->BindVertexBuffers = loadProc("glBindVertexBuffers"); - api->Scissor = loadProc("glScissor"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->Uniform2f = loadProc("glUniform2f"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); - api->IsEnabled = loadProc("glIsEnabled"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->PointParameterf = loadProc("glPointParameterf"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->BeginQuery = loadProc("glBeginQuery"); - api->Uniform4dv = loadProc("glUniform4dv"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->Uniform3i = loadProc("glUniform3i"); - api->GetActiveUniformName = loadProc("glGetActiveUniformName"); - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->ShaderSource = loadProc("glShaderSource"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->Finish = loadProc("glFinish"); - api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); - api->DeleteProgram = loadProc("glDeleteProgram"); - api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->GenBuffers = loadProc("glGenBuffers"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->BindSamplers = loadProc("glBindSamplers"); - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); - api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); - api->PolygonMode = loadProc("glPolygonMode"); - api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->VertexAttribI1i = loadProc("glVertexAttribI1i"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsSync = loadProc("glIsSync"); - api->TexStorage1D = loadProc("glTexStorage1D"); - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); - api->VertexAttrib2s = loadProc("glVertexAttrib2s"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); - api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); - api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); - api->ViewportIndexedf = loadProc("glViewportIndexedf"); - api->DeleteSync = loadProc("glDeleteSync"); - api->CopyImageSubData = loadProc("glCopyImageSubData"); - api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; - api->ScissorIndexed = loadProc("glScissorIndexed"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->BindBuffersBase = loadProc("glBindBuffersBase"); - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->IsShader = loadProc("glIsShader"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->BufferStorage = loadProc("glBufferStorage"); - api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->StencilMask = loadProc("glStencilMask"); - api->BindSampler = loadProc("glBindSampler"); - api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); - api->BindImageTexture = loadProc("glBindImageTexture"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); - api->GetTexImage = loadProc("glGetTexImage"); - api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->VertexAttrib2d = loadProc("glVertexAttrib2d"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); - api->EndQuery = loadProc("glEndQuery"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); - api->Uniform1f = loadProc("glUniform1f"); - api->DebugMessageCallback = loadProc("glDebugMessageCallback"); - api->ReadPixels = loadProc("glReadPixels"); - api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->CreateShader = loadProc("glCreateShader"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->AttachShader = loadProc("glAttachShader"); - api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); - api->Uniform2iv = loadProc("glUniform2iv"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->VertexAttribL3d = loadProc("glVertexAttribL3d"); - api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); - api->ClearTexSubImage = loadProc("glClearTexSubImage"); - api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); - api->Viewport = loadProc("glViewport"); - api->BlendFunci = loadProc("glBlendFunci"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); - api->ObjectLabel = loadProc("glObjectLabel"); - api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); - api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); - api->BindBuffersRange = loadProc("glBindBuffersRange"); - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); - api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); - api->ProgramUniform3d = loadProc("glProgramUniform3d"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); - api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); - api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->StencilOp = loadProc("glStencilOp"); - api->VertexAttrib3d = loadProc("glVertexAttrib3d"); - api->PointParameteri = loadProc("glPointParameteri"); - api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); - api->ProgramUniform1d = loadProc("glProgramUniform1d"); - api->PointParameteriv = loadProc("glPointParameteriv"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->TextureView = loadProc("glTextureView"); - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); - api->QueryCounter = loadProc("glQueryCounter"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->ClearStencil = loadProc("glClearStencil"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); - api->GetProgramStageiv = loadProc("glGetProgramStageiv"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->TexSubImage1D = loadProc("glTexSubImage1D"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); - api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); - api->WaitSync = loadProc("glWaitSync"); - api->ClearTexImage = loadProc("glClearTexImage"); - api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->DepthRange = loadProc("glDepthRange"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); - api->UseProgram = loadProc("glUseProgram"); - api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); - api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); - api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); - api->GetBufferSubData = loadProc("glGetBufferSubData"); - api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); - api->DebugMessageInsert = loadProc("glDebugMessageInsert"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->Uniform3dv = loadProc("glUniform3dv"); - api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); - api->Uniform4d = loadProc("glUniform4d"); - api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->TexParameteri = loadProc("glTexParameteri"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); - api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); - api->GetSynciv = loadProc("glGetSynciv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GenQueries = loadProc("glGenQueries"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->TexBuffer = loadProc("glTexBuffer"); - api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); - api->Disable = loadProc("glDisable"); - api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); - api->IsSampler = loadProc("glIsSampler"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); - api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); - api->GetStringi = loadProc("glGetStringi"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->VertexAttrib1d = loadProc("glVertexAttrib1d"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->Uniform2i = loadProc("glUniform2i"); - api->DrawBuffer = loadProc("glDrawBuffer"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->BlendBarrier = mg_glBlendBarrier_noimpl; - api->VertexAttribL2d = loadProc("glVertexAttribL2d"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); - api->BindTextures = loadProc("glBindTextures"); - api->Uniform3d = loadProc("glUniform3d"); - api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); - api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); - api->LineWidth = loadProc("glLineWidth"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); - api->Uniform1dv = loadProc("glUniform1dv"); - api->CullFace = loadProc("glCullFace"); - api->CreateProgram = loadProc("glCreateProgram"); - api->Uniform4i = loadProc("glUniform4i"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->BindImageTextures = loadProc("glBindImageTextures"); - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FrontFace = loadProc("glFrontFace"); - api->PopDebugGroup = loadProc("glPopDebugGroup"); - api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); - api->InvalidateBufferData = loadProc("glInvalidateBufferData"); - api->IsVertexArray = loadProc("glIsVertexArray"); - api->ScissorArrayv = loadProc("glScissorArrayv"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->DebugMessageControl = loadProc("glDebugMessageControl"); - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->PixelStoref = loadProc("glPixelStoref"); - api->DepthRangef = loadProc("glDepthRangef"); - api->VertexAttribI3i = loadProc("glVertexAttribI3i"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Disablei = loadProc("glDisablei"); - api->GetInternalformati64v = loadProc("glGetInternalformati64v"); - api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->BlendColor = loadProc("glBlendColor"); - api->GenSamplers = loadProc("glGenSamplers"); - api->ColorMaski = loadProc("glColorMaski"); - api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->VertexAttrib3s = loadProc("glVertexAttrib3s"); - api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); - api->VertexAttribL1d = loadProc("glVertexAttribL1d"); - api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); - api->ClearBufferSubData = loadProc("glClearBufferSubData"); - api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); - api->Uniform2dv = loadProc("glUniform2dv"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CopyTexImage1D = loadProc("glCopyTexImage1D"); - api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); - api->VertexAttribL4d = loadProc("glVertexAttribL4d"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); - api->FenceSync = loadProc("glFenceSync"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->GetUniformdv = loadProc("glGetUniformdv"); - api->TexImage3D = loadProc("glTexImage3D"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->LinkProgram = loadProc("glLinkProgram"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); - api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->ProvokingVertex = loadProc("glProvokingVertex"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->DrawArrays = loadProc("glDrawArrays"); - api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->DrawElements = loadProc("glDrawElements"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetError = loadProc("glGetError"); - api->IsBuffer = loadProc("glIsBuffer"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->StencilFunc = loadProc("glStencilFunc"); - api->Enablei = loadProc("glEnablei"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->ReadnPixels = mg_glReadnPixels_noimpl; - api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); - api->PointSize = loadProc("glPointSize"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ViewportArrayv = loadProc("glViewportArrayv"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->MultiDrawElements = loadProc("glMultiDrawElements"); - api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->MapBuffer = loadProc("glMapBuffer"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->EndQueryIndexed = loadProc("glEndQueryIndexed"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->DepthMask = loadProc("glDepthMask"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->PatchParameterfv = loadProc("glPatchParameterfv"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetFloatv = loadProc("glGetFloatv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->TexImage1D = loadProc("glTexImage1D"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ClearBufferData = loadProc("glClearBufferData"); - api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetString = loadProc("glGetString"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); - api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); - api->TexBufferRange = loadProc("glTexBufferRange"); - api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->DeleteShader = loadProc("glDeleteShader"); - api->GetFloati_v = loadProc("glGetFloati_v"); - api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); - api->VertexAttrib4s = loadProc("glVertexAttrib4s"); -} - -void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->name = "gles31"; - api->PointParameterfv = mg_glPointParameterfv_noimpl; - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl; - api->VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl; - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->ProgramUniform2dv = mg_glProgramUniform2dv_noimpl; - api->ClampColor = mg_glClampColor_noimpl; - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniform2d = mg_glProgramUniform2d_noimpl; - api->BindBuffer = loadProc("glBindBuffer"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->PixelStorei = loadProc("glPixelStorei"); - api->BindTexture = loadProc("glBindTexture"); - api->VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl; - api->IsTexture = loadProc("glIsTexture"); - api->VertexAttrib4d = mg_glVertexAttrib4d_noimpl; - api->ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl; - api->GetObjectLabel = mg_glGetObjectLabel_noimpl; - api->BeginConditionalRender = mg_glBeginConditionalRender_noimpl; - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->CompileShader = loadProc("glCompileShader"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl; - api->Uniform1fv = loadProc("glUniform1fv"); - api->TexImage2D = loadProc("glTexImage2D"); - api->Flush = loadProc("glFlush"); - api->VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl; - api->IsProgram = loadProc("glIsProgram"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl; - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->Uniform1d = mg_glUniform1d_noimpl; - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ColorMask = loadProc("glColorMask"); - api->ClearDepth = mg_glClearDepth_noimpl; - api->GetInteger64v = loadProc("glGetInteger64v"); - api->VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl; - api->VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl; - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->BlendEquationi = mg_glBlendEquationi_noimpl; - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; - api->SampleMaski = loadProc("glSampleMaski"); - api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; - api->VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl; - api->BindFragDataLocation = mg_glBindFragDataLocation_noimpl; - api->GetFragDataIndex = mg_glGetFragDataIndex_noimpl; - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl; - api->MultiDrawArrays = mg_glMultiDrawArrays_noimpl; - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->BufferData = loadProc("glBufferData"); - api->GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl; - api->VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl; - api->IsQuery = loadProc("glIsQuery"); - api->ClearColor = loadProc("glClearColor"); - api->BlendFunc = loadProc("glBlendFunc"); - api->GetDoublei_v = mg_glGetDoublei_v_noimpl; - api->FramebufferTexture = mg_glFramebufferTexture_noimpl; - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl; - api->VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl; - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl; - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->PushDebugGroup = mg_glPushDebugGroup_noimpl; - api->GenTextures = loadProc("glGenTextures"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Hint = loadProc("glHint"); - api->TexParameterf = loadProc("glTexParameterf"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->DrawRangeElementsBaseVertex = mg_glDrawRangeElementsBaseVertex_noimpl; - api->Clear = loadProc("glClear"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ScissorIndexedv = mg_glScissorIndexedv_noimpl; - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->Enable = loadProc("glEnable"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->LogicOp = mg_glLogicOp_noimpl; - api->DepthFunc = loadProc("glDepthFunc"); - api->VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl; - api->Uniform2d = mg_glUniform2d_noimpl; - api->DetachShader = loadProc("glDetachShader"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->GetDoublev = mg_glGetDoublev_noimpl; - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->ProgramUniform4d = mg_glProgramUniform4d_noimpl; - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl; - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->VertexAttrib1s = mg_glVertexAttrib1s_noimpl; - api->VertexAttribI2i = mg_glVertexAttribI2i_noimpl; - api->SampleCoverage = loadProc("glSampleCoverage"); - api->BufferSubData = loadProc("glBufferSubData"); - api->VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl; - api->EndConditionalRender = mg_glEndConditionalRender_noimpl; - api->GetPointerv = mg_glGetPointerv_noimpl; - api->GetnUniformiv = mg_glGetnUniformiv_noimpl; - api->BlendEquation = loadProc("glBlendEquation"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->GetnUniformfv = mg_glGetnUniformfv_noimpl; - api->VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl; - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3f = loadProc("glUniform3f"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->DrawElementsBaseVertex = mg_glDrawElementsBaseVertex_noimpl; - api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; - api->Scissor = loadProc("glScissor"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->Uniform2f = loadProc("glUniform2f"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl; - api->IsEnabled = loadProc("glIsEnabled"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->PointParameterf = mg_glPointParameterf_noimpl; - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->BeginQuery = loadProc("glBeginQuery"); - api->Uniform4dv = mg_glUniform4dv_noimpl; - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetSamplerParameterIiv = mg_glGetSamplerParameterIiv_noimpl; - api->BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl; - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->Uniform3i = loadProc("glUniform3i"); - api->GetActiveUniformName = mg_glGetActiveUniformName_noimpl; - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->ShaderSource = loadProc("glShaderSource"); - api->SamplerParameterIiv = mg_glSamplerParameterIiv_noimpl; - api->Finish = loadProc("glFinish"); - api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; - api->DeleteProgram = loadProc("glDeleteProgram"); - api->MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl; - api->ReadBuffer = loadProc("glReadBuffer"); - api->GenBuffers = loadProc("glGenBuffers"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl; - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->BindSamplers = mg_glBindSamplers_noimpl; - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl; - api->GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl; - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; - api->PolygonMode = mg_glPolygonMode_noimpl; - api->VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl; - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->VertexAttribI1i = mg_glVertexAttribI1i_noimpl; - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsSync = loadProc("glIsSync"); - api->TexStorage1D = mg_glTexStorage1D_noimpl; - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->IsEnabledi = mg_glIsEnabledi_noimpl; - api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl; - api->VertexAttrib2s = mg_glVertexAttrib2s_noimpl; - api->GetBooleanv = loadProc("glGetBooleanv"); - api->VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl; - api->GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl; - api->UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl; - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl; - api->ViewportIndexedf = mg_glViewportIndexedf_noimpl; - api->DeleteSync = loadProc("glDeleteSync"); - api->CopyImageSubData = mg_glCopyImageSubData_noimpl; - api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; - api->ScissorIndexed = mg_glScissorIndexed_noimpl; - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->BindBuffersBase = mg_glBindBuffersBase_noimpl; - api->GetTexParameterIuiv = mg_glGetTexParameterIuiv_noimpl; - api->IsShader = loadProc("glIsShader"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->BufferStorage = mg_glBufferStorage_noimpl; - api->GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl; - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->StencilMask = loadProc("glStencilMask"); - api->BindSampler = loadProc("glBindSampler"); - api->UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl; - api->BindImageTexture = loadProc("glBindImageTexture"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl; - api->GetTexImage = mg_glGetTexImage_noimpl; - api->VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl; - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->VertexAttrib2d = mg_glVertexAttrib2d_noimpl; - api->Uniform1ui = loadProc("glUniform1ui"); - api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; - api->EndQuery = loadProc("glEndQuery"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl; - api->Uniform1f = loadProc("glUniform1f"); - api->DebugMessageCallback = mg_glDebugMessageCallback_noimpl; - api->ReadPixels = loadProc("glReadPixels"); - api->CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl; - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->CreateShader = loadProc("glCreateShader"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->AttachShader = loadProc("glAttachShader"); - api->UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl; - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; - api->Uniform2iv = loadProc("glUniform2iv"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->VertexAttribL3d = mg_glVertexAttribL3d_noimpl; - api->TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl; - api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; - api->VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl; - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl; - api->Viewport = loadProc("glViewport"); - api->BlendFunci = mg_glBlendFunci_noimpl; - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl; - api->ObjectLabel = mg_glObjectLabel_noimpl; - api->CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl; - api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; - api->BindBuffersRange = mg_glBindBuffersRange_noimpl; - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl; - api->ObjectPtrLabel = mg_glObjectPtrLabel_noimpl; - api->ProgramUniform3d = mg_glProgramUniform3d_noimpl; - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl; - api->VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl; - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl; - api->ProgramUniform1dv = mg_glProgramUniform1dv_noimpl; - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->StencilOp = loadProc("glStencilOp"); - api->VertexAttrib3d = mg_glVertexAttrib3d_noimpl; - api->PointParameteri = mg_glPointParameteri_noimpl; - api->VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl; - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl; - api->ProgramUniform1d = mg_glProgramUniform1d_noimpl; - api->PointParameteriv = mg_glPointParameteriv_noimpl; - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->TextureView = mg_glTextureView_noimpl; - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->ProgramUniform3dv = mg_glProgramUniform3dv_noimpl; - api->QueryCounter = mg_glQueryCounter_noimpl; - api->GetUniformfv = loadProc("glGetUniformfv"); - api->ClearStencil = loadProc("glClearStencil"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl; - api->GetProgramStageiv = mg_glGetProgramStageiv_noimpl; - api->Uniform1iv = loadProc("glUniform1iv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->TexSubImage1D = mg_glTexSubImage1D_noimpl; - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl; - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->BlendFuncSeparatei = mg_glBlendFuncSeparatei_noimpl; - api->ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl; - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl; - api->GetSamplerParameterIuiv = mg_glGetSamplerParameterIuiv_noimpl; - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->TexParameterIiv = mg_glTexParameterIiv_noimpl; - api->DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl; - api->VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl; - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->PatchParameteri = mg_glPatchParameteri_noimpl; - api->ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl; - api->WaitSync = loadProc("glWaitSync"); - api->ClearTexImage = mg_glClearTexImage_noimpl; - api->DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl; - api->GetTexParameterIiv = mg_glGetTexParameterIiv_noimpl; - api->DepthRange = mg_glDepthRange_noimpl; - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl; - api->UseProgram = loadProc("glUseProgram"); - api->GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl; - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl; - api->UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl; - api->ProgramUniform4dv = mg_glProgramUniform4dv_noimpl; - api->GetBufferSubData = mg_glGetBufferSubData_noimpl; - api->VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl; - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl; - api->DebugMessageInsert = mg_glDebugMessageInsert_noimpl; - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl; - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->Uniform3dv = mg_glUniform3dv_noimpl; - api->UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl; - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl; - api->Uniform4d = mg_glUniform4d_noimpl; - api->ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl; - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->TexParameteri = loadProc("glTexParameteri"); - api->DrawElementsInstancedBaseVertex = mg_glDrawElementsInstancedBaseVertex_noimpl; - api->GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl; - api->VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl; - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl; - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl; - api->GetSynciv = loadProc("glGetSynciv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl; - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GenQueries = loadProc("glGenQueries"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->TexBuffer = mg_glTexBuffer_noimpl; - api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; - api->Disable = loadProc("glDisable"); - api->VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl; - api->IsSampler = loadProc("glIsSampler"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl; - api->GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl; - api->GetStringi = loadProc("glGetStringi"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->VertexAttrib1d = mg_glVertexAttrib1d_noimpl; - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->Uniform2i = loadProc("glUniform2i"); - api->DrawBuffer = mg_glDrawBuffer_noimpl; - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl; - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->BlendBarrier = mg_glBlendBarrier_noimpl; - api->VertexAttribL2d = mg_glVertexAttribL2d_noimpl; - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl; - api->BindTextures = mg_glBindTextures_noimpl; - api->Uniform3d = mg_glUniform3d_noimpl; - api->ViewportIndexedfv = mg_glViewportIndexedfv_noimpl; - api->VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl; - api->LineWidth = loadProc("glLineWidth"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl; - api->Uniform1dv = mg_glUniform1dv_noimpl; - api->CullFace = loadProc("glCullFace"); - api->CreateProgram = loadProc("glCreateProgram"); - api->Uniform4i = loadProc("glUniform4i"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->BindImageTextures = mg_glBindImageTextures_noimpl; - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FrontFace = loadProc("glFrontFace"); - api->PopDebugGroup = mg_glPopDebugGroup_noimpl; - api->VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl; - api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; - api->IsVertexArray = loadProc("glIsVertexArray"); - api->ScissorArrayv = mg_glScissorArrayv_noimpl; - api->ValidateProgram = loadProc("glValidateProgram"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->DebugMessageControl = mg_glDebugMessageControl_noimpl; - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->PixelStoref = mg_glPixelStoref_noimpl; - api->DepthRangef = loadProc("glDepthRangef"); - api->VertexAttribI3i = mg_glVertexAttribI3i_noimpl; - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Disablei = mg_glDisablei_noimpl; - api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; - api->ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl; - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->BlendColor = loadProc("glBlendColor"); - api->GenSamplers = loadProc("glGenSamplers"); - api->ColorMaski = mg_glColorMaski_noimpl; - api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->VertexAttrib3s = mg_glVertexAttrib3s_noimpl; - api->DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl; - api->VertexAttribL1d = mg_glVertexAttribL1d_noimpl; - api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; - api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; - api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; - api->Uniform2dv = mg_glUniform2dv_noimpl; - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CopyTexImage1D = mg_glCopyTexImage1D_noimpl; - api->FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl; - api->VertexAttribL4d = mg_glVertexAttribL4d_noimpl; - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl; - api->FenceSync = loadProc("glFenceSync"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->SamplerParameterIuiv = mg_glSamplerParameterIuiv_noimpl; - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->GetUniformdv = mg_glGetUniformdv_noimpl; - api->TexImage3D = loadProc("glTexImage3D"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->LinkProgram = loadProc("glLinkProgram"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl; - api->GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl; - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->ProvokingVertex = mg_glProvokingVertex_noimpl; - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->DrawArrays = loadProc("glDrawArrays"); - api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl; - api->BlendEquationSeparatei = mg_glBlendEquationSeparatei_noimpl; - api->DrawElements = loadProc("glDrawElements"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetError = loadProc("glGetError"); - api->IsBuffer = loadProc("glIsBuffer"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->StencilFunc = loadProc("glStencilFunc"); - api->Enablei = mg_glEnablei_noimpl; - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->ReadnPixels = mg_glReadnPixels_noimpl; - api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; - api->PointSize = mg_glPointSize_noimpl; - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ViewportArrayv = mg_glViewportArrayv_noimpl; - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->MultiDrawElements = mg_glMultiDrawElements_noimpl; - api->UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl; - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl; - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl; - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl; - api->TexParameterfv = loadProc("glTexParameterfv"); - api->MapBuffer = mg_glMapBuffer_noimpl; - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->MinSampleShading = mg_glMinSampleShading_noimpl; - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->EndQueryIndexed = mg_glEndQueryIndexed_noimpl; - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->DepthMask = loadProc("glDepthMask"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->PatchParameterfv = mg_glPatchParameterfv_noimpl; - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetFloatv = loadProc("glGetFloatv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->TexImage1D = mg_glTexImage1D_noimpl; - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ClearBufferData = mg_glClearBufferData_noimpl; - api->UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl; - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetString = loadProc("glGetString"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl; - api->VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl; - api->TexBufferRange = mg_glTexBufferRange_noimpl; - api->UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl; - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->TexParameterIuiv = mg_glTexParameterIuiv_noimpl; - api->DeleteShader = loadProc("glDeleteShader"); - api->GetFloati_v = mg_glGetFloati_v_noimpl; - api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; - api->VertexAttrib4s = mg_glVertexAttrib4s_noimpl; -} - -void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->name = "gles32"; - api->PointParameterfv = mg_glPointParameterfv_noimpl; - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl; - api->VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl; - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->ProgramUniform2dv = mg_glProgramUniform2dv_noimpl; - api->ClampColor = mg_glClampColor_noimpl; - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniform2d = mg_glProgramUniform2d_noimpl; - api->BindBuffer = loadProc("glBindBuffer"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->PixelStorei = loadProc("glPixelStorei"); - api->BindTexture = loadProc("glBindTexture"); - api->VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl; - api->IsTexture = loadProc("glIsTexture"); - api->VertexAttrib4d = mg_glVertexAttrib4d_noimpl; - api->ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl; - api->GetObjectLabel = loadProc("glGetObjectLabel"); - api->BeginConditionalRender = mg_glBeginConditionalRender_noimpl; - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->CompileShader = loadProc("glCompileShader"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl; - api->Uniform1fv = loadProc("glUniform1fv"); - api->TexImage2D = loadProc("glTexImage2D"); - api->Flush = loadProc("glFlush"); - api->VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl; - api->IsProgram = loadProc("glIsProgram"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl; - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->Uniform1d = mg_glUniform1d_noimpl; - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ColorMask = loadProc("glColorMask"); - api->ClearDepth = mg_glClearDepth_noimpl; - api->GetInteger64v = loadProc("glGetInteger64v"); - api->VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl; - api->VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl; - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; - api->SampleMaski = loadProc("glSampleMaski"); - api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; - api->VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl; - api->BindFragDataLocation = mg_glBindFragDataLocation_noimpl; - api->GetFragDataIndex = mg_glGetFragDataIndex_noimpl; - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl; - api->MultiDrawArrays = mg_glMultiDrawArrays_noimpl; - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->BufferData = loadProc("glBufferData"); - api->GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl; - api->VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl; - api->IsQuery = loadProc("glIsQuery"); - api->ClearColor = loadProc("glClearColor"); - api->BlendFunc = loadProc("glBlendFunc"); - api->GetDoublei_v = mg_glGetDoublei_v_noimpl; - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl; - api->VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl; - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl; - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->PushDebugGroup = loadProc("glPushDebugGroup"); - api->GenTextures = loadProc("glGenTextures"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Hint = loadProc("glHint"); - api->TexParameterf = loadProc("glTexParameterf"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->Clear = loadProc("glClear"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ScissorIndexedv = mg_glScissorIndexedv_noimpl; - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->Enable = loadProc("glEnable"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->LogicOp = mg_glLogicOp_noimpl; - api->DepthFunc = loadProc("glDepthFunc"); - api->VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl; - api->Uniform2d = mg_glUniform2d_noimpl; - api->DetachShader = loadProc("glDetachShader"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->GetDoublev = mg_glGetDoublev_noimpl; - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->ProgramUniform4d = mg_glProgramUniform4d_noimpl; - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl; - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->VertexAttrib1s = mg_glVertexAttrib1s_noimpl; - api->VertexAttribI2i = mg_glVertexAttribI2i_noimpl; - api->SampleCoverage = loadProc("glSampleCoverage"); - api->BufferSubData = loadProc("glBufferSubData"); - api->VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl; - api->EndConditionalRender = mg_glEndConditionalRender_noimpl; - api->GetPointerv = loadProc("glGetPointerv"); - api->GetnUniformiv = loadProc("glGetnUniformiv"); - api->BlendEquation = loadProc("glBlendEquation"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->GetnUniformfv = loadProc("glGetnUniformfv"); - api->VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl; - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3f = loadProc("glUniform3f"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; - api->Scissor = loadProc("glScissor"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->Uniform2f = loadProc("glUniform2f"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl; - api->IsEnabled = loadProc("glIsEnabled"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->PointParameterf = mg_glPointParameterf_noimpl; - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->BeginQuery = loadProc("glBeginQuery"); - api->Uniform4dv = mg_glUniform4dv_noimpl; - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl; - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->Uniform3i = loadProc("glUniform3i"); - api->GetActiveUniformName = mg_glGetActiveUniformName_noimpl; - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->ShaderSource = loadProc("glShaderSource"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->Finish = loadProc("glFinish"); - api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; - api->DeleteProgram = loadProc("glDeleteProgram"); - api->MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl; - api->ReadBuffer = loadProc("glReadBuffer"); - api->GenBuffers = loadProc("glGenBuffers"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl; - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->BindSamplers = mg_glBindSamplers_noimpl; - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl; - api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; - api->PolygonMode = mg_glPolygonMode_noimpl; - api->VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl; - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->VertexAttribI1i = mg_glVertexAttribI1i_noimpl; - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsSync = loadProc("glIsSync"); - api->TexStorage1D = mg_glTexStorage1D_noimpl; - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl; - api->VertexAttrib2s = mg_glVertexAttrib2s_noimpl; - api->GetBooleanv = loadProc("glGetBooleanv"); - api->VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl; - api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); - api->UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl; - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl; - api->ViewportIndexedf = mg_glViewportIndexedf_noimpl; - api->DeleteSync = loadProc("glDeleteSync"); - api->CopyImageSubData = loadProc("glCopyImageSubData"); - api->PrimitiveBoundingBox = loadProc("glPrimitiveBoundingBox"); - api->ScissorIndexed = mg_glScissorIndexed_noimpl; - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->BindBuffersBase = mg_glBindBuffersBase_noimpl; - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->IsShader = loadProc("glIsShader"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->BufferStorage = mg_glBufferStorage_noimpl; - api->GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl; - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->StencilMask = loadProc("glStencilMask"); - api->BindSampler = loadProc("glBindSampler"); - api->UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl; - api->BindImageTexture = loadProc("glBindImageTexture"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl; - api->GetTexImage = mg_glGetTexImage_noimpl; - api->VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl; - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->VertexAttrib2d = mg_glVertexAttrib2d_noimpl; - api->Uniform1ui = loadProc("glUniform1ui"); - api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; - api->EndQuery = loadProc("glEndQuery"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl; - api->Uniform1f = loadProc("glUniform1f"); - api->DebugMessageCallback = loadProc("glDebugMessageCallback"); - api->ReadPixels = loadProc("glReadPixels"); - api->CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl; - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->CreateShader = loadProc("glCreateShader"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->AttachShader = loadProc("glAttachShader"); - api->UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl; - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; - api->Uniform2iv = loadProc("glUniform2iv"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->VertexAttribL3d = mg_glVertexAttribL3d_noimpl; - api->TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl; - api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; - api->VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl; - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl; - api->Viewport = loadProc("glViewport"); - api->BlendFunci = loadProc("glBlendFunci"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl; - api->ObjectLabel = loadProc("glObjectLabel"); - api->CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl; - api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; - api->BindBuffersRange = mg_glBindBuffersRange_noimpl; - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl; - api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); - api->ProgramUniform3d = mg_glProgramUniform3d_noimpl; - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); - api->VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl; - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl; - api->ProgramUniform1dv = mg_glProgramUniform1dv_noimpl; - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->StencilOp = loadProc("glStencilOp"); - api->VertexAttrib3d = mg_glVertexAttrib3d_noimpl; - api->PointParameteri = mg_glPointParameteri_noimpl; - api->VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl; - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl; - api->ProgramUniform1d = mg_glProgramUniform1d_noimpl; - api->PointParameteriv = mg_glPointParameteriv_noimpl; - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->TextureView = mg_glTextureView_noimpl; - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->ProgramUniform3dv = mg_glProgramUniform3dv_noimpl; - api->QueryCounter = mg_glQueryCounter_noimpl; - api->GetUniformfv = loadProc("glGetUniformfv"); - api->ClearStencil = loadProc("glClearStencil"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl; - api->GetProgramStageiv = mg_glGetProgramStageiv_noimpl; - api->Uniform1iv = loadProc("glUniform1iv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->TexSubImage1D = mg_glTexSubImage1D_noimpl; - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl; - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl; - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl; - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl; - api->VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl; - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl; - api->WaitSync = loadProc("glWaitSync"); - api->ClearTexImage = mg_glClearTexImage_noimpl; - api->DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl; - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->DepthRange = mg_glDepthRange_noimpl; - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl; - api->UseProgram = loadProc("glUseProgram"); - api->GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl; - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl; - api->UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl; - api->ProgramUniform4dv = mg_glProgramUniform4dv_noimpl; - api->GetBufferSubData = mg_glGetBufferSubData_noimpl; - api->VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl; - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl; - api->DebugMessageInsert = loadProc("glDebugMessageInsert"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl; - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->Uniform3dv = mg_glUniform3dv_noimpl; - api->UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl; - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl; - api->Uniform4d = mg_glUniform4d_noimpl; - api->ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl; - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->TexParameteri = loadProc("glTexParameteri"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl; - api->VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl; - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl; - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl; - api->GetSynciv = loadProc("glGetSynciv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl; - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GenQueries = loadProc("glGenQueries"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->TexBuffer = loadProc("glTexBuffer"); - api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; - api->Disable = loadProc("glDisable"); - api->VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl; - api->IsSampler = loadProc("glIsSampler"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl; - api->GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl; - api->GetStringi = loadProc("glGetStringi"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->VertexAttrib1d = mg_glVertexAttrib1d_noimpl; - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->Uniform2i = loadProc("glUniform2i"); - api->DrawBuffer = mg_glDrawBuffer_noimpl; - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl; - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->BlendBarrier = loadProc("glBlendBarrier"); - api->VertexAttribL2d = mg_glVertexAttribL2d_noimpl; - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl; - api->BindTextures = mg_glBindTextures_noimpl; - api->Uniform3d = mg_glUniform3d_noimpl; - api->ViewportIndexedfv = mg_glViewportIndexedfv_noimpl; - api->VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl; - api->LineWidth = loadProc("glLineWidth"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl; - api->Uniform1dv = mg_glUniform1dv_noimpl; - api->CullFace = loadProc("glCullFace"); - api->CreateProgram = loadProc("glCreateProgram"); - api->Uniform4i = loadProc("glUniform4i"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->BindImageTextures = mg_glBindImageTextures_noimpl; - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FrontFace = loadProc("glFrontFace"); - api->PopDebugGroup = loadProc("glPopDebugGroup"); - api->VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl; - api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; - api->IsVertexArray = loadProc("glIsVertexArray"); - api->ScissorArrayv = mg_glScissorArrayv_noimpl; - api->ValidateProgram = loadProc("glValidateProgram"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->DebugMessageControl = loadProc("glDebugMessageControl"); - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->PixelStoref = mg_glPixelStoref_noimpl; - api->DepthRangef = loadProc("glDepthRangef"); - api->VertexAttribI3i = mg_glVertexAttribI3i_noimpl; - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Disablei = loadProc("glDisablei"); - api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; - api->ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl; - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->BlendColor = loadProc("glBlendColor"); - api->GenSamplers = loadProc("glGenSamplers"); - api->ColorMaski = loadProc("glColorMaski"); - api->GetGraphicsResetStatus = loadProc("glGetGraphicsResetStatus"); - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->VertexAttrib3s = mg_glVertexAttrib3s_noimpl; - api->DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl; - api->VertexAttribL1d = mg_glVertexAttribL1d_noimpl; - api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; - api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; - api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; - api->Uniform2dv = mg_glUniform2dv_noimpl; - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CopyTexImage1D = mg_glCopyTexImage1D_noimpl; - api->FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl; - api->VertexAttribL4d = mg_glVertexAttribL4d_noimpl; - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl; - api->FenceSync = loadProc("glFenceSync"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->GetUniformdv = mg_glGetUniformdv_noimpl; - api->TexImage3D = loadProc("glTexImage3D"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->LinkProgram = loadProc("glLinkProgram"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl; - api->GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl; - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->ProvokingVertex = mg_glProvokingVertex_noimpl; - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->DrawArrays = loadProc("glDrawArrays"); - api->GetnUniformuiv = loadProc("glGetnUniformuiv"); - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl; - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->DrawElements = loadProc("glDrawElements"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetError = loadProc("glGetError"); - api->IsBuffer = loadProc("glIsBuffer"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->StencilFunc = loadProc("glStencilFunc"); - api->Enablei = loadProc("glEnablei"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->ReadnPixels = loadProc("glReadnPixels"); - api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; - api->PointSize = mg_glPointSize_noimpl; - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ViewportArrayv = mg_glViewportArrayv_noimpl; - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->MultiDrawElements = mg_glMultiDrawElements_noimpl; - api->UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl; - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl; - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl; - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl; - api->TexParameterfv = loadProc("glTexParameterfv"); - api->MapBuffer = mg_glMapBuffer_noimpl; - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->EndQueryIndexed = mg_glEndQueryIndexed_noimpl; - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->DepthMask = loadProc("glDepthMask"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->PatchParameterfv = mg_glPatchParameterfv_noimpl; - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetFloatv = loadProc("glGetFloatv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->TexImage1D = mg_glTexImage1D_noimpl; - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ClearBufferData = mg_glClearBufferData_noimpl; - api->UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl; - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetString = loadProc("glGetString"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl; - api->VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl; - api->TexBufferRange = loadProc("glTexBufferRange"); - api->UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl; - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->DeleteShader = loadProc("glDeleteShader"); - api->GetFloati_v = mg_glGetFloati_v_noimpl; - api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; - api->VertexAttrib4s = mg_glVertexAttrib4s_noimpl; -} - -void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; } -void mg_gl_deselect_api(){ __mgGLAPI = &__mgGLNoAPI; } -mg_gl_api* mg_gl_get_api(void) { return(__mgGLAPI); } - +/******************************************************** +* +* @file: gl_loader.c +* @note: auto-generated by glapi.py from gl.xml +* @date: 11/082023 +* +*********************************************************/ +#include"gl_loader.h" +#include"platform/platform.h" + +mp_thread_local mg_gl_api* __mgGLAPI = 0; +mg_gl_api __mgGLNoAPI; + +void mg_glGetProgramBinary_noimpl(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramBinary is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFrontFace_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFrontFace is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDisablei_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDisablei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginConditionalRender_noimpl(GLuint id, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginConditionalRender is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4usv_noimpl(GLuint index, const GLushort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4usv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawArraysIndirect_noimpl(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawArraysIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glColorMaski_noimpl(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glColorMaski is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindVertexArray_noimpl(GLuint array) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindVertexArray is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferParameteri64v_noimpl(GLenum target, GLenum pname, GLint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferParameteri64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4i_noimpl(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetAttachedShaders_noimpl(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetAttachedShaders is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glAttachShader_noimpl(GLuint program, GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glAttachShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2ui_noimpl(GLuint index, GLuint x, GLuint y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearColor_noimpl(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearColor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterIiv_noimpl(GLenum target, GLenum pname, const GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedbackStream_noimpl(GLenum mode, GLuint id, GLuint stream) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedbackStream is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyBufferSubData_noimpl(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDebugMessageInsert_noimpl(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDebugMessageInsert is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewportIndexedf_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewportIndexedf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glObjectPtrLabel_noimpl(const void * ptr, GLsizei length, const GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glObjectPtrLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilMaskSeparate_noimpl(GLenum face, GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilMaskSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture1D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewport_noimpl(GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewport is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenTextures_noimpl(GLsizei n, GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformBlockBinding_noimpl(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformBlockBinding is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2f_noimpl(GLuint index, GLfloat x, GLfloat y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniform_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniform is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glScissorIndexed_noimpl(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissorIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterf_noimpl(GLenum target, GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindSampler_noimpl(GLuint unit, GLuint sampler) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindSampler is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawElementsIndirect_noimpl(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawElementsIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearTexSubImage_noimpl(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearTexSubImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsEnabledi_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsEnabledi is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glScissor_noimpl(GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramBinary_noimpl(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramBinary is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDisable_noimpl(GLenum cap) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDisable is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformBlockName_noimpl(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformBlockName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawRangeElementsBaseVertex_noimpl(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawRangeElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDebugMessageCallback_noimpl(GLDEBUGPROC callback, const void * userParam) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDebugMessageCallback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquationi_noimpl(GLuint buf, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquationi is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFunci_noimpl(GLuint buf, GLenum src, GLenum dst) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFunci is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glValidateProgramPipeline_noimpl(GLuint pipeline) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glValidateProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteVertexArrays_noimpl(GLsizei n, const GLuint * arrays) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteVertexArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenRenderbuffers_noimpl(GLsizei n, GLuint * renderbuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenRenderbuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glCheckFramebufferStatus_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCheckFramebufferStatus is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glUniform1ui_noimpl(GLint location, GLuint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4bv_noimpl(GLuint index, const GLbyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4bv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetProgramResourceLocationIndex_noimpl(GLuint program, GLenum programInterface, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceLocationIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glProgramUniform3fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPolygonOffset_noimpl(GLfloat factor, GLfloat units) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPolygonOffset is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glClearDepthf_noimpl(GLfloat d) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearDepthf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndConditionalRender_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndConditionalRender is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetObjectLabel_noimpl(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetObjectLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3i_noimpl(GLuint index, GLint x, GLint y, GLint z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenSamplers_noimpl(GLsizei count, GLuint * samplers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenSamplers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilOpSeparate_noimpl(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilOpSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramInterfaceiv_noimpl(GLuint program, GLenum programInterface, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramInterfaceiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetObjectPtrLabel_noimpl(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetObjectPtrLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInteger64v_noimpl(GLenum pname, GLint64 * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInteger64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +const GLubyte * mg_glGetString_noimpl(GLenum name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetString is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((const GLubyte *)0); +} +GLboolean mg_glIsSync_noimpl(GLsync sync) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsSync is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glCopyTexImage1D_noimpl(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterIiv_noimpl(GLuint sampler, GLenum pname, const GLint * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginQuery_noimpl(GLenum target, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginQuery is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferPointerv_noimpl(GLenum target, GLenum pname, void ** params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferPointerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlitFramebuffer_noimpl(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlitFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameteriv_noimpl(GLuint sampler, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameteri_noimpl(GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPolygonMode_noimpl(GLenum face, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPolygonMode is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsIndirect_noimpl(GLenum mode, GLenum type, const void * indirect) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage2DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage2DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL3d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4i_noimpl(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformfv_noimpl(GLuint program, GLint location, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDebugMessageControl_noimpl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDebugMessageControl is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameteriv_noimpl(GLenum target, GLenum pname, const GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsBuffer_noimpl(GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glProgramUniformMatrix3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindFramebuffer_noimpl(GLenum target, GLuint framebuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBufferStorage_noimpl(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBufferStorage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindTextures_noimpl(GLuint first, GLsizei count, const GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexImage3D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPushDebugGroup_noimpl(GLenum source, GLuint id, GLsizei length, const GLchar * message) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPushDebugGroup is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameteriv_noimpl(GLuint sampler, GLenum pname, const GLint * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2i_noimpl(GLuint index, GLint x, GLint y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindTransformFeedback_noimpl(GLenum target, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetRenderbufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetRenderbufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameteri_noimpl(GLuint sampler, GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexBufferRange_noimpl(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderiv_noimpl(GLuint shader, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilMask_noimpl(GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilMask is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3f_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramPipelineiv_noimpl(GLuint pipeline, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramPipelineiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteQueries_noimpl(GLsizei n, const GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteQueries is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1f_noimpl(GLint location, GLfloat v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferiv_noimpl(GLenum buffer, GLint drawbuffer, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateTexImage_noimpl(GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferSubData_noimpl(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearTexImage_noimpl(GLuint texture, GLint level, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glRenderbufferStorageMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glRenderbufferStorageMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTextureLayer_noimpl(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTextureLayer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2f_noimpl(GLint location, GLfloat v0, GLfloat v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL4d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage2D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glLogicOp_noimpl(GLenum opcode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glLogicOp is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindTexture_noimpl(GLenum target, GLuint texture) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetFragDataIndex_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFragDataIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glUniformMatrix2x3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribLdv_noimpl(GLuint index, GLenum pname, GLdouble * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribLdv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindRenderbuffer_noimpl(GLenum target, GLuint renderbuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1d_noimpl(GLint location, GLdouble x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMinSampleShading_noimpl(GLfloat value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMinSampleShading is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage1D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1f_noimpl(GLuint index, GLfloat x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glLineWidth_noimpl(GLfloat width) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glLineWidth is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameterf_noimpl(GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameterf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstancedBaseVertexBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveSubroutineUniformiv_noimpl(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveSubroutineUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4ui_noimpl(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribBinding_noimpl(GLuint attribindex, GLuint bindingindex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribBinding is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glRenderbufferStorage_noimpl(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glRenderbufferStorage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBooleanv_noimpl(GLenum pname, GLboolean * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBooleanv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBufferData_noimpl(GLenum target, GLsizeiptr size, const void * data, GLenum usage) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBufferData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveSubroutineUniformName_noimpl(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveSubroutineUniformName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +const GLubyte * mg_glGetStringi_noimpl(GLenum name, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetStringi is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((const GLubyte *)0); +} +void mg_glBindImageTexture_noimpl(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindImageTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL4dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage3DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage3DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRangeArrayv_noimpl(GLuint first, GLsizei count, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRangeArrayv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformiv_noimpl(GLuint program, GLint location, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteTextures_noimpl(GLsizei n, const GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glCreateShader_noimpl(GLenum type) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCreateShader is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glVertexAttrib4s_noimpl(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPrimitiveBoundingBox_noimpl(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPrimitiveBoundingBox is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawBuffers_noimpl(GLsizei n, const GLenum * bufs) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterIuiv_noimpl(GLenum target, GLenum pname, const GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glQueryCounter_noimpl(GLuint id, GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glQueryCounter is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL1dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1d_noimpl(GLuint program, GLint location, GLdouble v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteRenderbuffers_noimpl(GLsizei n, const GLuint * renderbuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteRenderbuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPopDebugGroup_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPopDebugGroup is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawArrays_noimpl(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformsiv_noimpl(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformsiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFlush_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFlush is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glUnmapBuffer_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUnmapBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glFramebufferTexture3D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsFramebuffer_noimpl(GLuint framebuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glValidateProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glValidateProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribPointerv_noimpl(GLuint index, GLenum pname, void ** pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribPointerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReadnPixels_noimpl(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReadnPixels is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP2ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2i_noimpl(GLuint program, GLint location, GLint v0, GLint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPatchParameteri_noimpl(GLenum pname, GLint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPatchParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nub_noimpl(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nub is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenQueries_noimpl(GLsizei n, GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenQueries is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindSamplers_noimpl(GLuint first, GLsizei count, const GLuint * samplers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindSamplers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDisableVertexAttribArray_noimpl(GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDisableVertexAttribArray is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEnablei_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEnablei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSynciv_noimpl(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSynciv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3s_noimpl(GLuint index, GLshort x, GLshort y, GLshort z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameterIiv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexBindingDivisor_noimpl(GLuint bindingindex, GLuint divisor) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexBindingDivisor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRangef_noimpl(GLfloat n, GLfloat f) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRangef is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nuiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFinish_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFinish is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFunc_noimpl(GLenum sfactor, GLenum dfactor) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFunc is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedbackStreamInstanced_noimpl(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedbackStreamInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2d_noimpl(GLint location, GLdouble x, GLdouble y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetnUniformfv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetnUniformfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFloati_v_noimpl(GLenum target, GLuint index, GLfloat * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFloati_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInteger64i_v_noimpl(GLenum target, GLuint index, GLint64 * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInteger64i_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFramebufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFramebufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4bv_noimpl(GLuint index, const GLbyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4bv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexImage2D_noimpl(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformuiv_noimpl(GLuint program, GLint location, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArraysIndirect_noimpl(GLenum mode, const void * indirect) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArraysIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferRenderbuffer_noimpl(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2i_noimpl(GLint location, GLint v0, GLint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glScissorIndexedv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissorIndexedv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4f_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquationSeparatei_noimpl(GLuint buf, GLenum modeRGB, GLenum modeAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquationSeparatei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformdv_noimpl(GLuint program, GLint location, GLdouble * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformdv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawRangeElements_noimpl(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawRangeElements is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginQueryIndexed_noimpl(GLenum target, GLuint index, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginQueryIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameterfv_noimpl(GLenum pname, const GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSampleCoverage_noimpl(GLfloat value, GLboolean invert) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSampleCoverage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glResumeTransformFeedback_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glResumeTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReadPixels_noimpl(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReadPixels is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glLinkProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glLinkProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glWaitSync_noimpl(GLsync sync, GLbitfield flags, GLuint64 timeout) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glWaitSync is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glActiveShaderProgram_noimpl(GLuint pipeline, GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glActiveShaderProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjectiv_noimpl(GLuint id, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjectiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3i_noimpl(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1ui_noimpl(GLuint program, GLint location, GLuint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendBarrier_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendBarrier is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4ubv_noimpl(GLuint index, const GLubyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4ubv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjecti64v_noimpl(GLuint id, GLenum pname, GLint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjecti64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEnable_noimpl(GLenum cap) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEnable is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenBuffers_noimpl(GLsizei n, GLuint * buffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage3D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateTexSubImage_noimpl(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateTexSubImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1i_noimpl(GLuint program, GLint location, GLint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquation_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquation is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRange_noimpl(GLdouble n, GLdouble f) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFuncSeparate_noimpl(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFuncSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndQueryIndexed_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndQueryIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteTransformFeedbacks_noimpl(GLsizei n, const GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteTransformFeedbacks is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFuncSeparatei_noimpl(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFuncSeparatei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthFunc_noimpl(GLenum func) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthFunc is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateBufferData_noimpl(GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateBufferData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindImageTextures_noimpl(GLuint first, GLsizei count, const GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindImageTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteFramebuffers_noimpl(GLsizei n, const GLuint * framebuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteFramebuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void * mg_glMapBufferRange_noimpl(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMapBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((void *)0); +} +void mg_glDetachShader_noimpl(GLuint program, GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDetachShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBooleani_v_noimpl(GLenum target, GLuint index, GLboolean * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBooleani_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRangeIndexed_noimpl(GLuint index, GLdouble n, GLdouble f) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRangeIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPauseTransformFeedback_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPauseTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL3dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPrimitiveRestartIndex_noimpl(GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPrimitiveRestartIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4d_noimpl(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTransformFeedbackVaryings_noimpl(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTransformFeedbackVaryings is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteBuffers_noimpl(GLsizei n, const GLuint * buffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetProgramResourceLocation_noimpl(GLuint program, GLenum programInterface, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glUniform4f_noimpl(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameterfv_noimpl(GLuint sampler, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP4ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsRenderbuffer_noimpl(GLuint renderbuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glVertexAttrib4Nbv_noimpl(GLuint index, const GLbyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nbv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nsv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nsv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCullFace_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCullFace is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawElementsBaseVertex_noimpl(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3ui_noimpl(GLuint index, GLuint x, GLuint y, GLuint z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetUniformBlockIndex_noimpl(GLuint program, const GLchar * uniformBlockName) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformBlockIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glUseProgramStages_noimpl(GLuint pipeline, GLbitfield stages, GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUseProgramStages is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveAttrib_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveAttrib is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArraysInstancedBaseInstance_noimpl(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArraysInstancedBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsProgramPipeline_noimpl(GLuint pipeline) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glProgramUniform1uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReadBuffer_noimpl(GLenum src) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReadBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteShader_noimpl(GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glCreateShaderProgramv_noimpl(GLenum type, GLsizei count, const GLchar *const* strings) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCreateShaderProgramv is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +GLenum mg_glClientWaitSync_noimpl(GLsync sync, GLbitfield flags, GLuint64 timeout) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClientWaitSync is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glCompressedTexImage1D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2d_noimpl(GLuint index, GLdouble x, GLdouble y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4i_noimpl(GLuint index, GLint x, GLint y, GLint z, GLint w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL2dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetDoublei_v_noimpl(GLenum target, GLuint index, GLdouble * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetDoublei_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterfv_noimpl(GLenum target, GLenum pname, const GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetAttribLocation_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetAttribLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glVertexAttribP1ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribIFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribIFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1ui_noimpl(GLuint index, GLuint x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribiv_noimpl(GLuint index, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveSubroutineName_noimpl(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveSubroutineName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsQuery_noimpl(GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsQuery is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glVertexAttrib1sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUseProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUseProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClear_noimpl(GLbitfield mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClear is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4ubv_noimpl(GLuint index, const GLubyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4ubv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateFramebuffer_noimpl(GLenum target, GLsizei numAttachments, const GLenum * attachments) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPixelStorei_noimpl(GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPixelStorei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1i_noimpl(GLint location, GLint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage3DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage3DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBuffer_noimpl(GLenum target, GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glActiveTexture_noimpl(GLenum texture) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glActiveTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteSync_noimpl(GLsync sync) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteSync is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Niv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Niv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenVertexArrays_noimpl(GLsizei n, GLuint * arrays) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenVertexArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindAttribLocation_noimpl(GLuint program, GLuint index, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindAttribLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendColor_noimpl(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendColor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReleaseShaderCompiler_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReleaseShaderCompiler is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenTransformFeedbacks_noimpl(GLsizei n, GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenTransformFeedbacks is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsShader_noimpl(GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsShader is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glDrawElementsInstancedBaseVertex_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstancedBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribLFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribLFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBuffersRange_noimpl(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBuffersRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glColorMask_noimpl(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glColorMask is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetDoublev_noimpl(GLenum pname, GLdouble * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetDoublev is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL2d_noimpl(GLuint index, GLdouble x, GLdouble y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFlushMappedBufferRange_noimpl(GLenum target, GLintptr offset, GLsizeiptr length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFlushMappedBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameteriv_noimpl(GLenum pname, const GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformSubroutinesuiv_noimpl(GLenum shadertype, GLsizei count, const GLuint * indices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformSubroutinesuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexImage_noimpl(GLenum target, GLint level, GLenum format, GLenum type, void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsSampler_noimpl(GLuint sampler) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsSampler is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glGetVertexAttribfv_noimpl(GLuint index, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage1D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewportArrayv_noimpl(GLuint first, GLsizei count, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewportArrayv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage3D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexLevelParameteriv_noimpl(GLenum target, GLint level, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexLevelParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribdv_noimpl(GLuint index, GLenum pname, GLdouble * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribdv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateBufferSubData_noimpl(GLuint buffer, GLintptr offset, GLsizeiptr length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2s_noimpl(GLuint index, GLshort x, GLshort y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetFragDataLocation_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFragDataLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glVertexAttribI1i_noimpl(GLuint index, GLint x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveAtomicCounterBufferiv_noimpl(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveAtomicCounterBufferiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage2DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage2DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBuffersBase_noimpl(GLenum target, GLuint first, GLsizei count, const GLuint * buffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBuffersBase is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformSubroutineuiv_noimpl(GLenum shadertype, GLint location, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformSubroutineuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndTransformFeedback_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glShaderSource_noimpl(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glShaderSource is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjectuiv_noimpl(GLuint id, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjectuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexLevelParameterfv_noimpl(GLenum target, GLint level, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexLevelParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3d_noimpl(GLint location, GLdouble x, GLdouble y, GLdouble z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferfv_noimpl(GLenum buffer, GLint drawbuffer, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameterIiv_noimpl(GLuint sampler, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMemoryBarrierByRegion_noimpl(GLbitfield barriers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMemoryBarrierByRegion is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenProgramPipelines_noimpl(GLsizei n, GLuint * pipelines) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenProgramPipelines is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindFragDataLocation_noimpl(GLuint program, GLuint color, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindFragDataLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderInfoLog_noimpl(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTextureView_noimpl(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTextureView is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsEnabled_noimpl(GLenum cap) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsEnabled is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glPatchParameterfv_noimpl(GLenum pname, const GLfloat * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPatchParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glHint_noimpl(GLenum target, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glHint is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPixelStoref_noimpl(GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPixelStoref is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquationSeparate_noimpl(GLenum modeRGB, GLenum modeAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquationSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferuiv_noimpl(GLenum buffer, GLint drawbuffer, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glObjectLabel_noimpl(GLenum identifier, GLuint name, GLsizei length, const GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glObjectLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetPointerv_noimpl(GLenum pname, void ** params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetPointerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteSamplers_noimpl(GLsizei count, const GLuint * samplers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteSamplers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEnableVertexAttribArray_noimpl(GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEnableVertexAttribArray is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClampColor_noimpl(GLenum target, GLenum clamp) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClampColor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderPrecisionFormat_noimpl(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderPrecisionFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetnUniformiv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetnUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBufferSubData_noimpl(GLenum target, GLintptr offset, GLsizeiptr size, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterfv_noimpl(GLuint sampler, GLenum pname, const GLfloat * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexBuffer_noimpl(GLenum target, GLenum internalformat, GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glCreateProgram_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCreateProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glBindBufferRange_noimpl(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsTexture_noimpl(GLuint texture) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glUniformMatrix3x2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElements_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElements is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1f_noimpl(GLuint program, GLint location, GLfloat v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsInstanced_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenerateMipmap_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenerateMipmap is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribIuiv_noimpl(GLuint index, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearDepth_noimpl(GLdouble depth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearDepth is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedback_noimpl(GLenum mode, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP4uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameterIuiv_noimpl(GLenum target, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointSize_noimpl(GLfloat size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointSize is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetCompressedTexImage_noimpl(GLenum target, GLint level, void * img) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetCompressedTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLsync mg_glFenceSync_noimpl(GLenum condition, GLbitfield flags) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFenceSync is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLsync)0); +} +void * mg_glMapBuffer_noimpl(GLenum target, GLenum access) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMapBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((void *)0); +} +void mg_glGetFramebufferAttachmentParameteriv_noimpl(GLenum target, GLenum attachment, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFramebufferAttachmentParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginTransformFeedback_noimpl(GLenum primitiveMode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameteri_noimpl(GLenum target, GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameterfv_noimpl(GLenum target, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL1d_noimpl(GLuint index, GLdouble x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nusv_noimpl(GLuint index, const GLushort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nusv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1d_noimpl(GLuint index, GLdouble x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glGetError_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetError is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glVertexAttribP2uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderSource_noimpl(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderSource is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilFuncSeparate_noimpl(GLenum face, GLenum func, GLint ref, GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilFuncSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture_noimpl(GLenum target, GLenum attachment, GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramInfoLog_noimpl(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsInstancedBaseInstance_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstancedBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBufferBase_noimpl(GLenum target, GLuint index, GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBufferBase is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTransformFeedbackVarying_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTransformFeedbackVarying is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexImage2D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformIndices_noimpl(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformIndices is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage2D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4usv_noimpl(GLuint index, const GLushort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4usv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformBlockiv_noimpl(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformBlockiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyImageSubData_noimpl(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyImageSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4ui_noimpl(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindVertexBuffers_noimpl(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindVertexBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProvokingVertex_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProvokingVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsVertexArray_noimpl(GLuint array) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsVertexArray is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glViewportIndexedfv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewportIndexedfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDispatchCompute_noimpl(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDispatchCompute is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArrays_noimpl(GLenum mode, GLint first, GLsizei count) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryIndexediv_noimpl(GLenum target, GLuint index, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryIndexediv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3ui_noimpl(GLint location, GLuint v0, GLuint v1, GLuint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawElements_noimpl(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawElements is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferfi_noimpl(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferfi is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP3ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramParameteri_noimpl(GLuint program, GLenum pname, GLint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glGetGraphicsResetStatus_noimpl(void) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetGraphicsResetStatus is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glShaderBinary_noimpl(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glShaderBinary is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glShaderStorageBlockBinding_noimpl(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glShaderStorageBlockBinding is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArraysInstanced_noimpl(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArraysInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetSubroutineIndex_noimpl(GLuint program, GLenum shadertype, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSubroutineIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glGetVertexAttribIiv_noimpl(GLuint index, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsBaseVertex_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramResourceName_noimpl(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInternalformativ_noimpl(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInternalformativ is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribLPointer_noimpl(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribLPointer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameterIuiv_noimpl(GLuint sampler, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterf_noimpl(GLuint sampler, GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenFramebuffers_noimpl(GLsizei n, GLuint * framebuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenFramebuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjectui64v_noimpl(GLuint id, GLenum pname, GLuint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjectui64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramResourceiv_noimpl(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP3uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsTransformFeedback_noimpl(GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glDispatchComputeIndirect_noimpl(GLintptr indirect) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDispatchComputeIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindVertexBuffer_noimpl(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindVertexBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilOp_noimpl(GLenum fail, GLenum zfail, GLenum zpass) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilOp is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1s_noimpl(GLuint index, GLshort x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetMultisamplefv_noimpl(GLenum pname, GLuint index, GLfloat * val) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetMultisamplefv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryiv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindProgramPipeline_noimpl(GLuint pipeline) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferParameteri_noimpl(GLenum target, GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetIntegeri_v_noimpl(GLenum target, GLuint index, GLint * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetIntegeri_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetIntegerv_noimpl(GLenum pname, GLint * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetIntegerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteProgramPipelines_noimpl(GLsizei n, const GLuint * pipelines) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteProgramPipelines is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferData_noimpl(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetSubroutineUniformLocation_noimpl(GLuint program, GLenum shadertype, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSubroutineUniformLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glGetProgramiv_noimpl(GLuint program, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthMask_noimpl(GLboolean flag) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthMask is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribIPointer_noimpl(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribIPointer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformName_noimpl(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP1uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetUniformLocation_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glSampleMaski_noimpl(GLuint maskNumber, GLbitfield mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSampleMaski is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferSubData_noimpl(GLenum target, GLintptr offset, GLsizeiptr size, void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribPointer_noimpl(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribPointer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture2D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetnUniformuiv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetnUniformuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInternalformati64v_noimpl(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInternalformati64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompileShader_noimpl(GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompileShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawBuffer_noimpl(GLenum buf) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3f_noimpl(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedbackInstanced_noimpl(GLenum mode, GLuint id, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedbackInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramStageiv_noimpl(GLuint program, GLenum shadertype, GLenum pname, GLint * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramStageiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilFunc_noimpl(GLenum func, GLint ref, GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilFunc is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetProgramResourceIndex_noimpl(GLuint program, GLenum programInterface, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glClearStencil_noimpl(GLint s) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearStencil is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glScissorArrayv_noimpl(GLuint first, GLsizei count, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissorArrayv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMemoryBarrier_noimpl(GLbitfield barriers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMemoryBarrier is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterIuiv_noimpl(GLuint sampler, GLenum pname, const GLuint * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFloatv_noimpl(GLenum pname, GLfloat * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFloatv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindFragDataLocationIndexed_noimpl(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindFragDataLocationIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndQuery_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndQuery is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nubv_noimpl(GLuint index, const GLubyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nubv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramPipelineInfoLog_noimpl(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramPipelineInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribDivisor_noimpl(GLuint index, GLuint divisor) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribDivisor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3i_noimpl(GLint location, GLint v0, GLint v1, GLint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2ui_noimpl(GLint location, GLuint v0, GLuint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateSubFramebuffer_noimpl(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateSubFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetDebugMessageLog_noimpl(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetDebugMessageLog is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +mg_gl_api __mgGLNoAPI = { + .GetProgramBinary = mg_glGetProgramBinary_noimpl, + .FrontFace = mg_glFrontFace_noimpl, + .Disablei = mg_glDisablei_noimpl, + .BeginConditionalRender = mg_glBeginConditionalRender_noimpl, + .CopyTexSubImage3D = mg_glCopyTexSubImage3D_noimpl, + .CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl, + .VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl, + .VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl, + .UniformMatrix2x3fv = mg_glUniformMatrix2x3fv_noimpl, + .MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl, + .ColorMaski = mg_glColorMaski_noimpl, + .BindVertexArray = mg_glBindVertexArray_noimpl, + .ProgramUniform3d = mg_glProgramUniform3d_noimpl, + .GetBufferParameteri64v = mg_glGetBufferParameteri64v_noimpl, + .Uniform4i = mg_glUniform4i_noimpl, + .GetAttachedShaders = mg_glGetAttachedShaders_noimpl, + .AttachShader = mg_glAttachShader_noimpl, + .VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl, + .ClearColor = mg_glClearColor_noimpl, + .TexParameterIiv = mg_glTexParameterIiv_noimpl, + .ProgramUniform4d = mg_glProgramUniform4d_noimpl, + .DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl, + .VertexAttribI4iv = mg_glVertexAttribI4iv_noimpl, + .CopyBufferSubData = mg_glCopyBufferSubData_noimpl, + .DebugMessageInsert = mg_glDebugMessageInsert_noimpl, + .ViewportIndexedf = mg_glViewportIndexedf_noimpl, + .ProgramUniform1fv = mg_glProgramUniform1fv_noimpl, + .ObjectPtrLabel = mg_glObjectPtrLabel_noimpl, + .StencilMaskSeparate = mg_glStencilMaskSeparate_noimpl, + .UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl, + .FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl, + .Viewport = mg_glViewport_noimpl, + .GenTextures = mg_glGenTextures_noimpl, + .UniformBlockBinding = mg_glUniformBlockBinding_noimpl, + .VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl, + .ProgramUniformMatrix3x4fv = mg_glProgramUniformMatrix3x4fv_noimpl, + .VertexAttrib2f = mg_glVertexAttrib2f_noimpl, + .GetActiveUniform = mg_glGetActiveUniform_noimpl, + .ScissorIndexed = mg_glScissorIndexed_noimpl, + .TexParameterf = mg_glTexParameterf_noimpl, + .BindSampler = mg_glBindSampler_noimpl, + .MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl, + .ClearTexSubImage = mg_glClearTexSubImage_noimpl, + .IsEnabledi = mg_glIsEnabledi_noimpl, + .Scissor = mg_glScissor_noimpl, + .ProgramBinary = mg_glProgramBinary_noimpl, + .Disable = mg_glDisable_noimpl, + .GetActiveUniformBlockName = mg_glGetActiveUniformBlockName_noimpl, + .DrawRangeElementsBaseVertex = mg_glDrawRangeElementsBaseVertex_noimpl, + .DebugMessageCallback = mg_glDebugMessageCallback_noimpl, + .BlendEquationi = mg_glBlendEquationi_noimpl, + .VertexAttribI4uiv = mg_glVertexAttribI4uiv_noimpl, + .BlendFunci = mg_glBlendFunci_noimpl, + .ValidateProgramPipeline = mg_glValidateProgramPipeline_noimpl, + .DeleteVertexArrays = mg_glDeleteVertexArrays_noimpl, + .GenRenderbuffers = mg_glGenRenderbuffers_noimpl, + .CheckFramebufferStatus = mg_glCheckFramebufferStatus_noimpl, + .Uniform1ui = mg_glUniform1ui_noimpl, + .ProgramUniform3ui = mg_glProgramUniform3ui_noimpl, + .VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl, + .GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl, + .ProgramUniform3fv = mg_glProgramUniform3fv_noimpl, + .PolygonOffset = mg_glPolygonOffset_noimpl, + .IsProgram = mg_glIsProgram_noimpl, + .ClearDepthf = mg_glClearDepthf_noimpl, + .EndConditionalRender = mg_glEndConditionalRender_noimpl, + .GetObjectLabel = mg_glGetObjectLabel_noimpl, + .ProgramUniformMatrix4x2fv = mg_glProgramUniformMatrix4x2fv_noimpl, + .VertexAttribI3i = mg_glVertexAttribI3i_noimpl, + .GenSamplers = mg_glGenSamplers_noimpl, + .VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl, + .StencilOpSeparate = mg_glStencilOpSeparate_noimpl, + .GetProgramInterfaceiv = mg_glGetProgramInterfaceiv_noimpl, + .GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl, + .UniformMatrix2fv = mg_glUniformMatrix2fv_noimpl, + .GetInteger64v = mg_glGetInteger64v_noimpl, + .GetString = mg_glGetString_noimpl, + .IsSync = mg_glIsSync_noimpl, + .CopyTexImage1D = mg_glCopyTexImage1D_noimpl, + .SamplerParameterIiv = mg_glSamplerParameterIiv_noimpl, + .VertexAttrib3fv = mg_glVertexAttrib3fv_noimpl, + .BeginQuery = mg_glBeginQuery_noimpl, + .GetBufferPointerv = mg_glGetBufferPointerv_noimpl, + .BlitFramebuffer = mg_glBlitFramebuffer_noimpl, + .GetSamplerParameteriv = mg_glGetSamplerParameteriv_noimpl, + .PointParameteri = mg_glPointParameteri_noimpl, + .PolygonMode = mg_glPolygonMode_noimpl, + .DrawElementsIndirect = mg_glDrawElementsIndirect_noimpl, + .TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl, + .VertexAttribL3d = mg_glVertexAttribL3d_noimpl, + .ProgramUniform4i = mg_glProgramUniform4i_noimpl, + .GetUniformfv = mg_glGetUniformfv_noimpl, + .DebugMessageControl = mg_glDebugMessageControl_noimpl, + .TexParameteriv = mg_glTexParameteriv_noimpl, + .IsBuffer = mg_glIsBuffer_noimpl, + .ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl, + .BindFramebuffer = mg_glBindFramebuffer_noimpl, + .BufferStorage = mg_glBufferStorage_noimpl, + .ProgramUniform4fv = mg_glProgramUniform4fv_noimpl, + .BindTextures = mg_glBindTextures_noimpl, + .CompressedTexImage3D = mg_glCompressedTexImage3D_noimpl, + .ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl, + .PushDebugGroup = mg_glPushDebugGroup_noimpl, + .SamplerParameteriv = mg_glSamplerParameteriv_noimpl, + .VertexAttribI2i = mg_glVertexAttribI2i_noimpl, + .BindTransformFeedback = mg_glBindTransformFeedback_noimpl, + .GetRenderbufferParameteriv = mg_glGetRenderbufferParameteriv_noimpl, + .Uniform2fv = mg_glUniform2fv_noimpl, + .VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl, + .SamplerParameteri = mg_glSamplerParameteri_noimpl, + .TexBufferRange = mg_glTexBufferRange_noimpl, + .GetShaderiv = mg_glGetShaderiv_noimpl, + .StencilMask = mg_glStencilMask_noimpl, + .VertexAttrib3f = mg_glVertexAttrib3f_noimpl, + .GetProgramPipelineiv = mg_glGetProgramPipelineiv_noimpl, + .DeleteQueries = mg_glDeleteQueries_noimpl, + .ProgramUniform3uiv = mg_glProgramUniform3uiv_noimpl, + .ProgramUniformMatrix2x4fv = mg_glProgramUniformMatrix2x4fv_noimpl, + .Uniform1f = mg_glUniform1f_noimpl, + .TexSubImage1D = mg_glTexSubImage1D_noimpl, + .ClearBufferiv = mg_glClearBufferiv_noimpl, + .ProgramUniform4uiv = mg_glProgramUniform4uiv_noimpl, + .InvalidateTexImage = mg_glInvalidateTexImage_noimpl, + .ClearBufferSubData = mg_glClearBufferSubData_noimpl, + .ClearTexImage = mg_glClearTexImage_noimpl, + .VertexAttrib4d = mg_glVertexAttrib4d_noimpl, + .RenderbufferStorageMultisample = mg_glRenderbufferStorageMultisample_noimpl, + .FramebufferTextureLayer = mg_glFramebufferTextureLayer_noimpl, + .Uniform2f = mg_glUniform2f_noimpl, + .VertexAttribL4d = mg_glVertexAttribL4d_noimpl, + .TexImage2D = mg_glTexImage2D_noimpl, + .LogicOp = mg_glLogicOp_noimpl, + .BindTexture = mg_glBindTexture_noimpl, + .VertexAttrib1fv = mg_glVertexAttrib1fv_noimpl, + .ProgramUniformMatrix3fv = mg_glProgramUniformMatrix3fv_noimpl, + .GetFragDataIndex = mg_glGetFragDataIndex_noimpl, + .UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl, + .GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl, + .BindRenderbuffer = mg_glBindRenderbuffer_noimpl, + .Uniform1d = mg_glUniform1d_noimpl, + .UniformMatrix2x4fv = mg_glUniformMatrix2x4fv_noimpl, + .MinSampleShading = mg_glMinSampleShading_noimpl, + .CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl, + .TexImage1D = mg_glTexImage1D_noimpl, + .VertexAttrib1f = mg_glVertexAttrib1f_noimpl, + .LineWidth = mg_glLineWidth_noimpl, + .PointParameterf = mg_glPointParameterf_noimpl, + .DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl, + .GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl, + .Uniform4ui = mg_glUniform4ui_noimpl, + .VertexAttribBinding = mg_glVertexAttribBinding_noimpl, + .GetTexParameteriv = mg_glGetTexParameteriv_noimpl, + .RenderbufferStorage = mg_glRenderbufferStorage_noimpl, + .VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl, + .UniformMatrix3fv = mg_glUniformMatrix3fv_noimpl, + .GetBooleanv = mg_glGetBooleanv_noimpl, + .ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl, + .ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl, + .Uniform2iv = mg_glUniform2iv_noimpl, + .BufferData = mg_glBufferData_noimpl, + .GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl, + .GetStringi = mg_glGetStringi_noimpl, + .BindImageTexture = mg_glBindImageTexture_noimpl, + .ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl, + .VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl, + .TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl, + .DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl, + .GetUniformiv = mg_glGetUniformiv_noimpl, + .DeleteTextures = mg_glDeleteTextures_noimpl, + .CreateShader = mg_glCreateShader_noimpl, + .VertexAttrib4s = mg_glVertexAttrib4s_noimpl, + .PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl, + .DrawBuffers = mg_glDrawBuffers_noimpl, + .VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl, + .TexParameterIuiv = mg_glTexParameterIuiv_noimpl, + .QueryCounter = mg_glQueryCounter_noimpl, + .VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl, + .ProgramUniform1d = mg_glProgramUniform1d_noimpl, + .DeleteRenderbuffers = mg_glDeleteRenderbuffers_noimpl, + .PopDebugGroup = mg_glPopDebugGroup_noimpl, + .MultiDrawArrays = mg_glMultiDrawArrays_noimpl, + .GetActiveUniformsiv = mg_glGetActiveUniformsiv_noimpl, + .Flush = mg_glFlush_noimpl, + .UnmapBuffer = mg_glUnmapBuffer_noimpl, + .FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl, + .Uniform1fv = mg_glUniform1fv_noimpl, + .IsFramebuffer = mg_glIsFramebuffer_noimpl, + .ValidateProgram = mg_glValidateProgram_noimpl, + .GetVertexAttribPointerv = mg_glGetVertexAttribPointerv_noimpl, + .ReadnPixels = mg_glReadnPixels_noimpl, + .VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl, + .ProgramUniform2i = mg_glProgramUniform2i_noimpl, + .PatchParameteri = mg_glPatchParameteri_noimpl, + .VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl, + .GenQueries = mg_glGenQueries_noimpl, + .ProgramUniform2ui = mg_glProgramUniform2ui_noimpl, + .BindSamplers = mg_glBindSamplers_noimpl, + .DisableVertexAttribArray = mg_glDisableVertexAttribArray_noimpl, + .Enablei = mg_glEnablei_noimpl, + .GetSynciv = mg_glGetSynciv_noimpl, + .VertexAttrib3s = mg_glVertexAttrib3s_noimpl, + .GetTexParameterIiv = mg_glGetTexParameterIiv_noimpl, + .VertexBindingDivisor = mg_glVertexBindingDivisor_noimpl, + .DepthRangef = mg_glDepthRangef_noimpl, + .VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl, + .Finish = mg_glFinish_noimpl, + .BlendFunc = mg_glBlendFunc_noimpl, + .DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl, + .UniformMatrix4x3fv = mg_glUniformMatrix4x3fv_noimpl, + .UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl, + .Uniform2d = mg_glUniform2d_noimpl, + .GetnUniformfv = mg_glGetnUniformfv_noimpl, + .GetFloati_v = mg_glGetFloati_v_noimpl, + .GetInteger64i_v = mg_glGetInteger64i_v_noimpl, + .ProgramUniform3f = mg_glProgramUniform3f_noimpl, + .GetFramebufferParameteriv = mg_glGetFramebufferParameteriv_noimpl, + .VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl, + .DeleteProgram = mg_glDeleteProgram_noimpl, + .CopyTexImage2D = mg_glCopyTexImage2D_noimpl, + .GetUniformuiv = mg_glGetUniformuiv_noimpl, + .DrawArraysIndirect = mg_glDrawArraysIndirect_noimpl, + .UniformMatrix4x2fv = mg_glUniformMatrix4x2fv_noimpl, + .FramebufferRenderbuffer = mg_glFramebufferRenderbuffer_noimpl, + .Uniform2i = mg_glUniform2i_noimpl, + .ProgramUniform3dv = mg_glProgramUniform3dv_noimpl, + .ScissorIndexedv = mg_glScissorIndexedv_noimpl, + .ProgramUniform2d = mg_glProgramUniform2d_noimpl, + .VertexAttrib4f = mg_glVertexAttrib4f_noimpl, + .BlendEquationSeparatei = mg_glBlendEquationSeparatei_noimpl, + .GetUniformdv = mg_glGetUniformdv_noimpl, + .DrawRangeElements = mg_glDrawRangeElements_noimpl, + .UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl, + .ProgramUniform2uiv = mg_glProgramUniform2uiv_noimpl, + .VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl, + .BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl, + .PointParameterfv = mg_glPointParameterfv_noimpl, + .SampleCoverage = mg_glSampleCoverage_noimpl, + .ResumeTransformFeedback = mg_glResumeTransformFeedback_noimpl, + .ReadPixels = mg_glReadPixels_noimpl, + .LinkProgram = mg_glLinkProgram_noimpl, + .WaitSync = mg_glWaitSync_noimpl, + .ActiveShaderProgram = mg_glActiveShaderProgram_noimpl, + .GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl, + .ProgramUniform3i = mg_glProgramUniform3i_noimpl, + .ProgramUniform1ui = mg_glProgramUniform1ui_noimpl, + .BlendBarrier = mg_glBlendBarrier_noimpl, + .VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl, + .GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl, + .UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl, + .Uniform1iv = mg_glUniform1iv_noimpl, + .Enable = mg_glEnable_noimpl, + .GenBuffers = mg_glGenBuffers_noimpl, + .TexStorage3D = mg_glTexStorage3D_noimpl, + .InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl, + .ProgramUniform1i = mg_glProgramUniform1i_noimpl, + .BlendEquation = mg_glBlendEquation_noimpl, + .DepthRange = mg_glDepthRange_noimpl, + .Uniform2dv = mg_glUniform2dv_noimpl, + .BlendFuncSeparate = mg_glBlendFuncSeparate_noimpl, + .Uniform1dv = mg_glUniform1dv_noimpl, + .EndQueryIndexed = mg_glEndQueryIndexed_noimpl, + .DeleteTransformFeedbacks = mg_glDeleteTransformFeedbacks_noimpl, + .BlendFuncSeparatei = mg_glBlendFuncSeparatei_noimpl, + .DepthFunc = mg_glDepthFunc_noimpl, + .InvalidateBufferData = mg_glInvalidateBufferData_noimpl, + .BindImageTextures = mg_glBindImageTextures_noimpl, + .DeleteFramebuffers = mg_glDeleteFramebuffers_noimpl, + .VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl, + .VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl, + .VertexAttribFormat = mg_glVertexAttribFormat_noimpl, + .MapBufferRange = mg_glMapBufferRange_noimpl, + .DetachShader = mg_glDetachShader_noimpl, + .GetBooleani_v = mg_glGetBooleani_v_noimpl, + .DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl, + .PauseTransformFeedback = mg_glPauseTransformFeedback_noimpl, + .VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl, + .PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl, + .Uniform4d = mg_glUniform4d_noimpl, + .TransformFeedbackVaryings = mg_glTransformFeedbackVaryings_noimpl, + .DeleteBuffers = mg_glDeleteBuffers_noimpl, + .GetProgramResourceLocation = mg_glGetProgramResourceLocation_noimpl, + .Uniform4f = mg_glUniform4f_noimpl, + .GetSamplerParameterfv = mg_glGetSamplerParameterfv_noimpl, + .VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl, + .IsRenderbuffer = mg_glIsRenderbuffer_noimpl, + .VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl, + .VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl, + .CullFace = mg_glCullFace_noimpl, + .MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl, + .VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl, + .GetUniformBlockIndex = mg_glGetUniformBlockIndex_noimpl, + .UseProgramStages = mg_glUseProgramStages_noimpl, + .GetActiveAttrib = mg_glGetActiveAttrib_noimpl, + .DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl, + .IsProgramPipeline = mg_glIsProgramPipeline_noimpl, + .ProgramUniform1uiv = mg_glProgramUniform1uiv_noimpl, + .ProgramUniform3iv = mg_glProgramUniform3iv_noimpl, + .ReadBuffer = mg_glReadBuffer_noimpl, + .DeleteShader = mg_glDeleteShader_noimpl, + .CreateShaderProgramv = mg_glCreateShaderProgramv_noimpl, + .ClientWaitSync = mg_glClientWaitSync_noimpl, + .CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl, + .VertexAttrib2d = mg_glVertexAttrib2d_noimpl, + .VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl, + .VertexAttribI4i = mg_glVertexAttribI4i_noimpl, + .VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl, + .GetDoublei_v = mg_glGetDoublei_v_noimpl, + .TexParameterfv = mg_glTexParameterfv_noimpl, + .GetAttribLocation = mg_glGetAttribLocation_noimpl, + .VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl, + .VertexAttribIFormat = mg_glVertexAttribIFormat_noimpl, + .VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl, + .GetVertexAttribiv = mg_glGetVertexAttribiv_noimpl, + .GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl, + .IsQuery = mg_glIsQuery_noimpl, + .VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl, + .ProgramUniformMatrix2fv = mg_glProgramUniformMatrix2fv_noimpl, + .UseProgram = mg_glUseProgram_noimpl, + .Clear = mg_glClear_noimpl, + .VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl, + .InvalidateFramebuffer = mg_glInvalidateFramebuffer_noimpl, + .PixelStorei = mg_glPixelStorei_noimpl, + .Uniform1i = mg_glUniform1i_noimpl, + .Uniform1uiv = mg_glUniform1uiv_noimpl, + .TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl, + .BindBuffer = mg_glBindBuffer_noimpl, + .ActiveTexture = mg_glActiveTexture_noimpl, + .DeleteSync = mg_glDeleteSync_noimpl, + .VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl, + .VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl, + .Uniform3fv = mg_glUniform3fv_noimpl, + .GenVertexArrays = mg_glGenVertexArrays_noimpl, + .ProgramUniformMatrix3x2fv = mg_glProgramUniformMatrix3x2fv_noimpl, + .BindAttribLocation = mg_glBindAttribLocation_noimpl, + .CopyTexSubImage2D = mg_glCopyTexSubImage2D_noimpl, + .BlendColor = mg_glBlendColor_noimpl, + .ReleaseShaderCompiler = mg_glReleaseShaderCompiler_noimpl, + .GenTransformFeedbacks = mg_glGenTransformFeedbacks_noimpl, + .IsShader = mg_glIsShader_noimpl, + .DrawElementsInstancedBaseVertex = mg_glDrawElementsInstancedBaseVertex_noimpl, + .VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl, + .BindBuffersRange = mg_glBindBuffersRange_noimpl, + .ColorMask = mg_glColorMask_noimpl, + .UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl, + .GetDoublev = mg_glGetDoublev_noimpl, + .UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl, + .VertexAttribL2d = mg_glVertexAttribL2d_noimpl, + .FlushMappedBufferRange = mg_glFlushMappedBufferRange_noimpl, + .ProgramUniform2iv = mg_glProgramUniform2iv_noimpl, + .PointParameteriv = mg_glPointParameteriv_noimpl, + .UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl, + .ProgramUniformMatrix4x3fv = mg_glProgramUniformMatrix4x3fv_noimpl, + .GetBufferParameteriv = mg_glGetBufferParameteriv_noimpl, + .GetTexImage = mg_glGetTexImage_noimpl, + .ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl, + .VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl, + .IsSampler = mg_glIsSampler_noimpl, + .GetVertexAttribfv = mg_glGetVertexAttribfv_noimpl, + .TexStorage1D = mg_glTexStorage1D_noimpl, + .ViewportArrayv = mg_glViewportArrayv_noimpl, + .TexImage3D = mg_glTexImage3D_noimpl, + .ProgramUniformMatrix4fv = mg_glProgramUniformMatrix4fv_noimpl, + .GetTexLevelParameteriv = mg_glGetTexLevelParameteriv_noimpl, + .GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl, + .InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl, + .ProgramUniform4f = mg_glProgramUniform4f_noimpl, + .VertexAttrib2s = mg_glVertexAttrib2s_noimpl, + .TexSubImage3D = mg_glTexSubImage3D_noimpl, + .GetFragDataLocation = mg_glGetFragDataLocation_noimpl, + .VertexAttribI1i = mg_glVertexAttribI1i_noimpl, + .GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl, + .TexStorage2DMultisample = mg_glTexStorage2DMultisample_noimpl, + .BindBuffersBase = mg_glBindBuffersBase_noimpl, + .GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl, + .EndTransformFeedback = mg_glEndTransformFeedback_noimpl, + .ShaderSource = mg_glShaderSource_noimpl, + .GetQueryObjectuiv = mg_glGetQueryObjectuiv_noimpl, + .GetTexLevelParameterfv = mg_glGetTexLevelParameterfv_noimpl, + .Uniform3d = mg_glUniform3d_noimpl, + .ClearBufferfv = mg_glClearBufferfv_noimpl, + .GetSamplerParameterIiv = mg_glGetSamplerParameterIiv_noimpl, + .MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl, + .GenProgramPipelines = mg_glGenProgramPipelines_noimpl, + .BindFragDataLocation = mg_glBindFragDataLocation_noimpl, + .GetShaderInfoLog = mg_glGetShaderInfoLog_noimpl, + .TextureView = mg_glTextureView_noimpl, + .IsEnabled = mg_glIsEnabled_noimpl, + .PatchParameterfv = mg_glPatchParameterfv_noimpl, + .Hint = mg_glHint_noimpl, + .PixelStoref = mg_glPixelStoref_noimpl, + .ProgramUniform4iv = mg_glProgramUniform4iv_noimpl, + .BlendEquationSeparate = mg_glBlendEquationSeparate_noimpl, + .ClearBufferuiv = mg_glClearBufferuiv_noimpl, + .ObjectLabel = mg_glObjectLabel_noimpl, + .GetPointerv = mg_glGetPointerv_noimpl, + .DeleteSamplers = mg_glDeleteSamplers_noimpl, + .ProgramUniform2dv = mg_glProgramUniform2dv_noimpl, + .EnableVertexAttribArray = mg_glEnableVertexAttribArray_noimpl, + .ClampColor = mg_glClampColor_noimpl, + .GetShaderPrecisionFormat = mg_glGetShaderPrecisionFormat_noimpl, + .GetnUniformiv = mg_glGetnUniformiv_noimpl, + .Uniform3iv = mg_glUniform3iv_noimpl, + .VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl, + .BufferSubData = mg_glBufferSubData_noimpl, + .SamplerParameterfv = mg_glSamplerParameterfv_noimpl, + .VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl, + .TexBuffer = mg_glTexBuffer_noimpl, + .CreateProgram = mg_glCreateProgram_noimpl, + .BindBufferRange = mg_glBindBufferRange_noimpl, + .IsTexture = mg_glIsTexture_noimpl, + .UniformMatrix3x2fv = mg_glUniformMatrix3x2fv_noimpl, + .DrawElements = mg_glDrawElements_noimpl, + .ProgramUniform1f = mg_glProgramUniform1f_noimpl, + .Uniform3dv = mg_glUniform3dv_noimpl, + .DrawElementsInstanced = mg_glDrawElementsInstanced_noimpl, + .GenerateMipmap = mg_glGenerateMipmap_noimpl, + .ProgramUniform4ui = mg_glProgramUniform4ui_noimpl, + .GetVertexAttribIuiv = mg_glGetVertexAttribIuiv_noimpl, + .ClearDepth = mg_glClearDepth_noimpl, + .DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl, + .TexSubImage2D = mg_glTexSubImage2D_noimpl, + .VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl, + .GetTexParameterIuiv = mg_glGetTexParameterIuiv_noimpl, + .PointSize = mg_glPointSize_noimpl, + .GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl, + .Uniform2uiv = mg_glUniform2uiv_noimpl, + .FenceSync = mg_glFenceSync_noimpl, + .MapBuffer = mg_glMapBuffer_noimpl, + .GetFramebufferAttachmentParameteriv = mg_glGetFramebufferAttachmentParameteriv_noimpl, + .BeginTransformFeedback = mg_glBeginTransformFeedback_noimpl, + .TexParameteri = mg_glTexParameteri_noimpl, + .GetTexParameterfv = mg_glGetTexParameterfv_noimpl, + .VertexAttribL1d = mg_glVertexAttribL1d_noimpl, + .VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl, + .ProgramUniform2f = mg_glProgramUniform2f_noimpl, + .VertexAttrib1d = mg_glVertexAttrib1d_noimpl, + .GetError = mg_glGetError_noimpl, + .VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl, + .UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl, + .GetShaderSource = mg_glGetShaderSource_noimpl, + .StencilFuncSeparate = mg_glStencilFuncSeparate_noimpl, + .FramebufferTexture = mg_glFramebufferTexture_noimpl, + .ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl, + .Uniform4dv = mg_glUniform4dv_noimpl, + .GetProgramInfoLog = mg_glGetProgramInfoLog_noimpl, + .ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl, + .UniformMatrix3x4fv = mg_glUniformMatrix3x4fv_noimpl, + .CompressedTexSubImage3D = mg_glCompressedTexSubImage3D_noimpl, + .DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl, + .BindBufferBase = mg_glBindBufferBase_noimpl, + .UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl, + .GetTransformFeedbackVarying = mg_glGetTransformFeedbackVarying_noimpl, + .CompressedTexImage2D = mg_glCompressedTexImage2D_noimpl, + .GetUniformIndices = mg_glGetUniformIndices_noimpl, + .TexStorage2D = mg_glTexStorage2D_noimpl, + .VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl, + .GetActiveUniformBlockiv = mg_glGetActiveUniformBlockiv_noimpl, + .CopyImageSubData = mg_glCopyImageSubData_noimpl, + .VertexAttribI4ui = mg_glVertexAttribI4ui_noimpl, + .VertexAttrib4fv = mg_glVertexAttrib4fv_noimpl, + .ProgramUniform1iv = mg_glProgramUniform1iv_noimpl, + .BindVertexBuffers = mg_glBindVertexBuffers_noimpl, + .ProvokingVertex = mg_glProvokingVertex_noimpl, + .Uniform3uiv = mg_glUniform3uiv_noimpl, + .IsVertexArray = mg_glIsVertexArray_noimpl, + .ViewportIndexedfv = mg_glViewportIndexedfv_noimpl, + .DispatchCompute = mg_glDispatchCompute_noimpl, + .DrawArrays = mg_glDrawArrays_noimpl, + .GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl, + .Uniform3ui = mg_glUniform3ui_noimpl, + .MultiDrawElements = mg_glMultiDrawElements_noimpl, + .ClearBufferfi = mg_glClearBufferfi_noimpl, + .ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl, + .VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl, + .VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl, + .ProgramParameteri = mg_glProgramParameteri_noimpl, + .Uniform4uiv = mg_glUniform4uiv_noimpl, + .UniformMatrix4fv = mg_glUniformMatrix4fv_noimpl, + .VertexAttrib2fv = mg_glVertexAttrib2fv_noimpl, + .GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl, + .ShaderBinary = mg_glShaderBinary_noimpl, + .ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl, + .DrawArraysInstanced = mg_glDrawArraysInstanced_noimpl, + .GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl, + .GetVertexAttribIiv = mg_glGetVertexAttribIiv_noimpl, + .DrawElementsBaseVertex = mg_glDrawElementsBaseVertex_noimpl, + .GetProgramResourceName = mg_glGetProgramResourceName_noimpl, + .GetInternalformativ = mg_glGetInternalformativ_noimpl, + .Uniform4fv = mg_glUniform4fv_noimpl, + .VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl, + .GetSamplerParameterIuiv = mg_glGetSamplerParameterIuiv_noimpl, + .VertexAttrib3d = mg_glVertexAttrib3d_noimpl, + .SamplerParameterf = mg_glSamplerParameterf_noimpl, + .GenFramebuffers = mg_glGenFramebuffers_noimpl, + .GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl, + .GetProgramResourceiv = mg_glGetProgramResourceiv_noimpl, + .VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl, + .VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl, + .IsTransformFeedback = mg_glIsTransformFeedback_noimpl, + .DispatchComputeIndirect = mg_glDispatchComputeIndirect_noimpl, + .CompressedTexSubImage2D = mg_glCompressedTexSubImage2D_noimpl, + .BindVertexBuffer = mg_glBindVertexBuffer_noimpl, + .ProgramUniform1dv = mg_glProgramUniform1dv_noimpl, + .StencilOp = mg_glStencilOp_noimpl, + .VertexAttrib1s = mg_glVertexAttrib1s_noimpl, + .GetMultisamplefv = mg_glGetMultisamplefv_noimpl, + .GetQueryiv = mg_glGetQueryiv_noimpl, + .BindProgramPipeline = mg_glBindProgramPipeline_noimpl, + .FramebufferParameteri = mg_glFramebufferParameteri_noimpl, + .GetIntegeri_v = mg_glGetIntegeri_v_noimpl, + .GetIntegerv = mg_glGetIntegerv_noimpl, + .DeleteProgramPipelines = mg_glDeleteProgramPipelines_noimpl, + .ClearBufferData = mg_glClearBufferData_noimpl, + .ProgramUniform2fv = mg_glProgramUniform2fv_noimpl, + .GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl, + .GetProgramiv = mg_glGetProgramiv_noimpl, + .DepthMask = mg_glDepthMask_noimpl, + .VertexAttribIPointer = mg_glVertexAttribIPointer_noimpl, + .GetActiveUniformName = mg_glGetActiveUniformName_noimpl, + .VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl, + .ProgramUniformMatrix2x3fv = mg_glProgramUniformMatrix2x3fv_noimpl, + .GetUniformLocation = mg_glGetUniformLocation_noimpl, + .SampleMaski = mg_glSampleMaski_noimpl, + .GetBufferSubData = mg_glGetBufferSubData_noimpl, + .Uniform4iv = mg_glUniform4iv_noimpl, + .VertexAttribPointer = mg_glVertexAttribPointer_noimpl, + .FramebufferTexture2D = mg_glFramebufferTexture2D_noimpl, + .GetnUniformuiv = mg_glGetnUniformuiv_noimpl, + .GetInternalformati64v = mg_glGetInternalformati64v_noimpl, + .CompileShader = mg_glCompileShader_noimpl, + .DrawBuffer = mg_glDrawBuffer_noimpl, + .Uniform3f = mg_glUniform3f_noimpl, + .DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl, + .ProgramUniform4dv = mg_glProgramUniform4dv_noimpl, + .GetProgramStageiv = mg_glGetProgramStageiv_noimpl, + .StencilFunc = mg_glStencilFunc_noimpl, + .GetProgramResourceIndex = mg_glGetProgramResourceIndex_noimpl, + .ClearStencil = mg_glClearStencil_noimpl, + .ScissorArrayv = mg_glScissorArrayv_noimpl, + .MemoryBarrier = mg_glMemoryBarrier_noimpl, + .SamplerParameterIuiv = mg_glSamplerParameterIuiv_noimpl, + .GetFloatv = mg_glGetFloatv_noimpl, + .BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl, + .EndQuery = mg_glEndQuery_noimpl, + .VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl, + .GetProgramPipelineInfoLog = mg_glGetProgramPipelineInfoLog_noimpl, + .VertexAttribDivisor = mg_glVertexAttribDivisor_noimpl, + .Uniform3i = mg_glUniform3i_noimpl, + .Uniform2ui = mg_glUniform2ui_noimpl, + .InvalidateSubFramebuffer = mg_glInvalidateSubFramebuffer_noimpl, + .GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl, +}; + +void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gl41"; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->FrontFace = loadProc("glFrontFace"); + api->Disablei = loadProc("glDisablei"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; + api->ColorMaski = loadProc("glColorMaski"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->Uniform4i = loadProc("glUniform4i"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->AttachShader = loadProc("glAttachShader"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->ClearColor = loadProc("glClearColor"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->DebugMessageInsert = mg_glDebugMessageInsert_noimpl; + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ObjectPtrLabel = mg_glObjectPtrLabel_noimpl; + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->Viewport = loadProc("glViewport"); + api->GenTextures = loadProc("glGenTextures"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->TexParameterf = loadProc("glTexParameterf"); + api->BindSampler = loadProc("glBindSampler"); + api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->IsEnabledi = loadProc("glIsEnabledi"); + api->Scissor = loadProc("glScissor"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->Disable = loadProc("glDisable"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DebugMessageCallback = mg_glDebugMessageCallback_noimpl; + api->BlendEquationi = loadProc("glBlendEquationi"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->BlendFunci = loadProc("glBlendFunci"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->IsProgram = loadProc("glIsProgram"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->GetObjectLabel = mg_glGetObjectLabel_noimpl; + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->GenSamplers = loadProc("glGenSamplers"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->GetProgramInterfaceiv = mg_glGetProgramInterfaceiv_noimpl; + api->GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl; + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetString = loadProc("glGetString"); + api->IsSync = loadProc("glIsSync"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->BeginQuery = loadProc("glBeginQuery"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->PointParameteri = loadProc("glPointParameteri"); + api->PolygonMode = loadProc("glPolygonMode"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->DebugMessageControl = mg_glDebugMessageControl_noimpl; + api->TexParameteriv = loadProc("glTexParameteriv"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->BindTextures = mg_glBindTextures_noimpl; + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->PushDebugGroup = mg_glPushDebugGroup_noimpl; + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->TexBufferRange = mg_glTexBufferRange_noimpl; + api->GetShaderiv = loadProc("glGetShaderiv"); + api->StencilMask = loadProc("glStencilMask"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->Uniform1f = loadProc("glUniform1f"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; + api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->TexImage2D = loadProc("glTexImage2D"); + api->LogicOp = loadProc("glLogicOp"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->Uniform1d = loadProc("glUniform1d"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->TexImage1D = loadProc("glTexImage1D"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->LineWidth = loadProc("glLineWidth"); + api->PointParameterf = loadProc("glPointParameterf"); + api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->VertexAttribBinding = mg_glVertexAttribBinding_noimpl; + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->BufferData = loadProc("glBufferData"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->GetStringi = loadProc("glGetStringi"); + api->BindImageTexture = mg_glBindImageTexture_noimpl; + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl; + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->CreateShader = loadProc("glCreateShader"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->PopDebugGroup = mg_glPopDebugGroup_noimpl; + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->Flush = loadProc("glFlush"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->Enablei = loadProc("glEnablei"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->VertexBindingDivisor = mg_glVertexBindingDivisor_noimpl; + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->Finish = loadProc("glFinish"); + api->BlendFunc = loadProc("glBlendFunc"); + api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->Uniform2d = loadProc("glUniform2d"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->GetFloati_v = loadProc("glGetFloati_v"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->GetFramebufferParameteriv = mg_glGetFramebufferParameteriv_noimpl; + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->Uniform2i = loadProc("glUniform2i"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->PointParameterfv = loadProc("glPointParameterfv"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ReadPixels = loadProc("glReadPixels"); + api->LinkProgram = loadProc("glLinkProgram"); + api->WaitSync = loadProc("glWaitSync"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Enable = loadProc("glEnable"); + api->GenBuffers = loadProc("glGenBuffers"); + api->TexStorage3D = mg_glTexStorage3D_noimpl; + api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->BlendEquation = loadProc("glBlendEquation"); + api->DepthRange = loadProc("glDepthRange"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->DepthFunc = loadProc("glDepthFunc"); + api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->VertexAttribFormat = mg_glVertexAttribFormat_noimpl; + api->MapBufferRange = loadProc("glMapBufferRange"); + api->DetachShader = loadProc("glDetachShader"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->Uniform4d = loadProc("glUniform4d"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GetProgramResourceLocation = mg_glGetProgramResourceLocation_noimpl; + api->Uniform4f = loadProc("glUniform4f"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->CullFace = loadProc("glCullFace"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DeleteShader = loadProc("glDeleteShader"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribIFormat = mg_glVertexAttribIFormat_noimpl; + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->IsQuery = loadProc("glIsQuery"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->UseProgram = loadProc("glUseProgram"); + api->Clear = loadProc("glClear"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->InvalidateFramebuffer = mg_glInvalidateFramebuffer_noimpl; + api->PixelStorei = loadProc("glPixelStorei"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->BindBuffer = loadProc("glBindBuffer"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->DeleteSync = loadProc("glDeleteSync"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->BlendColor = loadProc("glBlendColor"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsShader = loadProc("glIsShader"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->ColorMask = loadProc("glColorMask"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetTexImage = loadProc("glGetTexImage"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->IsSampler = loadProc("glIsSampler"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->TexStorage1D = mg_glTexStorage1D_noimpl; + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->TexImage3D = loadProc("glTexImage3D"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; + api->TexStorage2DMultisample = mg_glTexStorage2DMultisample_noimpl; + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->ShaderSource = loadProc("glShaderSource"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->Uniform3d = loadProc("glUniform3d"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->TextureView = mg_glTextureView_noimpl; + api->IsEnabled = loadProc("glIsEnabled"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->Hint = loadProc("glHint"); + api->PixelStoref = loadProc("glPixelStoref"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ObjectLabel = mg_glObjectLabel_noimpl; + api->GetPointerv = mg_glGetPointerv_noimpl; + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->ClampColor = loadProc("glClampColor"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->Uniform3iv = loadProc("glUniform3iv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->BufferSubData = loadProc("glBufferSubData"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->CreateProgram = loadProc("glCreateProgram"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->IsTexture = loadProc("glIsTexture"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->DrawElements = loadProc("glDrawElements"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->ClearDepth = loadProc("glClearDepth"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->PointSize = loadProc("glPointSize"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->FenceSync = loadProc("glFenceSync"); + api->MapBuffer = loadProc("glMapBuffer"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->TexParameteri = loadProc("glTexParameteri"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->GetError = loadProc("glGetError"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; + api->BindBufferBase = loadProc("glBindBufferBase"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->TexStorage2D = mg_glTexStorage2D_noimpl; + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->CopyImageSubData = mg_glCopyImageSubData_noimpl; + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->DispatchCompute = mg_glDispatchCompute_noimpl; + api->DrawArrays = loadProc("glDrawArrays"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->GetProgramResourceName = mg_glGetProgramResourceName_noimpl; + api->GetInternalformativ = mg_glGetInternalformativ_noimpl; + api->Uniform4fv = loadProc("glUniform4fv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->GetProgramResourceiv = mg_glGetProgramResourceiv_noimpl; + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->DispatchComputeIndirect = mg_glDispatchComputeIndirect_noimpl; + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->BindVertexBuffer = mg_glBindVertexBuffer_noimpl; + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->FramebufferParameteri = mg_glFramebufferParameteri_noimpl; + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->ClearBufferData = mg_glClearBufferData_noimpl; + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->DepthMask = loadProc("glDepthMask"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; + api->CompileShader = loadProc("glCompileShader"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->Uniform3f = loadProc("glUniform3f"); + api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->StencilFunc = loadProc("glStencilFunc"); + api->GetProgramResourceIndex = mg_glGetProgramResourceIndex_noimpl; + api->ClearStencil = loadProc("glClearStencil"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->MemoryBarrier = mg_glMemoryBarrier_noimpl; + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFloatv = loadProc("glGetFloatv"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->EndQuery = loadProc("glEndQuery"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->InvalidateSubFramebuffer = mg_glInvalidateSubFramebuffer_noimpl; + api->GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl; +} + +void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gl43"; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->FrontFace = loadProc("glFrontFace"); + api->Disablei = loadProc("glDisablei"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); + api->ColorMaski = loadProc("glColorMaski"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->Uniform4i = loadProc("glUniform4i"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->AttachShader = loadProc("glAttachShader"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->ClearColor = loadProc("glClearColor"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->Viewport = loadProc("glViewport"); + api->GenTextures = loadProc("glGenTextures"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->TexParameterf = loadProc("glTexParameterf"); + api->BindSampler = loadProc("glBindSampler"); + api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->IsEnabledi = loadProc("glIsEnabledi"); + api->Scissor = loadProc("glScissor"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->Disable = loadProc("glDisable"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->BlendFunci = loadProc("glBlendFunci"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->IsProgram = loadProc("glIsProgram"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->GenSamplers = loadProc("glGenSamplers"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetString = loadProc("glGetString"); + api->IsSync = loadProc("glIsSync"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->BeginQuery = loadProc("glBeginQuery"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->PointParameteri = loadProc("glPointParameteri"); + api->PolygonMode = loadProc("glPolygonMode"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->BindTextures = mg_glBindTextures_noimpl; + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->StencilMask = loadProc("glStencilMask"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->Uniform1f = loadProc("glUniform1f"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->InvalidateTexImage = loadProc("glInvalidateTexImage"); + api->ClearBufferSubData = loadProc("glClearBufferSubData"); + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->TexImage2D = loadProc("glTexImage2D"); + api->LogicOp = loadProc("glLogicOp"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->Uniform1d = loadProc("glUniform1d"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->TexImage1D = loadProc("glTexImage1D"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->LineWidth = loadProc("glLineWidth"); + api->PointParameterf = loadProc("glPointParameterf"); + api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->BufferData = loadProc("glBufferData"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->GetStringi = loadProc("glGetStringi"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->CreateShader = loadProc("glCreateShader"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->Flush = loadProc("glFlush"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->Enablei = loadProc("glEnablei"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->Finish = loadProc("glFinish"); + api->BlendFunc = loadProc("glBlendFunc"); + api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->Uniform2d = loadProc("glUniform2d"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->GetFloati_v = loadProc("glGetFloati_v"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->Uniform2i = loadProc("glUniform2i"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->PointParameterfv = loadProc("glPointParameterfv"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ReadPixels = loadProc("glReadPixels"); + api->LinkProgram = loadProc("glLinkProgram"); + api->WaitSync = loadProc("glWaitSync"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Enable = loadProc("glEnable"); + api->GenBuffers = loadProc("glGenBuffers"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->BlendEquation = loadProc("glBlendEquation"); + api->DepthRange = loadProc("glDepthRange"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->DepthFunc = loadProc("glDepthFunc"); + api->InvalidateBufferData = loadProc("glInvalidateBufferData"); + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->DetachShader = loadProc("glDetachShader"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->Uniform4d = loadProc("glUniform4d"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->Uniform4f = loadProc("glUniform4f"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->CullFace = loadProc("glCullFace"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DeleteShader = loadProc("glDeleteShader"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->IsQuery = loadProc("glIsQuery"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->UseProgram = loadProc("glUseProgram"); + api->Clear = loadProc("glClear"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->BindBuffer = loadProc("glBindBuffer"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->DeleteSync = loadProc("glDeleteSync"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->BlendColor = loadProc("glBlendColor"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsShader = loadProc("glIsShader"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->ColorMask = loadProc("glColorMask"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetTexImage = loadProc("glGetTexImage"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->IsSampler = loadProc("glIsSampler"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->TexStorage1D = loadProc("glTexStorage1D"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->TexImage3D = loadProc("glTexImage3D"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->ShaderSource = loadProc("glShaderSource"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->Uniform3d = loadProc("glUniform3d"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->TextureView = loadProc("glTextureView"); + api->IsEnabled = loadProc("glIsEnabled"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->Hint = loadProc("glHint"); + api->PixelStoref = loadProc("glPixelStoref"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->GetPointerv = loadProc("glGetPointerv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->ClampColor = loadProc("glClampColor"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->Uniform3iv = loadProc("glUniform3iv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->BufferSubData = loadProc("glBufferSubData"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->CreateProgram = loadProc("glCreateProgram"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->IsTexture = loadProc("glIsTexture"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->DrawElements = loadProc("glDrawElements"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->ClearDepth = loadProc("glClearDepth"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->PointSize = loadProc("glPointSize"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->FenceSync = loadProc("glFenceSync"); + api->MapBuffer = loadProc("glMapBuffer"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->TexParameteri = loadProc("glTexParameteri"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->GetError = loadProc("glGetError"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->ClearBufferData = loadProc("glClearBufferData"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->DepthMask = loadProc("glDepthMask"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->GetInternalformati64v = loadProc("glGetInternalformati64v"); + api->CompileShader = loadProc("glCompileShader"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->Uniform3f = loadProc("glUniform3f"); + api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->StencilFunc = loadProc("glStencilFunc"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->ClearStencil = loadProc("glClearStencil"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFloatv = loadProc("glGetFloatv"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->EndQuery = loadProc("glEndQuery"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); +} + +void mg_gl_load_gl44(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gl44"; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->FrontFace = loadProc("glFrontFace"); + api->Disablei = loadProc("glDisablei"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); + api->ColorMaski = loadProc("glColorMaski"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->Uniform4i = loadProc("glUniform4i"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->AttachShader = loadProc("glAttachShader"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->ClearColor = loadProc("glClearColor"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->Viewport = loadProc("glViewport"); + api->GenTextures = loadProc("glGenTextures"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->TexParameterf = loadProc("glTexParameterf"); + api->BindSampler = loadProc("glBindSampler"); + api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); + api->ClearTexSubImage = loadProc("glClearTexSubImage"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->Scissor = loadProc("glScissor"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->Disable = loadProc("glDisable"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->BlendFunci = loadProc("glBlendFunci"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->IsProgram = loadProc("glIsProgram"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->GenSamplers = loadProc("glGenSamplers"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetString = loadProc("glGetString"); + api->IsSync = loadProc("glIsSync"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->BeginQuery = loadProc("glBeginQuery"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->PointParameteri = loadProc("glPointParameteri"); + api->PolygonMode = loadProc("glPolygonMode"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BufferStorage = loadProc("glBufferStorage"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->BindTextures = loadProc("glBindTextures"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->StencilMask = loadProc("glStencilMask"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->Uniform1f = loadProc("glUniform1f"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->InvalidateTexImage = loadProc("glInvalidateTexImage"); + api->ClearBufferSubData = loadProc("glClearBufferSubData"); + api->ClearTexImage = loadProc("glClearTexImage"); + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->TexImage2D = loadProc("glTexImage2D"); + api->LogicOp = loadProc("glLogicOp"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->Uniform1d = loadProc("glUniform1d"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->TexImage1D = loadProc("glTexImage1D"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->LineWidth = loadProc("glLineWidth"); + api->PointParameterf = loadProc("glPointParameterf"); + api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->BufferData = loadProc("glBufferData"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->GetStringi = loadProc("glGetStringi"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->CreateShader = loadProc("glCreateShader"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->Flush = loadProc("glFlush"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->BindSamplers = loadProc("glBindSamplers"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->Enablei = loadProc("glEnablei"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->Finish = loadProc("glFinish"); + api->BlendFunc = loadProc("glBlendFunc"); + api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->Uniform2d = loadProc("glUniform2d"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->GetFloati_v = loadProc("glGetFloati_v"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->Uniform2i = loadProc("glUniform2i"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->PointParameterfv = loadProc("glPointParameterfv"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ReadPixels = loadProc("glReadPixels"); + api->LinkProgram = loadProc("glLinkProgram"); + api->WaitSync = loadProc("glWaitSync"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Enable = loadProc("glEnable"); + api->GenBuffers = loadProc("glGenBuffers"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->BlendEquation = loadProc("glBlendEquation"); + api->DepthRange = loadProc("glDepthRange"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->DepthFunc = loadProc("glDepthFunc"); + api->InvalidateBufferData = loadProc("glInvalidateBufferData"); + api->BindImageTextures = loadProc("glBindImageTextures"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->DetachShader = loadProc("glDetachShader"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->Uniform4d = loadProc("glUniform4d"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->Uniform4f = loadProc("glUniform4f"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->CullFace = loadProc("glCullFace"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DeleteShader = loadProc("glDeleteShader"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->IsQuery = loadProc("glIsQuery"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->UseProgram = loadProc("glUseProgram"); + api->Clear = loadProc("glClear"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->BindBuffer = loadProc("glBindBuffer"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->DeleteSync = loadProc("glDeleteSync"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->BlendColor = loadProc("glBlendColor"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsShader = loadProc("glIsShader"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); + api->BindBuffersRange = loadProc("glBindBuffersRange"); + api->ColorMask = loadProc("glColorMask"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetTexImage = loadProc("glGetTexImage"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->IsSampler = loadProc("glIsSampler"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->TexStorage1D = loadProc("glTexStorage1D"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->TexImage3D = loadProc("glTexImage3D"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindBuffersBase = loadProc("glBindBuffersBase"); + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->ShaderSource = loadProc("glShaderSource"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->Uniform3d = loadProc("glUniform3d"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->TextureView = loadProc("glTextureView"); + api->IsEnabled = loadProc("glIsEnabled"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->Hint = loadProc("glHint"); + api->PixelStoref = loadProc("glPixelStoref"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->GetPointerv = loadProc("glGetPointerv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->ClampColor = loadProc("glClampColor"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->Uniform3iv = loadProc("glUniform3iv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->BufferSubData = loadProc("glBufferSubData"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->CreateProgram = loadProc("glCreateProgram"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->IsTexture = loadProc("glIsTexture"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->DrawElements = loadProc("glDrawElements"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->ClearDepth = loadProc("glClearDepth"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->PointSize = loadProc("glPointSize"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->FenceSync = loadProc("glFenceSync"); + api->MapBuffer = loadProc("glMapBuffer"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->TexParameteri = loadProc("glTexParameteri"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->GetError = loadProc("glGetError"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->BindVertexBuffers = loadProc("glBindVertexBuffers"); + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->ClearBufferData = loadProc("glClearBufferData"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->DepthMask = loadProc("glDepthMask"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->GetInternalformati64v = loadProc("glGetInternalformati64v"); + api->CompileShader = loadProc("glCompileShader"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->Uniform3f = loadProc("glUniform3f"); + api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->StencilFunc = loadProc("glStencilFunc"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->ClearStencil = loadProc("glClearStencil"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFloatv = loadProc("glGetFloatv"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->EndQuery = loadProc("glEndQuery"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); +} + +void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gles31"; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->FrontFace = loadProc("glFrontFace"); + api->Disablei = mg_glDisablei_noimpl; + api->BeginConditionalRender = mg_glBeginConditionalRender_noimpl; + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl; + api->VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl; + api->VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl; + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; + api->ColorMaski = mg_glColorMaski_noimpl; + api->BindVertexArray = loadProc("glBindVertexArray"); + api->ProgramUniform3d = mg_glProgramUniform3d_noimpl; + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->Uniform4i = loadProc("glUniform4i"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->AttachShader = loadProc("glAttachShader"); + api->VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl; + api->ClearColor = loadProc("glClearColor"); + api->TexParameterIiv = mg_glTexParameterIiv_noimpl; + api->ProgramUniform4d = mg_glProgramUniform4d_noimpl; + api->DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl; + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->DebugMessageInsert = mg_glDebugMessageInsert_noimpl; + api->ViewportIndexedf = mg_glViewportIndexedf_noimpl; + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ObjectPtrLabel = mg_glObjectPtrLabel_noimpl; + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl; + api->FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl; + api->Viewport = loadProc("glViewport"); + api->GenTextures = loadProc("glGenTextures"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl; + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->ScissorIndexed = mg_glScissorIndexed_noimpl; + api->TexParameterf = loadProc("glTexParameterf"); + api->BindSampler = loadProc("glBindSampler"); + api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->IsEnabledi = mg_glIsEnabledi_noimpl; + api->Scissor = loadProc("glScissor"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->Disable = loadProc("glDisable"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawRangeElementsBaseVertex = mg_glDrawRangeElementsBaseVertex_noimpl; + api->DebugMessageCallback = mg_glDebugMessageCallback_noimpl; + api->BlendEquationi = mg_glBlendEquationi_noimpl; + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->BlendFunci = mg_glBlendFunci_noimpl; + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl; + api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->IsProgram = loadProc("glIsProgram"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->EndConditionalRender = mg_glEndConditionalRender_noimpl; + api->GetObjectLabel = mg_glGetObjectLabel_noimpl; + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->VertexAttribI3i = mg_glVertexAttribI3i_noimpl; + api->GenSamplers = loadProc("glGenSamplers"); + api->VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl; + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl; + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetString = loadProc("glGetString"); + api->IsSync = loadProc("glIsSync"); + api->CopyTexImage1D = mg_glCopyTexImage1D_noimpl; + api->SamplerParameterIiv = mg_glSamplerParameterIiv_noimpl; + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->BeginQuery = loadProc("glBeginQuery"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->PointParameteri = mg_glPointParameteri_noimpl; + api->PolygonMode = mg_glPolygonMode_noimpl; + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl; + api->VertexAttribL3d = mg_glVertexAttribL3d_noimpl; + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->DebugMessageControl = mg_glDebugMessageControl_noimpl; + api->TexParameteriv = loadProc("glTexParameteriv"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl; + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->BindTextures = mg_glBindTextures_noimpl; + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl; + api->PushDebugGroup = mg_glPushDebugGroup_noimpl; + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->VertexAttribI2i = mg_glVertexAttribI2i_noimpl; + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl; + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->TexBufferRange = mg_glTexBufferRange_noimpl; + api->GetShaderiv = loadProc("glGetShaderiv"); + api->StencilMask = loadProc("glStencilMask"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->Uniform1f = loadProc("glUniform1f"); + api->TexSubImage1D = mg_glTexSubImage1D_noimpl; + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; + api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->VertexAttrib4d = mg_glVertexAttrib4d_noimpl; + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribL4d = mg_glVertexAttribL4d_noimpl; + api->TexImage2D = loadProc("glTexImage2D"); + api->LogicOp = mg_glLogicOp_noimpl; + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->GetFragDataIndex = mg_glGetFragDataIndex_noimpl; + api->UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl; + api->GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl; + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->Uniform1d = mg_glUniform1d_noimpl; + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->MinSampleShading = mg_glMinSampleShading_noimpl; + api->CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl; + api->TexImage1D = mg_glTexImage1D_noimpl; + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->LineWidth = loadProc("glLineWidth"); + api->PointParameterf = mg_glPointParameterf_noimpl; + api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; + api->GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl; + api->Uniform4ui = loadProc("glUniform4ui"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl; + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl; + api->ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl; + api->Uniform2iv = loadProc("glUniform2iv"); + api->BufferData = loadProc("glBufferData"); + api->GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl; + api->GetStringi = loadProc("glGetStringi"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl; + api->VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl; + api->TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl; + api->DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl; + api->GetUniformiv = loadProc("glGetUniformiv"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->CreateShader = loadProc("glCreateShader"); + api->VertexAttrib4s = mg_glVertexAttrib4s_noimpl; + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl; + api->TexParameterIuiv = mg_glTexParameterIuiv_noimpl; + api->QueryCounter = mg_glQueryCounter_noimpl; + api->VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl; + api->ProgramUniform1d = mg_glProgramUniform1d_noimpl; + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->PopDebugGroup = mg_glPopDebugGroup_noimpl; + api->MultiDrawArrays = mg_glMultiDrawArrays_noimpl; + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->Flush = loadProc("glFlush"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl; + api->Uniform1fv = loadProc("glUniform1fv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl; + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->PatchParameteri = mg_glPatchParameteri_noimpl; + api->VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl; + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->Enablei = mg_glEnablei_noimpl; + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3s = mg_glVertexAttrib3s_noimpl; + api->GetTexParameterIiv = mg_glGetTexParameterIiv_noimpl; + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl; + api->Finish = loadProc("glFinish"); + api->BlendFunc = loadProc("glBlendFunc"); + api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl; + api->Uniform2d = mg_glUniform2d_noimpl; + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->GetFloati_v = mg_glGetFloati_v_noimpl; + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl; + api->DeleteProgram = loadProc("glDeleteProgram"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->Uniform2i = loadProc("glUniform2i"); + api->ProgramUniform3dv = mg_glProgramUniform3dv_noimpl; + api->ScissorIndexedv = mg_glScissorIndexedv_noimpl; + api->ProgramUniform2d = mg_glProgramUniform2d_noimpl; + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->BlendEquationSeparatei = mg_glBlendEquationSeparatei_noimpl; + api->GetUniformdv = mg_glGetUniformdv_noimpl; + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl; + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl; + api->BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl; + api->PointParameterfv = mg_glPointParameterfv_noimpl; + api->SampleCoverage = loadProc("glSampleCoverage"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ReadPixels = loadProc("glReadPixels"); + api->LinkProgram = loadProc("glLinkProgram"); + api->WaitSync = loadProc("glWaitSync"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl; + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl; + api->GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl; + api->UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl; + api->Uniform1iv = loadProc("glUniform1iv"); + api->Enable = loadProc("glEnable"); + api->GenBuffers = loadProc("glGenBuffers"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->BlendEquation = loadProc("glBlendEquation"); + api->DepthRange = mg_glDepthRange_noimpl; + api->Uniform2dv = mg_glUniform2dv_noimpl; + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->Uniform1dv = mg_glUniform1dv_noimpl; + api->EndQueryIndexed = mg_glEndQueryIndexed_noimpl; + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->BlendFuncSeparatei = mg_glBlendFuncSeparatei_noimpl; + api->DepthFunc = loadProc("glDepthFunc"); + api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl; + api->VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl; + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->DetachShader = loadProc("glDetachShader"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl; + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl; + api->PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl; + api->Uniform4d = mg_glUniform4d_noimpl; + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->Uniform4f = loadProc("glUniform4f"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl; + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl; + api->VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl; + api->CullFace = loadProc("glCullFace"); + api->MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl; + api->VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl; + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DeleteShader = loadProc("glDeleteShader"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl; + api->VertexAttrib2d = mg_glVertexAttrib2d_noimpl; + api->VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl; + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl; + api->GetDoublei_v = mg_glGetDoublei_v_noimpl; + api->TexParameterfv = loadProc("glTexParameterfv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl; + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl; + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl; + api->IsQuery = loadProc("glIsQuery"); + api->VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl; + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->UseProgram = loadProc("glUseProgram"); + api->Clear = loadProc("glClear"); + api->VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl; + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl; + api->BindBuffer = loadProc("glBindBuffer"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->DeleteSync = loadProc("glDeleteSync"); + api->VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl; + api->VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl; + api->Uniform3fv = loadProc("glUniform3fv"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->BlendColor = loadProc("glBlendColor"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsShader = loadProc("glIsShader"); + api->DrawElementsInstancedBaseVertex = mg_glDrawElementsInstancedBaseVertex_noimpl; + api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->ColorMask = loadProc("glColorMask"); + api->UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl; + api->GetDoublev = mg_glGetDoublev_noimpl; + api->UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl; + api->VertexAttribL2d = mg_glVertexAttribL2d_noimpl; + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->PointParameteriv = mg_glPointParameteriv_noimpl; + api->UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl; + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetTexImage = mg_glGetTexImage_noimpl; + api->ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl; + api->VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl; + api->IsSampler = loadProc("glIsSampler"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->TexStorage1D = mg_glTexStorage1D_noimpl; + api->ViewportArrayv = mg_glViewportArrayv_noimpl; + api->TexImage3D = loadProc("glTexImage3D"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl; + api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->VertexAttrib2s = mg_glVertexAttrib2s_noimpl; + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->VertexAttribI1i = mg_glVertexAttribI1i_noimpl; + api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl; + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->ShaderSource = loadProc("glShaderSource"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->Uniform3d = mg_glUniform3d_noimpl; + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->GetSamplerParameterIiv = mg_glGetSamplerParameterIiv_noimpl; + api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->BindFragDataLocation = mg_glBindFragDataLocation_noimpl; + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->TextureView = mg_glTextureView_noimpl; + api->IsEnabled = loadProc("glIsEnabled"); + api->PatchParameterfv = mg_glPatchParameterfv_noimpl; + api->Hint = loadProc("glHint"); + api->PixelStoref = mg_glPixelStoref_noimpl; + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ObjectLabel = mg_glObjectLabel_noimpl; + api->GetPointerv = mg_glGetPointerv_noimpl; + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->ProgramUniform2dv = mg_glProgramUniform2dv_noimpl; + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->ClampColor = mg_glClampColor_noimpl; + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->Uniform3iv = loadProc("glUniform3iv"); + api->VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl; + api->BufferSubData = loadProc("glBufferSubData"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl; + api->TexBuffer = mg_glTexBuffer_noimpl; + api->CreateProgram = loadProc("glCreateProgram"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->IsTexture = loadProc("glIsTexture"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->DrawElements = loadProc("glDrawElements"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->Uniform3dv = mg_glUniform3dv_noimpl; + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->ClearDepth = mg_glClearDepth_noimpl; + api->DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl; + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl; + api->GetTexParameterIuiv = mg_glGetTexParameterIuiv_noimpl; + api->PointSize = mg_glPointSize_noimpl; + api->GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl; + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->FenceSync = loadProc("glFenceSync"); + api->MapBuffer = mg_glMapBuffer_noimpl; + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->TexParameteri = loadProc("glTexParameteri"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->VertexAttribL1d = mg_glVertexAttribL1d_noimpl; + api->VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl; + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->VertexAttrib1d = mg_glVertexAttrib1d_noimpl; + api->GetError = loadProc("glGetError"); + api->VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl; + api->UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl; + api->GetShaderSource = loadProc("glGetShaderSource"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->FramebufferTexture = mg_glFramebufferTexture_noimpl; + api->ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl; + api->Uniform4dv = mg_glUniform4dv_noimpl; + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl; + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; + api->BindBufferBase = loadProc("glBindBufferBase"); + api->UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl; + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl; + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->CopyImageSubData = mg_glCopyImageSubData_noimpl; + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->ProvokingVertex = mg_glProvokingVertex_noimpl; + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ViewportIndexedfv = mg_glViewportIndexedfv_noimpl; + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl; + api->Uniform3ui = loadProc("glUniform3ui"); + api->MultiDrawElements = mg_glMultiDrawElements_noimpl; + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl; + api->VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl; + api->VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl; + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl; + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->DrawElementsBaseVertex = mg_glDrawElementsBaseVertex_noimpl; + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl; + api->GetSamplerParameterIuiv = mg_glGetSamplerParameterIuiv_noimpl; + api->VertexAttrib3d = mg_glVertexAttrib3d_noimpl; + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl; + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl; + api->VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl; + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->ProgramUniform1dv = mg_glProgramUniform1dv_noimpl; + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib1s = mg_glVertexAttrib1s_noimpl; + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->ClearBufferData = mg_glClearBufferData_noimpl; + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl; + api->GetProgramiv = loadProc("glGetProgramiv"); + api->DepthMask = loadProc("glDepthMask"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetActiveUniformName = mg_glGetActiveUniformName_noimpl; + api->VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl; + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetBufferSubData = mg_glGetBufferSubData_noimpl; + api->Uniform4iv = loadProc("glUniform4iv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; + api->CompileShader = loadProc("glCompileShader"); + api->DrawBuffer = mg_glDrawBuffer_noimpl; + api->Uniform3f = loadProc("glUniform3f"); + api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; + api->ProgramUniform4dv = mg_glProgramUniform4dv_noimpl; + api->GetProgramStageiv = mg_glGetProgramStageiv_noimpl; + api->StencilFunc = loadProc("glStencilFunc"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->ClearStencil = loadProc("glClearStencil"); + api->ScissorArrayv = mg_glScissorArrayv_noimpl; + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->SamplerParameterIuiv = mg_glSamplerParameterIuiv_noimpl; + api->GetFloatv = loadProc("glGetFloatv"); + api->BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl; + api->EndQuery = loadProc("glEndQuery"); + api->VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl; + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl; +} + +void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gles32"; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->FrontFace = loadProc("glFrontFace"); + api->Disablei = loadProc("glDisablei"); + api->BeginConditionalRender = mg_glBeginConditionalRender_noimpl; + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl; + api->VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl; + api->VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl; + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; + api->ColorMaski = loadProc("glColorMaski"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->ProgramUniform3d = mg_glProgramUniform3d_noimpl; + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->Uniform4i = loadProc("glUniform4i"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->AttachShader = loadProc("glAttachShader"); + api->VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl; + api->ClearColor = loadProc("glClearColor"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->ProgramUniform4d = mg_glProgramUniform4d_noimpl; + api->DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl; + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->ViewportIndexedf = mg_glViewportIndexedf_noimpl; + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl; + api->FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl; + api->Viewport = loadProc("glViewport"); + api->GenTextures = loadProc("glGenTextures"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl; + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->ScissorIndexed = mg_glScissorIndexed_noimpl; + api->TexParameterf = loadProc("glTexParameterf"); + api->BindSampler = loadProc("glBindSampler"); + api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->IsEnabledi = loadProc("glIsEnabledi"); + api->Scissor = loadProc("glScissor"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->Disable = loadProc("glDisable"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->BlendFunci = loadProc("glBlendFunci"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl; + api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->IsProgram = loadProc("glIsProgram"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->EndConditionalRender = mg_glEndConditionalRender_noimpl; + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->VertexAttribI3i = mg_glVertexAttribI3i_noimpl; + api->GenSamplers = loadProc("glGenSamplers"); + api->VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl; + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetString = loadProc("glGetString"); + api->IsSync = loadProc("glIsSync"); + api->CopyTexImage1D = mg_glCopyTexImage1D_noimpl; + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->BeginQuery = loadProc("glBeginQuery"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->PointParameteri = mg_glPointParameteri_noimpl; + api->PolygonMode = mg_glPolygonMode_noimpl; + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl; + api->VertexAttribL3d = mg_glVertexAttribL3d_noimpl; + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl; + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->BindTextures = mg_glBindTextures_noimpl; + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl; + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->VertexAttribI2i = mg_glVertexAttribI2i_noimpl; + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl; + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->StencilMask = loadProc("glStencilMask"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->Uniform1f = loadProc("glUniform1f"); + api->TexSubImage1D = mg_glTexSubImage1D_noimpl; + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; + api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->VertexAttrib4d = mg_glVertexAttrib4d_noimpl; + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribL4d = mg_glVertexAttribL4d_noimpl; + api->TexImage2D = loadProc("glTexImage2D"); + api->LogicOp = mg_glLogicOp_noimpl; + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->GetFragDataIndex = mg_glGetFragDataIndex_noimpl; + api->UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl; + api->GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl; + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->Uniform1d = mg_glUniform1d_noimpl; + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl; + api->TexImage1D = mg_glTexImage1D_noimpl; + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->LineWidth = loadProc("glLineWidth"); + api->PointParameterf = mg_glPointParameterf_noimpl; + api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; + api->GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl; + api->Uniform4ui = loadProc("glUniform4ui"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl; + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl; + api->ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl; + api->Uniform2iv = loadProc("glUniform2iv"); + api->BufferData = loadProc("glBufferData"); + api->GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl; + api->GetStringi = loadProc("glGetStringi"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl; + api->VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl; + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl; + api->GetUniformiv = loadProc("glGetUniformiv"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->CreateShader = loadProc("glCreateShader"); + api->VertexAttrib4s = mg_glVertexAttrib4s_noimpl; + api->PrimitiveBoundingBox = loadProc("glPrimitiveBoundingBox"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl; + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->QueryCounter = mg_glQueryCounter_noimpl; + api->VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl; + api->ProgramUniform1d = mg_glProgramUniform1d_noimpl; + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->MultiDrawArrays = mg_glMultiDrawArrays_noimpl; + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->Flush = loadProc("glFlush"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl; + api->Uniform1fv = loadProc("glUniform1fv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->ReadnPixels = loadProc("glReadnPixels"); + api->VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl; + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl; + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->Enablei = loadProc("glEnablei"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3s = mg_glVertexAttrib3s_noimpl; + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl; + api->Finish = loadProc("glFinish"); + api->BlendFunc = loadProc("glBlendFunc"); + api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl; + api->Uniform2d = mg_glUniform2d_noimpl; + api->GetnUniformfv = loadProc("glGetnUniformfv"); + api->GetFloati_v = mg_glGetFloati_v_noimpl; + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl; + api->DeleteProgram = loadProc("glDeleteProgram"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->Uniform2i = loadProc("glUniform2i"); + api->ProgramUniform3dv = mg_glProgramUniform3dv_noimpl; + api->ScissorIndexedv = mg_glScissorIndexedv_noimpl; + api->ProgramUniform2d = mg_glProgramUniform2d_noimpl; + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->GetUniformdv = mg_glGetUniformdv_noimpl; + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl; + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl; + api->BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl; + api->PointParameterfv = mg_glPointParameterfv_noimpl; + api->SampleCoverage = loadProc("glSampleCoverage"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ReadPixels = loadProc("glReadPixels"); + api->LinkProgram = loadProc("glLinkProgram"); + api->WaitSync = loadProc("glWaitSync"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl; + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->BlendBarrier = loadProc("glBlendBarrier"); + api->VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl; + api->GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl; + api->UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl; + api->Uniform1iv = loadProc("glUniform1iv"); + api->Enable = loadProc("glEnable"); + api->GenBuffers = loadProc("glGenBuffers"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->BlendEquation = loadProc("glBlendEquation"); + api->DepthRange = mg_glDepthRange_noimpl; + api->Uniform2dv = mg_glUniform2dv_noimpl; + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->Uniform1dv = mg_glUniform1dv_noimpl; + api->EndQueryIndexed = mg_glEndQueryIndexed_noimpl; + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->DepthFunc = loadProc("glDepthFunc"); + api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl; + api->VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl; + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->DetachShader = loadProc("glDetachShader"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl; + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl; + api->PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl; + api->Uniform4d = mg_glUniform4d_noimpl; + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->Uniform4f = loadProc("glUniform4f"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl; + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl; + api->VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl; + api->CullFace = loadProc("glCullFace"); + api->MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl; + api->VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl; + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DeleteShader = loadProc("glDeleteShader"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl; + api->VertexAttrib2d = mg_glVertexAttrib2d_noimpl; + api->VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl; + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl; + api->GetDoublei_v = mg_glGetDoublei_v_noimpl; + api->TexParameterfv = loadProc("glTexParameterfv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl; + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl; + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl; + api->IsQuery = loadProc("glIsQuery"); + api->VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl; + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->UseProgram = loadProc("glUseProgram"); + api->Clear = loadProc("glClear"); + api->VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl; + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl; + api->BindBuffer = loadProc("glBindBuffer"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->DeleteSync = loadProc("glDeleteSync"); + api->VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl; + api->VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl; + api->Uniform3fv = loadProc("glUniform3fv"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->BlendColor = loadProc("glBlendColor"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsShader = loadProc("glIsShader"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->ColorMask = loadProc("glColorMask"); + api->UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl; + api->GetDoublev = mg_glGetDoublev_noimpl; + api->UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl; + api->VertexAttribL2d = mg_glVertexAttribL2d_noimpl; + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->PointParameteriv = mg_glPointParameteriv_noimpl; + api->UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl; + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetTexImage = mg_glGetTexImage_noimpl; + api->ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl; + api->VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl; + api->IsSampler = loadProc("glIsSampler"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->TexStorage1D = mg_glTexStorage1D_noimpl; + api->ViewportArrayv = mg_glViewportArrayv_noimpl; + api->TexImage3D = loadProc("glTexImage3D"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl; + api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->VertexAttrib2s = mg_glVertexAttrib2s_noimpl; + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->VertexAttribI1i = mg_glVertexAttribI1i_noimpl; + api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl; + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->ShaderSource = loadProc("glShaderSource"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->Uniform3d = mg_glUniform3d_noimpl; + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->BindFragDataLocation = mg_glBindFragDataLocation_noimpl; + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->TextureView = mg_glTextureView_noimpl; + api->IsEnabled = loadProc("glIsEnabled"); + api->PatchParameterfv = mg_glPatchParameterfv_noimpl; + api->Hint = loadProc("glHint"); + api->PixelStoref = mg_glPixelStoref_noimpl; + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->GetPointerv = loadProc("glGetPointerv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->ProgramUniform2dv = mg_glProgramUniform2dv_noimpl; + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->ClampColor = mg_glClampColor_noimpl; + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetnUniformiv = loadProc("glGetnUniformiv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl; + api->BufferSubData = loadProc("glBufferSubData"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl; + api->TexBuffer = loadProc("glTexBuffer"); + api->CreateProgram = loadProc("glCreateProgram"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->IsTexture = loadProc("glIsTexture"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->DrawElements = loadProc("glDrawElements"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->Uniform3dv = mg_glUniform3dv_noimpl; + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->ClearDepth = mg_glClearDepth_noimpl; + api->DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl; + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl; + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->PointSize = mg_glPointSize_noimpl; + api->GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl; + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->FenceSync = loadProc("glFenceSync"); + api->MapBuffer = mg_glMapBuffer_noimpl; + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->TexParameteri = loadProc("glTexParameteri"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->VertexAttribL1d = mg_glVertexAttribL1d_noimpl; + api->VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl; + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->VertexAttrib1d = mg_glVertexAttrib1d_noimpl; + api->GetError = loadProc("glGetError"); + api->VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl; + api->UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl; + api->GetShaderSource = loadProc("glGetShaderSource"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl; + api->Uniform4dv = mg_glUniform4dv_noimpl; + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl; + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; + api->BindBufferBase = loadProc("glBindBufferBase"); + api->UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl; + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl; + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->ProvokingVertex = mg_glProvokingVertex_noimpl; + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ViewportIndexedfv = mg_glViewportIndexedfv_noimpl; + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl; + api->Uniform3ui = loadProc("glUniform3ui"); + api->MultiDrawElements = mg_glMultiDrawElements_noimpl; + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl; + api->VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl; + api->VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl; + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetGraphicsResetStatus = loadProc("glGetGraphicsResetStatus"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl; + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl; + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttrib3d = mg_glVertexAttrib3d_noimpl; + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl; + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl; + api->VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl; + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->ProgramUniform1dv = mg_glProgramUniform1dv_noimpl; + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib1s = mg_glVertexAttrib1s_noimpl; + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->ClearBufferData = mg_glClearBufferData_noimpl; + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl; + api->GetProgramiv = loadProc("glGetProgramiv"); + api->DepthMask = loadProc("glDepthMask"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetActiveUniformName = mg_glGetActiveUniformName_noimpl; + api->VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl; + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetBufferSubData = mg_glGetBufferSubData_noimpl; + api->Uniform4iv = loadProc("glUniform4iv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetnUniformuiv = loadProc("glGetnUniformuiv"); + api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; + api->CompileShader = loadProc("glCompileShader"); + api->DrawBuffer = mg_glDrawBuffer_noimpl; + api->Uniform3f = loadProc("glUniform3f"); + api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; + api->ProgramUniform4dv = mg_glProgramUniform4dv_noimpl; + api->GetProgramStageiv = mg_glGetProgramStageiv_noimpl; + api->StencilFunc = loadProc("glStencilFunc"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->ClearStencil = loadProc("glClearStencil"); + api->ScissorArrayv = mg_glScissorArrayv_noimpl; + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFloatv = loadProc("glGetFloatv"); + api->BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl; + api->EndQuery = loadProc("glEndQuery"); + api->VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl; + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); +} + +void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; } +void mg_gl_deselect_api(){ __mgGLAPI = &__mgGLNoAPI; } +mg_gl_api* mg_gl_get_api(void) { return(__mgGLAPI); } + diff --git a/milepost/src/gl_loader.h b/src/graphics/gl_loader.h similarity index 94% rename from milepost/src/gl_loader.h rename to src/graphics/gl_loader.h index 07300d5..fcd6edc 100644 --- a/milepost/src/gl_loader.h +++ b/src/graphics/gl_loader.h @@ -1,23 +1,23 @@ -/******************************************************** -* -* @file: gl_loader.h -* @note: auto-generated by glapi.py from gl.xml -* @date: 07/082023 -* -*********************************************************/ -#ifndef __GL_LOADER_H__ -#define __GL_LOADER_H__ - -#include"gl_api.h" - -typedef void*(*mg_gl_load_proc)(const char* name); - -void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gl44(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gles30(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc); - -void mg_gl_select_api(mg_gl_api* api); - -#endif // __GL_LOADER_H__ +/******************************************************** +* +* @file: gl_loader.h +* @note: auto-generated by glapi.py from gl.xml +* @date: 11/082023 +* +*********************************************************/ +#ifndef __GL_LOADER_H__ +#define __GL_LOADER_H__ + +#include"gl_api.h" + +typedef void*(*mg_gl_load_proc)(const char* name); + +void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gl44(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gles30(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc); + +void mg_gl_select_api(mg_gl_api* api); + +#endif // __GL_LOADER_H__ diff --git a/milepost/src/glsl_shaders/backprop.glsl b/src/graphics/glsl_shaders/backprop.glsl similarity index 100% rename from milepost/src/glsl_shaders/backprop.glsl rename to src/graphics/glsl_shaders/backprop.glsl diff --git a/milepost/src/glsl_shaders/balance_workgroups.glsl b/src/graphics/glsl_shaders/balance_workgroups.glsl similarity index 100% rename from milepost/src/glsl_shaders/balance_workgroups.glsl rename to src/graphics/glsl_shaders/balance_workgroups.glsl diff --git a/milepost/src/glsl_shaders/blit_fragment.glsl b/src/graphics/glsl_shaders/blit_fragment.glsl similarity index 100% rename from milepost/src/glsl_shaders/blit_fragment.glsl rename to src/graphics/glsl_shaders/blit_fragment.glsl diff --git a/milepost/src/glsl_shaders/blit_vertex.glsl b/src/graphics/glsl_shaders/blit_vertex.glsl similarity index 100% rename from milepost/src/glsl_shaders/blit_vertex.glsl rename to src/graphics/glsl_shaders/blit_vertex.glsl diff --git a/milepost/src/glsl_shaders/common.glsl b/src/graphics/glsl_shaders/common.glsl similarity index 100% rename from milepost/src/glsl_shaders/common.glsl rename to src/graphics/glsl_shaders/common.glsl diff --git a/milepost/src/glsl_shaders/merge.glsl b/src/graphics/glsl_shaders/merge.glsl similarity index 100% rename from milepost/src/glsl_shaders/merge.glsl rename to src/graphics/glsl_shaders/merge.glsl diff --git a/milepost/src/glsl_shaders/path_setup.glsl b/src/graphics/glsl_shaders/path_setup.glsl similarity index 100% rename from milepost/src/glsl_shaders/path_setup.glsl rename to src/graphics/glsl_shaders/path_setup.glsl diff --git a/milepost/src/glsl_shaders/raster.glsl b/src/graphics/glsl_shaders/raster.glsl similarity index 100% rename from milepost/src/glsl_shaders/raster.glsl rename to src/graphics/glsl_shaders/raster.glsl diff --git a/milepost/src/glsl_shaders/segment_setup.glsl b/src/graphics/glsl_shaders/segment_setup.glsl similarity index 100% rename from milepost/src/glsl_shaders/segment_setup.glsl rename to src/graphics/glsl_shaders/segment_setup.glsl diff --git a/milepost/src/graphics.h b/src/graphics/graphics.h similarity index 97% rename from milepost/src/graphics.h rename to src/graphics/graphics.h index 3a9a875..c9ad390 100644 --- a/milepost/src/graphics.h +++ b/src/graphics/graphics.h @@ -1,330 +1,330 @@ -/************************************************************//** -* -* @file: graphics.h -* @author: Martin Fouilleul -* @date: 23/01/2023 -* @revision: -* -*****************************************************************/ -#ifndef __GRAPHICS_H_ -#define __GRAPHICS_H_ - -#include"util/typedefs.h" -#include"platform/platform.h" -#include"mp_app.h" - -//------------------------------------------------------------------------------------------ -//NOTE(martin): backends selection -//------------------------------------------------------------------------------------------ - -typedef enum { - MG_NONE, - MG_METAL, - MG_GL, - MG_GLES, - MG_CANVAS, - MG_HOST } mg_surface_api; - -//NOTE: these macros are used to select which backend to include when building milepost -// they can be overridden by passing them to the compiler command line -#if PLATFORM_MACOS - #ifndef MG_COMPILE_METAL - #define MG_COMPILE_METAL 1 - #endif - - #ifndef MG_COMPILE_GLES - #define MG_COMPILE_GLES 1 - #endif - - #ifndef MG_COMPILE_CANVAS - #if !MG_COMPILE_METAL - #error "Canvas surface requires a Metal backend on macOS. Make sure you define MG_COMPILE_METAL to 1." - #endif - #define MG_COMPILE_CANVAS 1 - #endif - - #define MG_COMPILE_GL 0 - -#elif PLATFORM_WINDOWS - #ifndef MG_COMPILE_GL - #define MG_COMPILE_GL 1 - #endif - - #ifndef MG_COMPILE_GLES - #define MG_COMPILE_GLES 1 - #endif - - #ifndef MG_COMPILE_CANVAS - #if !MG_COMPILE_GL - #error "Canvas surface requires an OpenGL backend on Windows. Make sure you define MG_COMPILE_GL to 1." - #endif - #define MG_COMPILE_CANVAS 1 - #endif - -#elif PLATFORM_LINUX - #ifndef MG_COMPILE_GL - #define MG_COMPILE_GL 1 - #endif - - #ifndef MG_COMPILE_CANVAS - #if !MG_COMPILE_GL - #error "Canvas surface requires an OpenGL backend on Linux. Make sure you define MG_COMPILE_GL to 1." - #endif - #define MG_COMPILE_CANVAS 1 - #endif -#endif - -//NOTE: these macros are used to select backend-specific APIs to include when using milepost -#ifdef MG_EXPOSE_SURFACE_METAL - #include"mtl_surface.h" -#endif - -#ifdef MG_EXPOSE_SURFACE_WGL - #include"wgl_surface.h" -#endif - -//TODO: expose nsgl surface when supported, expose egl surface, etc... - -//TODO: add MG_INCLUDE_OPENGL/GLES/etc, once we know how we make different gl versions co-exist - -MP_API bool mg_is_surface_api_available(mg_surface_api api); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics surface -//------------------------------------------------------------------------------------------ -typedef struct mg_surface { u64 h; } mg_surface; - -MP_API mg_surface mg_surface_nil(void); -MP_API bool mg_surface_is_nil(mg_surface surface); - -MP_API mg_surface mg_surface_create_for_window(mp_window window, mg_surface_api api); -MP_API void mg_surface_destroy(mg_surface surface); - -MP_API void mg_surface_prepare(mg_surface surface); -MP_API void mg_surface_present(mg_surface surface); -MP_API void mg_surface_deselect(void); - -MP_API void mg_surface_swap_interval(mg_surface surface, int swap); -MP_API vec2 mg_surface_get_size(mg_surface surface); -MP_API vec2 mg_surface_contents_scaling(mg_surface surface); -MP_API bool mg_surface_get_hidden(mg_surface surface); -MP_API void mg_surface_set_hidden(mg_surface surface, bool hidden); - -//NOTE(martin): surface sharing -typedef u64 mg_surface_id; - -MP_API mg_surface mg_surface_create_remote(u32 width, u32 height, mg_surface_api api); -MP_API mg_surface mg_surface_create_host(mp_window window); -MP_API mg_surface_id mg_surface_remote_id(mg_surface surface); -MP_API void mg_surface_host_connect(mg_surface surface, mg_surface_id remoteId); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics canvas structs -//------------------------------------------------------------------------------------------ -typedef struct mg_canvas { u64 h; } mg_canvas; -typedef struct mg_font { u64 h; } mg_font; -typedef struct mg_image { u64 h; } mg_image; - -typedef struct mg_mat2x3 -{ - f32 m[6]; -} mg_mat2x3; - -typedef struct mg_color -{ - union - { - struct - { - f32 r; - f32 g; - f32 b; - f32 a; - }; - f32 c[4]; - }; -} mg_color; - -typedef enum {MG_JOINT_MITER = 0, - MG_JOINT_BEVEL, - MG_JOINT_NONE } mg_joint_type; - -typedef enum {MG_CAP_NONE = 0, - MG_CAP_SQUARE } mg_cap_type; - -typedef struct mg_font_extents -{ - f32 ascent; // the extent above the baseline (by convention a positive value extends above the baseline) - f32 descent; // the extent below the baseline (by convention, positive value extends below the baseline) - f32 leading; // spacing between one row's descent and the next row's ascent - f32 xHeight; // height of the lower case letter 'x' - f32 capHeight; // height of the upper case letter 'M' - f32 width; // maximum width of the font - -} mg_font_extents; - -typedef struct mg_text_extents -{ - f32 xBearing; - f32 yBearing; - f32 width; - f32 height; - f32 xAdvance; - f32 yAdvance; - -} mg_text_extents; - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics canvas -//------------------------------------------------------------------------------------------ -MP_API mg_canvas mg_canvas_nil(void); -MP_API bool mg_canvas_is_nil(mg_canvas canvas); - -MP_API mg_canvas mg_canvas_create(void); -MP_API void mg_canvas_destroy(mg_canvas canvas); -MP_API mg_canvas mg_canvas_set_current(mg_canvas canvas); -MP_API void mg_render(mg_surface surface, mg_canvas canvas); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): fonts -//------------------------------------------------------------------------------------------ -MP_API mg_font mg_font_nil(void); -MP_API mg_font mg_font_create_from_memory(u32 size, byte* buffer, u32 rangeCount, unicode_range* ranges); -MP_API void mg_font_destroy(mg_font font); - -//NOTE(martin): the following int valued functions return -1 if font is invalid or codepoint is not present in font// -//TODO(martin): add enum error codes - -MP_API mg_font_extents mg_font_get_extents(mg_font font); -MP_API mg_font_extents mg_font_get_scaled_extents(mg_font font, f32 emSize); -MP_API f32 mg_font_get_scale_for_em_pixels(mg_font font, f32 emSize); - -//NOTE(martin): if you need to process more than one codepoint, first convert your codepoints to glyph indices, then use the -// glyph index versions of the functions, which can take an array of glyph indices. - -MP_API str32 mg_font_get_glyph_indices(mg_font font, str32 codePoints, str32 backing); -MP_API str32 mg_font_push_glyph_indices(mg_font font, mem_arena* arena, str32 codePoints); -MP_API u32 mg_font_get_glyph_index(mg_font font, utf32 codePoint); - -MP_API int mg_font_get_codepoint_extents(mg_font font, utf32 codePoint, mg_text_extents* outExtents); - -MP_API int mg_font_get_glyph_extents(mg_font font, str32 glyphIndices, mg_text_extents* outExtents); - -MP_API mp_rect mg_text_bounding_box_utf32(mg_font font, f32 fontSize, str32 text); -MP_API mp_rect mg_text_bounding_box(mg_font font, f32 fontSize, str8 text); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): images -//------------------------------------------------------------------------------------------ -MP_API mg_image mg_image_nil(void); -MP_API bool mg_image_is_nil(mg_image a); - -MP_API mg_image mg_image_create(mg_surface surface, u32 width, u32 height); -MP_API mg_image mg_image_create_from_rgba8(mg_surface surface, u32 width, u32 height, u8* pixels); -MP_API mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip); -MP_API mg_image mg_image_create_from_file(mg_surface surface, str8 path, bool flip); - -MP_API void mg_image_destroy(mg_image image); - -MP_API void mg_image_upload_region_rgba8(mg_image image, mp_rect region, u8* pixels); -MP_API vec2 mg_image_size(mg_image image); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): atlasing -//------------------------------------------------------------------------------------------ - -//NOTE: rectangle allocator -typedef struct mg_rect_atlas mg_rect_atlas; - -MP_API mg_rect_atlas* mg_rect_atlas_create(mem_arena* arena, i32 width, i32 height); -MP_API mp_rect mg_rect_atlas_alloc(mg_rect_atlas* atlas, i32 width, i32 height); -MP_API void mg_rect_atlas_recycle(mg_rect_atlas* atlas, mp_rect rect); - -//NOTE: image atlas helpers -typedef struct mg_image_region -{ - mg_image image; - mp_rect rect; -} mg_image_region; - -MP_API mg_image_region mg_image_atlas_alloc_from_rgba8(mg_rect_atlas* atlas, mg_image backingImage, u32 width, u32 height, u8* pixels); -MP_API mg_image_region mg_image_atlas_alloc_from_data(mg_rect_atlas* atlas, mg_image backingImage, str8 data, bool flip); -MP_API mg_image_region mg_image_atlas_alloc_from_file(mg_rect_atlas* atlas, mg_image backingImage, str8 path, bool flip); -MP_API void mg_image_atlas_recycle(mg_rect_atlas* atlas, mg_image_region imageRgn); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): transform, viewport and clipping -//------------------------------------------------------------------------------------------ -MP_API void mg_viewport(mp_rect viewPort); - -MP_API void mg_matrix_push(mg_mat2x3 matrix); -MP_API void mg_matrix_pop(void); - -MP_API void mg_clip_push(f32 x, f32 y, f32 w, f32 h); -MP_API void mg_clip_pop(void); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics attributes setting/getting -//------------------------------------------------------------------------------------------ -MP_API void mg_set_color(mg_color color); -MP_API void mg_set_color_rgba(f32 r, f32 g, f32 b, f32 a); -MP_API void mg_set_width(f32 width); -MP_API void mg_set_tolerance(f32 tolerance); -MP_API void mg_set_joint(mg_joint_type joint); -MP_API void mg_set_max_joint_excursion(f32 maxJointExcursion); -MP_API void mg_set_cap(mg_cap_type cap); -MP_API void mg_set_font(mg_font font); -MP_API void mg_set_font_size(f32 size); -MP_API void mg_set_text_flip(bool flip); -MP_API void mg_set_image(mg_image image); -MP_API void mg_set_image_source_region(mp_rect region); - -MP_API mg_color mg_get_color(void); -MP_API f32 mg_get_width(void); -MP_API f32 mg_get_tolerance(void); -MP_API mg_joint_type mg_get_joint(void); -MP_API f32 mg_get_max_joint_excursion(void); -MP_API mg_cap_type mg_get_cap(void); -MP_API mg_font mg_get_font(void); -MP_API f32 mg_get_font_size(void); -MP_API bool mg_get_text_flip(void); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): path construction -//------------------------------------------------------------------------------------------ -MP_API vec2 mg_get_position(void); -MP_API void mg_move_to(f32 x, f32 y); -MP_API void mg_line_to(f32 x, f32 y); -MP_API void mg_quadratic_to(f32 x1, f32 y1, f32 x2, f32 y2); -MP_API void mg_cubic_to(f32 x1, f32 y1, f32 x2, f32 y2, f32 x3, f32 y3); -MP_API void mg_close_path(void); - -MP_API mp_rect mg_glyph_outlines(str32 glyphIndices); -MP_API void mg_codepoints_outlines(str32 string); -MP_API void mg_text_outlines(str8 string); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): clear/fill/stroke -//------------------------------------------------------------------------------------------ -MP_API void mg_clear(void); -MP_API void mg_fill(void); -MP_API void mg_stroke(void); - -//------------------------------------------------------------------------------------------ -//NOTE(martin): 'fast' shapes primitives -//------------------------------------------------------------------------------------------ -MP_API void mg_rectangle_fill(f32 x, f32 y, f32 w, f32 h); -MP_API void mg_rectangle_stroke(f32 x, f32 y, f32 w, f32 h); -MP_API void mg_rounded_rectangle_fill(f32 x, f32 y, f32 w, f32 h, f32 r); -MP_API void mg_rounded_rectangle_stroke(f32 x, f32 y, f32 w, f32 h, f32 r); -MP_API void mg_ellipse_fill(f32 x, f32 y, f32 rx, f32 ry); -MP_API void mg_ellipse_stroke(f32 x, f32 y, f32 rx, f32 ry); -MP_API void mg_circle_fill(f32 x, f32 y, f32 r); -MP_API void mg_circle_stroke(f32 x, f32 y, f32 r); -MP_API void mg_arc(f32 x, f32 y, f32 r, f32 arcAngle, f32 startAngle); - -//NOTE: image helpers -MP_API void mg_image_draw(mg_image image, mp_rect rect); -MP_API void mg_image_draw_region(mg_image image, mp_rect srcRegion, mp_rect dstRegion); - -#endif //__GRAPHICS_H_ +/************************************************************//** +* +* @file: graphics.h +* @author: Martin Fouilleul +* @date: 23/01/2023 +* @revision: +* +*****************************************************************/ +#ifndef __GRAPHICS_H_ +#define __GRAPHICS_H_ + +#include"util/typedefs.h" +#include"platform/platform.h" +#include"app/mp_app.h" + +//------------------------------------------------------------------------------------------ +//NOTE(martin): backends selection +//------------------------------------------------------------------------------------------ + +typedef enum { + MG_NONE, + MG_METAL, + MG_GL, + MG_GLES, + MG_CANVAS, + MG_HOST } mg_surface_api; + +//NOTE: these macros are used to select which backend to include when building milepost +// they can be overridden by passing them to the compiler command line +#if PLATFORM_MACOS + #ifndef MG_COMPILE_METAL + #define MG_COMPILE_METAL 1 + #endif + + #ifndef MG_COMPILE_GLES + #define MG_COMPILE_GLES 1 + #endif + + #ifndef MG_COMPILE_CANVAS + #if !MG_COMPILE_METAL + #error "Canvas surface requires a Metal backend on macOS. Make sure you define MG_COMPILE_METAL to 1." + #endif + #define MG_COMPILE_CANVAS 1 + #endif + + #define MG_COMPILE_GL 0 + +#elif PLATFORM_WINDOWS + #ifndef MG_COMPILE_GL + #define MG_COMPILE_GL 1 + #endif + + #ifndef MG_COMPILE_GLES + #define MG_COMPILE_GLES 1 + #endif + + #ifndef MG_COMPILE_CANVAS + #if !MG_COMPILE_GL + #error "Canvas surface requires an OpenGL backend on Windows. Make sure you define MG_COMPILE_GL to 1." + #endif + #define MG_COMPILE_CANVAS 1 + #endif + +#elif PLATFORM_LINUX + #ifndef MG_COMPILE_GL + #define MG_COMPILE_GL 1 + #endif + + #ifndef MG_COMPILE_CANVAS + #if !MG_COMPILE_GL + #error "Canvas surface requires an OpenGL backend on Linux. Make sure you define MG_COMPILE_GL to 1." + #endif + #define MG_COMPILE_CANVAS 1 + #endif +#endif + +//NOTE: these macros are used to select backend-specific APIs to include when using milepost +#ifdef MG_EXPOSE_SURFACE_METAL + #include"mtl_surface.h" +#endif + +#ifdef MG_EXPOSE_SURFACE_WGL + #include"wgl_surface.h" +#endif + +//TODO: expose nsgl surface when supported, expose egl surface, etc... + +//TODO: add MG_INCLUDE_OPENGL/GLES/etc, once we know how we make different gl versions co-exist + +MP_API bool mg_is_surface_api_available(mg_surface_api api); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics surface +//------------------------------------------------------------------------------------------ +typedef struct mg_surface { u64 h; } mg_surface; + +MP_API mg_surface mg_surface_nil(void); +MP_API bool mg_surface_is_nil(mg_surface surface); + +MP_API mg_surface mg_surface_create_for_window(mp_window window, mg_surface_api api); +MP_API void mg_surface_destroy(mg_surface surface); + +MP_API void mg_surface_prepare(mg_surface surface); +MP_API void mg_surface_present(mg_surface surface); +MP_API void mg_surface_deselect(void); + +MP_API void mg_surface_swap_interval(mg_surface surface, int swap); +MP_API vec2 mg_surface_get_size(mg_surface surface); +MP_API vec2 mg_surface_contents_scaling(mg_surface surface); +MP_API bool mg_surface_get_hidden(mg_surface surface); +MP_API void mg_surface_set_hidden(mg_surface surface, bool hidden); + +//NOTE(martin): surface sharing +typedef u64 mg_surface_id; + +MP_API mg_surface mg_surface_create_remote(u32 width, u32 height, mg_surface_api api); +MP_API mg_surface mg_surface_create_host(mp_window window); +MP_API mg_surface_id mg_surface_remote_id(mg_surface surface); +MP_API void mg_surface_host_connect(mg_surface surface, mg_surface_id remoteId); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics canvas structs +//------------------------------------------------------------------------------------------ +typedef struct mg_canvas { u64 h; } mg_canvas; +typedef struct mg_font { u64 h; } mg_font; +typedef struct mg_image { u64 h; } mg_image; + +typedef struct mg_mat2x3 +{ + f32 m[6]; +} mg_mat2x3; + +typedef struct mg_color +{ + union + { + struct + { + f32 r; + f32 g; + f32 b; + f32 a; + }; + f32 c[4]; + }; +} mg_color; + +typedef enum {MG_JOINT_MITER = 0, + MG_JOINT_BEVEL, + MG_JOINT_NONE } mg_joint_type; + +typedef enum {MG_CAP_NONE = 0, + MG_CAP_SQUARE } mg_cap_type; + +typedef struct mg_font_extents +{ + f32 ascent; // the extent above the baseline (by convention a positive value extends above the baseline) + f32 descent; // the extent below the baseline (by convention, positive value extends below the baseline) + f32 leading; // spacing between one row's descent and the next row's ascent + f32 xHeight; // height of the lower case letter 'x' + f32 capHeight; // height of the upper case letter 'M' + f32 width; // maximum width of the font + +} mg_font_extents; + +typedef struct mg_text_extents +{ + f32 xBearing; + f32 yBearing; + f32 width; + f32 height; + f32 xAdvance; + f32 yAdvance; + +} mg_text_extents; + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics canvas +//------------------------------------------------------------------------------------------ +MP_API mg_canvas mg_canvas_nil(void); +MP_API bool mg_canvas_is_nil(mg_canvas canvas); + +MP_API mg_canvas mg_canvas_create(void); +MP_API void mg_canvas_destroy(mg_canvas canvas); +MP_API mg_canvas mg_canvas_set_current(mg_canvas canvas); +MP_API void mg_render(mg_surface surface, mg_canvas canvas); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): fonts +//------------------------------------------------------------------------------------------ +MP_API mg_font mg_font_nil(void); +MP_API mg_font mg_font_create_from_memory(u32 size, byte* buffer, u32 rangeCount, unicode_range* ranges); +MP_API void mg_font_destroy(mg_font font); + +//NOTE(martin): the following int valued functions return -1 if font is invalid or codepoint is not present in font// +//TODO(martin): add enum error codes + +MP_API mg_font_extents mg_font_get_extents(mg_font font); +MP_API mg_font_extents mg_font_get_scaled_extents(mg_font font, f32 emSize); +MP_API f32 mg_font_get_scale_for_em_pixels(mg_font font, f32 emSize); + +//NOTE(martin): if you need to process more than one codepoint, first convert your codepoints to glyph indices, then use the +// glyph index versions of the functions, which can take an array of glyph indices. + +MP_API str32 mg_font_get_glyph_indices(mg_font font, str32 codePoints, str32 backing); +MP_API str32 mg_font_push_glyph_indices(mg_font font, mem_arena* arena, str32 codePoints); +MP_API u32 mg_font_get_glyph_index(mg_font font, utf32 codePoint); + +MP_API int mg_font_get_codepoint_extents(mg_font font, utf32 codePoint, mg_text_extents* outExtents); + +MP_API int mg_font_get_glyph_extents(mg_font font, str32 glyphIndices, mg_text_extents* outExtents); + +MP_API mp_rect mg_text_bounding_box_utf32(mg_font font, f32 fontSize, str32 text); +MP_API mp_rect mg_text_bounding_box(mg_font font, f32 fontSize, str8 text); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): images +//------------------------------------------------------------------------------------------ +MP_API mg_image mg_image_nil(void); +MP_API bool mg_image_is_nil(mg_image a); + +MP_API mg_image mg_image_create(mg_surface surface, u32 width, u32 height); +MP_API mg_image mg_image_create_from_rgba8(mg_surface surface, u32 width, u32 height, u8* pixels); +MP_API mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip); +MP_API mg_image mg_image_create_from_file(mg_surface surface, str8 path, bool flip); + +MP_API void mg_image_destroy(mg_image image); + +MP_API void mg_image_upload_region_rgba8(mg_image image, mp_rect region, u8* pixels); +MP_API vec2 mg_image_size(mg_image image); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): atlasing +//------------------------------------------------------------------------------------------ + +//NOTE: rectangle allocator +typedef struct mg_rect_atlas mg_rect_atlas; + +MP_API mg_rect_atlas* mg_rect_atlas_create(mem_arena* arena, i32 width, i32 height); +MP_API mp_rect mg_rect_atlas_alloc(mg_rect_atlas* atlas, i32 width, i32 height); +MP_API void mg_rect_atlas_recycle(mg_rect_atlas* atlas, mp_rect rect); + +//NOTE: image atlas helpers +typedef struct mg_image_region +{ + mg_image image; + mp_rect rect; +} mg_image_region; + +MP_API mg_image_region mg_image_atlas_alloc_from_rgba8(mg_rect_atlas* atlas, mg_image backingImage, u32 width, u32 height, u8* pixels); +MP_API mg_image_region mg_image_atlas_alloc_from_data(mg_rect_atlas* atlas, mg_image backingImage, str8 data, bool flip); +MP_API mg_image_region mg_image_atlas_alloc_from_file(mg_rect_atlas* atlas, mg_image backingImage, str8 path, bool flip); +MP_API void mg_image_atlas_recycle(mg_rect_atlas* atlas, mg_image_region imageRgn); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): transform, viewport and clipping +//------------------------------------------------------------------------------------------ +MP_API void mg_viewport(mp_rect viewPort); + +MP_API void mg_matrix_push(mg_mat2x3 matrix); +MP_API void mg_matrix_pop(void); + +MP_API void mg_clip_push(f32 x, f32 y, f32 w, f32 h); +MP_API void mg_clip_pop(void); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics attributes setting/getting +//------------------------------------------------------------------------------------------ +MP_API void mg_set_color(mg_color color); +MP_API void mg_set_color_rgba(f32 r, f32 g, f32 b, f32 a); +MP_API void mg_set_width(f32 width); +MP_API void mg_set_tolerance(f32 tolerance); +MP_API void mg_set_joint(mg_joint_type joint); +MP_API void mg_set_max_joint_excursion(f32 maxJointExcursion); +MP_API void mg_set_cap(mg_cap_type cap); +MP_API void mg_set_font(mg_font font); +MP_API void mg_set_font_size(f32 size); +MP_API void mg_set_text_flip(bool flip); +MP_API void mg_set_image(mg_image image); +MP_API void mg_set_image_source_region(mp_rect region); + +MP_API mg_color mg_get_color(void); +MP_API f32 mg_get_width(void); +MP_API f32 mg_get_tolerance(void); +MP_API mg_joint_type mg_get_joint(void); +MP_API f32 mg_get_max_joint_excursion(void); +MP_API mg_cap_type mg_get_cap(void); +MP_API mg_font mg_get_font(void); +MP_API f32 mg_get_font_size(void); +MP_API bool mg_get_text_flip(void); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): path construction +//------------------------------------------------------------------------------------------ +MP_API vec2 mg_get_position(void); +MP_API void mg_move_to(f32 x, f32 y); +MP_API void mg_line_to(f32 x, f32 y); +MP_API void mg_quadratic_to(f32 x1, f32 y1, f32 x2, f32 y2); +MP_API void mg_cubic_to(f32 x1, f32 y1, f32 x2, f32 y2, f32 x3, f32 y3); +MP_API void mg_close_path(void); + +MP_API mp_rect mg_glyph_outlines(str32 glyphIndices); +MP_API void mg_codepoints_outlines(str32 string); +MP_API void mg_text_outlines(str8 string); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): clear/fill/stroke +//------------------------------------------------------------------------------------------ +MP_API void mg_clear(void); +MP_API void mg_fill(void); +MP_API void mg_stroke(void); + +//------------------------------------------------------------------------------------------ +//NOTE(martin): 'fast' shapes primitives +//------------------------------------------------------------------------------------------ +MP_API void mg_rectangle_fill(f32 x, f32 y, f32 w, f32 h); +MP_API void mg_rectangle_stroke(f32 x, f32 y, f32 w, f32 h); +MP_API void mg_rounded_rectangle_fill(f32 x, f32 y, f32 w, f32 h, f32 r); +MP_API void mg_rounded_rectangle_stroke(f32 x, f32 y, f32 w, f32 h, f32 r); +MP_API void mg_ellipse_fill(f32 x, f32 y, f32 rx, f32 ry); +MP_API void mg_ellipse_stroke(f32 x, f32 y, f32 rx, f32 ry); +MP_API void mg_circle_fill(f32 x, f32 y, f32 r); +MP_API void mg_circle_stroke(f32 x, f32 y, f32 r); +MP_API void mg_arc(f32 x, f32 y, f32 r, f32 arcAngle, f32 startAngle); + +//NOTE: image helpers +MP_API void mg_image_draw(mg_image image, mp_rect rect); +MP_API void mg_image_draw_region(mg_image image, mp_rect srcRegion, mp_rect dstRegion); + +#endif //__GRAPHICS_H_ diff --git a/milepost/src/graphics_common.c b/src/graphics/graphics_common.c similarity index 95% rename from milepost/src/graphics_common.c rename to src/graphics/graphics_common.c index 10b3cb8..f4c9656 100644 --- a/milepost/src/graphics_common.c +++ b/src/graphics/graphics_common.c @@ -1,1772 +1,1781 @@ -/************************************************************//** -* -* @file: graphics_common.c -* @author: Martin Fouilleul -* @date: 23/01/2023 -* @revision: -* -*****************************************************************/ - -#include"platform/platform.h" -#include"platform/platform_math.h" - -#define STB_IMAGE_IMPLEMENTATION -#if PLATFORM_ORCA - #define STBI_NO_STDIO - #define STBI_NO_HDR -#endif -#include"stb_image.h" - -#define STB_TRUETYPE_IMPLEMENTATION -#include"stb_truetype.h" - -#include"platform/platform_log.h" -#include"platform/platform_assert.h" -#include"graphics_common.h" - -typedef struct mg_glyph_map_entry -{ - unicode_range range; - u32 firstGlyphIndex; - -} mg_glyph_map_entry; - -typedef struct mg_glyph_data -{ - bool exists; - utf32 codePoint; - mg_path_descriptor pathDescriptor; - mg_text_extents extents; - //... - -} mg_glyph_data; - -enum -{ - MG_MATRIX_STACK_MAX_DEPTH = 64, - MG_CLIP_STACK_MAX_DEPTH = 64, - MG_MAX_PATH_ELEMENT_COUNT = 2<<20, - MG_MAX_PRIMITIVE_COUNT = 8<<10 -}; - -typedef struct mg_font_data -{ - list_elt freeListElt; - - u32 rangeCount; - u32 glyphCount; - u32 outlineCount; - mg_glyph_map_entry* glyphMap; - mg_glyph_data* glyphs; - mg_path_elt* outlines; - - f32 unitsPerEm; - mg_font_extents extents; - -} mg_font_data; - -typedef struct mg_canvas_data mg_canvas_data; - -typedef enum mg_handle_kind -{ - MG_HANDLE_NONE = 0, - MG_HANDLE_SURFACE, - MG_HANDLE_CANVAS, - MG_HANDLE_FONT, - MG_HANDLE_IMAGE, - MG_HANDLE_SURFACE_SERVER, -} mg_handle_kind; - -typedef struct mg_handle_slot -{ - list_elt freeListElt; - u32 generation; - mg_handle_kind kind; - - void* data; - -} mg_handle_slot; - -enum { MG_HANDLES_MAX_COUNT = 512 }; - -typedef struct mg_data -{ - bool init; - - mg_handle_slot handleArray[MG_HANDLES_MAX_COUNT]; - int handleNextIndex; - list_info handleFreeList; - - mem_arena resourceArena; - list_info canvasFreeList; - list_info fontFreeList; - -} mg_data; - -typedef struct mg_canvas_data -{ - list_elt freeListElt; - - mg_attributes attributes; - bool textFlip; - - mg_path_elt pathElements[MG_MAX_PATH_ELEMENT_COUNT]; - mg_path_descriptor path; - vec2 subPathStartPoint; - vec2 subPathLastPoint; - - mg_mat2x3 matrixStack[MG_MATRIX_STACK_MAX_DEPTH]; - u32 matrixStackSize; - - mp_rect clipStack[MG_CLIP_STACK_MAX_DEPTH]; - u32 clipStackSize; - - u32 primitiveCount; - mg_primitive primitives[MG_MAX_PRIMITIVE_COUNT]; - - //NOTE: these are used at render time - mg_color clearColor; - - vec4 shapeExtents; - vec4 shapeScreenExtents; - -} mg_canvas_data; - -static mg_data __mgData = {0}; - - -void mg_init() -{ - if(!__mgData.init) - { - __mgData.handleNextIndex = 0; - mem_arena_init(&__mgData.resourceArena); - __mgData.init = true; - } -} - -//------------------------------------------------------------------------ -// handle pools procedures -//------------------------------------------------------------------------ - -u64 mg_handle_alloc(mg_handle_kind kind, void* data) -{ - if(!__mgData.init) - { - mg_init(); - } - - mg_handle_slot* slot = list_pop_entry(&__mgData.handleFreeList, mg_handle_slot, freeListElt); - if(!slot && __mgData.handleNextIndex < MG_HANDLES_MAX_COUNT) - { - slot = &__mgData.handleArray[__mgData.handleNextIndex]; - __mgData.handleNextIndex++; - - slot->generation = 1; - } - u64 h = 0; - if(slot) - { - slot->kind = kind; - slot->data = data; - - h = ((u64)(slot - __mgData.handleArray))<<32 - |((u64)(slot->generation)); - } - return(h); -} - -void mg_handle_recycle(u64 h) -{ - DEBUG_ASSERT(__mgData.init); - - u32 index = h>>32; - u32 generation = h & 0xffffffff; - - if(index*sizeof(mg_handle_slot) < __mgData.handleNextIndex) - { - mg_handle_slot* slot = &__mgData.handleArray[index]; - if(slot->generation == generation) - { - DEBUG_ASSERT(slot->generation != UINT32_MAX, "surface slot generation wrap around\n"); - slot->generation++; - list_push(&__mgData.handleFreeList, &slot->freeListElt); - } - } -} - -void* mg_data_from_handle(mg_handle_kind kind, u64 h) -{ - DEBUG_ASSERT(__mgData.init); - - void* data = 0; - - u32 index = h>>32; - u32 generation = h & 0xffffffff; - - if(index < __mgData.handleNextIndex) - { - mg_handle_slot* slot = &__mgData.handleArray[index]; - if( slot->generation == generation - && slot->kind == kind) - { - data = slot->data; - } - } - return(data); -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics canvas internal -//------------------------------------------------------------------------------------------ - -mp_thread_local mg_canvas_data* __mgCurrentCanvas = 0; -mp_thread_local mg_canvas __mgCurrentCanvasHandle = {0}; - -//TODO put these elsewhere -bool vec2_equal(vec2 v0, vec2 v1) -{ - return(v0.x == v1.x && v0.y == v1.y); -} - -bool vec2_close(vec2 p0, vec2 p1, f32 tolerance) -{ - f32 norm2 = (p1.x - p0.x)*(p1.x - p0.x) + (p1.y - p0.y)*(p1.y - p0.y); - return(fabs(norm2) < tolerance); -} - -vec2 vec2_mul(f32 f, vec2 v) -{ - return((vec2){f*v.x, f*v.y}); -} - -vec2 vec2_add(vec2 v0, vec2 v1) -{ - return((vec2){v0.x + v1.x, v0.y + v1.y}); -} - -mg_mat2x3 mg_mat2x3_mul_m(mg_mat2x3 lhs, mg_mat2x3 rhs) -{ - mg_mat2x3 res; - res.m[0] = lhs.m[0]*rhs.m[0] + lhs.m[1]*rhs.m[3]; - res.m[1] = lhs.m[0]*rhs.m[1] + lhs.m[1]*rhs.m[4]; - res.m[2] = lhs.m[0]*rhs.m[2] + lhs.m[1]*rhs.m[5] + lhs.m[2]; - res.m[3] = lhs.m[3]*rhs.m[0] + lhs.m[4]*rhs.m[3]; - res.m[4] = lhs.m[3]*rhs.m[1] + lhs.m[4]*rhs.m[4]; - res.m[5] = lhs.m[3]*rhs.m[2] + lhs.m[4]*rhs.m[5] + lhs.m[5]; - - return(res); -} - -mg_mat2x3 mg_mat2x3_inv(mg_mat2x3 x) -{ - mg_mat2x3 res; - res.m[0] = x.m[4]/(x.m[0]*x.m[4] - x.m[1]*x.m[3]); - res.m[1] = x.m[1]/(x.m[1]*x.m[3] - x.m[0]*x.m[4]); - res.m[3] = x.m[3]/(x.m[1]*x.m[3] - x.m[0]*x.m[4]); - res.m[4] = x.m[0]/(x.m[0]*x.m[4] - x.m[1]*x.m[3]); - res.m[2] = -(x.m[2]*res.m[0] + x.m[5]*res.m[1]); - res.m[5] = -(x.m[2]*res.m[3] + x.m[5]*res.m[4]); - return(res); -} - -vec2 mg_mat2x3_mul(mg_mat2x3 m, vec2 p) -{ - f32 x = p.x*m.m[0] + p.y*m.m[1] + m.m[2]; - f32 y = p.x*m.m[3] + p.y*m.m[4] + m.m[5]; - return((vec2){x, y}); -} - -mg_mat2x3 mg_matrix_stack_top(mg_canvas_data* canvas) -{ - if(canvas->matrixStackSize == 0) - { - return((mg_mat2x3){1, 0, 0, - 0, 1, 0}); - } - else - { - return(canvas->matrixStack[canvas->matrixStackSize-1]); - } -} - -void mg_matrix_stack_push(mg_canvas_data* canvas, mg_mat2x3 transform) -{ - if(canvas->matrixStackSize >= MG_MATRIX_STACK_MAX_DEPTH) - { - log_error("matrix stack overflow\n"); - } - else - { - canvas->matrixStack[canvas->matrixStackSize] = transform; - canvas->matrixStackSize++; - } -} - -void mg_matrix_stack_pop(mg_canvas_data* canvas) -{ - if(canvas->matrixStackSize == 0) - { - log_error("matrix stack underflow\n"); - } - else - { - canvas->matrixStackSize--; - mg_matrix_stack_top(canvas); - } -} - -mp_rect mg_clip_stack_top(mg_canvas_data* canvas) -{ - if(canvas->clipStackSize == 0) - { - return((mp_rect){-FLT_MAX/2, -FLT_MAX/2, FLT_MAX, FLT_MAX}); - } - else - { - return(canvas->clipStack[canvas->clipStackSize-1]); - } -} - -void mg_clip_stack_push(mg_canvas_data* canvas, mp_rect clip) -{ - if(canvas->clipStackSize >= MG_CLIP_STACK_MAX_DEPTH) - { - log_error("clip stack overflow\n"); - } - else - { - canvas->clipStack[canvas->clipStackSize] = clip; - canvas->clipStackSize++; - } -} - -void mg_clip_stack_pop(mg_canvas_data* canvas) -{ - if(canvas->clipStackSize == 0) - { - log_error("clip stack underflow\n"); - } - else - { - canvas->clipStackSize--; - } -} - -void mg_push_command(mg_canvas_data* canvas, mg_primitive primitive) -{ - //NOTE(martin): push primitive and updates current stream, eventually patching a pending jump. - ASSERT(canvas->primitiveCount < MG_MAX_PRIMITIVE_COUNT); - - canvas->primitives[canvas->primitiveCount] = primitive; - canvas->primitives[canvas->primitiveCount].attributes = canvas->attributes; - canvas->primitives[canvas->primitiveCount].attributes.transform = mg_matrix_stack_top(canvas); - canvas->primitives[canvas->primitiveCount].attributes.clip = mg_clip_stack_top(canvas); - canvas->primitiveCount++; -} - -void mg_new_path(mg_canvas_data* canvas) -{ - canvas->path.startIndex += canvas->path.count; - canvas->path.count = 0; - canvas->subPathStartPoint = canvas->subPathLastPoint; - canvas->path.startPoint = canvas->subPathStartPoint; -} - -void mg_path_push_elements(mg_canvas_data* canvas, u32 count, mg_path_elt* elements) -{ - ASSERT(canvas->path.count + canvas->path.startIndex + count < MG_MAX_PATH_ELEMENT_COUNT); - memcpy(canvas->pathElements + canvas->path.startIndex + canvas->path.count, elements, count*sizeof(mg_path_elt)); - canvas->path.count += count; - - ASSERT(canvas->path.count < MG_MAX_PATH_ELEMENT_COUNT); -} - -void mg_path_push_element(mg_canvas_data* canvas, mg_path_elt elt) -{ - mg_path_push_elements(canvas, 1, &elt); -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): fonts -//------------------------------------------------------------------------------------------ - -mg_font mg_font_nil() { return((mg_font){.h = 0}); } -bool mg_font_is_nil(mg_font font) { return(font.h == 0); } - -mg_font mg_font_handle_alloc(mg_font_data* font) -{ - mg_font handle = {.h = mg_handle_alloc(MG_HANDLE_FONT, (void*)font) }; - return(handle); -} - -mg_font_data* mg_font_data_from_handle(mg_font handle) -{ - mg_font_data* data = mg_data_from_handle(MG_HANDLE_FONT, handle.h); - return(data); -} - -mg_font mg_font_create_from_memory(u32 size, byte* buffer, u32 rangeCount, unicode_range* ranges) -{ - if(!__mgData.init) - { - mg_init(); - } - mg_font fontHandle = mg_font_nil(); - - mg_font_data* font = list_pop_entry(&__mgData.fontFreeList, mg_font_data, freeListElt); - if(!font) - { - font = mem_arena_alloc_type(&__mgData.resourceArena, mg_font_data); - } - if(font) - { - memset(font, 0, sizeof(mg_font_data)); - fontHandle = mg_font_handle_alloc(font); - - stbtt_fontinfo stbttFontInfo; - stbtt_InitFont(&stbttFontInfo, buffer, 0); - - //NOTE(martin): load font metrics data - font->unitsPerEm = 1./stbtt_ScaleForMappingEmToPixels(&stbttFontInfo, 1); - - int ascent, descent, lineGap, x0, x1, y0, y1; - stbtt_GetFontVMetrics(&stbttFontInfo, &ascent, &descent, &lineGap); - stbtt_GetFontBoundingBox(&stbttFontInfo, &x0, &y0, &x1, &y1); - - font->extents.ascent = ascent; - font->extents.descent = -descent; - font->extents.leading = lineGap; - font->extents.width = x1 - x0; - - stbtt_GetCodepointBox(&stbttFontInfo, 'x', &x0, &y0, &x1, &y1); - font->extents.xHeight = y1 - y0; - - stbtt_GetCodepointBox(&stbttFontInfo, 'M', &x0, &y0, &x1, &y1); - font->extents.capHeight = y1 - y0; - - //NOTE(martin): load codepoint ranges - font->rangeCount = rangeCount; - font->glyphMap = malloc_array(mg_glyph_map_entry, rangeCount); - font->glyphCount = 0; - - for(int i=0; iglyphMap[i].range = ranges[i]; - font->glyphMap[i].firstGlyphIndex = font->glyphCount + 1; - font->glyphCount += ranges[i].count; - } - - font->glyphs = malloc_array(mg_glyph_data, font->glyphCount); - - //NOTE(martin): first do a count of outlines - int outlineCount = 0; - for(int rangeIndex=0; rangeIndexglyphMap[rangeIndex].range.firstCodePoint; - u32 firstGlyphIndex = font->glyphMap[rangeIndex].firstGlyphIndex; - u32 endGlyphIndex = firstGlyphIndex + font->glyphMap[rangeIndex].range.count; - - for(int glyphIndex = firstGlyphIndex; - glyphIndex < endGlyphIndex; glyphIndex++) - { - int stbttGlyphIndex = stbtt_FindGlyphIndex(&stbttFontInfo, codePoint); - if(stbttGlyphIndex == 0) - { - //NOTE(martin): the codepoint is not found in the font - codePoint++; - continue; - } - //NOTE(martin): load glyph outlines - stbtt_vertex* vertices = 0; - outlineCount += stbtt_GetGlyphShape(&stbttFontInfo, stbttGlyphIndex, &vertices); - stbtt_FreeShape(&stbttFontInfo, vertices); - codePoint++; - } - } - //NOTE(martin): allocate outlines - font->outlines = malloc_array(mg_path_elt, outlineCount); - font->outlineCount = 0; - - //NOTE(martin): load metrics and outlines - for(int rangeIndex=0; rangeIndexglyphMap[rangeIndex].range.firstCodePoint; - u32 firstGlyphIndex = font->glyphMap[rangeIndex].firstGlyphIndex; - u32 endGlyphIndex = firstGlyphIndex + font->glyphMap[rangeIndex].range.count; - - for(int glyphIndex = firstGlyphIndex; - glyphIndex < endGlyphIndex; glyphIndex++) - { - mg_glyph_data* glyph = &(font->glyphs[glyphIndex-1]); - - int stbttGlyphIndex = stbtt_FindGlyphIndex(&stbttFontInfo, codePoint); - if(stbttGlyphIndex == 0) - { - //NOTE(martin): the codepoint is not found in the font, we zero the glyph info - memset(glyph, 0, sizeof(*glyph)); - codePoint++; - continue; - } - - glyph->exists = true; - glyph->codePoint = codePoint; - - //NOTE(martin): load glyph metric - int xAdvance, xBearing, x0, y0, x1, y1; - stbtt_GetGlyphHMetrics(&stbttFontInfo, stbttGlyphIndex, &xAdvance, &xBearing); - stbtt_GetGlyphBox(&stbttFontInfo, stbttGlyphIndex, &x0, &y0, &x1, &y1); - - glyph->extents.xAdvance = (f32)xAdvance; - glyph->extents.yAdvance = 0; - glyph->extents.xBearing = (f32)xBearing; - glyph->extents.yBearing = y0; - - glyph->extents.width = x1 - x0; - glyph->extents.height = y1 - y0; - - //NOTE(martin): load glyph outlines - - stbtt_vertex* vertices = 0; - int vertexCount = stbtt_GetGlyphShape(&stbttFontInfo, stbttGlyphIndex, &vertices); - - glyph->pathDescriptor = (mg_path_descriptor){.startIndex = font->outlineCount, - .count = vertexCount, - .startPoint = {0, 0}}; - - mg_path_elt* elements = font->outlines + font->outlineCount; - font->outlineCount += vertexCount; - vec2 currentPos = {0, 0}; - - for(int vertIndex = 0; vertIndex < vertexCount; vertIndex++) - { - f32 x = vertices[vertIndex].x; - f32 y = vertices[vertIndex].y; - f32 cx = vertices[vertIndex].cx; - f32 cy = vertices[vertIndex].cy; - f32 cx1 = vertices[vertIndex].cx1; - f32 cy1 = vertices[vertIndex].cy1; - - switch(vertices[vertIndex].type) - { - case STBTT_vmove: - elements[vertIndex].type = MG_PATH_MOVE; - elements[vertIndex].p[0] = (vec2){x, y}; - break; - - case STBTT_vline: - elements[vertIndex].type = MG_PATH_LINE; - elements[vertIndex].p[0] = (vec2){x, y}; - break; - - case STBTT_vcurve: - { - elements[vertIndex].type = MG_PATH_QUADRATIC; - elements[vertIndex].p[0] = (vec2){cx, cy}; - elements[vertIndex].p[1] = (vec2){x, y}; - } break; - - case STBTT_vcubic: - elements[vertIndex].type = MG_PATH_CUBIC; - elements[vertIndex].p[0] = (vec2){cx, cy}; - elements[vertIndex].p[1] = (vec2){cx1, cy1}; - elements[vertIndex].p[2] = (vec2){x, y}; - break; - } - currentPos = (vec2){x, y}; - } - stbtt_FreeShape(&stbttFontInfo, vertices); - codePoint++; - } - } - } - return(fontHandle); -} - -void mg_font_destroy(mg_font fontHandle) -{ - mg_font_data* fontData = mg_font_data_from_handle(fontHandle); - if(fontData) - { - free(fontData->glyphMap); - free(fontData->glyphs); - free(fontData->outlines); - - list_push(&__mgData.fontFreeList, &fontData->freeListElt); - mg_handle_recycle(fontHandle.h); - } -} - -str32 mg_font_get_glyph_indices_from_font_data(mg_font_data* fontData, str32 codePoints, str32 backing) -{ - u64 count = minimum(codePoints.len, backing.len); - - for(int i = 0; irangeCount; rangeIndex++) - { - if(codePoints.ptr[i] >= fontData->glyphMap[rangeIndex].range.firstCodePoint - && codePoints.ptr[i] < (fontData->glyphMap[rangeIndex].range.firstCodePoint + fontData->glyphMap[rangeIndex].range.count)) - { - u32 rangeOffset = codePoints.ptr[i] - fontData->glyphMap[rangeIndex].range.firstCodePoint; - glyphIndex = fontData->glyphMap[rangeIndex].firstGlyphIndex + rangeOffset; - break; - } - } - if(glyphIndex && !fontData->glyphs[glyphIndex].exists) - { - backing.ptr[i] = 0; - } - backing.ptr[i] = glyphIndex; - } - str32 res = {.len = count, .ptr = backing.ptr}; - return(res); -} - -u32 mg_font_get_glyph_index_from_font_data(mg_font_data* fontData, utf32 codePoint) -{ - u32 glyphIndex = 0; - str32 codePoints = {1, &codePoint}; - str32 backing = {1, &glyphIndex}; - mg_font_get_glyph_indices_from_font_data(fontData, codePoints, backing); - return(glyphIndex); -} - -str32 mg_font_get_glyph_indices(mg_font font, str32 codePoints, str32 backing) -{ - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return((str32){0}); - } - return(mg_font_get_glyph_indices_from_font_data(fontData, codePoints, backing)); -} - -str32 mg_font_push_glyph_indices(mg_font font, mem_arena* arena, str32 codePoints) -{ - u32* buffer = mem_arena_alloc_array(arena, u32, codePoints.len); - str32 backing = {codePoints.len, buffer}; - return(mg_font_get_glyph_indices(font, codePoints, backing)); -} - -u32 mg_font_get_glyph_index(mg_font font, utf32 codePoint) -{ - u32 glyphIndex = 0; - str32 codePoints = {1, &codePoint}; - str32 backing = {1, &glyphIndex}; - mg_font_get_glyph_indices(font, codePoints, backing); - return(glyphIndex); -} - -mg_glyph_data* mg_font_get_glyph_data(mg_font_data* fontData, u32 glyphIndex) -{ - DEBUG_ASSERT(glyphIndex); - DEBUG_ASSERT(glyphIndex < fontData->glyphCount); - return(&(fontData->glyphs[glyphIndex-1])); -} - -mg_font_extents mg_font_get_extents(mg_font font) -{ - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return((mg_font_extents){0}); - } - return(fontData->extents); -} - -mg_font_extents mg_font_get_scaled_extents(mg_font font, f32 emSize) -{ - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return((mg_font_extents){0}); - } - f32 scale = emSize/fontData->unitsPerEm; - mg_font_extents extents = fontData->extents; - - extents.ascent *= scale; - extents.descent *= scale; - extents.leading *= scale; - extents.xHeight *= scale; - extents.capHeight *= scale; - extents.width *= scale; - - return(extents); -} - - -f32 mg_font_get_scale_for_em_pixels(mg_font font, f32 emSize) -{ - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return(0); - } - return(emSize/fontData->unitsPerEm); -} - -void mg_font_get_glyph_extents_from_font_data(mg_font_data* fontData, - str32 glyphIndices, - mg_text_extents* outExtents) -{ - for(int i=0; i= fontData->glyphCount) - { - continue; - } - mg_glyph_data* glyph = mg_font_get_glyph_data(fontData, glyphIndices.ptr[i]); - outExtents[i] = glyph->extents; - } -} - -int mg_font_get_glyph_extents(mg_font font, str32 glyphIndices, mg_text_extents* outExtents) -{ - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return(-1); - } - mg_font_get_glyph_extents_from_font_data(fontData, glyphIndices, outExtents); - return(0); -} - -int mg_font_get_codepoint_extents(mg_font font, utf32 codePoint, mg_text_extents* outExtents) -{ - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return(-1); - } - u32 glyphIndex = 0; - str32 codePoints = {1, &codePoint}; - str32 backing = {1, &glyphIndex}; - str32 glyphs = mg_font_get_glyph_indices_from_font_data(fontData, codePoints, backing); - mg_font_get_glyph_extents_from_font_data(fontData, glyphs, outExtents); - return(0); -} - -mp_rect mg_text_bounding_box_utf32(mg_font font, f32 fontSize, str32 codePoints) -{ - if(!codePoints.len || !codePoints.ptr) - { - return((mp_rect){0}); - } - - mg_font_data* fontData = mg_font_data_from_handle(font); - if(!fontData) - { - return((mp_rect){0}); - } - - mem_arena* scratch = mem_scratch(); - str32 glyphIndices = mg_font_push_glyph_indices(font, scratch, codePoints); - - //NOTE(martin): find width of missing character - //TODO(martin): should cache that at font creation... - mg_text_extents missingGlyphExtents; - u32 missingGlyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 0xfffd); - - if(missingGlyphIndex) - { - mg_font_get_glyph_extents_from_font_data(fontData, (str32){1, &missingGlyphIndex}, &missingGlyphExtents); - } - else - { - //NOTE(martin): could not find replacement glyph, try to get an 'x' to get a somewhat correct width - // to render an empty rectangle. Otherwise just render with the max font width - f32 boxWidth = fontData->extents.width * 0.8; - f32 xBearing = fontData->extents.width * 0.1; - f32 xAdvance = fontData->extents.width; - - missingGlyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 'x'); - if(missingGlyphIndex) - { - mg_font_get_glyph_extents_from_font_data(fontData, (str32){1, &missingGlyphIndex}, &missingGlyphExtents); - } - else - { - missingGlyphExtents.xBearing = fontData->extents.width * 0.1; - missingGlyphExtents.yBearing = 0; - missingGlyphExtents.width = fontData->extents.width * 0.8; - missingGlyphExtents.xAdvance = fontData->extents.width; - missingGlyphExtents.yAdvance = 0; - } - } - - //NOTE(martin): accumulate text extents - f32 width = 0; - f32 x = 0; - f32 y = 0; - f32 lineHeight = fontData->extents.descent + fontData->extents.ascent; - - for(int i=0; i= fontData->glyphCount) - { - extents = missingGlyphExtents; - } - else - { - glyph = mg_font_get_glyph_data(fontData, glyphIndices.ptr[i]); - extents = glyph->extents; - } - x += extents.xAdvance; - y += extents.yAdvance; - - if(glyph && glyph->codePoint == '\n') - { - width = maximum(width, x); - x = 0; - y += lineHeight + fontData->extents.leading; - } - } - width = maximum(width, x); - - f32 fontScale = mg_font_get_scale_for_em_pixels(font, fontSize); - mp_rect rect = {0, -fontData->extents.ascent * fontScale, width * fontScale, (y + lineHeight) * fontScale }; - return(rect); -} - -mp_rect mg_text_bounding_box(mg_font font, f32 fontSize, str8 text) -{ - if(!text.len || !text.ptr) - { - return((mp_rect){0}); - } - - mem_arena* scratch = mem_scratch(); - str32 codePoints = utf8_push_to_codepoints(scratch, text); - return(mg_text_bounding_box_utf32(font, fontSize, codePoints)); -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics canvas API -//------------------------------------------------------------------------------------------ - -mg_canvas mg_canvas_nil() { return((mg_canvas){.h = 0}); } -bool mg_canvas_is_nil(mg_canvas canvas) { return(canvas.h == 0); } - -mg_canvas mg_canvas_handle_alloc(mg_canvas_data* canvas) -{ - mg_canvas handle = {.h = mg_handle_alloc(MG_HANDLE_CANVAS, (void*)canvas) }; - return(handle); -} - -mg_canvas_data* mg_canvas_data_from_handle(mg_canvas handle) -{ - mg_canvas_data* data = mg_data_from_handle(MG_HANDLE_CANVAS, handle.h); - return(data); -} - -mg_canvas mg_canvas_create() -{ - if(!__mgData.init) - { - mg_init(); - } - - mg_canvas canvasHandle = mg_canvas_nil(); - mg_canvas_data* canvas = list_pop_entry(&__mgData.canvasFreeList, mg_canvas_data, freeListElt); - if(!canvas) - { - canvas = mem_arena_alloc_type(&__mgData.resourceArena, mg_canvas_data); - } - if(canvas) - { - canvas->textFlip = false; - canvas->path = (mg_path_descriptor){0}; - canvas->matrixStackSize = 0; - canvas->clipStackSize = 0; - canvas->primitiveCount = 0; - canvas->clearColor = (mg_color){0, 0, 0, 0}; - - canvas->attributes = (mg_attributes){0}; - canvas->attributes.color = (mg_color){0, 0, 0, 1}; - canvas->attributes.tolerance = 1; - canvas->attributes.width = 10; - canvas->attributes.clip = (mp_rect){-FLT_MAX/2, -FLT_MAX/2, FLT_MAX, FLT_MAX}; - - canvasHandle = mg_canvas_handle_alloc(canvas); - - mg_canvas_set_current(canvasHandle); - } - return(canvasHandle); -} - -void mg_canvas_destroy(mg_canvas handle) -{ - mg_canvas_data* canvas = mg_canvas_data_from_handle(handle); - if(canvas) - { - if(__mgCurrentCanvas == canvas) - { - __mgCurrentCanvas = 0; - __mgCurrentCanvasHandle = mg_canvas_nil(); - } - list_push(&__mgData.canvasFreeList, &canvas->freeListElt); - mg_handle_recycle(handle.h); - } -} - -mg_canvas mg_canvas_set_current(mg_canvas canvas) -{ - mg_canvas old = __mgCurrentCanvasHandle; - __mgCurrentCanvasHandle = canvas; - __mgCurrentCanvas = mg_canvas_data_from_handle(canvas); - return(old); -} - -void mg_render(mg_surface surface, mg_canvas canvas) -{ - mg_canvas_data* canvasData = mg_canvas_data_from_handle(canvas); - if(canvasData) - { - int eltCount = canvasData->path.startIndex + canvasData->path.count; - mg_surface_render_commands(surface, - canvasData->clearColor, - canvasData->primitiveCount, - canvasData->primitives, - eltCount, - canvasData->pathElements); - - canvasData->primitiveCount = 0; - canvasData->path.startIndex = 0; - canvasData->path.count = 0; - } -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): transform, viewport and clipping -//------------------------------------------------------------------------------------------ - -void mg_matrix_push(mg_mat2x3 matrix) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - mg_mat2x3 transform = mg_matrix_stack_top(canvas); - mg_matrix_stack_push(canvas, mg_mat2x3_mul_m(transform, matrix)); - } -} - -void mg_matrix_pop() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - mg_matrix_stack_pop(canvas); - } -} - -void mg_clip_push(f32 x, f32 y, f32 w, f32 h) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - mp_rect clip = {x, y, w, h}; - - //NOTE(martin): transform clip - mg_mat2x3 transform = mg_matrix_stack_top(canvas); - vec2 p0 = mg_mat2x3_mul(transform, (vec2){clip.x, clip.y}); - vec2 p1 = mg_mat2x3_mul(transform, (vec2){clip.x + clip.w, clip.y}); - vec2 p2 = mg_mat2x3_mul(transform, (vec2){clip.x + clip.w, clip.y + clip.h}); - vec2 p3 = mg_mat2x3_mul(transform, (vec2){clip.x, clip.y + clip.h}); - - f32 x0 = minimum(p0.x, minimum(p1.x, minimum(p2.x, p3.x))); - f32 y0 = minimum(p0.y, minimum(p1.y, minimum(p2.y, p3.y))); - f32 x1 = maximum(p0.x, maximum(p1.x, maximum(p2.x, p3.x))); - f32 y1 = maximum(p0.y, maximum(p1.y, maximum(p2.y, p3.y))); - - mp_rect current = mg_clip_stack_top(canvas); - - //NOTE(martin): intersect with current clip - x0 = maximum(current.x, x0); - y0 = maximum(current.y, y0); - x1 = minimum(current.x + current.w, x1); - y1 = minimum(current.y + current.h, y1); - - mp_rect r = {x0, y0, maximum(0, x1-x0), maximum(0, y1-y0)}; - mg_clip_stack_push(canvas, r); - - canvas->attributes.clip = r; - } -} - -void mg_clip_pop() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - mg_clip_stack_pop(canvas); - canvas->attributes.clip = mg_clip_stack_top(canvas); - } -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): graphics attributes setting/getting -//------------------------------------------------------------------------------------------ -void mg_set_color(mg_color color) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.color = color; - } -} - -void mg_set_color_rgba(f32 r, f32 g, f32 b, f32 a) -{ - mg_set_color((mg_color){r, g, b, a}); -} - -void mg_set_width(f32 width) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.width = width; - } -} - -void mg_set_tolerance(f32 tolerance) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.tolerance = tolerance; - } -} - -void mg_set_joint(mg_joint_type joint) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.joint = joint; - } -} - -void mg_set_max_joint_excursion(f32 maxJointExcursion) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.maxJointExcursion = maxJointExcursion; - } -} - -void mg_set_cap(mg_cap_type cap) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.cap = cap; - } -} - -void mg_set_font(mg_font font) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.font = font; - } -} - -void mg_set_font_size(f32 fontSize) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.fontSize = fontSize; - } -} - -void mg_set_text_flip(bool flip) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->textFlip = flip; - } -} - -void mg_set_image(mg_image image) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.image = image; - vec2 size = mg_image_size(image); - canvas->attributes.srcRegion = (mp_rect){0, 0, size.x, size.y}; - } -} - -void mg_set_image_source_region(mp_rect region) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->attributes.srcRegion = region; - } -} - -mg_color mg_get_color() -{ - mg_color color = {0}; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - color = canvas->attributes.color; - } - return(color); -} - -f32 mg_get_width() -{ - f32 width = 0; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - width = canvas->attributes.width; - } - return(width); -} - -f32 mg_get_tolerance() -{ - f32 tolerance = 0; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - tolerance = canvas->attributes.tolerance; - } - return(tolerance); -} - -mg_joint_type mg_get_joint() -{ - mg_joint_type joint = 0; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - joint = canvas->attributes.joint; - } - return(joint); -} - -f32 mg_get_max_joint_excursion() -{ - f32 maxJointExcursion = 0; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - maxJointExcursion = canvas->attributes.maxJointExcursion; - } - return(maxJointExcursion); -} - -mg_cap_type mg_get_cap() -{ - mg_cap_type cap = 0; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - cap = canvas->attributes.cap; - } - return(cap); -} - -mg_font mg_get_font() -{ - mg_font font = mg_font_nil(); - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - font = canvas->attributes.font; - } - return(font); -} - -f32 mg_get_font_size() -{ - f32 fontSize = 0; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - fontSize = canvas->attributes.fontSize; - } - return(fontSize); -} - -bool mg_get_text_flip() -{ - bool flip = false; - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - flip = canvas->textFlip; - } - return(flip); -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): path construction -//------------------------------------------------------------------------------------------ -vec2 mg_get_position() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return((vec2){0, 0}); - } - return(canvas->subPathLastPoint); -} - -void mg_move_to(f32 x, f32 y) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_MOVE, .p[0] = {x, y}})); - canvas->subPathStartPoint = (vec2){x, y}; - canvas->subPathLastPoint = (vec2){x, y}; -} - -void mg_line_to(f32 x, f32 y) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_LINE, .p[0] = {x, y}})); - canvas->subPathLastPoint = (vec2){x, y}; -} - -void mg_quadratic_to(f32 x1, f32 y1, f32 x2, f32 y2) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_QUADRATIC, .p = {{x1, y1}, {x2, y2}}})); - canvas->subPathLastPoint = (vec2){x2, y2}; -} - -void mg_cubic_to(f32 x1, f32 y1, f32 x2, f32 y2, f32 x3, f32 y3) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_CUBIC, .p = {{x1, y1}, {x2, y2}, {x3, y3}}})); - canvas->subPathLastPoint = (vec2){x3, y3}; -} - -void mg_close_path() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - if( canvas->subPathStartPoint.x != canvas->subPathLastPoint.x - || canvas->subPathStartPoint.y != canvas->subPathLastPoint.y) - { - mg_line_to(canvas->subPathStartPoint.x, canvas->subPathStartPoint.y); - } - canvas->subPathStartPoint = canvas->subPathLastPoint; -} - -mp_rect mg_glyph_outlines_from_font_data(mg_font_data* fontData, str32 glyphIndices) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - - f32 startX = canvas->subPathLastPoint.x; - f32 startY = canvas->subPathLastPoint.y; - f32 maxWidth = 0; - - f32 scale = canvas->attributes.fontSize/fontData->unitsPerEm; - - for(int i=0; isubPathLastPoint.x; - f32 yOffset = canvas->subPathLastPoint.y; - f32 flip = canvas->textFlip ? 1 : -1; - - if(!glyphIndex || glyphIndex >= fontData->glyphCount) - { - log_warning("code point is not present in font ranges\n"); - //NOTE(martin): try to find the replacement character - glyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 0xfffd); - if(!glyphIndex) - { - //NOTE(martin): could not find replacement glyph, try to get an 'x' to get a somewhat correct width - // to render an empty rectangle. Otherwise just render with the max font width - f32 boxWidth = fontData->extents.width * 0.8; - f32 xBearing = fontData->extents.width * 0.1; - f32 xAdvance = fontData->extents.width; - - glyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 'x'); - if(glyphIndex) - { - mg_glyph_data* glyph = &(fontData->glyphs[glyphIndex]); - boxWidth = glyph->extents.width; - xBearing = glyph->extents.xBearing; - xAdvance = glyph->extents.xAdvance; - } - f32 oldStrokeWidth = canvas->attributes.width; - - mg_set_width(boxWidth*0.005); - mg_rectangle_stroke(xOffset + xBearing * scale, - yOffset, - boxWidth * scale * flip, - fontData->extents.capHeight*scale); - - mg_set_width(oldStrokeWidth); - mg_move_to(xOffset + xAdvance * scale, yOffset); - maxWidth = maximum(maxWidth, xOffset + xAdvance*scale - startX); - continue; - } - } - - mg_glyph_data* glyph = mg_font_get_glyph_data(fontData, glyphIndex); - - mg_path_push_elements(canvas, glyph->pathDescriptor.count, fontData->outlines + glyph->pathDescriptor.startIndex); - - mg_path_elt* elements = canvas->pathElements + canvas->path.count + canvas->path.startIndex - glyph->pathDescriptor.count; - for(int eltIndex=0; eltIndexpathDescriptor.count; eltIndex++) - { - for(int pIndex = 0; pIndex < 3; pIndex++) - { - elements[eltIndex].p[pIndex].x = elements[eltIndex].p[pIndex].x * scale + xOffset; - elements[eltIndex].p[pIndex].y = elements[eltIndex].p[pIndex].y * scale * flip + yOffset; - } - } - mg_move_to(xOffset + scale*glyph->extents.xAdvance, yOffset); - - maxWidth = maximum(maxWidth, xOffset + scale*glyph->extents.xAdvance - startX); - } - f32 lineHeight = (fontData->extents.ascent + fontData->extents.descent)*scale; - mp_rect box = {startX, startY, maxWidth, canvas->subPathLastPoint.y - startY + lineHeight }; - return(box); -} - -mp_rect mg_glyph_outlines(str32 glyphIndices) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return((mp_rect){0}); - } - mg_font_data* fontData = mg_font_data_from_handle(canvas->attributes.font); - if(!fontData) - { - return((mp_rect){0}); - } - return(mg_glyph_outlines_from_font_data(fontData, glyphIndices)); -} - -void mg_codepoints_outlines(str32 codePoints) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - mg_font_data* fontData = mg_font_data_from_handle(canvas->attributes.font); - if(!fontData) - { - return; - } - - str32 glyphIndices = mg_font_push_glyph_indices(canvas->attributes.font, mem_scratch(), codePoints); - mg_glyph_outlines_from_font_data(fontData, glyphIndices); -} - -void mg_text_outlines(str8 text) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(!canvas) - { - return; - } - mg_font_data* fontData = mg_font_data_from_handle(canvas->attributes.font); - if(!fontData) - { - return; - } - - mem_arena* scratch = mem_scratch(); - str32 codePoints = utf8_push_to_codepoints(scratch, text); - str32 glyphIndices = mg_font_push_glyph_indices(canvas->attributes.font, scratch, codePoints); - - mg_glyph_outlines_from_font_data(fontData, glyphIndices); -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): clear/fill/stroke -//------------------------------------------------------------------------------------------ - -void mg_clear() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - canvas->primitiveCount = 0; - canvas->clearColor = canvas->attributes.color; - } -} - -void mg_fill() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas && canvas->path.count) - { - mg_push_command(canvas, (mg_primitive){.cmd = MG_CMD_FILL, .path = canvas->path}); - mg_new_path(canvas); - } -} - -void mg_stroke() -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas && canvas->path.count) - { - mg_push_command(canvas, (mg_primitive){.cmd = MG_CMD_STROKE, .path = canvas->path}); - mg_new_path(canvas); - } -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): simple shape helpers -//------------------------------------------------------------------------------------------ - -void mg_rectangle_path(f32 x, f32 y, f32 w, f32 h) -{ - mg_move_to(x, y); - mg_line_to(x+w, y); - mg_line_to(x+w, y+h); - mg_line_to(x, y+h); - mg_close_path(); -} - -void mg_rectangle_fill(f32 x, f32 y, f32 w, f32 h) -{ - mg_rectangle_path(x, y, w, h); - mg_fill(); -} - -void mg_rectangle_stroke(f32 x, f32 y, f32 w, f32 h) -{ - mg_rectangle_path(x, y, w, h); - mg_stroke(); -} - -void mg_rounded_rectangle_path(f32 x, f32 y, f32 w, f32 h, f32 r) -{ - f32 c = r*4*(sqrt(2)-1)/3; - - mg_move_to(x+r, y); - mg_line_to(x+w-r, y); - mg_cubic_to(x+w-r+c, y, x+w, y+r-c, x+w, y+r); - mg_line_to(x+w, y+h-r); - mg_cubic_to(x+w, y+h-r+c, x+w-r+c, y+h, x+w-r, y+h); - mg_line_to(x+r, y+h); - mg_cubic_to(x+r-c, y+h, x, y+h-r+c, x, y+h-r); - mg_line_to(x, y+r); - mg_cubic_to(x, y+r-c, x+r-c, y, x+r, y); -} - -void mg_rounded_rectangle_fill(f32 x, f32 y, f32 w, f32 h, f32 r) -{ - mg_rounded_rectangle_path(x, y, w, h, r); - mg_fill(); -} - -void mg_rounded_rectangle_stroke(f32 x, f32 y, f32 w, f32 h, f32 r) -{ - mg_rounded_rectangle_path(x, y, w, h, r); - mg_stroke(); -} - -void mg_ellipse_path(f32 x, f32 y, f32 rx, f32 ry) -{ - f32 cx = rx*4*(sqrt(2)-1)/3; - f32 cy = ry*4*(sqrt(2)-1)/3; - - mg_move_to(x-rx, y); - mg_cubic_to(x-rx, y+cy, x-cx, y+ry, x, y+ry); - mg_cubic_to(x+cx, y+ry, x+rx, y+cy, x+rx, y); - mg_cubic_to(x+rx, y-cy, x+cx, y-ry, x, y-ry); - mg_cubic_to(x-cx, y-ry, x-rx, y-cy, x-rx, y); -} - -void mg_ellipse_fill(f32 x, f32 y, f32 rx, f32 ry) -{ - mg_ellipse_path(x, y, rx, ry); - mg_fill(); -} - -void mg_ellipse_stroke(f32 x, f32 y, f32 rx, f32 ry) -{ - mg_ellipse_path(x, y, rx, ry); - mg_stroke(); -} - -void mg_circle_fill(f32 x, f32 y, f32 r) -{ - mg_ellipse_fill(x, y, r, r); -} - -void mg_circle_stroke(f32 x, f32 y, f32 r) -{ - mg_ellipse_stroke(x, y, r, r); -} - -//TODO: change to arc_to? -void mg_arc(f32 x, f32 y, f32 r, f32 arcAngle, f32 startAngle) -{ - f32 endAngle = startAngle + arcAngle; - - while(startAngle < endAngle) - { - f32 smallAngle = minimum(endAngle - startAngle, M_PI/4.); - if(smallAngle < 0.001) - { - break; - } - - vec2 v0 = {cos(smallAngle/2), sin(smallAngle/2)}; - vec2 v1 = {(4-v0.x)/3, (1-v0.x)*(3-v0.x)/(3*v0.y)}; - vec2 v2 = {v1.x, -v1.y}; - vec2 v3 = {v0.x, -v0.y}; - - f32 rotAngle = smallAngle/2 + startAngle; - f32 rotCos = cos(rotAngle); - f32 rotSin = sin(rotAngle); - - mg_mat2x3 t = {r*rotCos, -r*rotSin, x, - r*rotSin, r*rotCos, y}; - - v0 = mg_mat2x3_mul(t, v0); - v1 = mg_mat2x3_mul(t, v1); - v2 = mg_mat2x3_mul(t, v2); - v3 = mg_mat2x3_mul(t, v3); - - mg_move_to(v0.x, v0.y); - mg_cubic_to(v1.x, v1.y, v2.x, v2.y, v3.x, v3.y); - - startAngle += smallAngle; - } -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): images -//------------------------------------------------------------------------------------------ - -mg_image mg_image_nil() { return((mg_image){.h = 0}); } -bool mg_image_is_nil(mg_image image) { return(image.h == 0); } - -mg_image mg_image_create_from_rgba8(mg_surface surface, u32 width, u32 height, u8* pixels) -{ - mg_image image = mg_image_create(surface, width, height); - if(!mg_image_is_nil(image)) - { - mg_image_upload_region_rgba8(image, (mp_rect){0, 0, width, height}, pixels); - } - return(image); -} - -mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip) -{ - mg_image image = mg_image_nil(); - int width, height, channels; - - stbi_set_flip_vertically_on_load(flip ? 1 : 0); - u8* pixels = stbi_load_from_memory((u8*)data.ptr, data.len, &width, &height, &channels, 4); - - if(pixels) - { - image = mg_image_create_from_rgba8(surface, width, height, pixels); - free(pixels); - } - return(image); -} - -#if !PLATFORM_ORCA - -mg_image mg_image_create_from_file(mg_surface surface, str8 path, bool flip) -{ - mg_image image = mg_image_nil(); - int width, height, channels; - - const char* cpath = str8_to_cstring(mem_scratch(), path); - - stbi_set_flip_vertically_on_load(flip ? 1 : 0); - u8* pixels = stbi_load(cpath, &width, &height, &channels, 4); - if(pixels) - { - image = mg_image_create_from_rgba8(surface, width, height, pixels); - free(pixels); - } - return(image); -} - -#endif // !PLATFORM_ORCA - - -void mg_image_draw_region(mg_image image, mp_rect srcRegion, mp_rect dstRegion) -{ - mg_canvas_data* canvas = __mgCurrentCanvas; - if(canvas) - { - mg_image oldImage = canvas->attributes.image; - mp_rect oldSrcRegion = canvas->attributes.srcRegion; - mg_color oldColor = canvas->attributes.color; - - canvas->attributes.image = image; - canvas->attributes.srcRegion = srcRegion; - canvas->attributes.color = (mg_color){1, 1, 1, 1}; - - mg_move_to(dstRegion.x, dstRegion.y); - mg_line_to(dstRegion.x+dstRegion.w, dstRegion.y); - mg_line_to(dstRegion.x+dstRegion.w, dstRegion.y+dstRegion.h); - mg_line_to(dstRegion.x, dstRegion.y+dstRegion.h); - mg_close_path(); - - mg_fill(); - - canvas->attributes.image = oldImage; - canvas->attributes.srcRegion = oldSrcRegion; - canvas->attributes.color = oldColor; - } -} - -void mg_image_draw(mg_image image, mp_rect rect) -{ - vec2 size = mg_image_size(image); - mg_image_draw_region(image, (mp_rect){0, 0, size.x, size.y}, rect); -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): atlasing -//------------------------------------------------------------------------------------------ - -//NOTE: rectangle allocator -typedef struct mg_rect_atlas -{ - mem_arena* arena; - ivec2 size; - ivec2 pos; - u32 lineHeight; - -} mg_rect_atlas; - -mg_rect_atlas* mg_rect_atlas_create(mem_arena* arena, i32 width, i32 height) -{ - mg_rect_atlas* atlas = mem_arena_alloc_type(arena, mg_rect_atlas); - memset(atlas, 0, sizeof(mg_rect_atlas)); - atlas->arena = arena; - atlas->size = (ivec2){width, height}; - return(atlas); -} - -mp_rect mg_rect_atlas_alloc(mg_rect_atlas* atlas, i32 width, i32 height) -{ - mp_rect rect = {0, 0, 0, 0}; - if(width > 0 && height > 0) - { - if(atlas->pos.x + width >= atlas->size.x) - { - atlas->pos.x = 0; - atlas->pos.y += (atlas->lineHeight + 1); - atlas->lineHeight = 0; - } - if( atlas->pos.x + width < atlas->size.x - && atlas->pos.y + height < atlas->size.y) - { - rect = (mp_rect){atlas->pos.x, atlas->pos.y, width, height}; - - atlas->pos.x += (width + 1); - atlas->lineHeight = maximum(atlas->lineHeight, height); - } - } - return(rect); -} - -void mg_rect_atlas_recycle(mg_rect_atlas* atlas, mp_rect rect) -{ - //TODO -} - -mg_image_region mg_image_atlas_alloc_from_rgba8(mg_rect_atlas* atlas, mg_image backingImage, u32 width, u32 height, u8* pixels) -{ - mg_image_region imageRgn = {0}; - - mp_rect rect = mg_rect_atlas_alloc(atlas, width, height); - if(rect.w == width && rect.h == height) - { - mg_image_upload_region_rgba8(backingImage, rect, pixels); - imageRgn.rect = rect; - imageRgn.image = backingImage; - } - return(imageRgn); -} - -#if !PLATFORM_ORCA - -mg_image_region mg_image_atlas_alloc_from_data(mg_rect_atlas* atlas, mg_image backingImage, str8 data, bool flip) -{ - mg_image_region imageRgn = {0}; - - stbi_set_flip_vertically_on_load(flip ? 1 : 0); - - int width, height, channels; - u8* pixels = stbi_load_from_memory((u8*)data.ptr, data.len, &width, &height, &channels, 4); - if(pixels) - { - imageRgn = mg_image_atlas_alloc_from_rgba8(atlas, backingImage, width, height, pixels); - free(pixels); - } - return(imageRgn); -} - -mg_image_region mg_image_atlas_alloc_from_file(mg_rect_atlas* atlas, mg_image backingImage, str8 path, bool flip) -{ - mg_image_region imageRgn = {0}; - - stbi_set_flip_vertically_on_load(flip ? 1 : 0); - - const char* cpath = str8_to_cstring(mem_scratch(), path); - int width, height, channels; - u8* pixels = stbi_load(cpath, &width, &height, &channels, 4); - if(pixels) - { - imageRgn = mg_image_atlas_alloc_from_rgba8(atlas, backingImage, width, height, pixels); - free(pixels); - } - return(imageRgn); -} -#endif // !PLATFORM_ORCA - -void mg_image_atlas_recycle(mg_rect_atlas* atlas, mg_image_region imageRgn) -{ - mg_rect_atlas_recycle(atlas, imageRgn.rect); -} +/************************************************************//** +* +* @file: graphics_common.c +* @author: Martin Fouilleul +* @date: 23/01/2023 +* @revision: +* +*****************************************************************/ + +#define _USE_MATH_DEFINES //NOTE: necessary for MSVC +#include +#include"platform/platform.h" + +#define STB_IMAGE_IMPLEMENTATION +#if PLATFORM_ORCA + #define STBI_NO_STDIO + #define STBI_NO_HDR +#endif +#include"stb/stb_image.h" + +#define STB_TRUETYPE_IMPLEMENTATION +#include"stb/stb_truetype.h" + +#include"platform/platform_debug.h" +#include"platform/platform_debug.h" +#include"graphics_common.h" + +typedef struct mg_glyph_map_entry +{ + unicode_range range; + u32 firstGlyphIndex; + +} mg_glyph_map_entry; + +typedef struct mg_glyph_data +{ + bool exists; + utf32 codePoint; + mg_path_descriptor pathDescriptor; + mg_text_extents extents; + //... + +} mg_glyph_data; + +enum +{ + MG_MATRIX_STACK_MAX_DEPTH = 64, + MG_CLIP_STACK_MAX_DEPTH = 64, + MG_MAX_PATH_ELEMENT_COUNT = 2<<20, + MG_MAX_PRIMITIVE_COUNT = 8<<10 +}; + +typedef struct mg_font_data +{ + list_elt freeListElt; + + u32 rangeCount; + u32 glyphCount; + u32 outlineCount; + mg_glyph_map_entry* glyphMap; + mg_glyph_data* glyphs; + mg_path_elt* outlines; + + f32 unitsPerEm; + mg_font_extents extents; + +} mg_font_data; + +typedef struct mg_canvas_data mg_canvas_data; + +typedef enum mg_handle_kind +{ + MG_HANDLE_NONE = 0, + MG_HANDLE_SURFACE, + MG_HANDLE_CANVAS, + MG_HANDLE_FONT, + MG_HANDLE_IMAGE, + MG_HANDLE_SURFACE_SERVER, +} mg_handle_kind; + +typedef struct mg_handle_slot +{ + list_elt freeListElt; + u32 generation; + mg_handle_kind kind; + + void* data; + +} mg_handle_slot; + +enum { MG_HANDLES_MAX_COUNT = 512 }; + +typedef struct mg_data +{ + bool init; + + mg_handle_slot handleArray[MG_HANDLES_MAX_COUNT]; + int handleNextIndex; + list_info handleFreeList; + + mem_arena resourceArena; + list_info canvasFreeList; + list_info fontFreeList; + +} mg_data; + +typedef struct mg_canvas_data +{ + list_elt freeListElt; + + mg_attributes attributes; + bool textFlip; + + mg_path_elt pathElements[MG_MAX_PATH_ELEMENT_COUNT]; + mg_path_descriptor path; + vec2 subPathStartPoint; + vec2 subPathLastPoint; + + mg_mat2x3 matrixStack[MG_MATRIX_STACK_MAX_DEPTH]; + u32 matrixStackSize; + + mp_rect clipStack[MG_CLIP_STACK_MAX_DEPTH]; + u32 clipStackSize; + + u32 primitiveCount; + mg_primitive primitives[MG_MAX_PRIMITIVE_COUNT]; + + //NOTE: these are used at render time + mg_color clearColor; + + vec4 shapeExtents; + vec4 shapeScreenExtents; + +} mg_canvas_data; + +static mg_data __mgData = {0}; + + +void mg_init() +{ + if(!__mgData.init) + { + __mgData.handleNextIndex = 0; + mem_arena_init(&__mgData.resourceArena); + __mgData.init = true; + } +} + +//------------------------------------------------------------------------ +// handle pools procedures +//------------------------------------------------------------------------ + +u64 mg_handle_alloc(mg_handle_kind kind, void* data) +{ + if(!__mgData.init) + { + mg_init(); + } + + mg_handle_slot* slot = list_pop_entry(&__mgData.handleFreeList, mg_handle_slot, freeListElt); + if(!slot && __mgData.handleNextIndex < MG_HANDLES_MAX_COUNT) + { + slot = &__mgData.handleArray[__mgData.handleNextIndex]; + __mgData.handleNextIndex++; + + slot->generation = 1; + } + u64 h = 0; + if(slot) + { + slot->kind = kind; + slot->data = data; + + h = ((u64)(slot - __mgData.handleArray))<<32 + |((u64)(slot->generation)); + } + return(h); +} + +void mg_handle_recycle(u64 h) +{ + DEBUG_ASSERT(__mgData.init); + + u32 index = h>>32; + u32 generation = h & 0xffffffff; + + if(index*sizeof(mg_handle_slot) < __mgData.handleNextIndex) + { + mg_handle_slot* slot = &__mgData.handleArray[index]; + if(slot->generation == generation) + { + DEBUG_ASSERT(slot->generation != UINT32_MAX, "surface slot generation wrap around\n"); + slot->generation++; + list_push(&__mgData.handleFreeList, &slot->freeListElt); + } + } +} + +void* mg_data_from_handle(mg_handle_kind kind, u64 h) +{ + DEBUG_ASSERT(__mgData.init); + + void* data = 0; + + u32 index = h>>32; + u32 generation = h & 0xffffffff; + + if(index < __mgData.handleNextIndex) + { + mg_handle_slot* slot = &__mgData.handleArray[index]; + if( slot->generation == generation + && slot->kind == kind) + { + data = slot->data; + } + } + return(data); +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics canvas internal +//------------------------------------------------------------------------------------------ + +mp_thread_local mg_canvas_data* __mgCurrentCanvas = 0; +mp_thread_local mg_canvas __mgCurrentCanvasHandle = {0}; + +//TODO put these elsewhere +bool vec2_equal(vec2 v0, vec2 v1) +{ + return(v0.x == v1.x && v0.y == v1.y); +} + +bool vec2_close(vec2 p0, vec2 p1, f32 tolerance) +{ + f32 norm2 = (p1.x - p0.x)*(p1.x - p0.x) + (p1.y - p0.y)*(p1.y - p0.y); + return(fabs(norm2) < tolerance); +} + +vec2 vec2_mul(f32 f, vec2 v) +{ + return((vec2){f*v.x, f*v.y}); +} + +vec2 vec2_add(vec2 v0, vec2 v1) +{ + return((vec2){v0.x + v1.x, v0.y + v1.y}); +} + +mg_mat2x3 mg_mat2x3_mul_m(mg_mat2x3 lhs, mg_mat2x3 rhs) +{ + mg_mat2x3 res; + res.m[0] = lhs.m[0]*rhs.m[0] + lhs.m[1]*rhs.m[3]; + res.m[1] = lhs.m[0]*rhs.m[1] + lhs.m[1]*rhs.m[4]; + res.m[2] = lhs.m[0]*rhs.m[2] + lhs.m[1]*rhs.m[5] + lhs.m[2]; + res.m[3] = lhs.m[3]*rhs.m[0] + lhs.m[4]*rhs.m[3]; + res.m[4] = lhs.m[3]*rhs.m[1] + lhs.m[4]*rhs.m[4]; + res.m[5] = lhs.m[3]*rhs.m[2] + lhs.m[4]*rhs.m[5] + lhs.m[5]; + + return(res); +} + +mg_mat2x3 mg_mat2x3_inv(mg_mat2x3 x) +{ + mg_mat2x3 res; + res.m[0] = x.m[4]/(x.m[0]*x.m[4] - x.m[1]*x.m[3]); + res.m[1] = x.m[1]/(x.m[1]*x.m[3] - x.m[0]*x.m[4]); + res.m[3] = x.m[3]/(x.m[1]*x.m[3] - x.m[0]*x.m[4]); + res.m[4] = x.m[0]/(x.m[0]*x.m[4] - x.m[1]*x.m[3]); + res.m[2] = -(x.m[2]*res.m[0] + x.m[5]*res.m[1]); + res.m[5] = -(x.m[2]*res.m[3] + x.m[5]*res.m[4]); + return(res); +} + +vec2 mg_mat2x3_mul(mg_mat2x3 m, vec2 p) +{ + f32 x = p.x*m.m[0] + p.y*m.m[1] + m.m[2]; + f32 y = p.x*m.m[3] + p.y*m.m[4] + m.m[5]; + return((vec2){x, y}); +} + +mg_mat2x3 mg_matrix_stack_top(mg_canvas_data* canvas) +{ + if(canvas->matrixStackSize == 0) + { + return((mg_mat2x3){1, 0, 0, + 0, 1, 0}); + } + else + { + return(canvas->matrixStack[canvas->matrixStackSize-1]); + } +} + +void mg_matrix_stack_push(mg_canvas_data* canvas, mg_mat2x3 transform) +{ + if(canvas->matrixStackSize >= MG_MATRIX_STACK_MAX_DEPTH) + { + log_error("matrix stack overflow\n"); + } + else + { + canvas->matrixStack[canvas->matrixStackSize] = transform; + canvas->matrixStackSize++; + } +} + +void mg_matrix_stack_pop(mg_canvas_data* canvas) +{ + if(canvas->matrixStackSize == 0) + { + log_error("matrix stack underflow\n"); + } + else + { + canvas->matrixStackSize--; + mg_matrix_stack_top(canvas); + } +} + +mp_rect mg_clip_stack_top(mg_canvas_data* canvas) +{ + if(canvas->clipStackSize == 0) + { + return((mp_rect){-FLT_MAX/2, -FLT_MAX/2, FLT_MAX, FLT_MAX}); + } + else + { + return(canvas->clipStack[canvas->clipStackSize-1]); + } +} + +void mg_clip_stack_push(mg_canvas_data* canvas, mp_rect clip) +{ + if(canvas->clipStackSize >= MG_CLIP_STACK_MAX_DEPTH) + { + log_error("clip stack overflow\n"); + } + else + { + canvas->clipStack[canvas->clipStackSize] = clip; + canvas->clipStackSize++; + } +} + +void mg_clip_stack_pop(mg_canvas_data* canvas) +{ + if(canvas->clipStackSize == 0) + { + log_error("clip stack underflow\n"); + } + else + { + canvas->clipStackSize--; + } +} + +void mg_push_command(mg_canvas_data* canvas, mg_primitive primitive) +{ + //NOTE(martin): push primitive and updates current stream, eventually patching a pending jump. + ASSERT(canvas->primitiveCount < MG_MAX_PRIMITIVE_COUNT); + + canvas->primitives[canvas->primitiveCount] = primitive; + canvas->primitives[canvas->primitiveCount].attributes = canvas->attributes; + canvas->primitives[canvas->primitiveCount].attributes.transform = mg_matrix_stack_top(canvas); + canvas->primitives[canvas->primitiveCount].attributes.clip = mg_clip_stack_top(canvas); + canvas->primitiveCount++; +} + +void mg_new_path(mg_canvas_data* canvas) +{ + canvas->path.startIndex += canvas->path.count; + canvas->path.count = 0; + canvas->subPathStartPoint = canvas->subPathLastPoint; + canvas->path.startPoint = canvas->subPathStartPoint; +} + +void mg_path_push_elements(mg_canvas_data* canvas, u32 count, mg_path_elt* elements) +{ + ASSERT(canvas->path.count + canvas->path.startIndex + count < MG_MAX_PATH_ELEMENT_COUNT); + memcpy(canvas->pathElements + canvas->path.startIndex + canvas->path.count, elements, count*sizeof(mg_path_elt)); + canvas->path.count += count; + + ASSERT(canvas->path.count < MG_MAX_PATH_ELEMENT_COUNT); +} + +void mg_path_push_element(mg_canvas_data* canvas, mg_path_elt elt) +{ + mg_path_push_elements(canvas, 1, &elt); +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): fonts +//------------------------------------------------------------------------------------------ + +mg_font mg_font_nil() { return((mg_font){.h = 0}); } +bool mg_font_is_nil(mg_font font) { return(font.h == 0); } + +mg_font mg_font_handle_alloc(mg_font_data* font) +{ + mg_font handle = {.h = mg_handle_alloc(MG_HANDLE_FONT, (void*)font) }; + return(handle); +} + +mg_font_data* mg_font_data_from_handle(mg_font handle) +{ + mg_font_data* data = mg_data_from_handle(MG_HANDLE_FONT, handle.h); + return(data); +} + +mg_font mg_font_create_from_memory(u32 size, byte* buffer, u32 rangeCount, unicode_range* ranges) +{ + if(!__mgData.init) + { + mg_init(); + } + mg_font fontHandle = mg_font_nil(); + + mg_font_data* font = list_pop_entry(&__mgData.fontFreeList, mg_font_data, freeListElt); + if(!font) + { + font = mem_arena_alloc_type(&__mgData.resourceArena, mg_font_data); + } + if(font) + { + memset(font, 0, sizeof(mg_font_data)); + fontHandle = mg_font_handle_alloc(font); + + stbtt_fontinfo stbttFontInfo; + stbtt_InitFont(&stbttFontInfo, buffer, 0); + + //NOTE(martin): load font metrics data + font->unitsPerEm = 1./stbtt_ScaleForMappingEmToPixels(&stbttFontInfo, 1); + + int ascent, descent, lineGap, x0, x1, y0, y1; + stbtt_GetFontVMetrics(&stbttFontInfo, &ascent, &descent, &lineGap); + stbtt_GetFontBoundingBox(&stbttFontInfo, &x0, &y0, &x1, &y1); + + font->extents.ascent = ascent; + font->extents.descent = -descent; + font->extents.leading = lineGap; + font->extents.width = x1 - x0; + + stbtt_GetCodepointBox(&stbttFontInfo, 'x', &x0, &y0, &x1, &y1); + font->extents.xHeight = y1 - y0; + + stbtt_GetCodepointBox(&stbttFontInfo, 'M', &x0, &y0, &x1, &y1); + font->extents.capHeight = y1 - y0; + + //NOTE(martin): load codepoint ranges + font->rangeCount = rangeCount; + font->glyphMap = malloc_array(mg_glyph_map_entry, rangeCount); + font->glyphCount = 0; + + for(int i=0; iglyphMap[i].range = ranges[i]; + font->glyphMap[i].firstGlyphIndex = font->glyphCount + 1; + font->glyphCount += ranges[i].count; + } + + font->glyphs = malloc_array(mg_glyph_data, font->glyphCount); + + //NOTE(martin): first do a count of outlines + int outlineCount = 0; + for(int rangeIndex=0; rangeIndexglyphMap[rangeIndex].range.firstCodePoint; + u32 firstGlyphIndex = font->glyphMap[rangeIndex].firstGlyphIndex; + u32 endGlyphIndex = firstGlyphIndex + font->glyphMap[rangeIndex].range.count; + + for(int glyphIndex = firstGlyphIndex; + glyphIndex < endGlyphIndex; glyphIndex++) + { + int stbttGlyphIndex = stbtt_FindGlyphIndex(&stbttFontInfo, codePoint); + if(stbttGlyphIndex == 0) + { + //NOTE(martin): the codepoint is not found in the font + codePoint++; + continue; + } + //NOTE(martin): load glyph outlines + stbtt_vertex* vertices = 0; + outlineCount += stbtt_GetGlyphShape(&stbttFontInfo, stbttGlyphIndex, &vertices); + stbtt_FreeShape(&stbttFontInfo, vertices); + codePoint++; + } + } + //NOTE(martin): allocate outlines + font->outlines = malloc_array(mg_path_elt, outlineCount); + font->outlineCount = 0; + + //NOTE(martin): load metrics and outlines + for(int rangeIndex=0; rangeIndexglyphMap[rangeIndex].range.firstCodePoint; + u32 firstGlyphIndex = font->glyphMap[rangeIndex].firstGlyphIndex; + u32 endGlyphIndex = firstGlyphIndex + font->glyphMap[rangeIndex].range.count; + + for(int glyphIndex = firstGlyphIndex; + glyphIndex < endGlyphIndex; glyphIndex++) + { + mg_glyph_data* glyph = &(font->glyphs[glyphIndex-1]); + + int stbttGlyphIndex = stbtt_FindGlyphIndex(&stbttFontInfo, codePoint); + if(stbttGlyphIndex == 0) + { + //NOTE(martin): the codepoint is not found in the font, we zero the glyph info + memset(glyph, 0, sizeof(*glyph)); + codePoint++; + continue; + } + + glyph->exists = true; + glyph->codePoint = codePoint; + + //NOTE(martin): load glyph metric + int xAdvance, xBearing, x0, y0, x1, y1; + stbtt_GetGlyphHMetrics(&stbttFontInfo, stbttGlyphIndex, &xAdvance, &xBearing); + stbtt_GetGlyphBox(&stbttFontInfo, stbttGlyphIndex, &x0, &y0, &x1, &y1); + + glyph->extents.xAdvance = (f32)xAdvance; + glyph->extents.yAdvance = 0; + glyph->extents.xBearing = (f32)xBearing; + glyph->extents.yBearing = y0; + + glyph->extents.width = x1 - x0; + glyph->extents.height = y1 - y0; + + //NOTE(martin): load glyph outlines + + stbtt_vertex* vertices = 0; + int vertexCount = stbtt_GetGlyphShape(&stbttFontInfo, stbttGlyphIndex, &vertices); + + glyph->pathDescriptor = (mg_path_descriptor){.startIndex = font->outlineCount, + .count = vertexCount, + .startPoint = {0, 0}}; + + mg_path_elt* elements = font->outlines + font->outlineCount; + font->outlineCount += vertexCount; + vec2 currentPos = {0, 0}; + + for(int vertIndex = 0; vertIndex < vertexCount; vertIndex++) + { + f32 x = vertices[vertIndex].x; + f32 y = vertices[vertIndex].y; + f32 cx = vertices[vertIndex].cx; + f32 cy = vertices[vertIndex].cy; + f32 cx1 = vertices[vertIndex].cx1; + f32 cy1 = vertices[vertIndex].cy1; + + switch(vertices[vertIndex].type) + { + case STBTT_vmove: + elements[vertIndex].type = MG_PATH_MOVE; + elements[vertIndex].p[0] = (vec2){x, y}; + break; + + case STBTT_vline: + elements[vertIndex].type = MG_PATH_LINE; + elements[vertIndex].p[0] = (vec2){x, y}; + break; + + case STBTT_vcurve: + { + elements[vertIndex].type = MG_PATH_QUADRATIC; + elements[vertIndex].p[0] = (vec2){cx, cy}; + elements[vertIndex].p[1] = (vec2){x, y}; + } break; + + case STBTT_vcubic: + elements[vertIndex].type = MG_PATH_CUBIC; + elements[vertIndex].p[0] = (vec2){cx, cy}; + elements[vertIndex].p[1] = (vec2){cx1, cy1}; + elements[vertIndex].p[2] = (vec2){x, y}; + break; + } + currentPos = (vec2){x, y}; + } + stbtt_FreeShape(&stbttFontInfo, vertices); + codePoint++; + } + } + } + return(fontHandle); +} + +void mg_font_destroy(mg_font fontHandle) +{ + mg_font_data* fontData = mg_font_data_from_handle(fontHandle); + if(fontData) + { + free(fontData->glyphMap); + free(fontData->glyphs); + free(fontData->outlines); + + list_push(&__mgData.fontFreeList, &fontData->freeListElt); + mg_handle_recycle(fontHandle.h); + } +} + +str32 mg_font_get_glyph_indices_from_font_data(mg_font_data* fontData, str32 codePoints, str32 backing) +{ + u64 count = minimum(codePoints.len, backing.len); + + for(int i = 0; irangeCount; rangeIndex++) + { + if(codePoints.ptr[i] >= fontData->glyphMap[rangeIndex].range.firstCodePoint + && codePoints.ptr[i] < (fontData->glyphMap[rangeIndex].range.firstCodePoint + fontData->glyphMap[rangeIndex].range.count)) + { + u32 rangeOffset = codePoints.ptr[i] - fontData->glyphMap[rangeIndex].range.firstCodePoint; + glyphIndex = fontData->glyphMap[rangeIndex].firstGlyphIndex + rangeOffset; + break; + } + } + if(glyphIndex && !fontData->glyphs[glyphIndex].exists) + { + backing.ptr[i] = 0; + } + backing.ptr[i] = glyphIndex; + } + str32 res = {.len = count, .ptr = backing.ptr}; + return(res); +} + +u32 mg_font_get_glyph_index_from_font_data(mg_font_data* fontData, utf32 codePoint) +{ + u32 glyphIndex = 0; + str32 codePoints = {1, &codePoint}; + str32 backing = {1, &glyphIndex}; + mg_font_get_glyph_indices_from_font_data(fontData, codePoints, backing); + return(glyphIndex); +} + +str32 mg_font_get_glyph_indices(mg_font font, str32 codePoints, str32 backing) +{ + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return((str32){0}); + } + return(mg_font_get_glyph_indices_from_font_data(fontData, codePoints, backing)); +} + +str32 mg_font_push_glyph_indices(mg_font font, mem_arena* arena, str32 codePoints) +{ + u32* buffer = mem_arena_alloc_array(arena, u32, codePoints.len); + str32 backing = {codePoints.len, buffer}; + return(mg_font_get_glyph_indices(font, codePoints, backing)); +} + +u32 mg_font_get_glyph_index(mg_font font, utf32 codePoint) +{ + u32 glyphIndex = 0; + str32 codePoints = {1, &codePoint}; + str32 backing = {1, &glyphIndex}; + mg_font_get_glyph_indices(font, codePoints, backing); + return(glyphIndex); +} + +mg_glyph_data* mg_font_get_glyph_data(mg_font_data* fontData, u32 glyphIndex) +{ + DEBUG_ASSERT(glyphIndex); + DEBUG_ASSERT(glyphIndex < fontData->glyphCount); + return(&(fontData->glyphs[glyphIndex-1])); +} + +mg_font_extents mg_font_get_extents(mg_font font) +{ + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return((mg_font_extents){0}); + } + return(fontData->extents); +} + +mg_font_extents mg_font_get_scaled_extents(mg_font font, f32 emSize) +{ + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return((mg_font_extents){0}); + } + f32 scale = emSize/fontData->unitsPerEm; + mg_font_extents extents = fontData->extents; + + extents.ascent *= scale; + extents.descent *= scale; + extents.leading *= scale; + extents.xHeight *= scale; + extents.capHeight *= scale; + extents.width *= scale; + + return(extents); +} + + +f32 mg_font_get_scale_for_em_pixels(mg_font font, f32 emSize) +{ + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return(0); + } + return(emSize/fontData->unitsPerEm); +} + +void mg_font_get_glyph_extents_from_font_data(mg_font_data* fontData, + str32 glyphIndices, + mg_text_extents* outExtents) +{ + for(int i=0; i= fontData->glyphCount) + { + continue; + } + mg_glyph_data* glyph = mg_font_get_glyph_data(fontData, glyphIndices.ptr[i]); + outExtents[i] = glyph->extents; + } +} + +int mg_font_get_glyph_extents(mg_font font, str32 glyphIndices, mg_text_extents* outExtents) +{ + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return(-1); + } + mg_font_get_glyph_extents_from_font_data(fontData, glyphIndices, outExtents); + return(0); +} + +int mg_font_get_codepoint_extents(mg_font font, utf32 codePoint, mg_text_extents* outExtents) +{ + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return(-1); + } + u32 glyphIndex = 0; + str32 codePoints = {1, &codePoint}; + str32 backing = {1, &glyphIndex}; + str32 glyphs = mg_font_get_glyph_indices_from_font_data(fontData, codePoints, backing); + mg_font_get_glyph_extents_from_font_data(fontData, glyphs, outExtents); + return(0); +} + +mp_rect mg_text_bounding_box_utf32(mg_font font, f32 fontSize, str32 codePoints) +{ + if(!codePoints.len || !codePoints.ptr) + { + return((mp_rect){0}); + } + + mg_font_data* fontData = mg_font_data_from_handle(font); + if(!fontData) + { + return((mp_rect){0}); + } + + mem_arena* scratch = mem_scratch(); + str32 glyphIndices = mg_font_push_glyph_indices(font, scratch, codePoints); + + //NOTE(martin): find width of missing character + //TODO(martin): should cache that at font creation... + mg_text_extents missingGlyphExtents; + u32 missingGlyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 0xfffd); + + if(missingGlyphIndex) + { + mg_font_get_glyph_extents_from_font_data(fontData, (str32){1, &missingGlyphIndex}, &missingGlyphExtents); + } + else + { + //NOTE(martin): could not find replacement glyph, try to get an 'x' to get a somewhat correct width + // to render an empty rectangle. Otherwise just render with the max font width + f32 boxWidth = fontData->extents.width * 0.8; + f32 xBearing = fontData->extents.width * 0.1; + f32 xAdvance = fontData->extents.width; + + missingGlyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 'x'); + if(missingGlyphIndex) + { + mg_font_get_glyph_extents_from_font_data(fontData, (str32){1, &missingGlyphIndex}, &missingGlyphExtents); + } + else + { + missingGlyphExtents.xBearing = fontData->extents.width * 0.1; + missingGlyphExtents.yBearing = 0; + missingGlyphExtents.width = fontData->extents.width * 0.8; + missingGlyphExtents.xAdvance = fontData->extents.width; + missingGlyphExtents.yAdvance = 0; + } + } + + //NOTE(martin): accumulate text extents + f32 width = 0; + f32 x = 0; + f32 y = 0; + f32 lineHeight = fontData->extents.descent + fontData->extents.ascent; + + for(int i=0; i= fontData->glyphCount) + { + extents = missingGlyphExtents; + } + else + { + glyph = mg_font_get_glyph_data(fontData, glyphIndices.ptr[i]); + extents = glyph->extents; + } + x += extents.xAdvance; + y += extents.yAdvance; + + if(glyph && glyph->codePoint == '\n') + { + width = maximum(width, x); + x = 0; + y += lineHeight + fontData->extents.leading; + } + } + width = maximum(width, x); + + f32 fontScale = mg_font_get_scale_for_em_pixels(font, fontSize); + mp_rect rect = {0, -fontData->extents.ascent * fontScale, width * fontScale, (y + lineHeight) * fontScale }; + return(rect); +} + +mp_rect mg_text_bounding_box(mg_font font, f32 fontSize, str8 text) +{ + if(!text.len || !text.ptr) + { + return((mp_rect){0}); + } + + mem_arena* scratch = mem_scratch(); + str32 codePoints = utf8_push_to_codepoints(scratch, text); + return(mg_text_bounding_box_utf32(font, fontSize, codePoints)); +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics canvas API +//------------------------------------------------------------------------------------------ + +mg_canvas mg_canvas_nil() { return((mg_canvas){.h = 0}); } +bool mg_canvas_is_nil(mg_canvas canvas) { return(canvas.h == 0); } + +mg_canvas mg_canvas_handle_alloc(mg_canvas_data* canvas) +{ + mg_canvas handle = {.h = mg_handle_alloc(MG_HANDLE_CANVAS, (void*)canvas) }; + return(handle); +} + +mg_canvas_data* mg_canvas_data_from_handle(mg_canvas handle) +{ + mg_canvas_data* data = mg_data_from_handle(MG_HANDLE_CANVAS, handle.h); + return(data); +} + +mg_canvas mg_canvas_create() +{ + if(!__mgData.init) + { + mg_init(); + } + + mg_canvas canvasHandle = mg_canvas_nil(); + mg_canvas_data* canvas = list_pop_entry(&__mgData.canvasFreeList, mg_canvas_data, freeListElt); + if(!canvas) + { + canvas = mem_arena_alloc_type(&__mgData.resourceArena, mg_canvas_data); + } + if(canvas) + { + canvas->textFlip = false; + canvas->path = (mg_path_descriptor){0}; + canvas->matrixStackSize = 0; + canvas->clipStackSize = 0; + canvas->primitiveCount = 0; + canvas->clearColor = (mg_color){0, 0, 0, 0}; + + canvas->attributes = (mg_attributes){0}; + canvas->attributes.color = (mg_color){0, 0, 0, 1}; + canvas->attributes.tolerance = 1; + canvas->attributes.width = 10; + canvas->attributes.clip = (mp_rect){-FLT_MAX/2, -FLT_MAX/2, FLT_MAX, FLT_MAX}; + + canvasHandle = mg_canvas_handle_alloc(canvas); + + mg_canvas_set_current(canvasHandle); + } + return(canvasHandle); +} + +void mg_canvas_destroy(mg_canvas handle) +{ + mg_canvas_data* canvas = mg_canvas_data_from_handle(handle); + if(canvas) + { + if(__mgCurrentCanvas == canvas) + { + __mgCurrentCanvas = 0; + __mgCurrentCanvasHandle = mg_canvas_nil(); + } + list_push(&__mgData.canvasFreeList, &canvas->freeListElt); + mg_handle_recycle(handle.h); + } +} + +mg_canvas mg_canvas_set_current(mg_canvas canvas) +{ + mg_canvas old = __mgCurrentCanvasHandle; + __mgCurrentCanvasHandle = canvas; + __mgCurrentCanvas = mg_canvas_data_from_handle(canvas); + return(old); +} + +void mg_render(mg_surface surface, mg_canvas canvas) +{ + mg_canvas_data* canvasData = mg_canvas_data_from_handle(canvas); + if(canvasData) + { + int eltCount = canvasData->path.startIndex + canvasData->path.count; + mg_surface_render_commands(surface, + canvasData->clearColor, + canvasData->primitiveCount, + canvasData->primitives, + eltCount, + canvasData->pathElements); + + canvasData->primitiveCount = 0; + canvasData->path.startIndex = 0; + canvasData->path.count = 0; + } +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): transform, viewport and clipping +//------------------------------------------------------------------------------------------ + +void mg_matrix_push(mg_mat2x3 matrix) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + mg_mat2x3 transform = mg_matrix_stack_top(canvas); + mg_matrix_stack_push(canvas, mg_mat2x3_mul_m(transform, matrix)); + } +} + +void mg_matrix_pop() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + mg_matrix_stack_pop(canvas); + } +} + +void mg_clip_push(f32 x, f32 y, f32 w, f32 h) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + mp_rect clip = {x, y, w, h}; + + //NOTE(martin): transform clip + mg_mat2x3 transform = mg_matrix_stack_top(canvas); + vec2 p0 = mg_mat2x3_mul(transform, (vec2){clip.x, clip.y}); + vec2 p1 = mg_mat2x3_mul(transform, (vec2){clip.x + clip.w, clip.y}); + vec2 p2 = mg_mat2x3_mul(transform, (vec2){clip.x + clip.w, clip.y + clip.h}); + vec2 p3 = mg_mat2x3_mul(transform, (vec2){clip.x, clip.y + clip.h}); + + f32 x0 = minimum(p0.x, minimum(p1.x, minimum(p2.x, p3.x))); + f32 y0 = minimum(p0.y, minimum(p1.y, minimum(p2.y, p3.y))); + f32 x1 = maximum(p0.x, maximum(p1.x, maximum(p2.x, p3.x))); + f32 y1 = maximum(p0.y, maximum(p1.y, maximum(p2.y, p3.y))); + + mp_rect current = mg_clip_stack_top(canvas); + + //NOTE(martin): intersect with current clip + x0 = maximum(current.x, x0); + y0 = maximum(current.y, y0); + x1 = minimum(current.x + current.w, x1); + y1 = minimum(current.y + current.h, y1); + + mp_rect r = {x0, y0, maximum(0, x1-x0), maximum(0, y1-y0)}; + mg_clip_stack_push(canvas, r); + + canvas->attributes.clip = r; + } +} + +void mg_clip_pop() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + mg_clip_stack_pop(canvas); + canvas->attributes.clip = mg_clip_stack_top(canvas); + } +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): graphics attributes setting/getting +//------------------------------------------------------------------------------------------ +void mg_set_color(mg_color color) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.color = color; + } +} + +void mg_set_color_rgba(f32 r, f32 g, f32 b, f32 a) +{ + mg_set_color((mg_color){r, g, b, a}); +} + +void mg_set_width(f32 width) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.width = width; + } +} + +void mg_set_tolerance(f32 tolerance) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.tolerance = tolerance; + } +} + +void mg_set_joint(mg_joint_type joint) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.joint = joint; + } +} + +void mg_set_max_joint_excursion(f32 maxJointExcursion) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.maxJointExcursion = maxJointExcursion; + } +} + +void mg_set_cap(mg_cap_type cap) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.cap = cap; + } +} + +void mg_set_font(mg_font font) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.font = font; + } +} + +void mg_set_font_size(f32 fontSize) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.fontSize = fontSize; + } +} + +void mg_set_text_flip(bool flip) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->textFlip = flip; + } +} + +void mg_set_image(mg_image image) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.image = image; + vec2 size = mg_image_size(image); + canvas->attributes.srcRegion = (mp_rect){0, 0, size.x, size.y}; + } +} + +void mg_set_image_source_region(mp_rect region) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->attributes.srcRegion = region; + } +} + +mg_color mg_get_color() +{ + mg_color color = {0}; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + color = canvas->attributes.color; + } + return(color); +} + +f32 mg_get_width() +{ + f32 width = 0; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + width = canvas->attributes.width; + } + return(width); +} + +f32 mg_get_tolerance() +{ + f32 tolerance = 0; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + tolerance = canvas->attributes.tolerance; + } + return(tolerance); +} + +mg_joint_type mg_get_joint() +{ + mg_joint_type joint = 0; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + joint = canvas->attributes.joint; + } + return(joint); +} + +f32 mg_get_max_joint_excursion() +{ + f32 maxJointExcursion = 0; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + maxJointExcursion = canvas->attributes.maxJointExcursion; + } + return(maxJointExcursion); +} + +mg_cap_type mg_get_cap() +{ + mg_cap_type cap = 0; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + cap = canvas->attributes.cap; + } + return(cap); +} + +mg_font mg_get_font() +{ + mg_font font = mg_font_nil(); + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + font = canvas->attributes.font; + } + return(font); +} + +f32 mg_get_font_size() +{ + f32 fontSize = 0; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + fontSize = canvas->attributes.fontSize; + } + return(fontSize); +} + +bool mg_get_text_flip() +{ + bool flip = false; + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + flip = canvas->textFlip; + } + return(flip); +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): path construction +//------------------------------------------------------------------------------------------ +vec2 mg_get_position() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return((vec2){0, 0}); + } + return(canvas->subPathLastPoint); +} + +void mg_move_to(f32 x, f32 y) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_MOVE, .p[0] = {x, y}})); + canvas->subPathStartPoint = (vec2){x, y}; + canvas->subPathLastPoint = (vec2){x, y}; +} + +void mg_line_to(f32 x, f32 y) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_LINE, .p[0] = {x, y}})); + canvas->subPathLastPoint = (vec2){x, y}; +} + +void mg_quadratic_to(f32 x1, f32 y1, f32 x2, f32 y2) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_QUADRATIC, .p = {{x1, y1}, {x2, y2}}})); + canvas->subPathLastPoint = (vec2){x2, y2}; +} + +void mg_cubic_to(f32 x1, f32 y1, f32 x2, f32 y2, f32 x3, f32 y3) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + mg_path_push_element(canvas, ((mg_path_elt){.type = MG_PATH_CUBIC, .p = {{x1, y1}, {x2, y2}, {x3, y3}}})); + canvas->subPathLastPoint = (vec2){x3, y3}; +} + +void mg_close_path() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + if( canvas->subPathStartPoint.x != canvas->subPathLastPoint.x + || canvas->subPathStartPoint.y != canvas->subPathLastPoint.y) + { + mg_line_to(canvas->subPathStartPoint.x, canvas->subPathStartPoint.y); + } + canvas->subPathStartPoint = canvas->subPathLastPoint; +} + +mp_rect mg_glyph_outlines_from_font_data(mg_font_data* fontData, str32 glyphIndices) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + + f32 startX = canvas->subPathLastPoint.x; + f32 startY = canvas->subPathLastPoint.y; + f32 maxWidth = 0; + + f32 scale = canvas->attributes.fontSize/fontData->unitsPerEm; + + for(int i=0; isubPathLastPoint.x; + f32 yOffset = canvas->subPathLastPoint.y; + f32 flip = canvas->textFlip ? 1 : -1; + + if(!glyphIndex || glyphIndex >= fontData->glyphCount) + { + log_warning("code point is not present in font ranges\n"); + //NOTE(martin): try to find the replacement character + glyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 0xfffd); + if(!glyphIndex) + { + //NOTE(martin): could not find replacement glyph, try to get an 'x' to get a somewhat correct width + // to render an empty rectangle. Otherwise just render with the max font width + f32 boxWidth = fontData->extents.width * 0.8; + f32 xBearing = fontData->extents.width * 0.1; + f32 xAdvance = fontData->extents.width; + + glyphIndex = mg_font_get_glyph_index_from_font_data(fontData, 'x'); + if(glyphIndex) + { + mg_glyph_data* glyph = &(fontData->glyphs[glyphIndex]); + boxWidth = glyph->extents.width; + xBearing = glyph->extents.xBearing; + xAdvance = glyph->extents.xAdvance; + } + f32 oldStrokeWidth = canvas->attributes.width; + + mg_set_width(boxWidth*0.005); + mg_rectangle_stroke(xOffset + xBearing * scale, + yOffset, + boxWidth * scale * flip, + fontData->extents.capHeight*scale); + + mg_set_width(oldStrokeWidth); + mg_move_to(xOffset + xAdvance * scale, yOffset); + maxWidth = maximum(maxWidth, xOffset + xAdvance*scale - startX); + continue; + } + } + + mg_glyph_data* glyph = mg_font_get_glyph_data(fontData, glyphIndex); + + mg_path_push_elements(canvas, glyph->pathDescriptor.count, fontData->outlines + glyph->pathDescriptor.startIndex); + + mg_path_elt* elements = canvas->pathElements + canvas->path.count + canvas->path.startIndex - glyph->pathDescriptor.count; + for(int eltIndex=0; eltIndexpathDescriptor.count; eltIndex++) + { + for(int pIndex = 0; pIndex < 3; pIndex++) + { + elements[eltIndex].p[pIndex].x = elements[eltIndex].p[pIndex].x * scale + xOffset; + elements[eltIndex].p[pIndex].y = elements[eltIndex].p[pIndex].y * scale * flip + yOffset; + } + } + mg_move_to(xOffset + scale*glyph->extents.xAdvance, yOffset); + + maxWidth = maximum(maxWidth, xOffset + scale*glyph->extents.xAdvance - startX); + } + f32 lineHeight = (fontData->extents.ascent + fontData->extents.descent)*scale; + mp_rect box = {startX, startY, maxWidth, canvas->subPathLastPoint.y - startY + lineHeight }; + return(box); +} + +mp_rect mg_glyph_outlines(str32 glyphIndices) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return((mp_rect){0}); + } + mg_font_data* fontData = mg_font_data_from_handle(canvas->attributes.font); + if(!fontData) + { + return((mp_rect){0}); + } + return(mg_glyph_outlines_from_font_data(fontData, glyphIndices)); +} + +void mg_codepoints_outlines(str32 codePoints) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + mg_font_data* fontData = mg_font_data_from_handle(canvas->attributes.font); + if(!fontData) + { + return; + } + + str32 glyphIndices = mg_font_push_glyph_indices(canvas->attributes.font, mem_scratch(), codePoints); + mg_glyph_outlines_from_font_data(fontData, glyphIndices); +} + +void mg_text_outlines(str8 text) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(!canvas) + { + return; + } + mg_font_data* fontData = mg_font_data_from_handle(canvas->attributes.font); + if(!fontData) + { + return; + } + + mem_arena* scratch = mem_scratch(); + str32 codePoints = utf8_push_to_codepoints(scratch, text); + str32 glyphIndices = mg_font_push_glyph_indices(canvas->attributes.font, scratch, codePoints); + + mg_glyph_outlines_from_font_data(fontData, glyphIndices); +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): clear/fill/stroke +//------------------------------------------------------------------------------------------ + +void mg_clear() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + canvas->primitiveCount = 0; + canvas->clearColor = canvas->attributes.color; + } +} + +void mg_fill() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas && canvas->path.count) + { + mg_push_command(canvas, (mg_primitive){.cmd = MG_CMD_FILL, .path = canvas->path}); + mg_new_path(canvas); + } +} + +void mg_stroke() +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas && canvas->path.count) + { + mg_push_command(canvas, (mg_primitive){.cmd = MG_CMD_STROKE, .path = canvas->path}); + mg_new_path(canvas); + } +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): simple shape helpers +//------------------------------------------------------------------------------------------ + +void mg_rectangle_path(f32 x, f32 y, f32 w, f32 h) +{ + mg_move_to(x, y); + mg_line_to(x+w, y); + mg_line_to(x+w, y+h); + mg_line_to(x, y+h); + mg_close_path(); +} + +void mg_rectangle_fill(f32 x, f32 y, f32 w, f32 h) +{ + mg_rectangle_path(x, y, w, h); + mg_fill(); +} + +void mg_rectangle_stroke(f32 x, f32 y, f32 w, f32 h) +{ + mg_rectangle_path(x, y, w, h); + mg_stroke(); +} + +void mg_rounded_rectangle_path(f32 x, f32 y, f32 w, f32 h, f32 r) +{ + f32 c = r*4*(sqrt(2)-1)/3; + + mg_move_to(x+r, y); + mg_line_to(x+w-r, y); + mg_cubic_to(x+w-r+c, y, x+w, y+r-c, x+w, y+r); + mg_line_to(x+w, y+h-r); + mg_cubic_to(x+w, y+h-r+c, x+w-r+c, y+h, x+w-r, y+h); + mg_line_to(x+r, y+h); + mg_cubic_to(x+r-c, y+h, x, y+h-r+c, x, y+h-r); + mg_line_to(x, y+r); + mg_cubic_to(x, y+r-c, x+r-c, y, x+r, y); +} + +void mg_rounded_rectangle_fill(f32 x, f32 y, f32 w, f32 h, f32 r) +{ + mg_rounded_rectangle_path(x, y, w, h, r); + mg_fill(); +} + +void mg_rounded_rectangle_stroke(f32 x, f32 y, f32 w, f32 h, f32 r) +{ + mg_rounded_rectangle_path(x, y, w, h, r); + mg_stroke(); +} + +void mg_ellipse_path(f32 x, f32 y, f32 rx, f32 ry) +{ + f32 cx = rx*4*(sqrt(2)-1)/3; + f32 cy = ry*4*(sqrt(2)-1)/3; + + mg_move_to(x-rx, y); + mg_cubic_to(x-rx, y+cy, x-cx, y+ry, x, y+ry); + mg_cubic_to(x+cx, y+ry, x+rx, y+cy, x+rx, y); + mg_cubic_to(x+rx, y-cy, x+cx, y-ry, x, y-ry); + mg_cubic_to(x-cx, y-ry, x-rx, y-cy, x-rx, y); +} + +void mg_ellipse_fill(f32 x, f32 y, f32 rx, f32 ry) +{ + mg_ellipse_path(x, y, rx, ry); + mg_fill(); +} + +void mg_ellipse_stroke(f32 x, f32 y, f32 rx, f32 ry) +{ + mg_ellipse_path(x, y, rx, ry); + mg_stroke(); +} + +void mg_circle_fill(f32 x, f32 y, f32 r) +{ + mg_ellipse_fill(x, y, r, r); +} + +void mg_circle_stroke(f32 x, f32 y, f32 r) +{ + mg_ellipse_stroke(x, y, r, r); +} + +//TODO: change to arc_to? +void mg_arc(f32 x, f32 y, f32 r, f32 arcAngle, f32 startAngle) +{ + f32 endAngle = startAngle + arcAngle; + + while(startAngle < endAngle) + { + f32 smallAngle = minimum(endAngle - startAngle, M_PI/4.); + if(smallAngle < 0.001) + { + break; + } + + vec2 v0 = {cos(smallAngle/2), sin(smallAngle/2)}; + vec2 v1 = {(4-v0.x)/3, (1-v0.x)*(3-v0.x)/(3*v0.y)}; + vec2 v2 = {v1.x, -v1.y}; + vec2 v3 = {v0.x, -v0.y}; + + f32 rotAngle = smallAngle/2 + startAngle; + f32 rotCos = cos(rotAngle); + f32 rotSin = sin(rotAngle); + + mg_mat2x3 t = {r*rotCos, -r*rotSin, x, + r*rotSin, r*rotCos, y}; + + v0 = mg_mat2x3_mul(t, v0); + v1 = mg_mat2x3_mul(t, v1); + v2 = mg_mat2x3_mul(t, v2); + v3 = mg_mat2x3_mul(t, v3); + + mg_move_to(v0.x, v0.y); + mg_cubic_to(v1.x, v1.y, v2.x, v2.y, v3.x, v3.y); + + startAngle += smallAngle; + } +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): images +//------------------------------------------------------------------------------------------ + +mg_image mg_image_nil() { return((mg_image){.h = 0}); } +bool mg_image_is_nil(mg_image image) { return(image.h == 0); } + +mg_image mg_image_create_from_rgba8(mg_surface surface, u32 width, u32 height, u8* pixels) +{ + mg_image image = mg_image_create(surface, width, height); + if(!mg_image_is_nil(image)) + { + mg_image_upload_region_rgba8(image, (mp_rect){0, 0, width, height}, pixels); + } + return(image); +} + +mg_image mg_image_create_from_data(mg_surface surface, str8 data, bool flip) +{ + mg_image image = mg_image_nil(); + int width, height, channels; + + stbi_set_flip_vertically_on_load(flip ? 1 : 0); + u8* pixels = stbi_load_from_memory((u8*)data.ptr, data.len, &width, &height, &channels, 4); + + if(pixels) + { + image = mg_image_create_from_rgba8(surface, width, height, pixels); + free(pixels); + } + else + { + log_error("stbi_load_from_memory() failed: %s\n", stbi_failure_reason()); + } + return(image); +} + +#if !PLATFORM_ORCA + +mg_image mg_image_create_from_file(mg_surface surface, str8 path, bool flip) +{ + mg_image image = mg_image_nil(); + int width, height, channels; + + const char* cpath = str8_to_cstring(mem_scratch(), path); + + stbi_set_flip_vertically_on_load(flip ? 1 : 0); + u8* pixels = stbi_load(cpath, &width, &height, &channels, 4); + if(pixels) + { + image = mg_image_create_from_rgba8(surface, width, height, pixels); + free(pixels); + } + else + { + log_error("stbi_load() failed: %s\n", stbi_failure_reason()); + } + return(image); +} + +#endif // !PLATFORM_ORCA + + +void mg_image_draw_region(mg_image image, mp_rect srcRegion, mp_rect dstRegion) +{ + mg_canvas_data* canvas = __mgCurrentCanvas; + if(canvas) + { + mg_image oldImage = canvas->attributes.image; + mp_rect oldSrcRegion = canvas->attributes.srcRegion; + mg_color oldColor = canvas->attributes.color; + + canvas->attributes.image = image; + canvas->attributes.srcRegion = srcRegion; + canvas->attributes.color = (mg_color){1, 1, 1, 1}; + + mg_move_to(dstRegion.x, dstRegion.y); + mg_line_to(dstRegion.x+dstRegion.w, dstRegion.y); + mg_line_to(dstRegion.x+dstRegion.w, dstRegion.y+dstRegion.h); + mg_line_to(dstRegion.x, dstRegion.y+dstRegion.h); + mg_close_path(); + + mg_fill(); + + canvas->attributes.image = oldImage; + canvas->attributes.srcRegion = oldSrcRegion; + canvas->attributes.color = oldColor; + } +} + +void mg_image_draw(mg_image image, mp_rect rect) +{ + vec2 size = mg_image_size(image); + mg_image_draw_region(image, (mp_rect){0, 0, size.x, size.y}, rect); +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): atlasing +//------------------------------------------------------------------------------------------ + +//NOTE: rectangle allocator +typedef struct mg_rect_atlas +{ + mem_arena* arena; + ivec2 size; + ivec2 pos; + u32 lineHeight; + +} mg_rect_atlas; + +mg_rect_atlas* mg_rect_atlas_create(mem_arena* arena, i32 width, i32 height) +{ + mg_rect_atlas* atlas = mem_arena_alloc_type(arena, mg_rect_atlas); + memset(atlas, 0, sizeof(mg_rect_atlas)); + atlas->arena = arena; + atlas->size = (ivec2){width, height}; + return(atlas); +} + +mp_rect mg_rect_atlas_alloc(mg_rect_atlas* atlas, i32 width, i32 height) +{ + mp_rect rect = {0, 0, 0, 0}; + if(width > 0 && height > 0) + { + if(atlas->pos.x + width >= atlas->size.x) + { + atlas->pos.x = 0; + atlas->pos.y += (atlas->lineHeight + 1); + atlas->lineHeight = 0; + } + if( atlas->pos.x + width < atlas->size.x + && atlas->pos.y + height < atlas->size.y) + { + rect = (mp_rect){atlas->pos.x, atlas->pos.y, width, height}; + + atlas->pos.x += (width + 1); + atlas->lineHeight = maximum(atlas->lineHeight, height); + } + } + return(rect); +} + +void mg_rect_atlas_recycle(mg_rect_atlas* atlas, mp_rect rect) +{ + //TODO +} + +mg_image_region mg_image_atlas_alloc_from_rgba8(mg_rect_atlas* atlas, mg_image backingImage, u32 width, u32 height, u8* pixels) +{ + mg_image_region imageRgn = {0}; + + mp_rect rect = mg_rect_atlas_alloc(atlas, width, height); + if(rect.w == width && rect.h == height) + { + mg_image_upload_region_rgba8(backingImage, rect, pixels); + imageRgn.rect = rect; + imageRgn.image = backingImage; + } + return(imageRgn); +} + +#if !PLATFORM_ORCA + +mg_image_region mg_image_atlas_alloc_from_data(mg_rect_atlas* atlas, mg_image backingImage, str8 data, bool flip) +{ + mg_image_region imageRgn = {0}; + + stbi_set_flip_vertically_on_load(flip ? 1 : 0); + + int width, height, channels; + u8* pixels = stbi_load_from_memory((u8*)data.ptr, data.len, &width, &height, &channels, 4); + if(pixels) + { + imageRgn = mg_image_atlas_alloc_from_rgba8(atlas, backingImage, width, height, pixels); + free(pixels); + } + return(imageRgn); +} + +mg_image_region mg_image_atlas_alloc_from_file(mg_rect_atlas* atlas, mg_image backingImage, str8 path, bool flip) +{ + mg_image_region imageRgn = {0}; + + stbi_set_flip_vertically_on_load(flip ? 1 : 0); + + const char* cpath = str8_to_cstring(mem_scratch(), path); + int width, height, channels; + u8* pixels = stbi_load(cpath, &width, &height, &channels, 4); + if(pixels) + { + imageRgn = mg_image_atlas_alloc_from_rgba8(atlas, backingImage, width, height, pixels); + free(pixels); + } + return(imageRgn); +} +#endif // !PLATFORM_ORCA + +void mg_image_atlas_recycle(mg_rect_atlas* atlas, mg_image_region imageRgn) +{ + mg_rect_atlas_recycle(atlas, imageRgn.rect); +} diff --git a/milepost/src/graphics_common.h b/src/graphics/graphics_common.h similarity index 95% rename from milepost/src/graphics_common.h rename to src/graphics/graphics_common.h index 9596694..a29e44b 100644 --- a/milepost/src/graphics_common.h +++ b/src/graphics/graphics_common.h @@ -1,82 +1,82 @@ -/************************************************************//** -* -* @file: graphics_common.h -* @author: Martin Fouilleul -* @date: 26/04/2023 -* -*****************************************************************/ -#ifndef __GRAPHICS_COMMON_H_ -#define __GRAPHICS_COMMON_H_ - -#include"graphics.h" - -//------------------------------------------------------------------------ -// canvas structs -//------------------------------------------------------------------------ -typedef enum { MG_PATH_MOVE, - MG_PATH_LINE, - MG_PATH_QUADRATIC, - MG_PATH_CUBIC } mg_path_elt_type; - -typedef struct mg_path_elt -{ - mg_path_elt_type type; - vec2 p[3]; - -} mg_path_elt; - -typedef struct mg_path_descriptor -{ - u32 startIndex; - u32 count; - vec2 startPoint; - -} mg_path_descriptor; - -typedef struct mg_attributes -{ - f32 width; - f32 tolerance; - mg_color color; - mg_joint_type joint; - f32 maxJointExcursion; - mg_cap_type cap; - - mg_font font; - f32 fontSize; - - mg_image image; - mp_rect srcRegion; - - mg_mat2x3 transform; - mp_rect clip; - -} mg_attributes; - -typedef enum { MG_CMD_FILL, - MG_CMD_STROKE, - MG_CMD_JUMP - } mg_primitive_cmd; - -typedef struct mg_primitive -{ - mg_primitive_cmd cmd; - mg_attributes attributes; - - union - { - mg_path_descriptor path; - mp_rect rect; - u32 jump; - }; - -} mg_primitive; - -MP_API void mg_surface_render_commands(mg_surface surface, - mg_color clearColor, - u32 primitiveCount, - mg_primitive* primitives, - u32 eltCount, - mg_path_elt* elements); - -#endif //__GRAPHICS_COMMON_H_ +/************************************************************//** +* +* @file: graphics_common.h +* @author: Martin Fouilleul +* @date: 26/04/2023 +* +*****************************************************************/ +#ifndef __GRAPHICS_COMMON_H_ +#define __GRAPHICS_COMMON_H_ + +#include"graphics.h" + +//------------------------------------------------------------------------ +// canvas structs +//------------------------------------------------------------------------ +typedef enum { MG_PATH_MOVE, + MG_PATH_LINE, + MG_PATH_QUADRATIC, + MG_PATH_CUBIC } mg_path_elt_type; + +typedef struct mg_path_elt +{ + mg_path_elt_type type; + vec2 p[3]; + +} mg_path_elt; + +typedef struct mg_path_descriptor +{ + u32 startIndex; + u32 count; + vec2 startPoint; + +} mg_path_descriptor; + +typedef struct mg_attributes +{ + f32 width; + f32 tolerance; + mg_color color; + mg_joint_type joint; + f32 maxJointExcursion; + mg_cap_type cap; + + mg_font font; + f32 fontSize; + + mg_image image; + mp_rect srcRegion; + + mg_mat2x3 transform; + mp_rect clip; + +} mg_attributes; + +typedef enum { MG_CMD_FILL, + MG_CMD_STROKE, + MG_CMD_JUMP + } mg_primitive_cmd; + +typedef struct mg_primitive +{ + mg_primitive_cmd cmd; + mg_attributes attributes; + + union + { + mg_path_descriptor path; + mp_rect rect; + u32 jump; + }; + +} mg_primitive; + +MP_API void mg_surface_render_commands(mg_surface surface, + mg_color clearColor, + u32 primitiveCount, + mg_primitive* primitives, + u32 eltCount, + mg_path_elt* elements); + +#endif //__GRAPHICS_COMMON_H_ diff --git a/milepost/src/graphics_surface.c b/src/graphics/graphics_surface.c similarity index 95% rename from milepost/src/graphics_surface.c rename to src/graphics/graphics_surface.c index 240db5b..dd120f0 100644 --- a/milepost/src/graphics_surface.c +++ b/src/graphics/graphics_surface.c @@ -1,454 +1,454 @@ -/************************************************************//** -* -* @file: graphics_surface.c -* @author: Martin Fouilleul -* @date: 25/04/2023 -* -*****************************************************************/ - -#include"graphics_surface.h" - -//--------------------------------------------------------------- -// per-thread selected surface -//--------------------------------------------------------------- - -mp_thread_local mg_surface __mgSelectedSurface = {0}; - -//--------------------------------------------------------------- -// typed handles functions -//--------------------------------------------------------------- - -mg_surface mg_surface_handle_alloc(mg_surface_data* surface) -{ - mg_surface handle = {.h = mg_handle_alloc(MG_HANDLE_SURFACE, (void*)surface) }; - return(handle); -} - -mg_surface_data* mg_surface_data_from_handle(mg_surface handle) -{ - mg_surface_data* data = mg_data_from_handle(MG_HANDLE_SURFACE, handle.h); - return(data); -} - -mg_image mg_image_handle_alloc(mg_image_data* image) -{ - mg_image handle = {.h = mg_handle_alloc(MG_HANDLE_IMAGE, (void*)image) }; - return(handle); -} - -mg_image_data* mg_image_data_from_handle(mg_image handle) -{ - mg_image_data* data = mg_data_from_handle(MG_HANDLE_IMAGE, handle.h); - return(data); -} - -//--------------------------------------------------------------- -// surface API -//--------------------------------------------------------------- - -#if MG_COMPILE_GL - #if PLATFORM_WINDOWS - #include"wgl_surface.h" - #define gl_surface_create_for_window mg_wgl_surface_create_for_window - #endif -#endif - -#if MG_COMPILE_GLES - #include"egl_surface.h" -#endif - -#if MG_COMPILE_METAL - #include"mtl_surface.h" -#endif - -#if MG_COMPILE_CANVAS - #if PLATFORM_MACOS - mg_surface_data* mtl_canvas_surface_create_for_window(mp_window window); - #elif PLATFORM_WINDOWS - mg_surface_data* gl_canvas_surface_create_for_window(mp_window window); - #endif -#endif - -bool mg_is_surface_backend_available(mg_surface_api api) -{ - bool result = false; - switch(api) - { - #if MG_COMPILE_METAL - case MG_METAL: - #endif - - #if MG_COMPILE_GL - case MG_GL: - #endif - - #if MG_COMPILE_GLES - case MG_GLES: - #endif - - #if MG_COMPILE_CANVAS - case MG_CANVAS: - #endif - result = true; - break; - - default: - break; - } - return(result); -} - -mg_surface mg_surface_nil() { return((mg_surface){.h = 0}); } -bool mg_surface_is_nil(mg_surface surface) { return(surface.h == 0); } - -mg_surface mg_surface_create_for_window(mp_window window, mg_surface_api api) -{ - if(__mgData.init) - { - mg_init(); - } - mg_surface surfaceHandle = mg_surface_nil(); - mg_surface_data* surface = 0; - - switch(api) - { - #if MG_COMPILE_GL - case MG_GL: - surface = gl_surface_create_for_window(window); - break; - #endif - - #if MG_COMPILE_GLES - case MG_GLES: - surface = mg_egl_surface_create_for_window(window); - break; - #endif - - #if MG_COMPILE_METAL - case MG_METAL: - surface = mg_mtl_surface_create_for_window(window); - break; - #endif - - #if MG_COMPILE_CANVAS - case MG_CANVAS: - - #if PLATFORM_MACOS - surface = mtl_canvas_surface_create_for_window(window); - #elif PLATFORM_WINDOWS - surface = gl_canvas_surface_create_for_window(window); - #endif - break; - #endif - - default: - break; - } - if(surface) - { - surfaceHandle = mg_surface_handle_alloc(surface); - mg_surface_prepare(surfaceHandle); - } - return(surfaceHandle); -} - -mg_surface mg_surface_create_remote(u32 width, u32 height, mg_surface_api api) -{ - if(!__mgData.init) - { - mg_init(); - } - mg_surface surfaceHandle = mg_surface_nil(); - mg_surface_data* surface = 0; - - switch(api) - { - #if MG_COMPILE_GLES - case MG_GLES: - surface = mg_egl_surface_create_remote(width, height); - break; - #endif - - default: - break; - } - if(surface) - { - surfaceHandle = mg_surface_handle_alloc(surface); - mg_surface_prepare(surfaceHandle); - } - return(surfaceHandle); -} - -mg_surface mg_surface_create_host(mp_window window) -{ - if(!__mgData.init) - { - mg_init(); - } - mg_surface handle = mg_surface_nil(); - mg_surface_data* surface = 0; - #if PLATFORM_MACOS - surface = mg_osx_surface_create_host(window); - #elif PLATFORM_WINDOWS - surface = mg_win32_surface_create_host(window); - #endif - - if(surface) - { - handle = mg_surface_handle_alloc(surface); - } - return(handle); -} - -void mg_surface_destroy(mg_surface handle) -{ - DEBUG_ASSERT(__mgData.init); - mg_surface_data* surface = mg_surface_data_from_handle(handle); - if(surface) - { - if(__mgSelectedSurface.h == handle.h) - { - mg_surface_deselect(); - } - - if(surface->backend && surface->backend->destroy) - { - surface->backend->destroy(surface->backend); - } - surface->destroy(surface); - mg_handle_recycle(handle.h); - } -} - -void mg_surface_deselect() -{ - DEBUG_ASSERT(__mgData.init); - - mg_surface_data* prevSurface = mg_surface_data_from_handle(__mgSelectedSurface); - if(prevSurface && prevSurface->deselect) - { - prevSurface->deselect(prevSurface); - } - __mgSelectedSurface = mg_surface_nil(); -} - -void mg_surface_prepare(mg_surface surface) -{ - DEBUG_ASSERT(__mgData.init); - - if(surface.h != __mgSelectedSurface.h) - { - mg_surface_deselect(); - } - - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->prepare) - { - surfaceData->prepare(surfaceData); - __mgSelectedSurface = surface; - } -} - -void mg_surface_present(mg_surface surface) -{ - DEBUG_ASSERT(__mgData.init); - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->present) - { - surfaceData->present(surfaceData); - } -} - -void mg_surface_swap_interval(mg_surface surface, int swap) -{ - DEBUG_ASSERT(__mgData.init); - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->swapInterval) - { - surfaceData->swapInterval(surfaceData, swap); - } -} - -vec2 mg_surface_get_size(mg_surface surface) -{ - DEBUG_ASSERT(__mgData.init); - vec2 size = {0}; - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->getSize) - { - size = surfaceData->getSize(surfaceData); - } - return(size); -} - -vec2 mg_surface_contents_scaling(mg_surface surface) -{ - DEBUG_ASSERT(__mgData.init); - vec2 scaling = {1, 1}; - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->contentsScaling) - { - scaling = surfaceData->contentsScaling(surfaceData); - } - return(scaling); -} - -void mg_surface_set_hidden(mg_surface surface, bool hidden) -{ - DEBUG_ASSERT(__mgData.init); - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->setHidden) - { - surfaceData->setHidden(surfaceData, hidden); - } -} - -bool mg_surface_get_hidden(mg_surface surface) -{ - DEBUG_ASSERT(__mgData.init); - bool res = false; - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->getHidden) - { - res = surfaceData->getHidden(surfaceData); - } - return(res); -} - -void* mg_surface_native_layer(mg_surface surface) -{ - void* res = 0; - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->nativeLayer) - { - res = surfaceData->nativeLayer(surfaceData); - } - return(res); -} - -mg_surface_id mg_surface_remote_id(mg_surface handle) -{ - mg_surface_id remoteId = 0; - mg_surface_data* surface = mg_surface_data_from_handle(handle); - if(surface && surface->remoteID) - { - remoteId = surface->remoteID(surface); - } - return(remoteId); -} - -void mg_surface_host_connect(mg_surface handle, mg_surface_id remoteID) -{ - mg_surface_data* surface = mg_surface_data_from_handle(handle); - if(surface && surface->hostConnect) - { - surface->hostConnect(surface, remoteID); - } -} - -void mg_surface_render_commands(mg_surface surface, - mg_color clearColor, - u32 primitiveCount, - mg_primitive* primitives, - u32 eltCount, - mg_path_elt* elements) -{ - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - - if(surface.h != __mgSelectedSurface.h) - { - log_error("surface is not selected. Make sure to call mg_surface_prepare() before drawing onto a surface.\n"); - } - else if(surfaceData && surfaceData->backend) - { - surfaceData->backend->render(surfaceData->backend, - clearColor, - primitiveCount, - primitives, - eltCount, - elements); - } -} - -//------------------------------------------------------------------------------------------ -//NOTE(martin): images -//------------------------------------------------------------------------------------------ - -vec2 mg_image_size(mg_image image) -{ - vec2 res = {0}; - mg_image_data* imageData = mg_image_data_from_handle(image); - if(imageData) - { - res = imageData->size; - } - return(res); -} - -mg_image mg_image_create(mg_surface surface, u32 width, u32 height) -{ - mg_image image = mg_image_nil(); - mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - - if(surface.h != __mgSelectedSurface.h) - { - log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); - } - else if(surfaceData && surfaceData->backend) - { - DEBUG_ASSERT(surfaceData->api == MG_CANVAS); - - mg_image_data* imageData = surfaceData->backend->imageCreate(surfaceData->backend, (vec2){width, height}); - if(imageData) - { - imageData->surface = surface; - image = mg_image_handle_alloc(imageData); - } - } - return(image); -} - -void mg_image_destroy(mg_image image) -{ - mg_image_data* imageData = mg_image_data_from_handle(image); - - if(imageData) - { - if(imageData->surface.h != __mgSelectedSurface.h) - { - log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); - } - else - { - mg_surface_data* surface = mg_surface_data_from_handle(imageData->surface); - if(surface && surface->backend) - { - surface->backend->imageDestroy(surface->backend, imageData); - mg_handle_recycle(image.h); - } - } - } -} - -void mg_image_upload_region_rgba8(mg_image image, mp_rect region, u8* pixels) -{ - mg_image_data* imageData = mg_image_data_from_handle(image); - - if(imageData) - { - if(imageData->surface.h != __mgSelectedSurface.h) - { - log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); - } - else - { - mg_surface_data* surfaceData = mg_surface_data_from_handle(imageData->surface); - if(surfaceData) - { - DEBUG_ASSERT(surfaceData->backend); - surfaceData->backend->imageUploadRegion(surfaceData->backend, imageData, region, pixels); - } - } - } -} +/************************************************************//** +* +* @file: graphics_surface.c +* @author: Martin Fouilleul +* @date: 25/04/2023 +* +*****************************************************************/ + +#include"graphics_surface.h" + +//--------------------------------------------------------------- +// per-thread selected surface +//--------------------------------------------------------------- + +mp_thread_local mg_surface __mgSelectedSurface = {0}; + +//--------------------------------------------------------------- +// typed handles functions +//--------------------------------------------------------------- + +mg_surface mg_surface_handle_alloc(mg_surface_data* surface) +{ + mg_surface handle = {.h = mg_handle_alloc(MG_HANDLE_SURFACE, (void*)surface) }; + return(handle); +} + +mg_surface_data* mg_surface_data_from_handle(mg_surface handle) +{ + mg_surface_data* data = mg_data_from_handle(MG_HANDLE_SURFACE, handle.h); + return(data); +} + +mg_image mg_image_handle_alloc(mg_image_data* image) +{ + mg_image handle = {.h = mg_handle_alloc(MG_HANDLE_IMAGE, (void*)image) }; + return(handle); +} + +mg_image_data* mg_image_data_from_handle(mg_image handle) +{ + mg_image_data* data = mg_data_from_handle(MG_HANDLE_IMAGE, handle.h); + return(data); +} + +//--------------------------------------------------------------- +// surface API +//--------------------------------------------------------------- + +#if MG_COMPILE_GL + #if PLATFORM_WINDOWS + #include"wgl_surface.h" + #define gl_surface_create_for_window mg_wgl_surface_create_for_window + #endif +#endif + +#if MG_COMPILE_GLES + #include"egl_surface.h" +#endif + +#if MG_COMPILE_METAL + #include"mtl_surface.h" +#endif + +#if MG_COMPILE_CANVAS + #if PLATFORM_MACOS + mg_surface_data* mtl_canvas_surface_create_for_window(mp_window window); + #elif PLATFORM_WINDOWS + mg_surface_data* gl_canvas_surface_create_for_window(mp_window window); + #endif +#endif + +bool mg_is_surface_backend_available(mg_surface_api api) +{ + bool result = false; + switch(api) + { + #if MG_COMPILE_METAL + case MG_METAL: + #endif + + #if MG_COMPILE_GL + case MG_GL: + #endif + + #if MG_COMPILE_GLES + case MG_GLES: + #endif + + #if MG_COMPILE_CANVAS + case MG_CANVAS: + #endif + result = true; + break; + + default: + break; + } + return(result); +} + +mg_surface mg_surface_nil() { return((mg_surface){.h = 0}); } +bool mg_surface_is_nil(mg_surface surface) { return(surface.h == 0); } + +mg_surface mg_surface_create_for_window(mp_window window, mg_surface_api api) +{ + if(__mgData.init) + { + mg_init(); + } + mg_surface surfaceHandle = mg_surface_nil(); + mg_surface_data* surface = 0; + + switch(api) + { + #if MG_COMPILE_GL + case MG_GL: + surface = gl_surface_create_for_window(window); + break; + #endif + + #if MG_COMPILE_GLES + case MG_GLES: + surface = mg_egl_surface_create_for_window(window); + break; + #endif + + #if MG_COMPILE_METAL + case MG_METAL: + surface = mg_mtl_surface_create_for_window(window); + break; + #endif + + #if MG_COMPILE_CANVAS + case MG_CANVAS: + + #if PLATFORM_MACOS + surface = mtl_canvas_surface_create_for_window(window); + #elif PLATFORM_WINDOWS + surface = gl_canvas_surface_create_for_window(window); + #endif + break; + #endif + + default: + break; + } + if(surface) + { + surfaceHandle = mg_surface_handle_alloc(surface); + mg_surface_prepare(surfaceHandle); + } + return(surfaceHandle); +} + +mg_surface mg_surface_create_remote(u32 width, u32 height, mg_surface_api api) +{ + if(!__mgData.init) + { + mg_init(); + } + mg_surface surfaceHandle = mg_surface_nil(); + mg_surface_data* surface = 0; + + switch(api) + { + #if MG_COMPILE_GLES + case MG_GLES: + surface = mg_egl_surface_create_remote(width, height); + break; + #endif + + default: + break; + } + if(surface) + { + surfaceHandle = mg_surface_handle_alloc(surface); + mg_surface_prepare(surfaceHandle); + } + return(surfaceHandle); +} + +mg_surface mg_surface_create_host(mp_window window) +{ + if(!__mgData.init) + { + mg_init(); + } + mg_surface handle = mg_surface_nil(); + mg_surface_data* surface = 0; + #if PLATFORM_MACOS + surface = mg_osx_surface_create_host(window); + #elif PLATFORM_WINDOWS + surface = mg_win32_surface_create_host(window); + #endif + + if(surface) + { + handle = mg_surface_handle_alloc(surface); + } + return(handle); +} + +void mg_surface_destroy(mg_surface handle) +{ + DEBUG_ASSERT(__mgData.init); + mg_surface_data* surface = mg_surface_data_from_handle(handle); + if(surface) + { + if(__mgSelectedSurface.h == handle.h) + { + mg_surface_deselect(); + } + + if(surface->backend && surface->backend->destroy) + { + surface->backend->destroy(surface->backend); + } + surface->destroy(surface); + mg_handle_recycle(handle.h); + } +} + +void mg_surface_deselect() +{ + DEBUG_ASSERT(__mgData.init); + + mg_surface_data* prevSurface = mg_surface_data_from_handle(__mgSelectedSurface); + if(prevSurface && prevSurface->deselect) + { + prevSurface->deselect(prevSurface); + } + __mgSelectedSurface = mg_surface_nil(); +} + +void mg_surface_prepare(mg_surface surface) +{ + DEBUG_ASSERT(__mgData.init); + + if(surface.h != __mgSelectedSurface.h) + { + mg_surface_deselect(); + } + + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->prepare) + { + surfaceData->prepare(surfaceData); + __mgSelectedSurface = surface; + } +} + +void mg_surface_present(mg_surface surface) +{ + DEBUG_ASSERT(__mgData.init); + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->present) + { + surfaceData->present(surfaceData); + } +} + +void mg_surface_swap_interval(mg_surface surface, int swap) +{ + DEBUG_ASSERT(__mgData.init); + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->swapInterval) + { + surfaceData->swapInterval(surfaceData, swap); + } +} + +vec2 mg_surface_get_size(mg_surface surface) +{ + DEBUG_ASSERT(__mgData.init); + vec2 size = {0}; + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->getSize) + { + size = surfaceData->getSize(surfaceData); + } + return(size); +} + +vec2 mg_surface_contents_scaling(mg_surface surface) +{ + DEBUG_ASSERT(__mgData.init); + vec2 scaling = {1, 1}; + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->contentsScaling) + { + scaling = surfaceData->contentsScaling(surfaceData); + } + return(scaling); +} + +void mg_surface_set_hidden(mg_surface surface, bool hidden) +{ + DEBUG_ASSERT(__mgData.init); + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->setHidden) + { + surfaceData->setHidden(surfaceData, hidden); + } +} + +bool mg_surface_get_hidden(mg_surface surface) +{ + DEBUG_ASSERT(__mgData.init); + bool res = false; + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->getHidden) + { + res = surfaceData->getHidden(surfaceData); + } + return(res); +} + +void* mg_surface_native_layer(mg_surface surface) +{ + void* res = 0; + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + if(surfaceData && surfaceData->nativeLayer) + { + res = surfaceData->nativeLayer(surfaceData); + } + return(res); +} + +mg_surface_id mg_surface_remote_id(mg_surface handle) +{ + mg_surface_id remoteId = 0; + mg_surface_data* surface = mg_surface_data_from_handle(handle); + if(surface && surface->remoteID) + { + remoteId = surface->remoteID(surface); + } + return(remoteId); +} + +void mg_surface_host_connect(mg_surface handle, mg_surface_id remoteID) +{ + mg_surface_data* surface = mg_surface_data_from_handle(handle); + if(surface && surface->hostConnect) + { + surface->hostConnect(surface, remoteID); + } +} + +void mg_surface_render_commands(mg_surface surface, + mg_color clearColor, + u32 primitiveCount, + mg_primitive* primitives, + u32 eltCount, + mg_path_elt* elements) +{ + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + + if(surface.h != __mgSelectedSurface.h) + { + log_error("surface is not selected. Make sure to call mg_surface_prepare() before drawing onto a surface.\n"); + } + else if(surfaceData && surfaceData->backend) + { + surfaceData->backend->render(surfaceData->backend, + clearColor, + primitiveCount, + primitives, + eltCount, + elements); + } +} + +//------------------------------------------------------------------------------------------ +//NOTE(martin): images +//------------------------------------------------------------------------------------------ + +vec2 mg_image_size(mg_image image) +{ + vec2 res = {0}; + mg_image_data* imageData = mg_image_data_from_handle(image); + if(imageData) + { + res = imageData->size; + } + return(res); +} + +mg_image mg_image_create(mg_surface surface, u32 width, u32 height) +{ + mg_image image = mg_image_nil(); + mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); + + if(surface.h != __mgSelectedSurface.h) + { + log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); + } + else if(surfaceData && surfaceData->backend) + { + DEBUG_ASSERT(surfaceData->api == MG_CANVAS); + + mg_image_data* imageData = surfaceData->backend->imageCreate(surfaceData->backend, (vec2){width, height}); + if(imageData) + { + imageData->surface = surface; + image = mg_image_handle_alloc(imageData); + } + } + return(image); +} + +void mg_image_destroy(mg_image image) +{ + mg_image_data* imageData = mg_image_data_from_handle(image); + + if(imageData) + { + if(imageData->surface.h != __mgSelectedSurface.h) + { + log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); + } + else + { + mg_surface_data* surface = mg_surface_data_from_handle(imageData->surface); + if(surface && surface->backend) + { + surface->backend->imageDestroy(surface->backend, imageData); + mg_handle_recycle(image.h); + } + } + } +} + +void mg_image_upload_region_rgba8(mg_image image, mp_rect region, u8* pixels) +{ + mg_image_data* imageData = mg_image_data_from_handle(image); + + if(imageData) + { + if(imageData->surface.h != __mgSelectedSurface.h) + { + log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); + } + else + { + mg_surface_data* surfaceData = mg_surface_data_from_handle(imageData->surface); + if(surfaceData) + { + DEBUG_ASSERT(surfaceData->backend); + surfaceData->backend->imageUploadRegion(surfaceData->backend, imageData, region, pixels); + } + } + } +} diff --git a/milepost/src/graphics_surface.h b/src/graphics/graphics_surface.h similarity index 96% rename from milepost/src/graphics_surface.h rename to src/graphics/graphics_surface.h index d494d9a..8b85f3f 100644 --- a/milepost/src/graphics_surface.h +++ b/src/graphics/graphics_surface.h @@ -1,112 +1,112 @@ -/************************************************************//** -* -* @file: graphics_surface.h -* @author: Martin Fouilleul -* @date: 26/04/2023 -* -*****************************************************************/ -#ifndef __GRAPHICS_SURFACE_H_ -#define __GRAPHICS_SURFACE_H_ - -#include"graphics_common.h" -#include"mp_app_internal.h" - -#ifdef __cplusplus -extern "C" { -#endif - -//--------------------------------------------------------------- -// surface interface -//--------------------------------------------------------------- -typedef struct mg_surface_data mg_surface_data; -typedef struct mg_canvas_backend mg_canvas_backend; - -typedef void (*mg_surface_destroy_proc)(mg_surface_data* surface); -typedef void (*mg_surface_prepare_proc)(mg_surface_data* surface); -typedef void (*mg_surface_deselect_proc)(mg_surface_data* surface); -typedef void (*mg_surface_present_proc)(mg_surface_data* surface); -typedef void (*mg_surface_swap_interval_proc)(mg_surface_data* surface, int swap); -typedef vec2 (*mg_surface_get_size_proc)(mg_surface_data* surface); -typedef vec2 (*mg_surface_contents_scaling_proc)(mg_surface_data* surface); -typedef bool (*mg_surface_get_hidden_proc)(mg_surface_data* surface); -typedef void (*mg_surface_set_hidden_proc)(mg_surface_data* surface, bool hidden); -typedef void* (*mg_surface_native_layer_proc)(mg_surface_data* surface); -typedef mg_surface_id (*mg_surface_remote_id_proc)(mg_surface_data* surface); -typedef void (*mg_surface_host_connect_proc)(mg_surface_data* surface, mg_surface_id remoteId); - -typedef struct mg_surface_data -{ - mg_surface_api api; - mp_layer layer; - - mg_surface_destroy_proc destroy; - mg_surface_prepare_proc prepare; - mg_surface_present_proc present; - mg_surface_deselect_proc deselect; - mg_surface_swap_interval_proc swapInterval; - mg_surface_get_size_proc getSize; - mg_surface_contents_scaling_proc contentsScaling; - mg_surface_get_hidden_proc getHidden; - mg_surface_set_hidden_proc setHidden; - mg_surface_native_layer_proc nativeLayer; - mg_surface_remote_id_proc remoteID; - mg_surface_host_connect_proc hostConnect; - - mg_canvas_backend* backend; - -} mg_surface_data; - -mg_surface mg_surface_alloc_handle(mg_surface_data* surface); -mg_surface_data* mg_surface_data_from_handle(mg_surface handle); - -void mg_surface_init_for_window(mg_surface_data* surface, mp_window_data* window); -void mg_surface_init_remote(mg_surface_data* surface, u32 width, u32 height); -void mg_surface_init_host(mg_surface_data* surface, mp_window_data* window); -void mg_surface_cleanup(mg_surface_data* surface); -void* mg_surface_native_layer(mg_surface surface); - -//--------------------------------------------------------------- -// canvas backend interface -//--------------------------------------------------------------- -typedef struct mg_image_data -{ - list_elt listElt; - u32 generation; - mg_surface surface; - vec2 size; - -} mg_image_data; - -typedef void (*mg_canvas_backend_destroy_proc)(mg_canvas_backend* backend); - -typedef mg_image_data* (*mg_canvas_backend_image_create_proc)(mg_canvas_backend* backend, vec2 size); -typedef void (*mg_canvas_backend_image_destroy_proc)(mg_canvas_backend* backend, mg_image_data* image); -typedef void (*mg_canvas_backend_image_upload_region_proc)(mg_canvas_backend* backend, - mg_image_data* image, - mp_rect region, - u8* pixels); - -typedef void (*mg_canvas_backend_render_proc)(mg_canvas_backend* backend, - mg_color clearColor, - u32 primitiveCount, - mg_primitive* primitives, - u32 eltCount, - mg_path_elt* pathElements); - -typedef struct mg_canvas_backend -{ - mg_canvas_backend_destroy_proc destroy; - - mg_canvas_backend_image_create_proc imageCreate; - mg_canvas_backend_image_destroy_proc imageDestroy; - mg_canvas_backend_image_upload_region_proc imageUploadRegion; - - mg_canvas_backend_render_proc render; - -} mg_canvas_backend; - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif //__GRAPHICS_SURFACE_H_ +/************************************************************//** +* +* @file: graphics_surface.h +* @author: Martin Fouilleul +* @date: 26/04/2023 +* +*****************************************************************/ +#ifndef __GRAPHICS_SURFACE_H_ +#define __GRAPHICS_SURFACE_H_ + +#include"graphics_common.h" +#include"app/mp_app_internal.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//--------------------------------------------------------------- +// surface interface +//--------------------------------------------------------------- +typedef struct mg_surface_data mg_surface_data; +typedef struct mg_canvas_backend mg_canvas_backend; + +typedef void (*mg_surface_destroy_proc)(mg_surface_data* surface); +typedef void (*mg_surface_prepare_proc)(mg_surface_data* surface); +typedef void (*mg_surface_deselect_proc)(mg_surface_data* surface); +typedef void (*mg_surface_present_proc)(mg_surface_data* surface); +typedef void (*mg_surface_swap_interval_proc)(mg_surface_data* surface, int swap); +typedef vec2 (*mg_surface_get_size_proc)(mg_surface_data* surface); +typedef vec2 (*mg_surface_contents_scaling_proc)(mg_surface_data* surface); +typedef bool (*mg_surface_get_hidden_proc)(mg_surface_data* surface); +typedef void (*mg_surface_set_hidden_proc)(mg_surface_data* surface, bool hidden); +typedef void* (*mg_surface_native_layer_proc)(mg_surface_data* surface); +typedef mg_surface_id (*mg_surface_remote_id_proc)(mg_surface_data* surface); +typedef void (*mg_surface_host_connect_proc)(mg_surface_data* surface, mg_surface_id remoteId); + +typedef struct mg_surface_data +{ + mg_surface_api api; + mp_layer layer; + + mg_surface_destroy_proc destroy; + mg_surface_prepare_proc prepare; + mg_surface_present_proc present; + mg_surface_deselect_proc deselect; + mg_surface_swap_interval_proc swapInterval; + mg_surface_get_size_proc getSize; + mg_surface_contents_scaling_proc contentsScaling; + mg_surface_get_hidden_proc getHidden; + mg_surface_set_hidden_proc setHidden; + mg_surface_native_layer_proc nativeLayer; + mg_surface_remote_id_proc remoteID; + mg_surface_host_connect_proc hostConnect; + + mg_canvas_backend* backend; + +} mg_surface_data; + +mg_surface mg_surface_alloc_handle(mg_surface_data* surface); +mg_surface_data* mg_surface_data_from_handle(mg_surface handle); + +void mg_surface_init_for_window(mg_surface_data* surface, mp_window_data* window); +void mg_surface_init_remote(mg_surface_data* surface, u32 width, u32 height); +void mg_surface_init_host(mg_surface_data* surface, mp_window_data* window); +void mg_surface_cleanup(mg_surface_data* surface); +void* mg_surface_native_layer(mg_surface surface); + +//--------------------------------------------------------------- +// canvas backend interface +//--------------------------------------------------------------- +typedef struct mg_image_data +{ + list_elt listElt; + u32 generation; + mg_surface surface; + vec2 size; + +} mg_image_data; + +typedef void (*mg_canvas_backend_destroy_proc)(mg_canvas_backend* backend); + +typedef mg_image_data* (*mg_canvas_backend_image_create_proc)(mg_canvas_backend* backend, vec2 size); +typedef void (*mg_canvas_backend_image_destroy_proc)(mg_canvas_backend* backend, mg_image_data* image); +typedef void (*mg_canvas_backend_image_upload_region_proc)(mg_canvas_backend* backend, + mg_image_data* image, + mp_rect region, + u8* pixels); + +typedef void (*mg_canvas_backend_render_proc)(mg_canvas_backend* backend, + mg_color clearColor, + u32 primitiveCount, + mg_primitive* primitives, + u32 eltCount, + mg_path_elt* pathElements); + +typedef struct mg_canvas_backend +{ + mg_canvas_backend_destroy_proc destroy; + + mg_canvas_backend_image_create_proc imageCreate; + mg_canvas_backend_image_destroy_proc imageDestroy; + mg_canvas_backend_image_upload_region_proc imageUploadRegion; + + mg_canvas_backend_render_proc render; + +} mg_canvas_backend; + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif //__GRAPHICS_SURFACE_H_ diff --git a/milepost/src/mtl_renderer.h b/src/graphics/mtl_renderer.h similarity index 100% rename from milepost/src/mtl_renderer.h rename to src/graphics/mtl_renderer.h diff --git a/milepost/src/mtl_renderer.m b/src/graphics/mtl_renderer.m similarity index 97% rename from milepost/src/mtl_renderer.m rename to src/graphics/mtl_renderer.m index 11497cd..5aed54c 100644 --- a/milepost/src/mtl_renderer.m +++ b/src/graphics/mtl_renderer.m @@ -11,8 +11,8 @@ #include #include"graphics_surface.h" -#include"macro_helpers.h" -#include"osx_app.h" +#include"util/macro_helpers.h" +#include"app/osx_app.h" #include"mtl_renderer.h" diff --git a/milepost/src/mtl_renderer.metal b/src/graphics/mtl_renderer.metal similarity index 100% rename from milepost/src/mtl_renderer.metal rename to src/graphics/mtl_renderer.metal diff --git a/milepost/src/mtl_surface.h b/src/graphics/mtl_surface.h similarity index 100% rename from milepost/src/mtl_surface.h rename to src/graphics/mtl_surface.h diff --git a/milepost/src/mtl_surface.m b/src/graphics/mtl_surface.m similarity index 99% rename from milepost/src/mtl_surface.m rename to src/graphics/mtl_surface.m index 179e6b5..9b3d14c 100644 --- a/milepost/src/mtl_surface.m +++ b/src/graphics/mtl_surface.m @@ -12,8 +12,8 @@ #include #include"graphics_surface.h" -#include"macro_helpers.h" -#include"osx_app.h" +#include"util/macro_helpers.h" +#include"app/osx_app.h" typedef struct mg_mtl_surface { diff --git a/milepost/src/wgl_surface.c b/src/graphics/wgl_surface.c similarity index 99% rename from milepost/src/wgl_surface.c rename to src/graphics/wgl_surface.c index 40cc5e5..912b760 100644 --- a/milepost/src/wgl_surface.c +++ b/src/graphics/wgl_surface.c @@ -6,12 +6,12 @@ * @revision: * *****************************************************************/ -#include"win32_app.h" +#include"app/win32_app.h" #include"graphics_surface.h" #include"gl_loader.h" #include -#include"macro_helpers.h" +#include"util/macro_helpers.h" #define WGL_PROC_LIST \ WGL_PROC(WGLCHOOSEPIXELFORMATARB, wglChoosePixelFormatARB) \ diff --git a/milepost/src/wgl_surface.h b/src/graphics/wgl_surface.h similarity index 100% rename from milepost/src/wgl_surface.h rename to src/graphics/wgl_surface.h diff --git a/src/libc-shim/include/assert.h b/src/libc-shim/include/assert.h new file mode 100644 index 0000000..3d75295 --- /dev/null +++ b/src/libc-shim/include/assert.h @@ -0,0 +1,14 @@ +#include +#include"platform/platform_debug.h" + +#undef assert + +#ifdef NDEBUG +#define assert(x) (void)0 +#else +#define assert(x) ASSERT(x) +#endif + +#if __STDC_VERSION__ >= 201112L && !defined(__cplusplus) +#define static_assert _Static_assert +#endif diff --git a/cstdlib/include/bits/errno.h b/src/libc-shim/include/bits/errno.h similarity index 100% rename from cstdlib/include/bits/errno.h rename to src/libc-shim/include/bits/errno.h diff --git a/cstdlib/include/bits/float.h b/src/libc-shim/include/bits/float.h similarity index 100% rename from cstdlib/include/bits/float.h rename to src/libc-shim/include/bits/float.h diff --git a/cstdlib/include/errno.h b/src/libc-shim/include/errno.h similarity index 100% rename from cstdlib/include/errno.h rename to src/libc-shim/include/errno.h diff --git a/cstdlib/include/features.h b/src/libc-shim/include/features.h similarity index 100% rename from cstdlib/include/features.h rename to src/libc-shim/include/features.h diff --git a/cstdlib/include/float.h b/src/libc-shim/include/float.h similarity index 100% rename from cstdlib/include/float.h rename to src/libc-shim/include/float.h diff --git a/cstdlib/include/math.h b/src/libc-shim/include/math.h similarity index 100% rename from cstdlib/include/math.h rename to src/libc-shim/include/math.h diff --git a/src/libc-shim/include/stdarg.h b/src/libc-shim/include/stdarg.h new file mode 100644 index 0000000..cbc5f3e --- /dev/null +++ b/src/libc-shim/include/stdarg.h @@ -0,0 +1,17 @@ +/************************************************************//** +* +* @file: stdarg.h +* @author: Martin Fouilleul +* @date: 17/04/2023 +* +*****************************************************************/ +#ifndef __STDARG_H_ +#define __STDARG_H_ + +#define va_list __builtin_va_list +#define va_start __builtin_va_start +#define va_arg __builtin_va_arg +#define va_copy __builtin_va_copy +#define va_end __builtin_va_end + +#endif //__STDARG_H_ diff --git a/cstdlib/include/stdlib.h b/src/libc-shim/include/stdlib.h similarity index 75% rename from cstdlib/include/stdlib.h rename to src/libc-shim/include/stdlib.h index 92f9469..530ff44 100644 --- a/cstdlib/include/stdlib.h +++ b/src/libc-shim/include/stdlib.h @@ -5,7 +5,7 @@ extern "C" { #endif -_Noreturn void abort (void); +#define abort(...) ORCA_ABORT(__VA_ARGS__) int abs (int); diff --git a/src/libc-shim/include/string.h b/src/libc-shim/include/string.h new file mode 100644 index 0000000..76d92be --- /dev/null +++ b/src/libc-shim/include/string.h @@ -0,0 +1,13 @@ +#include"stb/stb_sprintf.h" + +void* memset(void* b, int c, size_t n); +void* memcpy(void *restrict dst, const void *restrict src, size_t n); +void* memmove(void *dst, const void *src, size_t n); +int memcmp(const void *s1, const void *s2, size_t n); + +size_t strlen(const char *s); +int strcmp(const char *s1, const char *s2); +int strncmp(const char *s1, const char *s2, size_t n); +char* strcpy(char *restrict s1, const char *restrict s2); + +#define vsnprintf stbsp_vsnprintf diff --git a/cstdlib/src/__cos.c b/src/libc-shim/src/__cos.c similarity index 100% rename from cstdlib/src/__cos.c rename to src/libc-shim/src/__cos.c diff --git a/cstdlib/src/__cosdf.c b/src/libc-shim/src/__cosdf.c similarity index 100% rename from cstdlib/src/__cosdf.c rename to src/libc-shim/src/__cosdf.c diff --git a/cstdlib/src/__errno_location.c b/src/libc-shim/src/__errno_location.c similarity index 100% rename from cstdlib/src/__errno_location.c rename to src/libc-shim/src/__errno_location.c diff --git a/cstdlib/src/__math_invalid.c b/src/libc-shim/src/__math_invalid.c similarity index 100% rename from cstdlib/src/__math_invalid.c rename to src/libc-shim/src/__math_invalid.c diff --git a/cstdlib/src/__math_invalidf.c b/src/libc-shim/src/__math_invalidf.c similarity index 100% rename from cstdlib/src/__math_invalidf.c rename to src/libc-shim/src/__math_invalidf.c diff --git a/cstdlib/src/__math_oflow.c b/src/libc-shim/src/__math_oflow.c similarity index 100% rename from cstdlib/src/__math_oflow.c rename to src/libc-shim/src/__math_oflow.c diff --git a/cstdlib/src/__math_uflow.c b/src/libc-shim/src/__math_uflow.c similarity index 100% rename from cstdlib/src/__math_uflow.c rename to src/libc-shim/src/__math_uflow.c diff --git a/cstdlib/src/__math_xflow.c b/src/libc-shim/src/__math_xflow.c similarity index 100% rename from cstdlib/src/__math_xflow.c rename to src/libc-shim/src/__math_xflow.c diff --git a/cstdlib/src/__rem_pio2.c b/src/libc-shim/src/__rem_pio2.c similarity index 100% rename from cstdlib/src/__rem_pio2.c rename to src/libc-shim/src/__rem_pio2.c diff --git a/cstdlib/src/__rem_pio2_large.c b/src/libc-shim/src/__rem_pio2_large.c similarity index 100% rename from cstdlib/src/__rem_pio2_large.c rename to src/libc-shim/src/__rem_pio2_large.c diff --git a/cstdlib/src/__rem_pio2f.c b/src/libc-shim/src/__rem_pio2f.c similarity index 100% rename from cstdlib/src/__rem_pio2f.c rename to src/libc-shim/src/__rem_pio2f.c diff --git a/cstdlib/src/__sin.c b/src/libc-shim/src/__sin.c similarity index 100% rename from cstdlib/src/__sin.c rename to src/libc-shim/src/__sin.c diff --git a/cstdlib/src/__sindf.c b/src/libc-shim/src/__sindf.c similarity index 100% rename from cstdlib/src/__sindf.c rename to src/libc-shim/src/__sindf.c diff --git a/cstdlib/src/abs.c b/src/libc-shim/src/abs.c similarity index 100% rename from cstdlib/src/abs.c rename to src/libc-shim/src/abs.c diff --git a/cstdlib/src/acos.c b/src/libc-shim/src/acos.c similarity index 100% rename from cstdlib/src/acos.c rename to src/libc-shim/src/acos.c diff --git a/cstdlib/src/ceil.c b/src/libc-shim/src/ceil.c similarity index 100% rename from cstdlib/src/ceil.c rename to src/libc-shim/src/ceil.c diff --git a/cstdlib/src/cos.c b/src/libc-shim/src/cos.c similarity index 100% rename from cstdlib/src/cos.c rename to src/libc-shim/src/cos.c diff --git a/cstdlib/src/cosf.c b/src/libc-shim/src/cosf.c similarity index 100% rename from cstdlib/src/cosf.c rename to src/libc-shim/src/cosf.c diff --git a/cstdlib/src/exp_data.h b/src/libc-shim/src/exp_data.h similarity index 100% rename from cstdlib/src/exp_data.h rename to src/libc-shim/src/exp_data.h diff --git a/cstdlib/src/fabs.c b/src/libc-shim/src/fabs.c similarity index 100% rename from cstdlib/src/fabs.c rename to src/libc-shim/src/fabs.c diff --git a/cstdlib/src/floor.c b/src/libc-shim/src/floor.c similarity index 100% rename from cstdlib/src/floor.c rename to src/libc-shim/src/floor.c diff --git a/cstdlib/src/fmod.c b/src/libc-shim/src/fmod.c similarity index 100% rename from cstdlib/src/fmod.c rename to src/libc-shim/src/fmod.c diff --git a/cstdlib/src/libm.h b/src/libc-shim/src/libm.h similarity index 100% rename from cstdlib/src/libm.h rename to src/libc-shim/src/libm.h diff --git a/cstdlib/src/pow.c b/src/libc-shim/src/pow.c similarity index 100% rename from cstdlib/src/pow.c rename to src/libc-shim/src/pow.c diff --git a/cstdlib/src/pow_data.h b/src/libc-shim/src/pow_data.h similarity index 100% rename from cstdlib/src/pow_data.h rename to src/libc-shim/src/pow_data.h diff --git a/cstdlib/src/scalbn.c b/src/libc-shim/src/scalbn.c similarity index 100% rename from cstdlib/src/scalbn.c rename to src/libc-shim/src/scalbn.c diff --git a/cstdlib/src/sin.c b/src/libc-shim/src/sin.c similarity index 100% rename from cstdlib/src/sin.c rename to src/libc-shim/src/sin.c diff --git a/cstdlib/src/sinf.c b/src/libc-shim/src/sinf.c similarity index 100% rename from cstdlib/src/sinf.c rename to src/libc-shim/src/sinf.c diff --git a/cstdlib/src/sqrt.c b/src/libc-shim/src/sqrt.c similarity index 100% rename from cstdlib/src/sqrt.c rename to src/libc-shim/src/sqrt.c diff --git a/cstdlib/src/sqrt_data.c b/src/libc-shim/src/sqrt_data.c similarity index 100% rename from cstdlib/src/sqrt_data.c rename to src/libc-shim/src/sqrt_data.c diff --git a/cstdlib/src/sqrt_data.h b/src/libc-shim/src/sqrt_data.h similarity index 100% rename from cstdlib/src/sqrt_data.h rename to src/libc-shim/src/sqrt_data.h diff --git a/cstdlib/src/sqrtf.c b/src/libc-shim/src/sqrtf.c similarity index 100% rename from cstdlib/src/sqrtf.c rename to src/libc-shim/src/sqrtf.c diff --git a/milepost/src/platform/orca_strings.c b/src/libc-shim/src/string.c similarity index 74% rename from milepost/src/platform/orca_strings.c rename to src/libc-shim/src/string.c index ac89942..8c44f50 100644 --- a/milepost/src/platform/orca_strings.c +++ b/src/libc-shim/src/string.c @@ -1,14 +1,35 @@ /************************************************************//** * -* @file: orca_strings.c +* @file: string.c * @author: Martin Fouilleul * @date: 18/04/2023 * *****************************************************************/ -#include"platform_strings.h" +#include + +void* memset(void* b, int c, size_t n) +{ + return(__builtin_memset(b, c, n)); +} + +void* memcpy(void *restrict dst, const void *restrict src, size_t n) +{ + return(__builtin_memcpy(dst, src, n)); +} + +void* memmove(void *dst, const void *src, size_t n) +{ + return(__builtin_memmove(dst, src, n)); +} + +int memcmp(const void *s1, const void *s2, size_t n) +{ + return(__builtin_memcmp(s1, s2, n)); +} + #define STB_SPRINTF_IMPLEMENTATION -#include"ext/stb_sprintf.h" +#include"stb/stb_sprintf.h" size_t strlen(const char *s) { diff --git a/milepost/src/milepost.c b/src/orca.c similarity index 69% rename from milepost/src/milepost.c rename to src/orca.c index 3e7a381..571f519 100644 --- a/milepost/src/milepost.c +++ b/src/orca.c @@ -1,6 +1,6 @@ /************************************************************//** * -* @file: milepost.c +* @file: orca.c * @author: Martin Fouilleul * @date: 13/02/2021 * @revision: @@ -10,11 +10,10 @@ //--------------------------------------------------------------- // platform implementations //--------------------------------------------------------------- -#include"platform.h" - -#include"platform/std_log.c" +#include"platform/platform.h" #if PLATFORM_WINDOWS + #include"platform/native_debug.c" #include"platform/win32_memory.c" #include"platform/win32_clock.c" #include"platform/win32_string_helpers.c" @@ -23,6 +22,7 @@ #include"platform/win32_thread.c" //TODO #elif PLATFORM_MACOS + #include"platform/native_debug.c" #include"platform/unix_memory.c" #include"platform/osx_clock.c" #include"platform/posix_io.c" @@ -34,6 +34,7 @@ */ #elif PLATFORM_LINUX + #include"platform/native_debug.c" #include"platform/unix_base_memory.c" #include"platform/linux_clock.c" #include"platform/posix_io.c" @@ -42,6 +43,13 @@ #include"platform/unix_rng.c" #include"platform/posix_socket.c" */ +#elif PLATFORM_ORCA + #include"platform/orca_debug.c" + #include"platform/orca_clock.c" + #include"platform/orca_memory.c" + #include"platform/orca_malloc.c" + #include"platform/platform_io_common.c" + #include"platform/orca_io_stubs.c" #else #error "Unsupported platform" #endif @@ -60,31 +68,35 @@ //--------------------------------------------------------------- #if PLATFORM_WINDOWS - #include"win32_app.c" - #include"graphics_common.c" - #include"graphics_surface.c" + #include"app/win32_app.c" + #include"graphics/graphics_common.c" + #include"graphics/graphics_surface.c" #if MG_COMPILE_GL || MG_COMPILE_GLES - #include"gl_loader.c" + #include"graphics/gl_loader.c" #endif #if MG_COMPILE_GL - #include"wgl_surface.c" + #include"graphics/wgl_surface.c" #endif #if MG_COMPILE_CANVAS - #include"gl_canvas.c" + #include"graphics/gl_canvas.c" #endif #if MG_COMPILE_GLES - #include"egl_surface.c" + #include"graphics/egl_surface.c" #endif #elif PLATFORM_MACOS - //NOTE: macos application layer and graphics backends are defined in milepost.m + //NOTE: macos application layer and graphics backends are defined in orca.m +#elif PLATFORM_ORCA + #include"app/orca_app.c" + #include"graphics/graphics_common.c" + #include"graphics/orca_surface_stubs.c" #else #error "Unsupported platform" #endif -#include"input_state.c" -#include"ui.c" +#include"ui/input_state.c" +#include"ui/ui.c" diff --git a/milepost/src/milepost.h b/src/orca.h similarity index 57% rename from milepost/src/milepost.h rename to src/orca.h index 19b385b..4aa5109 100644 --- a/milepost/src/milepost.h +++ b/src/orca.h @@ -1,52 +1,55 @@ /************************************************************//** * -* @file: milepost.h +* @file: orca.h * @author: Martin Fouilleul * @date: 13/02/2021 * @revision: * *****************************************************************/ -#ifndef __MILEPOST_H_ -#define __MILEPOST_H_ +#ifndef __ORCA_H_ +#define __ORCA_H_ -//---------------------------------------------------------------- -// utility layer -//---------------------------------------------------------------- -#include"platform/platform.h" #include"util/typedefs.h" #include"util/macro_helpers.h" -#include"platform/platform_log.h" +#include"util/debug.h" #include"util/lists.h" #include"util/memory.h" #include"util/strings.h" #include"util/utf8.h" #include"util/hash.h" -//---------------------------------------------------------------- -// platform layer -//---------------------------------------------------------------- +#include"platform/platform.h" #include"platform/platform_clock.h" #include"platform/platform_path.h" #include"platform/platform_io.h" -#include"platform/platform_thread.h" -/* -#include"platform_rng.h" -#include"platform_socket.h" -#include"platform_thread.h" -*/ -//---------------------------------------------------------------- -// application/graphics layer -//---------------------------------------------------------------- -#include"mp_app.h" -#include"graphics.h" -#include"input_state.h" -#include"ui.h" - -#ifdef MG_INCLUDE_GL_API - #include"gl_api.h" +#if !defined(PLATFORM_ORCA) || !(PLATFORM_ORCA) + #include"platform/platform_thread.h" #endif -//#include"ui.h" +#include"app/mp_app.h" -#endif //__MILEPOST_H_ +//---------------------------------------------------------------- +// graphics +//---------------------------------------------------------------- +#include"graphics/graphics.h" + +#if PLATFORM_ORCA + //TODO: maybe make this conditional + #include"graphics/orca_gl31.h" + + mg_surface mg_surface_canvas(); + mg_surface mg_surface_gles(); + +#else + #ifdef MG_INCLUDE_GL_API + #include"graphics/gl_api.h" + #endif +#endif +//---------------------------------------------------------------- +// UI +//---------------------------------------------------------------- +#include"ui/input_state.h" +#include"ui/ui.h" + +#endif //__ORCA_H_ diff --git a/milepost/src/milepost.m b/src/orca.m similarity index 53% rename from milepost/src/milepost.m rename to src/orca.m index 6cfb464..ef58b91 100644 --- a/milepost/src/milepost.m +++ b/src/orca.m @@ -7,20 +7,20 @@ * *****************************************************************/ -#include"osx_path.m" -#include"osx_app.m" -#include"graphics_common.c" -#include"graphics_surface.c" +#include"platform/osx_path.m" +#include"app/osx_app.m" +#include"graphics/graphics_common.c" +#include"graphics/graphics_surface.c" #if MG_COMPILE_METAL - #include"mtl_surface.m" + #include"graphics/mtl_surface.m" #endif #if MG_COMPILE_CANVAS - #include"mtl_renderer.m" + #include"graphics/mtl_renderer.m" #endif #if MG_COMPILE_GLES - #include"gl_loader.c" - #include"egl_surface.c" + #include"graphics/gl_loader.c" + #include"graphics/egl_surface.c" #endif diff --git a/milepost/src/platform/linux_clock.c b/src/platform/linux_clock.c similarity index 100% rename from milepost/src/platform/linux_clock.c rename to src/platform/linux_clock.c diff --git a/src/platform/native_debug.c b/src/platform/native_debug.c new file mode 100644 index 0000000..1da1da7 --- /dev/null +++ b/src/platform/native_debug.c @@ -0,0 +1,137 @@ +/************************************************************//** +* +* @file: native_debug.c +* @author: Martin Fouilleul +* @date: 13/08/2023 +* +*****************************************************************/ +#include + +#include"app/mp_app.h" +#include"platform_debug.c" +//---------------------------------------------------------------- +// Logging +//---------------------------------------------------------------- + +#if PLATFORM_WINDOWS + #include + #define isatty _isatty + #define fileno _fileno +#elif PLATFORM_MACOS || PLATFORM_LINUX + #include +#endif + +static const char* LOG_HEADINGS[LOG_LEVEL_COUNT] = { + "Error", + "Warning", + "Info"}; + +static const char* LOG_FORMATS[LOG_LEVEL_COUNT] = { + "\033[38;5;9m\033[1m", + "\033[38;5;13m\033[1m", + "\033[38;5;10m\033[1m"}; + +static const char* LOG_FORMAT_STOP = "\033[m"; + +typedef struct log_output +{ + FILE* f; +} log_output; + +static log_output _logDefaultOutput = {0}; +log_output* LOG_DEFAULT_OUTPUT = &_logDefaultOutput; + +void platform_log_push(log_output* output, + log_level level, + const char* file, + const char* function, + int line, + const char* fmt, + va_list ap) +{ + if(output == LOG_DEFAULT_OUTPUT && output->f == 0) + { + output->f = stdout; + } + + int fd = fileno(output->f); + if(isatty(fd)) + { + fprintf(output->f, + "%s%s:%s %s() in %s:%i: ", + LOG_FORMATS[level], + LOG_HEADINGS[level], + LOG_FORMAT_STOP, + function, + file, + line); + } + else + { + fprintf(output->f, + "%s: %s() in %s:%i: ", + LOG_HEADINGS[level], + function, + file, + line); + } + vfprintf(output->f, fmt, ap); +} + +//---------------------------------------------------------------- +// Assert/Abort +//---------------------------------------------------------------- + +_Noreturn void orca_abort(const char* file, const char* function, int line, const char* fmt, ...) +{ + mem_arena* scratch = mem_scratch(); + + va_list ap; + va_start(ap, fmt); + str8 note = str8_pushfv(scratch, fmt, ap); + va_end(ap); + + str8 msg = str8_pushf(scratch, + "Fatal error in function %s() in file \"%s\", line %i:\n%.*s\n", + function, + file, + line, + (int)note.len, + note.ptr); + + const char* msgCStr = str8_to_cstring(scratch, msg); + log_error(msgCStr); + + const char* options[] = {"OK"}; + mp_alert_popup("Fatal Error", msgCStr, 1, options); + + //TODO: could terminate more gracefully? + exit(-1); +} + +_Noreturn void orca_assert_fail(const char* file, const char* function, int line, const char* src, const char* fmt, ...) +{ + mem_arena* scratch = mem_scratch(); + + va_list ap; + va_start(ap, fmt); + str8 note = str8_pushfv(scratch, fmt, ap); + va_end(ap); + + str8 msg = str8_pushf(scratch, + "Assertion failed in function %s() in file \"%s\", line %i:\n%s\nNote: %.*s\n", + function, + file, + line, + src, + str8_ip(note)); + + const char* msgCStr = str8_to_cstring(scratch, msg); + log_error(msgCStr); + + const char* options[] = {"OK"}; + mp_alert_popup("Assertion Failed", msgCStr, 1, options); + + //TODO: could terminate more gracefully? + exit(-1); +} diff --git a/milepost/src/platform/orca_clock.c b/src/platform/orca_clock.c similarity index 100% rename from milepost/src/platform/orca_clock.c rename to src/platform/orca_clock.c diff --git a/src/platform/orca_debug.c b/src/platform/orca_debug.c new file mode 100644 index 0000000..d4b69a7 --- /dev/null +++ b/src/platform/orca_debug.c @@ -0,0 +1,139 @@ +/************************************************************//** +* +* @file: orca_debug.c +* @author: Martin Fouilleul +* @date: 13/08/2023 +* +*****************************************************************/ +#include + +#include"platform_debug.c" +#include"util/strings.h" + + +//---------------------------------------------------------------- +// stb sprintf callback and user struct +//---------------------------------------------------------------- + +typedef struct orca_stbsp_context +{ + mem_arena* arena; + str8_list list; +} orca_stbsp_context; + +char* orca_stbsp_callback(char const* buf, void* user, int len) +{ + orca_stbsp_context* ctx = (orca_stbsp_context*)user; + + str8 string = str8_push_buffer(ctx->arena, len, (char*)buf); + str8_list_push(ctx->arena, &ctx->list, string); + + return((char*)buf); +} + +//---------------------------------------------------------------- +// Logging +//---------------------------------------------------------------- + +typedef enum +{ + ORCA_LOG_OUTPUT_CONSOLE, + ORCA_LOG_OUTPUT_FILE +} orca_log_output_kind; + +typedef struct log_output +{ + orca_log_output_kind kind; + //TODO: file output +} log_output; + +static log_output _logDefaultOutput = {.kind = ORCA_LOG_OUTPUT_CONSOLE}; +log_output* LOG_DEFAULT_OUTPUT = &_logDefaultOutput; + +void ORCA_IMPORT(orca_log)(log_level level, + int fileLen, + const char* file, + int functionLen, + const char* function, + int line, + int msgLen, + const char* msg); + +void platform_log_push(log_output* output, + log_level level, + const char* file, + const char* function, + int line, + const char* fmt, + va_list ap) +{ + mem_arena* scratch = mem_scratch(); + mem_arena_scope tmp = mem_arena_scope_begin(scratch); + + orca_stbsp_context ctx = {.arena = scratch, + .list = {0}}; + + char buf[STB_SPRINTF_MIN]; + stbsp_vsprintfcb(orca_stbsp_callback, &ctx, buf, fmt, ap); + + str8 string = str8_list_join(scratch, ctx.list); + + orca_log(level, strlen(file), file, strlen(function), function, line, str8_ip(string)); + + mem_arena_scope_end(tmp); +} + +//---------------------------------------------------------------- +// Assert/Abort +//---------------------------------------------------------------- + +_Noreturn void ORCA_IMPORT(orca_runtime_abort)(const char* file, const char* function, int line, const char* msg); +_Noreturn void ORCA_IMPORT(orca_runtime_assert_fail)(const char* file, const char* function, int line, const char* src, const char* msg); + +_Noreturn void orca_abort(const char* file, const char* function, int line, const char* fmt, ...) +{ + mem_arena_scope scratch = mem_scratch_begin(); + + orca_stbsp_context ctx = { + .arena = scratch.arena, + .list = {0} + }; + + va_list ap; + va_start(ap, fmt); + + char buf[STB_SPRINTF_MIN]; + stbsp_vsprintfcb(orca_stbsp_callback, &ctx, buf, fmt, ap); + + va_end(ap); + + str8 msg = str8_list_join(scratch.arena, ctx.list); + + orca_runtime_abort(file, function, line, msg.ptr); + + mem_scratch_end(scratch); +} + +_Noreturn void orca_assert_fail(const char* file, const char* function, int line, const char* src, const char* fmt, ...) +{ + mem_arena_scope scratch = mem_scratch_begin(); + + orca_stbsp_context ctx = { + .arena = scratch.arena, + .list = {0} + }; + + va_list ap; + va_start(ap, fmt); + + char buf[STB_SPRINTF_MIN]; + stbsp_vsprintfcb(orca_stbsp_callback, &ctx, buf, fmt, ap); + + va_end(ap); + + str8 msg = str8_list_join(scratch.arena, ctx.list); + + orca_runtime_assert_fail(file, function, line, src, msg.ptr); + + mem_scratch_end(scratch); +} diff --git a/milepost/src/platform/orca_malloc.c b/src/platform/orca_malloc.c similarity index 99% rename from milepost/src/platform/orca_malloc.c rename to src/platform/orca_malloc.c index 5079b5d..1d5ed59 100644 --- a/milepost/src/platform/orca_malloc.c +++ b/src/platform/orca_malloc.c @@ -337,9 +337,10 @@ extern "C" { /* #define LACKS_SYS_PARAM_H */ -#include /* needed for malloc_stats */ -#include /* needed for optional MALLOC_FAILURE_ACTION */ +//NOTE(ORCA): stdio doesn't make sense in orca platform +// #include /* needed for malloc_stats */ +#include /* needed for optional MALLOC_FAILURE_ACTION */ /* Debugging: @@ -4705,6 +4706,8 @@ struct mallinfo mALLINFo() void mSTATs(void) { +/*NOTE(ORCA): stdio doesn't make sense in orca platform + struct mallinfo mi = mALLINFo(); #ifdef WIN32 @@ -4739,6 +4742,7 @@ void mSTATs(void) } } #endif +*/ } diff --git a/milepost/src/platform/orca_memory.c b/src/platform/orca_memory.c similarity index 65% rename from milepost/src/platform/orca_memory.c rename to src/platform/orca_memory.c index 08cce3c..7152ee9 100644 --- a/milepost/src/platform/orca_memory.c +++ b/src/platform/orca_memory.c @@ -29,23 +29,3 @@ mem_base_allocator* mem_base_allocator_default() } return(&base); } - -void* memset(void* b, int c, size_t n) -{ - return(__builtin_memset(b, c, n)); -} - -void* memcpy(void *restrict dst, const void *restrict src, size_t n) -{ - return(__builtin_memcpy(dst, src, n)); -} - -void* memmove(void *dst, const void *src, size_t n) -{ - return(__builtin_memmove(dst, src, n)); -} - -int memcmp(const void *s1, const void *s2, size_t n) -{ - return(__builtin_memcmp(s1, s2, n)); -} diff --git a/milepost/src/platform/osx_clock.c b/src/platform/osx_clock.c similarity index 100% rename from milepost/src/platform/osx_clock.c rename to src/platform/osx_clock.c diff --git a/milepost/src/platform/osx_path.m b/src/platform/osx_path.m similarity index 100% rename from milepost/src/platform/osx_path.m rename to src/platform/osx_path.m diff --git a/milepost/src/platform/platform.h b/src/platform/platform.h similarity index 94% rename from milepost/src/platform/platform.h rename to src/platform/platform.h index 4397334..ce19777 100644 --- a/milepost/src/platform/platform.h +++ b/src/platform/platform.h @@ -98,9 +98,14 @@ #define mp_thread_local __thread #endif - #if PLATFORM_ORCA #define ORCA_IMPORT(f) __attribute__((import_name(#f))) f + + #if COMPILER_CLANG + #define ORCA_EXPORT __attribute__((visibility("default"))) + #else + #error "Orca apps can only be compiled with clang for now" + #endif #endif #endif // __PLATFORM_H_ diff --git a/milepost/src/platform/platform_clock.h b/src/platform/platform_clock.h similarity index 100% rename from milepost/src/platform/platform_clock.h rename to src/platform/platform_clock.h diff --git a/milepost/src/platform/platform_log.c b/src/platform/platform_debug.c similarity index 81% rename from milepost/src/platform/platform_log.c rename to src/platform/platform_debug.c index e595cc2..9456338 100644 --- a/milepost/src/platform/platform_log.c +++ b/src/platform/platform_debug.c @@ -5,7 +5,7 @@ * @date: 18/04/2023 * *****************************************************************/ -#include"platform_log.h" +#include"platform_debug.h" typedef struct log_config { @@ -28,15 +28,15 @@ void log_set_level(log_level level) void platform_log_push(log_output* output, log_level level, - str8 function, - str8 file, + const char* file, + const char* function, int line, const char* fmt, va_list ap); void log_push(log_level level, - str8 function, - str8 file, + const char* function, + const char* file, int line, const char* fmt, ...) @@ -50,7 +50,7 @@ void log_push(log_level level, { va_list ap; va_start(ap, fmt); - platform_log_push(__logConfig.output, level, function, file, line, fmt, ap); + platform_log_push(__logConfig.output, level, file, function, line, fmt, ap); va_end(ap); } } diff --git a/src/platform/platform_debug.h b/src/platform/platform_debug.h new file mode 100644 index 0000000..ce795bb --- /dev/null +++ b/src/platform/platform_debug.h @@ -0,0 +1,43 @@ +/************************************************************//** +* +* @file: platform_debug.h +* @author: Martin Fouilleul +* @date: 13/08/2023 +* +*****************************************************************/ +#ifndef __PLATFORM_DEBUG_H_ +#define __PLATFORM_DEBUG_H_ + +#include"platform.h" + +//---------------------------------------------------------------- +// Assert / Abort +//---------------------------------------------------------------- + +MP_API _Noreturn void orca_abort(const char* file, const char* function, int line, const char* fmt, ...); +MP_API _Noreturn void orca_assert_fail(const char* file, const char* function, int line, const char* src, const char* fmt, ...); + +//---------------------------------------------------------------- +// Logging +//---------------------------------------------------------------- + +typedef enum { LOG_LEVEL_ERROR, + LOG_LEVEL_WARNING, + LOG_LEVEL_INFO, + LOG_LEVEL_COUNT } log_level; + +typedef struct log_output log_output; + +extern log_output* LOG_DEFAULT_OUTPUT; + +MP_API void log_set_level(log_level level); +MP_API void log_set_output(log_output* output); +MP_API void log_push(log_level level, + const char* function, + const char* file, + int line, + const char* fmt, + ...); + + +#endif //__PLATFORM_DEBUG_H_ diff --git a/milepost/src/platform/platform_io.h b/src/platform/platform_io.h similarity index 100% rename from milepost/src/platform/platform_io.h rename to src/platform/platform_io.h diff --git a/milepost/src/platform/platform_io_common.c b/src/platform/platform_io_common.c similarity index 100% rename from milepost/src/platform/platform_io_common.c rename to src/platform/platform_io_common.c diff --git a/milepost/src/platform/platform_io_internal.c b/src/platform/platform_io_internal.c similarity index 100% rename from milepost/src/platform/platform_io_internal.c rename to src/platform/platform_io_internal.c diff --git a/milepost/src/platform/platform_io_internal.h b/src/platform/platform_io_internal.h similarity index 100% rename from milepost/src/platform/platform_io_internal.h rename to src/platform/platform_io_internal.h diff --git a/milepost/src/platform/platform_memory.h b/src/platform/platform_memory.h similarity index 85% rename from milepost/src/platform/platform_memory.h rename to src/platform/platform_memory.h index c3a6870..006396f 100644 --- a/milepost/src/platform/platform_memory.h +++ b/src/platform/platform_memory.h @@ -58,14 +58,7 @@ MP_API mem_base_allocator* mem_base_allocator_default(); //NOTE(martin): memset / memcpy //-------------------------------------------------------------------------------- -#if PLATFORM_ORCA - void* memset(void *b, int c, size_t len); - void* memcpy(void *restrict dst, const void *restrict src, size_t n); - void* memmove(void *dst, const void *src, size_t len); - int memcmp(const void *s1, const void *s2, size_t n); -#else - #include -#endif +#include #ifdef __cplusplus } // extern "C" diff --git a/milepost/src/platform/platform_path.c b/src/platform/platform_path.c similarity index 100% rename from milepost/src/platform/platform_path.c rename to src/platform/platform_path.c diff --git a/milepost/src/platform/platform_path.h b/src/platform/platform_path.h similarity index 100% rename from milepost/src/platform/platform_path.h rename to src/platform/platform_path.h diff --git a/milepost/src/platform/platform_rng.h b/src/platform/platform_rng.h similarity index 100% rename from milepost/src/platform/platform_rng.h rename to src/platform/platform_rng.h diff --git a/milepost/src/platform/platform_socket.h b/src/platform/platform_socket.h similarity index 100% rename from milepost/src/platform/platform_socket.h rename to src/platform/platform_socket.h diff --git a/milepost/src/platform/platform_thread.h b/src/platform/platform_thread.h similarity index 100% rename from milepost/src/platform/platform_thread.h rename to src/platform/platform_thread.h diff --git a/milepost/src/platform/posix_io.c b/src/platform/posix_io.c similarity index 100% rename from milepost/src/platform/posix_io.c rename to src/platform/posix_io.c diff --git a/milepost/src/platform/posix_socket.c b/src/platform/posix_socket.c similarity index 99% rename from milepost/src/platform/posix_socket.c rename to src/platform/posix_socket.c index 5cef503..6f471fb 100644 --- a/milepost/src/platform/posix_socket.c +++ b/src/platform/posix_socket.c @@ -17,7 +17,7 @@ #include // malloc()/free() #include"platform_socket.h" -#include"platform_log.h" +#include"platform_debug.h" typedef struct in_addr in_addr; typedef struct sockaddr_in sockaddr_in; diff --git a/milepost/src/platform/posix_thread.c b/src/platform/posix_thread.c similarity index 100% rename from milepost/src/platform/posix_thread.c rename to src/platform/posix_thread.c diff --git a/milepost/src/platform/unix_memory.c b/src/platform/unix_memory.c similarity index 100% rename from milepost/src/platform/unix_memory.c rename to src/platform/unix_memory.c diff --git a/milepost/src/platform/unix_rng.c b/src/platform/unix_rng.c similarity index 97% rename from milepost/src/platform/unix_rng.c rename to src/platform/unix_rng.c index 1415bf6..0d3603d 100644 --- a/milepost/src/platform/unix_rng.c +++ b/src/platform/unix_rng.c @@ -10,7 +10,7 @@ #include #include -#include"platform_log.h" +#include"platform_debug.h" #include"typedefs.h" int RandomSeedFromDevice() diff --git a/milepost/src/platform/win32_clock.c b/src/platform/win32_clock.c similarity index 96% rename from milepost/src/platform/win32_clock.c rename to src/platform/win32_clock.c index f7b4a4f..b524495 100644 --- a/milepost/src/platform/win32_clock.c +++ b/src/platform/win32_clock.c @@ -8,7 +8,7 @@ *****************************************************************/ #include -#include"typedefs.h" +#include"util/typedefs.h" #include"platform_clock.h" #ifdef __cplusplus diff --git a/milepost/src/platform/win32_io.c b/src/platform/win32_io.c similarity index 100% rename from milepost/src/platform/win32_io.c rename to src/platform/win32_io.c diff --git a/milepost/src/platform/win32_memory.c b/src/platform/win32_memory.c similarity index 100% rename from milepost/src/platform/win32_memory.c rename to src/platform/win32_memory.c diff --git a/milepost/src/platform/win32_path.c b/src/platform/win32_path.c similarity index 100% rename from milepost/src/platform/win32_path.c rename to src/platform/win32_path.c diff --git a/milepost/src/platform/win32_string_helpers.c b/src/platform/win32_string_helpers.c similarity index 100% rename from milepost/src/platform/win32_string_helpers.c rename to src/platform/win32_string_helpers.c diff --git a/milepost/src/platform/win32_string_helpers.h b/src/platform/win32_string_helpers.h similarity index 100% rename from milepost/src/platform/win32_string_helpers.h rename to src/platform/win32_string_helpers.h diff --git a/milepost/src/platform/win32_thread.c b/src/platform/win32_thread.c similarity index 100% rename from milepost/src/platform/win32_thread.c rename to src/platform/win32_thread.c diff --git a/src/main.c b/src/runtime.c similarity index 91% rename from src/main.c rename to src/runtime.c index a90d6c9..d8300bc 100644 --- a/src/main.c +++ b/src/runtime.c @@ -1,6 +1,6 @@ /************************************************************//** * -* @file: main.c +* @file: runtime.c * @author: Martin Fouilleul * @date: 11/04/2023 * @@ -10,74 +10,12 @@ #include #define MG_INCLUDE_GL_API -#include"milepost.h" -#include"graphics_common.h" +#include"orca.h" +#include"graphics/graphics_common.h" -#include"orca_app.h" - -#include"memory_impl.c" -#include"io_impl.c" - -int orca_assert(const char* file, const char* function, int line, const char* src, const char* note) -{ - mem_arena* scratch = mem_scratch(); - str8 msg = str8_pushf(scratch, - "Assertion failed in function %s() in file \"%s\", line %i:\n%s\nNote: %s\n", - function, - file, - line, - src, - note); - - const char* msgCStr = str8_to_cstring(scratch, msg); - log_error(msgCStr); - - const char* options[] = {"OK"}; - mp_alert_popup("Assertion Failed", msgCStr, 1, options); - - //TODO: could terminate more gracefully? - exit(-1); - return(-1); -} - -int orca_assert_fmt(const char* file, const char* function, int line, const char* src, const char* fmt, ...) -{ - mem_arena* scratch = mem_scratch(); - - va_list ap; - va_start(ap, fmt); - str8 msg = str8_pushfv(scratch, fmt, ap); - va_end(ap); - - return(orca_assert(file, function, line, src, msg.ptr)); -} - -void orca_abort_fmt(const char* file, const char* function, int line, const char* fmt, ...) -{ - mem_arena* scratch = mem_scratch(); - - va_list ap; - va_start(ap, fmt); - str8 note = str8_pushfv(scratch, fmt, ap); - va_end(ap); - - str8 msg = str8_pushf(scratch, - "Fatal error in function %s() in file \"%s\", line %i:\n%.*s\n", - function, - file, - line, - (int)note.len, - note.ptr); - - const char* msgCStr = str8_to_cstring(scratch, msg); - log_error(msgCStr); - - const char* options[] = {"OK"}; - mp_alert_popup("Fatal Error", msgCStr, 1, options); - - //TODO: could terminate more gracefully? - exit(-1); -} +#include"runtime.h" +#include"runtime_memory.c" +#include"runtime_io.c" mg_font orca_font_create(const char* resourcePath) { @@ -199,8 +137,8 @@ void orca_log(log_level level, list_push_back(&debug->logEntries, &entry->listElt); log_push(level, - str8_from_buffer(fileLen, file), - str8_from_buffer(functionLen, function), + file, + function, line, "%.*s\n", msgLen, @@ -375,13 +313,12 @@ void orca_runtime_init(orca_runtime* runtime) runtime->wasmMemory.ptr = mem_base_reserve(allocator, runtime->wasmMemory.reserved); } -#include"core_api_bind_gen.c" -#include"canvas_api_bind.c" -#include"clock_api_bind_gen.c" -#include"io_api_bind_gen.c" - -#include"gles_api_bind_manual.c" -#include"gles_api_bind_gen.c" +#include"wasmbind/core_api_bind_gen.c" +#include"wasmbind/surface_api_bind_gen.c" +#include"wasmbind/clock_api_bind_gen.c" +#include"wasmbind/io_api_bind_gen.c" +#include"wasmbind/gles_api_bind_manual.c" +#include"wasmbind/gles_api_bind_gen.c" void orca_wasm3_abort(IM3Runtime runtime, M3Result res, const char* file, const char* function, int line, const char* msg) @@ -390,11 +327,11 @@ void orca_wasm3_abort(IM3Runtime runtime, M3Result res, const char* file, const m3_GetErrorInfo(runtime, &errInfo); if(errInfo.message && res == errInfo.result) { - orca_abort_fmt(file, function, line, "%s: %s (%s)", msg, res, errInfo.message); + orca_abort(file, function, line, "%s: %s (%s)", msg, res, errInfo.message); } else { - orca_abort_fmt(file, function, line, "%s: %s", msg, res); + orca_abort(file, function, line, "%s: %s", msg, res); } } @@ -451,7 +388,7 @@ i32 orca_runloop(void* user) { int err = 0; err |= bindgen_link_core_api(app->runtime.m3Module); - err |= bindgen_link_canvas_api(app->runtime.m3Module); + err |= bindgen_link_surface_api(app->runtime.m3Module); err |= bindgen_link_clock_api(app->runtime.m3Module); err |= bindgen_link_io_api(app->runtime.m3Module); err |= bindgen_link_gles_api(app->runtime.m3Module); @@ -922,5 +859,3 @@ int main(int argc, char** argv) mp_terminate(); return(0); } - -#undef LOG_SUBSYSTEM diff --git a/src/orca_app.h b/src/runtime.h similarity index 76% rename from src/orca_app.h rename to src/runtime.h index 6ee0fab..e1b2b70 100644 --- a/src/orca_app.h +++ b/src/runtime.h @@ -1,12 +1,12 @@ /************************************************************//** * -* @file: orca_runtime.h +* @file: runtime.h * @author: Martin Fouilleul * @date: 17/04/2023 * *****************************************************************/ -#ifndef __ORCA_RUNTIME_H_ -#define __ORCA_RUNTIME_H_ +#ifndef __RUNTIME_H_ +#define __RUNTIME_H_ #include"platform/platform_io_internal.h" @@ -125,14 +125,4 @@ typedef struct orca_app orca_app* orca_app_get(); orca_runtime* orca_runtime_get(); - -int orca_assert(const char* file, const char* function, int line, const char* src, const char* note); -int orca_assert_fmt(const char* file, const char* function, int line, const char* src, const char* fmt, ...); -void orca_abort_fmt(const char* file, const char* function, int line, const char* fmt, ...); - -#define _ORCA_ASSERT_(test, fmt, ...) ((test) || orca_assert_fmt(__FILE__, __FUNCTION__, __LINE__, #test, fmt, ##__VA_ARGS__)) -#define ORCA_ASSERT(test, ...) _ORCA_ASSERT_(test, ORCA_VA_NOPT("", ##__VA_ARGS__) ORCA_ARG1(__VA_ARGS__) ORCA_VA_COMMA_TAIL(__VA_ARGS__)) - -#define ORCA_ABORT(fmt, ...) orca_abort_fmt(__FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__) - -#endif //__ORCA_RUNTIME_H_ +#endif //__RUNTIME_H_ diff --git a/src/io_impl.c b/src/runtime_io.c similarity index 96% rename from src/io_impl.c rename to src/runtime_io.c index bce2a4e..06c5cde 100644 --- a/src/io_impl.c +++ b/src/runtime_io.c @@ -1,12 +1,12 @@ /************************************************************//** * -* @file: io_impl.c +* @file: runtime_io.c * @author: Martin Fouilleul * @date: 09/05/2023 * *****************************************************************/ #include"platform/platform_io_internal.h" -#include"orca_app.h" +#include"runtime.h" io_cmp orca_io_wait_single_req(io_req* wasmReq) { diff --git a/src/memory_impl.c b/src/runtime_memory.c similarity index 97% rename from src/memory_impl.c rename to src/runtime_memory.c index f1484f6..945e405 100644 --- a/src/memory_impl.c +++ b/src/runtime_memory.c @@ -1,12 +1,12 @@ /************************************************************//** * -* @file: memory_impl.c +* @file: runtime_memory.c * @author: Martin Fouilleul * @date: 17/04/2023 * *****************************************************************/ -#include"orca_app.h" +#include"runtime.h" void* wasm_memory_resize_callback(void* p, unsigned long size, void* userData) { @@ -63,4 +63,4 @@ void* wasm_memory_offset_to_ptr(wasm_memory* memory, u32 offset) M3MemoryHeader* header = (M3MemoryHeader*)(memory->ptr); DEBUG_ASSERT(offset < header->length, "Wasm offset exceeds memory length") return memory->ptr + sizeof(M3MemoryHeader) + offset; -} \ No newline at end of file +} diff --git a/milepost/src/input_state.c b/src/ui/input_state.c similarity index 100% rename from milepost/src/input_state.c rename to src/ui/input_state.c diff --git a/milepost/src/input_state.h b/src/ui/input_state.h similarity index 99% rename from milepost/src/input_state.h rename to src/ui/input_state.h index 7af604e..e9d92d1 100644 --- a/milepost/src/input_state.h +++ b/src/ui/input_state.h @@ -12,7 +12,7 @@ #include"util/typedefs.h" #include"util/strings.h" #include"util/utf8.h" -#include"mp_app.h" +#include"app/mp_app.h" typedef struct mp_key_state { diff --git a/milepost/src/ui.c b/src/ui/ui.c similarity index 96% rename from milepost/src/ui.c rename to src/ui/ui.c index 1ac5c4d..725c697 100644 --- a/milepost/src/ui.c +++ b/src/ui/ui.c @@ -7,7 +7,7 @@ * *****************************************************************/ #include"platform/platform.h" -#include"platform/platform_assert.h" +#include"platform/platform_debug.h" #include"platform/platform_clock.h" #include"util/memory.h" #include"util/hash.h" diff --git a/milepost/src/ui.h b/src/ui/ui.h similarity index 95% rename from milepost/src/ui.h rename to src/ui/ui.h index 437bba6..369a767 100644 --- a/milepost/src/ui.h +++ b/src/ui/ui.h @@ -12,7 +12,7 @@ #include"util/typedefs.h" #include"util/lists.h" #include"input_state.h" -#include"graphics.h" +#include"graphics/graphics.h" #ifdef __cplusplus extern "C" { diff --git a/milepost/src/util/atomic.h b/src/util/atomic.h similarity index 94% rename from milepost/src/util/atomic.h rename to src/util/atomic.h index b9da4a2..e2bd9f9 100644 --- a/milepost/src/util/atomic.h +++ b/src/util/atomic.h @@ -10,7 +10,7 @@ #ifndef __ATOMIC_H_ #define __ATOMIC_H_ -#include"platform.h" +#include"platform/platform.h" #if (defined(COMPILER_CL) || defined(COMPILER_CLANG_CL)) && defined(__STDC_NO_ATOMICS__) #define _Atomic(t) volatile t diff --git a/src/util/debug.h b/src/util/debug.h new file mode 100644 index 0000000..847fe2b --- /dev/null +++ b/src/util/debug.h @@ -0,0 +1,67 @@ +/************************************************************//** +* +* @file: debug.h +* @author: Martin Fouilleul +* @date: 13/08/2023 +* +*****************************************************************/ +#ifndef __DEBUG_H_ +#define __DEBUG_H_ + +#include"platform/platform_debug.h" +#include"util/macro_helpers.h" + +//---------------------------------------------------------------- +// Logging +//---------------------------------------------------------------- +#define log_generic(level, msg, ...) log_push(level, __FUNCTION__, __FILE__, __LINE__, msg, ##__VA_ARGS__) + +#define log_error(msg, ...) log_generic(LOG_LEVEL_ERROR, msg, ##__VA_ARGS__) + +#ifndef LOG_COMPILE_WARNING + #define LOG_COMPILE_WARNING 1 +#endif + +#ifndef LOG_COMPILE_INFO + #define LOG_COMPILE_INFO 1 +#endif + +#if LOG_COMPILE_WARNING || LOG_COMPILE_INFO + #define log_warning(msg, ...) log_generic(LOG_LEVEL_WARNING, msg, ##__VA_ARGS__) + + #if LOG_COMPILE_INFO + #define log_info(msg, ...) log_generic(LOG_LEVEL_INFO, msg, ##__VA_ARGS__ ) + #else + #define log_info(msg, ...) + #endif +#else + #define log_warning(msg, ...) + #define log_info(msg, ...) +#endif + +//---------------------------------------------------------------- +// Abort/Assert +//---------------------------------------------------------------- + +#define ORCA_ABORT(fmt, ...) orca_abort(__FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__) + +#define _ORCA_ASSERT_(test, fmt, ...) ((test) || (orca_assert_fail(__FILE__, __FUNCTION__, __LINE__, #test, fmt, ##__VA_ARGS__), 0)) +#define ORCA_ASSERT(test, ...) _ORCA_ASSERT_(test, ORCA_VA_NOPT("", ##__VA_ARGS__) ORCA_ARG1(__VA_ARGS__) ORCA_VA_COMMA_TAIL(__VA_ARGS__)) + + +#ifndef NO_ASSERT + + #define ASSERT(x, ...) ORCA_ASSERT(x, #__VA_ARGS__) + + #ifdef DEBUG + #define DEBUG_ASSERT(x, ...) ASSERT(x, ##__VA_ARGS__ ) + #else + #define DEBUG_ASSERT(x, ...) + #endif +#else + #define ASSERT(x, ...) + #define DEBUG_ASSERT(x, ...) +#endif + + +#endif //__DEBUG_H_ diff --git a/milepost/src/util/hash.c b/src/util/hash.c similarity index 100% rename from milepost/src/util/hash.c rename to src/util/hash.c diff --git a/milepost/src/util/hash.h b/src/util/hash.h similarity index 100% rename from milepost/src/util/hash.h rename to src/util/hash.h diff --git a/milepost/src/util/lists.h b/src/util/lists.h similarity index 95% rename from milepost/src/util/lists.h rename to src/util/lists.h index 04c0db3..be5e47a 100644 --- a/milepost/src/util/lists.h +++ b/src/util/lists.h @@ -10,7 +10,7 @@ #define __CONTAINERS_H_ #include"util/macro_helpers.h" -#include"platform/platform_assert.h" +#include"platform/platform_debug.h" #ifdef __cplusplus extern "C" { diff --git a/milepost/src/util/macro_helpers.h b/src/util/macro_helpers.h similarity index 100% rename from milepost/src/util/macro_helpers.h rename to src/util/macro_helpers.h diff --git a/milepost/src/util/memory.c b/src/util/memory.c similarity index 100% rename from milepost/src/util/memory.c rename to src/util/memory.c diff --git a/milepost/src/util/memory.h b/src/util/memory.h similarity index 100% rename from milepost/src/util/memory.h rename to src/util/memory.h diff --git a/milepost/src/util/ringbuffer.c b/src/util/ringbuffer.c similarity index 100% rename from milepost/src/util/ringbuffer.c rename to src/util/ringbuffer.c diff --git a/milepost/src/util/ringbuffer.h b/src/util/ringbuffer.h similarity index 100% rename from milepost/src/util/ringbuffer.h rename to src/util/ringbuffer.h diff --git a/milepost/src/util/strings.c b/src/util/strings.c similarity index 99% rename from milepost/src/util/strings.c rename to src/util/strings.c index 351b797..9f2a623 100644 --- a/milepost/src/util/strings.c +++ b/src/util/strings.c @@ -6,7 +6,7 @@ * @revision: * *****************************************************************/ -#include"platform/platform_assert.h" +#include"platform/platform_debug.h" #include"strings.h" //---------------------------------------------------------------------------------- diff --git a/milepost/src/util/strings.h b/src/util/strings.h similarity index 98% rename from milepost/src/util/strings.h rename to src/util/strings.h index 6507ed0..ec33e51 100644 --- a/milepost/src/util/strings.h +++ b/src/util/strings.h @@ -10,10 +10,11 @@ #define __STRINGS_H_ #include"typedefs.h" +#include"debug.h" #include"lists.h" #include"memory.h" -#include"platform/platform_strings.h" -#include"platform/platform_varg.h" +#include +#include #ifdef __cplusplus extern "C" { diff --git a/milepost/src/util/typedefs.h b/src/util/typedefs.h similarity index 100% rename from milepost/src/util/typedefs.h rename to src/util/typedefs.h diff --git a/milepost/src/util/utf8.c b/src/util/utf8.c similarity index 100% rename from milepost/src/util/utf8.c rename to src/util/utf8.c diff --git a/milepost/src/util/utf8.h b/src/util/utf8.h similarity index 100% rename from milepost/src/util/utf8.h rename to src/util/utf8.h diff --git a/src/clock_api.json b/src/wasmbind/clock_api.json similarity index 100% rename from src/clock_api.json rename to src/wasmbind/clock_api.json diff --git a/src/core_api.json b/src/wasmbind/core_api.json similarity index 70% rename from src/core_api.json rename to src/wasmbind/core_api.json index fe67f27..9059ce4 100644 --- a/src/core_api.json +++ b/src/wasmbind/core_api.json @@ -29,9 +29,9 @@ "type": {"name": "u64", "tag": "I"}}] }, { - "name": "orca_assert", - "cname": "orca_assert", - "ret": {"name": "int", "tag": "i"}, + "name": "orca_runtime_assert_fail", + "cname": "orca_assert_fail", + "ret": {"name": "void", "tag": "v"}, "args": [ {"name": "file", "type": {"name": "const char*", "tag": "p"}}, {"name": "function", @@ -43,5 +43,19 @@ {"name": "note", "type": {"name": "const char*", "tag": "p"}} ] +}, +{ + "name": "orca_runtime_abort", + "cname": "orca_abort", + "ret": {"name": "void", "tag": "v"}, + "args": [ {"name": "file", + "type": {"name": "const char*", "tag": "p"}}, + {"name": "function", + "type": {"name": "const char*", "tag": "p"}}, + {"name": "line", + "type": {"name": "int", "tag": "i"}}, + {"name": "note", + "type": {"name": "const char*", "tag": "p"}} + ] } ] diff --git a/src/gles_api_bind_manual.c b/src/wasmbind/gles_api_bind_manual.c similarity index 100% rename from src/gles_api_bind_manual.c rename to src/wasmbind/gles_api_bind_manual.c diff --git a/src/io_api.json b/src/wasmbind/io_api.json similarity index 100% rename from src/io_api.json rename to src/wasmbind/io_api.json diff --git a/src/canvas_api.json b/src/wasmbind/surface_api.json similarity index 100% rename from src/canvas_api.json rename to src/wasmbind/surface_api.json diff --git a/test/bulkmem/build.sh b/tests/bulkmem/build.sh similarity index 100% rename from test/bulkmem/build.sh rename to tests/bulkmem/build.sh diff --git a/test/bulkmem/main.c b/tests/bulkmem/main.c similarity index 100% rename from test/bulkmem/main.c rename to tests/bulkmem/main.c diff --git a/tests/files/bin/test_files b/tests/files/bin/test_files new file mode 100755 index 0000000..6d2cb44 Binary files /dev/null and b/tests/files/bin/test_files differ diff --git a/milepost/test/files/build.bat b/tests/files/build.bat similarity index 98% rename from milepost/test/files/build.bat rename to tests/files/build.bat index 52d387d..0d7dd7e 100644 --- a/milepost/test/files/build.bat +++ b/tests/files/build.bat @@ -1,4 +1,4 @@ - -set INCLUDES=/I ..\..\src /I ..\..\src\util /I ..\..\src\platform /I ../../ext - -cl /we4013 /Zi /Zc:preprocessor /std:c11 %INCLUDES% main.c /link /LIBPATH:../../bin milepost.dll.lib /out:../../bin/test_files.exe + +set INCLUDES=/I ..\..\src /I ..\..\src\util /I ..\..\src\platform /I ../../ext + +cl /we4013 /Zi /Zc:preprocessor /std:c11 %INCLUDES% main.c /link /LIBPATH:../../bin milepost.dll.lib /out:../../bin/test_files.exe diff --git a/milepost/test/files/build.sh b/tests/files/build.sh similarity index 93% rename from milepost/test/files/build.sh rename to tests/files/build.sh index e8b06a4..1ea05ff 100755 --- a/milepost/test/files/build.sh +++ b/tests/files/build.sh @@ -2,7 +2,7 @@ LIBDIR=../../bin RESDIR=../../resources -SRCDIR=../../src +SRCDIR=../../milepost/src INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app" LIBS="-L$LIBDIR -lmilepost" diff --git a/milepost/test/files/data/directory/test.txt b/tests/files/data/directory/test.txt similarity index 100% rename from milepost/test/files/data/directory/test.txt rename to tests/files/data/directory/test.txt diff --git a/milepost/test/files/data/jail/dir/test.txt b/tests/files/data/jail/dir/test.txt similarity index 100% rename from milepost/test/files/data/jail/dir/test.txt rename to tests/files/data/jail/dir/test.txt diff --git a/milepost/test/files/data/jail/dir_escape b/tests/files/data/jail/dir_escape similarity index 100% rename from milepost/test/files/data/jail/dir_escape rename to tests/files/data/jail/dir_escape diff --git a/milepost/test/files/data/jail/file_escape b/tests/files/data/jail/file_escape similarity index 100% rename from milepost/test/files/data/jail/file_escape rename to tests/files/data/jail/file_escape diff --git a/milepost/test/files/data/jail/test.txt b/tests/files/data/jail/test.txt similarity index 100% rename from milepost/test/files/data/jail/test.txt rename to tests/files/data/jail/test.txt diff --git a/milepost/test/files/data/regular.txt b/tests/files/data/regular.txt similarity index 100% rename from milepost/test/files/data/regular.txt rename to tests/files/data/regular.txt diff --git a/milepost/test/files/data/symlink b/tests/files/data/symlink similarity index 100% rename from milepost/test/files/data/symlink rename to tests/files/data/symlink diff --git a/milepost/test/files/main.c b/tests/files/main.c similarity index 100% rename from milepost/test/files/main.c rename to tests/files/main.c