aboutsummaryrefslogtreecommitdiff
path: root/raylib/src/external/glfw/deps
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-04-21 11:09:56 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-04-21 11:09:56 +0200
commit123144c93bfc77883c8fb517828b47bbe13b8671 (patch)
tree762739afedb5f3f168051367515cb9b9a06ec68d /raylib/src/external/glfw/deps
downloadminesweeper-master.tar.gz
minesweeper-master.zip
Initial commitHEADmaster
Diffstat (limited to 'raylib/src/external/glfw/deps')
-rw-r--r--raylib/src/external/glfw/deps/getopt.c230
-rw-r--r--raylib/src/external/glfw/deps/getopt.h57
-rw-r--r--raylib/src/external/glfw/deps/glad/gl.h5996
-rw-r--r--raylib/src/external/glfw/deps/glad/gles2.h1805
-rw-r--r--raylib/src/external/glfw/deps/glad/vulkan.h6330
-rw-r--r--raylib/src/external/glfw/deps/mingw/_mingw_dxhelper.h117
-rw-r--r--raylib/src/external/glfw/deps/mingw/dinput.h2467
-rw-r--r--raylib/src/external/glfw/deps/mingw/xinput.h239
-rw-r--r--raylib/src/external/glfw/deps/wayland/fractional-scale-v1.xml102
-rw-r--r--raylib/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml83
-rw-r--r--raylib/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml339
-rw-r--r--raylib/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml136
-rw-r--r--raylib/src/external/glfw/deps/wayland/viewporter.xml180
-rw-r--r--raylib/src/external/glfw/deps/wayland/wayland.xml3151
-rw-r--r--raylib/src/external/glfw/deps/wayland/xdg-activation-v1.xml200
-rw-r--r--raylib/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml156
-rw-r--r--raylib/src/external/glfw/deps/wayland/xdg-shell.xml1370
17 files changed, 22958 insertions, 0 deletions
diff --git a/raylib/src/external/glfw/deps/getopt.c b/raylib/src/external/glfw/deps/getopt.c
new file mode 100644
index 0000000..9743046
--- /dev/null
+++ b/raylib/src/external/glfw/deps/getopt.c
@@ -0,0 +1,230 @@
1/* Copyright (c) 2012, Kim Gräsman
2 * All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright notice,
7 * this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright notice,
9 * this list of conditions and the following disclaimer in the documentation
10 * and/or other materials provided with the distribution.
11 * * Neither the name of Kim Gräsman nor the names of contributors may be used
12 * to endorse or promote products derived from this software without specific
13 * prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL KIM GRÄSMAN BE LIABLE FOR ANY DIRECT,
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include "getopt.h"
28
29#include <stddef.h>
30#include <string.h>
31
32const int no_argument = 0;
33const int required_argument = 1;
34const int optional_argument = 2;
35
36char* optarg;
37int optopt;
38/* The variable optind [...] shall be initialized to 1 by the system. */
39int optind = 1;
40int opterr;
41
42static char* optcursor = NULL;
43
44/* Implemented based on [1] and [2] for optional arguments.
45 optopt is handled FreeBSD-style, per [3].
46 Other GNU and FreeBSD extensions are purely accidental.
47
48[1] http://pubs.opengroup.org/onlinepubs/000095399/functions/getopt.html
49[2] http://www.kernel.org/doc/man-pages/online/pages/man3/getopt.3.html
50[3] http://www.freebsd.org/cgi/man.cgi?query=getopt&sektion=3&manpath=FreeBSD+9.0-RELEASE
51*/
52int getopt(int argc, char* const argv[], const char* optstring) {
53 int optchar = -1;
54 const char* optdecl = NULL;
55
56 optarg = NULL;
57 opterr = 0;
58 optopt = 0;
59
60 /* Unspecified, but we need it to avoid overrunning the argv bounds. */
61 if (optind >= argc)
62 goto no_more_optchars;
63
64 /* If, when getopt() is called argv[optind] is a null pointer, getopt()
65 shall return -1 without changing optind. */
66 if (argv[optind] == NULL)
67 goto no_more_optchars;
68
69 /* If, when getopt() is called *argv[optind] is not the character '-',
70 getopt() shall return -1 without changing optind. */
71 if (*argv[optind] != '-')
72 goto no_more_optchars;
73
74 /* If, when getopt() is called argv[optind] points to the string "-",
75 getopt() shall return -1 without changing optind. */
76 if (strcmp(argv[optind], "-") == 0)
77 goto no_more_optchars;
78
79 /* If, when getopt() is called argv[optind] points to the string "--",
80 getopt() shall return -1 after incrementing optind. */
81 if (strcmp(argv[optind], "--") == 0) {
82 ++optind;
83 goto no_more_optchars;
84 }
85
86 if (optcursor == NULL || *optcursor == '\0')
87 optcursor = argv[optind] + 1;
88
89 optchar = *optcursor;
90
91 /* FreeBSD: The variable optopt saves the last known option character
92 returned by getopt(). */
93 optopt = optchar;
94
95 /* The getopt() function shall return the next option character (if one is
96 found) from argv that matches a character in optstring, if there is
97 one that matches. */
98 optdecl = strchr(optstring, optchar);
99 if (optdecl) {
100 /* [I]f a character is followed by a colon, the option takes an
101 argument. */
102 if (optdecl[1] == ':') {
103 optarg = ++optcursor;
104 if (*optarg == '\0') {
105 /* GNU extension: Two colons mean an option takes an
106 optional arg; if there is text in the current argv-element
107 (i.e., in the same word as the option name itself, for example,
108 "-oarg"), then it is returned in optarg, otherwise optarg is set
109 to zero. */
110 if (optdecl[2] != ':') {
111 /* If the option was the last character in the string pointed to by
112 an element of argv, then optarg shall contain the next element
113 of argv, and optind shall be incremented by 2. If the resulting
114 value of optind is greater than argc, this indicates a missing
115 option-argument, and getopt() shall return an error indication.
116
117 Otherwise, optarg shall point to the string following the
118 option character in that element of argv, and optind shall be
119 incremented by 1.
120 */
121 if (++optind < argc) {
122 optarg = argv[optind];
123 } else {
124 /* If it detects a missing option-argument, it shall return the
125 colon character ( ':' ) if the first character of optstring
126 was a colon, or a question-mark character ( '?' ) otherwise.
127 */
128 optarg = NULL;
129 optchar = (optstring[0] == ':') ? ':' : '?';
130 }
131 } else {
132 optarg = NULL;
133 }
134 }
135
136 optcursor = NULL;
137 }
138 } else {
139 /* If getopt() encounters an option character that is not contained in
140 optstring, it shall return the question-mark ( '?' ) character. */
141 optchar = '?';
142 }
143
144 if (optcursor == NULL || *++optcursor == '\0')
145 ++optind;
146
147 return optchar;
148
149no_more_optchars:
150 optcursor = NULL;
151 return -1;
152}
153
154/* Implementation based on [1].
155
156[1] http://www.kernel.org/doc/man-pages/online/pages/man3/getopt.3.html
157*/
158int getopt_long(int argc, char* const argv[], const char* optstring,
159 const struct option* longopts, int* longindex) {
160 const struct option* o = longopts;
161 const struct option* match = NULL;
162 int num_matches = 0;
163 size_t argument_name_length = 0;
164 const char* current_argument = NULL;
165 int retval = -1;
166
167 optarg = NULL;
168 optopt = 0;
169
170 if (optind >= argc)
171 return -1;
172
173 if (strlen(argv[optind]) < 3 || strncmp(argv[optind], "--", 2) != 0)
174 return getopt(argc, argv, optstring);
175
176 /* It's an option; starts with -- and is longer than two chars. */
177 current_argument = argv[optind] + 2;
178 argument_name_length = strcspn(current_argument, "=");
179 for (; o->name; ++o) {
180 if (strncmp(o->name, current_argument, argument_name_length) == 0) {
181 match = o;
182 ++num_matches;
183 }
184 }
185
186 if (num_matches == 1) {
187 /* If longindex is not NULL, it points to a variable which is set to the
188 index of the long option relative to longopts. */
189 if (longindex)
190 *longindex = (int) (match - longopts);
191
192 /* If flag is NULL, then getopt_long() shall return val.
193 Otherwise, getopt_long() returns 0, and flag shall point to a variable
194 which shall be set to val if the option is found, but left unchanged if
195 the option is not found. */
196 if (match->flag)
197 *(match->flag) = match->val;
198
199 retval = match->flag ? 0 : match->val;
200
201 if (match->has_arg != no_argument) {
202 optarg = strchr(argv[optind], '=');
203 if (optarg != NULL)
204 ++optarg;
205
206 if (match->has_arg == required_argument) {
207 /* Only scan the next argv for required arguments. Behavior is not
208 specified, but has been observed with Ubuntu and Mac OSX. */
209 if (optarg == NULL && ++optind < argc) {
210 optarg = argv[optind];
211 }
212
213 if (optarg == NULL)
214 retval = ':';
215 }
216 } else if (strchr(argv[optind], '=')) {
217 /* An argument was provided to a non-argument option.
218 I haven't seen this specified explicitly, but both GNU and BSD-based
219 implementations show this behavior.
220 */
221 retval = '?';
222 }
223 } else {
224 /* Unknown option or ambiguous match. */
225 retval = '?';
226 }
227
228 ++optind;
229 return retval;
230}
diff --git a/raylib/src/external/glfw/deps/getopt.h b/raylib/src/external/glfw/deps/getopt.h
new file mode 100644
index 0000000..e1eb540
--- /dev/null
+++ b/raylib/src/external/glfw/deps/getopt.h
@@ -0,0 +1,57 @@
1/* Copyright (c) 2012, Kim Gräsman
2 * All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright notice,
7 * this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright notice,
9 * this list of conditions and the following disclaimer in the documentation
10 * and/or other materials provided with the distribution.
11 * * Neither the name of Kim Gräsman nor the names of contributors may be used
12 * to endorse or promote products derived from this software without specific
13 * prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL KIM GRÄSMAN BE LIABLE FOR ANY DIRECT,
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#ifndef INCLUDED_GETOPT_PORT_H
28#define INCLUDED_GETOPT_PORT_H
29
30#if defined(__cplusplus)
31extern "C" {
32#endif
33
34extern const int no_argument;
35extern const int required_argument;
36extern const int optional_argument;
37
38extern char* optarg;
39extern int optind, opterr, optopt;
40
41struct option {
42 const char* name;
43 int has_arg;
44 int* flag;
45 int val;
46};
47
48int getopt(int argc, char* const argv[], const char* optstring);
49
50int getopt_long(int argc, char* const argv[],
51 const char* optstring, const struct option* longopts, int* longindex);
52
53#if defined(__cplusplus)
54}
55#endif
56
57#endif // INCLUDED_GETOPT_PORT_H
diff --git a/raylib/src/external/glfw/deps/glad/gl.h b/raylib/src/external/glfw/deps/glad/gl.h
new file mode 100644
index 0000000..b421fe0
--- /dev/null
+++ b/raylib/src/external/glfw/deps/glad/gl.h
@@ -0,0 +1,5996 @@
1/**
2 * Loader generated by glad 2.0.0-beta on Tue Aug 24 22:51:07 2021
3 *
4 * Generator: C/C++
5 * Specification: gl
6 * Extensions: 3
7 *
8 * APIs:
9 * - gl:compatibility=3.3
10 *
11 * Options:
12 * - ALIAS = False
13 * - DEBUG = False
14 * - HEADER_ONLY = True
15 * - LOADER = False
16 * - MX = False
17 * - MX_GLOBAL = False
18 * - ON_DEMAND = False
19 *
20 * Commandline:
21 * --api='gl:compatibility=3.3' --extensions='GL_ARB_multisample,GL_ARB_robustness,GL_KHR_debug' c --header-only
22 *
23 * Online:
24 * http://glad.sh/#api=gl%3Acompatibility%3D3.3&extensions=GL_ARB_multisample%2CGL_ARB_robustness%2CGL_KHR_debug&generator=c&options=HEADER_ONLY
25 *
26 */
27
28#ifndef GLAD_GL_H_
29#define GLAD_GL_H_
30
31#ifdef __clang__
32#pragma clang diagnostic push
33#pragma clang diagnostic ignored "-Wreserved-id-macro"
34#endif
35#ifdef __gl_h_
36 #error OpenGL (gl.h) header already included (API: gl), remove previous include!
37#endif
38#define __gl_h_ 1
39#ifdef __gl3_h_
40 #error OpenGL (gl3.h) header already included (API: gl), remove previous include!
41#endif
42#define __gl3_h_ 1
43#ifdef __glext_h_
44 #error OpenGL (glext.h) header already included (API: gl), remove previous include!
45#endif
46#define __glext_h_ 1
47#ifdef __gl3ext_h_
48 #error OpenGL (gl3ext.h) header already included (API: gl), remove previous include!
49#endif
50#define __gl3ext_h_ 1
51#ifdef __clang__
52#pragma clang diagnostic pop
53#endif
54
55#define GLAD_GL
56#define GLAD_OPTION_GL_HEADER_ONLY
57
58#ifdef __cplusplus
59extern "C" {
60#endif
61
62#ifndef GLAD_PLATFORM_H_
63#define GLAD_PLATFORM_H_
64
65#ifndef GLAD_PLATFORM_WIN32
66 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
67 #define GLAD_PLATFORM_WIN32 1
68 #else
69 #define GLAD_PLATFORM_WIN32 0
70 #endif
71#endif
72
73#ifndef GLAD_PLATFORM_APPLE
74 #ifdef __APPLE__
75 #define GLAD_PLATFORM_APPLE 1
76 #else
77 #define GLAD_PLATFORM_APPLE 0
78 #endif
79#endif
80
81#ifndef GLAD_PLATFORM_EMSCRIPTEN
82 #ifdef __EMSCRIPTEN__
83 #define GLAD_PLATFORM_EMSCRIPTEN 1
84 #else
85 #define GLAD_PLATFORM_EMSCRIPTEN 0
86 #endif
87#endif
88
89#ifndef GLAD_PLATFORM_UWP
90 #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
91 #ifdef __has_include
92 #if __has_include(<winapifamily.h>)
93 #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
94 #endif
95 #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
96 #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
97 #endif
98 #endif
99
100 #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
101 #include <winapifamily.h>
102 #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
103 #define GLAD_PLATFORM_UWP 1
104 #endif
105 #endif
106
107 #ifndef GLAD_PLATFORM_UWP
108 #define GLAD_PLATFORM_UWP 0
109 #endif
110#endif
111
112#ifdef __GNUC__
113 #define GLAD_GNUC_EXTENSION __extension__
114#else
115 #define GLAD_GNUC_EXTENSION
116#endif
117
118#ifndef GLAD_API_CALL
119 #if defined(GLAD_API_CALL_EXPORT)
120 #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
121 #if defined(GLAD_API_CALL_EXPORT_BUILD)
122 #if defined(__GNUC__)
123 #define GLAD_API_CALL __attribute__ ((dllexport)) extern
124 #else
125 #define GLAD_API_CALL __declspec(dllexport) extern
126 #endif
127 #else
128 #if defined(__GNUC__)
129 #define GLAD_API_CALL __attribute__ ((dllimport)) extern
130 #else
131 #define GLAD_API_CALL __declspec(dllimport) extern
132 #endif
133 #endif
134 #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
135 #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
136 #else
137 #define GLAD_API_CALL extern
138 #endif
139 #else
140 #define GLAD_API_CALL extern
141 #endif
142#endif
143
144#ifdef APIENTRY
145 #define GLAD_API_PTR APIENTRY
146#elif GLAD_PLATFORM_WIN32
147 #define GLAD_API_PTR __stdcall
148#else
149 #define GLAD_API_PTR
150#endif
151
152#ifndef GLAPI
153#define GLAPI GLAD_API_CALL
154#endif
155
156#ifndef GLAPIENTRY
157#define GLAPIENTRY GLAD_API_PTR
158#endif
159
160#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
161#define GLAD_VERSION_MAJOR(version) (version / 10000)
162#define GLAD_VERSION_MINOR(version) (version % 10000)
163
164#define GLAD_GENERATOR_VERSION "2.0.0-beta"
165
166typedef void (*GLADapiproc)(void);
167
168typedef GLADapiproc (*GLADloadfunc)(const char *name);
169typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
170
171typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
172typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
173
174#endif /* GLAD_PLATFORM_H_ */
175
176#define GL_2D 0x0600
177#define GL_2_BYTES 0x1407
178#define GL_3D 0x0601
179#define GL_3D_COLOR 0x0602
180#define GL_3D_COLOR_TEXTURE 0x0603
181#define GL_3_BYTES 0x1408
182#define GL_4D_COLOR_TEXTURE 0x0604
183#define GL_4_BYTES 0x1409
184#define GL_ACCUM 0x0100
185#define GL_ACCUM_ALPHA_BITS 0x0D5B
186#define GL_ACCUM_BLUE_BITS 0x0D5A
187#define GL_ACCUM_BUFFER_BIT 0x00000200
188#define GL_ACCUM_CLEAR_VALUE 0x0B80
189#define GL_ACCUM_GREEN_BITS 0x0D59
190#define GL_ACCUM_RED_BITS 0x0D58
191#define GL_ACTIVE_ATTRIBUTES 0x8B89
192#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
193#define GL_ACTIVE_TEXTURE 0x84E0
194#define GL_ACTIVE_UNIFORMS 0x8B86
195#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
196#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
197#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
198#define GL_ADD 0x0104
199#define GL_ADD_SIGNED 0x8574
200#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
201#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
202#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF
203#define GL_ALPHA 0x1906
204#define GL_ALPHA12 0x803D
205#define GL_ALPHA16 0x803E
206#define GL_ALPHA4 0x803B
207#define GL_ALPHA8 0x803C
208#define GL_ALPHA_BIAS 0x0D1D
209#define GL_ALPHA_BITS 0x0D55
210#define GL_ALPHA_INTEGER 0x8D97
211#define GL_ALPHA_SCALE 0x0D1C
212#define GL_ALPHA_TEST 0x0BC0
213#define GL_ALPHA_TEST_FUNC 0x0BC1
214#define GL_ALPHA_TEST_REF 0x0BC2
215#define GL_ALREADY_SIGNALED 0x911A
216#define GL_ALWAYS 0x0207
217#define GL_AMBIENT 0x1200
218#define GL_AMBIENT_AND_DIFFUSE 0x1602
219#define GL_AND 0x1501
220#define GL_AND_INVERTED 0x1504
221#define GL_AND_REVERSE 0x1502
222#define GL_ANY_SAMPLES_PASSED 0x8C2F
223#define GL_ARRAY_BUFFER 0x8892
224#define GL_ARRAY_BUFFER_BINDING 0x8894
225#define GL_ATTACHED_SHADERS 0x8B85
226#define GL_ATTRIB_STACK_DEPTH 0x0BB0
227#define GL_AUTO_NORMAL 0x0D80
228#define GL_AUX0 0x0409
229#define GL_AUX1 0x040A
230#define GL_AUX2 0x040B
231#define GL_AUX3 0x040C
232#define GL_AUX_BUFFERS 0x0C00
233#define GL_BACK 0x0405
234#define GL_BACK_LEFT 0x0402
235#define GL_BACK_RIGHT 0x0403
236#define GL_BGR 0x80E0
237#define GL_BGRA 0x80E1
238#define GL_BGRA_INTEGER 0x8D9B
239#define GL_BGR_INTEGER 0x8D9A
240#define GL_BITMAP 0x1A00
241#define GL_BITMAP_TOKEN 0x0704
242#define GL_BLEND 0x0BE2
243#define GL_BLEND_COLOR 0x8005
244#define GL_BLEND_DST 0x0BE0
245#define GL_BLEND_DST_ALPHA 0x80CA
246#define GL_BLEND_DST_RGB 0x80C8
247#define GL_BLEND_EQUATION 0x8009
248#define GL_BLEND_EQUATION_ALPHA 0x883D
249#define GL_BLEND_EQUATION_RGB 0x8009
250#define GL_BLEND_SRC 0x0BE1
251#define GL_BLEND_SRC_ALPHA 0x80CB
252#define GL_BLEND_SRC_RGB 0x80C9
253#define GL_BLUE 0x1905
254#define GL_BLUE_BIAS 0x0D1B
255#define GL_BLUE_BITS 0x0D54
256#define GL_BLUE_INTEGER 0x8D96
257#define GL_BLUE_SCALE 0x0D1A
258#define GL_BOOL 0x8B56
259#define GL_BOOL_VEC2 0x8B57
260#define GL_BOOL_VEC3 0x8B58
261#define GL_BOOL_VEC4 0x8B59
262#define GL_BUFFER 0x82E0
263#define GL_BUFFER_ACCESS 0x88BB
264#define GL_BUFFER_ACCESS_FLAGS 0x911F
265#define GL_BUFFER_MAPPED 0x88BC
266#define GL_BUFFER_MAP_LENGTH 0x9120
267#define GL_BUFFER_MAP_OFFSET 0x9121
268#define GL_BUFFER_MAP_POINTER 0x88BD
269#define GL_BUFFER_SIZE 0x8764
270#define GL_BUFFER_USAGE 0x8765
271#define GL_BYTE 0x1400
272#define GL_C3F_V3F 0x2A24
273#define GL_C4F_N3F_V3F 0x2A26
274#define GL_C4UB_V2F 0x2A22
275#define GL_C4UB_V3F 0x2A23
276#define GL_CCW 0x0901
277#define GL_CLAMP 0x2900
278#define GL_CLAMP_FRAGMENT_COLOR 0x891B
279#define GL_CLAMP_READ_COLOR 0x891C
280#define GL_CLAMP_TO_BORDER 0x812D
281#define GL_CLAMP_TO_EDGE 0x812F
282#define GL_CLAMP_VERTEX_COLOR 0x891A
283#define GL_CLEAR 0x1500
284#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
285#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF
286#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
287#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
288#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
289#define GL_CLIP_DISTANCE0 0x3000
290#define GL_CLIP_DISTANCE1 0x3001
291#define GL_CLIP_DISTANCE2 0x3002
292#define GL_CLIP_DISTANCE3 0x3003
293#define GL_CLIP_DISTANCE4 0x3004
294#define GL_CLIP_DISTANCE5 0x3005
295#define GL_CLIP_DISTANCE6 0x3006
296#define GL_CLIP_DISTANCE7 0x3007
297#define GL_CLIP_PLANE0 0x3000
298#define GL_CLIP_PLANE1 0x3001
299#define GL_CLIP_PLANE2 0x3002
300#define GL_CLIP_PLANE3 0x3003
301#define GL_CLIP_PLANE4 0x3004
302#define GL_CLIP_PLANE5 0x3005
303#define GL_COEFF 0x0A00
304#define GL_COLOR 0x1800
305#define GL_COLOR_ARRAY 0x8076
306#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
307#define GL_COLOR_ARRAY_POINTER 0x8090
308#define GL_COLOR_ARRAY_SIZE 0x8081
309#define GL_COLOR_ARRAY_STRIDE 0x8083
310#define GL_COLOR_ARRAY_TYPE 0x8082
311#define GL_COLOR_ATTACHMENT0 0x8CE0
312#define GL_COLOR_ATTACHMENT1 0x8CE1
313#define GL_COLOR_ATTACHMENT10 0x8CEA
314#define GL_COLOR_ATTACHMENT11 0x8CEB
315#define GL_COLOR_ATTACHMENT12 0x8CEC
316#define GL_COLOR_ATTACHMENT13 0x8CED
317#define GL_COLOR_ATTACHMENT14 0x8CEE
318#define GL_COLOR_ATTACHMENT15 0x8CEF
319#define GL_COLOR_ATTACHMENT16 0x8CF0
320#define GL_COLOR_ATTACHMENT17 0x8CF1
321#define GL_COLOR_ATTACHMENT18 0x8CF2
322#define GL_COLOR_ATTACHMENT19 0x8CF3
323#define GL_COLOR_ATTACHMENT2 0x8CE2
324#define GL_COLOR_ATTACHMENT20 0x8CF4
325#define GL_COLOR_ATTACHMENT21 0x8CF5
326#define GL_COLOR_ATTACHMENT22 0x8CF6
327#define GL_COLOR_ATTACHMENT23 0x8CF7
328#define GL_COLOR_ATTACHMENT24 0x8CF8
329#define GL_COLOR_ATTACHMENT25 0x8CF9
330#define GL_COLOR_ATTACHMENT26 0x8CFA
331#define GL_COLOR_ATTACHMENT27 0x8CFB
332#define GL_COLOR_ATTACHMENT28 0x8CFC
333#define GL_COLOR_ATTACHMENT29 0x8CFD
334#define GL_COLOR_ATTACHMENT3 0x8CE3
335#define GL_COLOR_ATTACHMENT30 0x8CFE
336#define GL_COLOR_ATTACHMENT31 0x8CFF
337#define GL_COLOR_ATTACHMENT4 0x8CE4
338#define GL_COLOR_ATTACHMENT5 0x8CE5
339#define GL_COLOR_ATTACHMENT6 0x8CE6
340#define GL_COLOR_ATTACHMENT7 0x8CE7
341#define GL_COLOR_ATTACHMENT8 0x8CE8
342#define GL_COLOR_ATTACHMENT9 0x8CE9
343#define GL_COLOR_BUFFER_BIT 0x00004000
344#define GL_COLOR_CLEAR_VALUE 0x0C22
345#define GL_COLOR_INDEX 0x1900
346#define GL_COLOR_INDEXES 0x1603
347#define GL_COLOR_LOGIC_OP 0x0BF2
348#define GL_COLOR_MATERIAL 0x0B57
349#define GL_COLOR_MATERIAL_FACE 0x0B55
350#define GL_COLOR_MATERIAL_PARAMETER 0x0B56
351#define GL_COLOR_SUM 0x8458
352#define GL_COLOR_WRITEMASK 0x0C23
353#define GL_COMBINE 0x8570
354#define GL_COMBINE_ALPHA 0x8572
355#define GL_COMBINE_RGB 0x8571
356#define GL_COMPARE_REF_TO_TEXTURE 0x884E
357#define GL_COMPARE_R_TO_TEXTURE 0x884E
358#define GL_COMPILE 0x1300
359#define GL_COMPILE_AND_EXECUTE 0x1301
360#define GL_COMPILE_STATUS 0x8B81
361#define GL_COMPRESSED_ALPHA 0x84E9
362#define GL_COMPRESSED_INTENSITY 0x84EC
363#define GL_COMPRESSED_LUMINANCE 0x84EA
364#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
365#define GL_COMPRESSED_RED 0x8225
366#define GL_COMPRESSED_RED_RGTC1 0x8DBB
367#define GL_COMPRESSED_RG 0x8226
368#define GL_COMPRESSED_RGB 0x84ED
369#define GL_COMPRESSED_RGBA 0x84EE
370#define GL_COMPRESSED_RG_RGTC2 0x8DBD
371#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
372#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
373#define GL_COMPRESSED_SLUMINANCE 0x8C4A
374#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
375#define GL_COMPRESSED_SRGB 0x8C48
376#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
377#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
378#define GL_CONDITION_SATISFIED 0x911C
379#define GL_CONSTANT 0x8576
380#define GL_CONSTANT_ALPHA 0x8003
381#define GL_CONSTANT_ATTENUATION 0x1207
382#define GL_CONSTANT_COLOR 0x8001
383#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
384#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
385#define GL_CONTEXT_FLAGS 0x821E
386#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
387#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
388#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
389#define GL_CONTEXT_PROFILE_MASK 0x9126
390#define GL_COORD_REPLACE 0x8862
391#define GL_COPY 0x1503
392#define GL_COPY_INVERTED 0x150C
393#define GL_COPY_PIXEL_TOKEN 0x0706
394#define GL_COPY_READ_BUFFER 0x8F36
395#define GL_COPY_WRITE_BUFFER 0x8F37
396#define GL_CULL_FACE 0x0B44
397#define GL_CULL_FACE_MODE 0x0B45
398#define GL_CURRENT_BIT 0x00000001
399#define GL_CURRENT_COLOR 0x0B00
400#define GL_CURRENT_FOG_COORD 0x8453
401#define GL_CURRENT_FOG_COORDINATE 0x8453
402#define GL_CURRENT_INDEX 0x0B01
403#define GL_CURRENT_NORMAL 0x0B02
404#define GL_CURRENT_PROGRAM 0x8B8D
405#define GL_CURRENT_QUERY 0x8865
406#define GL_CURRENT_RASTER_COLOR 0x0B04
407#define GL_CURRENT_RASTER_DISTANCE 0x0B09
408#define GL_CURRENT_RASTER_INDEX 0x0B05
409#define GL_CURRENT_RASTER_POSITION 0x0B07
410#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
411#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
412#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
413#define GL_CURRENT_SECONDARY_COLOR 0x8459
414#define GL_CURRENT_TEXTURE_COORDS 0x0B03
415#define GL_CURRENT_VERTEX_ATTRIB 0x8626
416#define GL_CW 0x0900
417#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
418#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
419#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
420#define GL_DEBUG_LOGGED_MESSAGES 0x9145
421#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
422#define GL_DEBUG_OUTPUT 0x92E0
423#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
424#define GL_DEBUG_SEVERITY_HIGH 0x9146
425#define GL_DEBUG_SEVERITY_LOW 0x9148
426#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
427#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
428#define GL_DEBUG_SOURCE_API 0x8246
429#define GL_DEBUG_SOURCE_APPLICATION 0x824A
430#define GL_DEBUG_SOURCE_OTHER 0x824B
431#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
432#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
433#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
434#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
435#define GL_DEBUG_TYPE_ERROR 0x824C
436#define GL_DEBUG_TYPE_MARKER 0x8268
437#define GL_DEBUG_TYPE_OTHER 0x8251
438#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
439#define GL_DEBUG_TYPE_POP_GROUP 0x826A
440#define GL_DEBUG_TYPE_PORTABILITY 0x824F
441#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
442#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
443#define GL_DECAL 0x2101
444#define GL_DECR 0x1E03
445#define GL_DECR_WRAP 0x8508
446#define GL_DELETE_STATUS 0x8B80
447#define GL_DEPTH 0x1801
448#define GL_DEPTH24_STENCIL8 0x88F0
449#define GL_DEPTH32F_STENCIL8 0x8CAD
450#define GL_DEPTH_ATTACHMENT 0x8D00
451#define GL_DEPTH_BIAS 0x0D1F
452#define GL_DEPTH_BITS 0x0D56
453#define GL_DEPTH_BUFFER_BIT 0x00000100
454#define GL_DEPTH_CLAMP 0x864F
455#define GL_DEPTH_CLEAR_VALUE 0x0B73
456#define GL_DEPTH_COMPONENT 0x1902
457#define GL_DEPTH_COMPONENT16 0x81A5
458#define GL_DEPTH_COMPONENT24 0x81A6
459#define GL_DEPTH_COMPONENT32 0x81A7
460#define GL_DEPTH_COMPONENT32F 0x8CAC
461#define GL_DEPTH_FUNC 0x0B74
462#define GL_DEPTH_RANGE 0x0B70
463#define GL_DEPTH_SCALE 0x0D1E
464#define GL_DEPTH_STENCIL 0x84F9
465#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
466#define GL_DEPTH_TEST 0x0B71
467#define GL_DEPTH_TEXTURE_MODE 0x884B
468#define GL_DEPTH_WRITEMASK 0x0B72
469#define GL_DIFFUSE 0x1201
470#define GL_DISPLAY_LIST 0x82E7
471#define GL_DITHER 0x0BD0
472#define GL_DOMAIN 0x0A02
473#define GL_DONT_CARE 0x1100
474#define GL_DOT3_RGB 0x86AE
475#define GL_DOT3_RGBA 0x86AF
476#define GL_DOUBLE 0x140A
477#define GL_DOUBLEBUFFER 0x0C32
478#define GL_DRAW_BUFFER 0x0C01
479#define GL_DRAW_BUFFER0 0x8825
480#define GL_DRAW_BUFFER1 0x8826
481#define GL_DRAW_BUFFER10 0x882F
482#define GL_DRAW_BUFFER11 0x8830
483#define GL_DRAW_BUFFER12 0x8831
484#define GL_DRAW_BUFFER13 0x8832
485#define GL_DRAW_BUFFER14 0x8833
486#define GL_DRAW_BUFFER15 0x8834
487#define GL_DRAW_BUFFER2 0x8827
488#define GL_DRAW_BUFFER3 0x8828
489#define GL_DRAW_BUFFER4 0x8829
490#define GL_DRAW_BUFFER5 0x882A
491#define GL_DRAW_BUFFER6 0x882B
492#define GL_DRAW_BUFFER7 0x882C
493#define GL_DRAW_BUFFER8 0x882D
494#define GL_DRAW_BUFFER9 0x882E
495#define GL_DRAW_FRAMEBUFFER 0x8CA9
496#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
497#define GL_DRAW_PIXEL_TOKEN 0x0705
498#define GL_DST_ALPHA 0x0304
499#define GL_DST_COLOR 0x0306
500#define GL_DYNAMIC_COPY 0x88EA
501#define GL_DYNAMIC_DRAW 0x88E8
502#define GL_DYNAMIC_READ 0x88E9
503#define GL_EDGE_FLAG 0x0B43
504#define GL_EDGE_FLAG_ARRAY 0x8079
505#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
506#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
507#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
508#define GL_ELEMENT_ARRAY_BUFFER 0x8893
509#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
510#define GL_EMISSION 0x1600
511#define GL_ENABLE_BIT 0x00002000
512#define GL_EQUAL 0x0202
513#define GL_EQUIV 0x1509
514#define GL_EVAL_BIT 0x00010000
515#define GL_EXP 0x0800
516#define GL_EXP2 0x0801
517#define GL_EXTENSIONS 0x1F03
518#define GL_EYE_LINEAR 0x2400
519#define GL_EYE_PLANE 0x2502
520#define GL_FALSE 0
521#define GL_FASTEST 0x1101
522#define GL_FEEDBACK 0x1C01
523#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
524#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
525#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
526#define GL_FILL 0x1B02
527#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
528#define GL_FIXED_ONLY 0x891D
529#define GL_FLAT 0x1D00
530#define GL_FLOAT 0x1406
531#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
532#define GL_FLOAT_MAT2 0x8B5A
533#define GL_FLOAT_MAT2x3 0x8B65
534#define GL_FLOAT_MAT2x4 0x8B66
535#define GL_FLOAT_MAT3 0x8B5B
536#define GL_FLOAT_MAT3x2 0x8B67
537#define GL_FLOAT_MAT3x4 0x8B68
538#define GL_FLOAT_MAT4 0x8B5C
539#define GL_FLOAT_MAT4x2 0x8B69
540#define GL_FLOAT_MAT4x3 0x8B6A
541#define GL_FLOAT_VEC2 0x8B50
542#define GL_FLOAT_VEC3 0x8B51
543#define GL_FLOAT_VEC4 0x8B52
544#define GL_FOG 0x0B60
545#define GL_FOG_BIT 0x00000080
546#define GL_FOG_COLOR 0x0B66
547#define GL_FOG_COORD 0x8451
548#define GL_FOG_COORDINATE 0x8451
549#define GL_FOG_COORDINATE_ARRAY 0x8457
550#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
551#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
552#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
553#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
554#define GL_FOG_COORDINATE_SOURCE 0x8450
555#define GL_FOG_COORD_ARRAY 0x8457
556#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D
557#define GL_FOG_COORD_ARRAY_POINTER 0x8456
558#define GL_FOG_COORD_ARRAY_STRIDE 0x8455
559#define GL_FOG_COORD_ARRAY_TYPE 0x8454
560#define GL_FOG_COORD_SRC 0x8450
561#define GL_FOG_DENSITY 0x0B62
562#define GL_FOG_END 0x0B64
563#define GL_FOG_HINT 0x0C54
564#define GL_FOG_INDEX 0x0B61
565#define GL_FOG_MODE 0x0B65
566#define GL_FOG_START 0x0B63
567#define GL_FRAGMENT_DEPTH 0x8452
568#define GL_FRAGMENT_SHADER 0x8B30
569#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
570#define GL_FRAMEBUFFER 0x8D40
571#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
572#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
573#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
574#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
575#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
576#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
577#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
578#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
579#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
580#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
581#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
582#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
583#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
584#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
585#define GL_FRAMEBUFFER_BINDING 0x8CA6
586#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
587#define GL_FRAMEBUFFER_DEFAULT 0x8218
588#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
589#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
590#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
591#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
592#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
593#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
594#define GL_FRAMEBUFFER_SRGB 0x8DB9
595#define GL_FRAMEBUFFER_UNDEFINED 0x8219
596#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
597#define GL_FRONT 0x0404
598#define GL_FRONT_AND_BACK 0x0408
599#define GL_FRONT_FACE 0x0B46
600#define GL_FRONT_LEFT 0x0400
601#define GL_FRONT_RIGHT 0x0401
602#define GL_FUNC_ADD 0x8006
603#define GL_FUNC_REVERSE_SUBTRACT 0x800B
604#define GL_FUNC_SUBTRACT 0x800A
605#define GL_GENERATE_MIPMAP 0x8191
606#define GL_GENERATE_MIPMAP_HINT 0x8192
607#define GL_GEOMETRY_INPUT_TYPE 0x8917
608#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
609#define GL_GEOMETRY_SHADER 0x8DD9
610#define GL_GEOMETRY_VERTICES_OUT 0x8916
611#define GL_GEQUAL 0x0206
612#define GL_GREATER 0x0204
613#define GL_GREEN 0x1904
614#define GL_GREEN_BIAS 0x0D19
615#define GL_GREEN_BITS 0x0D53
616#define GL_GREEN_INTEGER 0x8D95
617#define GL_GREEN_SCALE 0x0D18
618#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
619#define GL_HALF_FLOAT 0x140B
620#define GL_HINT_BIT 0x00008000
621#define GL_INCR 0x1E02
622#define GL_INCR_WRAP 0x8507
623#define GL_INDEX 0x8222
624#define GL_INDEX_ARRAY 0x8077
625#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
626#define GL_INDEX_ARRAY_POINTER 0x8091
627#define GL_INDEX_ARRAY_STRIDE 0x8086
628#define GL_INDEX_ARRAY_TYPE 0x8085
629#define GL_INDEX_BITS 0x0D51
630#define GL_INDEX_CLEAR_VALUE 0x0C20
631#define GL_INDEX_LOGIC_OP 0x0BF1
632#define GL_INDEX_MODE 0x0C30
633#define GL_INDEX_OFFSET 0x0D13
634#define GL_INDEX_SHIFT 0x0D12
635#define GL_INDEX_WRITEMASK 0x0C21
636#define GL_INFO_LOG_LENGTH 0x8B84
637#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
638#define GL_INT 0x1404
639#define GL_INTENSITY 0x8049
640#define GL_INTENSITY12 0x804C
641#define GL_INTENSITY16 0x804D
642#define GL_INTENSITY4 0x804A
643#define GL_INTENSITY8 0x804B
644#define GL_INTERLEAVED_ATTRIBS 0x8C8C
645#define GL_INTERPOLATE 0x8575
646#define GL_INT_2_10_10_10_REV 0x8D9F
647#define GL_INT_SAMPLER_1D 0x8DC9
648#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
649#define GL_INT_SAMPLER_2D 0x8DCA
650#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
651#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
652#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
653#define GL_INT_SAMPLER_2D_RECT 0x8DCD
654#define GL_INT_SAMPLER_3D 0x8DCB
655#define GL_INT_SAMPLER_BUFFER 0x8DD0
656#define GL_INT_SAMPLER_CUBE 0x8DCC
657#define GL_INT_VEC2 0x8B53
658#define GL_INT_VEC3 0x8B54
659#define GL_INT_VEC4 0x8B55
660#define GL_INVALID_ENUM 0x0500
661#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
662#define GL_INVALID_INDEX 0xFFFFFFFF
663#define GL_INVALID_OPERATION 0x0502
664#define GL_INVALID_VALUE 0x0501
665#define GL_INVERT 0x150A
666#define GL_KEEP 0x1E00
667#define GL_LAST_VERTEX_CONVENTION 0x8E4E
668#define GL_LEFT 0x0406
669#define GL_LEQUAL 0x0203
670#define GL_LESS 0x0201
671#define GL_LIGHT0 0x4000
672#define GL_LIGHT1 0x4001
673#define GL_LIGHT2 0x4002
674#define GL_LIGHT3 0x4003
675#define GL_LIGHT4 0x4004
676#define GL_LIGHT5 0x4005
677#define GL_LIGHT6 0x4006
678#define GL_LIGHT7 0x4007
679#define GL_LIGHTING 0x0B50
680#define GL_LIGHTING_BIT 0x00000040
681#define GL_LIGHT_MODEL_AMBIENT 0x0B53
682#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
683#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
684#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
685#define GL_LINE 0x1B01
686#define GL_LINEAR 0x2601
687#define GL_LINEAR_ATTENUATION 0x1208
688#define GL_LINEAR_MIPMAP_LINEAR 0x2703
689#define GL_LINEAR_MIPMAP_NEAREST 0x2701
690#define GL_LINES 0x0001
691#define GL_LINES_ADJACENCY 0x000A
692#define GL_LINE_BIT 0x00000004
693#define GL_LINE_LOOP 0x0002
694#define GL_LINE_RESET_TOKEN 0x0707
695#define GL_LINE_SMOOTH 0x0B20
696#define GL_LINE_SMOOTH_HINT 0x0C52
697#define GL_LINE_STIPPLE 0x0B24
698#define GL_LINE_STIPPLE_PATTERN 0x0B25
699#define GL_LINE_STIPPLE_REPEAT 0x0B26
700#define GL_LINE_STRIP 0x0003
701#define GL_LINE_STRIP_ADJACENCY 0x000B
702#define GL_LINE_TOKEN 0x0702
703#define GL_LINE_WIDTH 0x0B21
704#define GL_LINE_WIDTH_GRANULARITY 0x0B23
705#define GL_LINE_WIDTH_RANGE 0x0B22
706#define GL_LINK_STATUS 0x8B82
707#define GL_LIST_BASE 0x0B32
708#define GL_LIST_BIT 0x00020000
709#define GL_LIST_INDEX 0x0B33
710#define GL_LIST_MODE 0x0B30
711#define GL_LOAD 0x0101
712#define GL_LOGIC_OP 0x0BF1
713#define GL_LOGIC_OP_MODE 0x0BF0
714#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
715#define GL_LOWER_LEFT 0x8CA1
716#define GL_LUMINANCE 0x1909
717#define GL_LUMINANCE12 0x8041
718#define GL_LUMINANCE12_ALPHA12 0x8047
719#define GL_LUMINANCE12_ALPHA4 0x8046
720#define GL_LUMINANCE16 0x8042
721#define GL_LUMINANCE16_ALPHA16 0x8048
722#define GL_LUMINANCE4 0x803F
723#define GL_LUMINANCE4_ALPHA4 0x8043
724#define GL_LUMINANCE6_ALPHA2 0x8044
725#define GL_LUMINANCE8 0x8040
726#define GL_LUMINANCE8_ALPHA8 0x8045
727#define GL_LUMINANCE_ALPHA 0x190A
728#define GL_MAJOR_VERSION 0x821B
729#define GL_MAP1_COLOR_4 0x0D90
730#define GL_MAP1_GRID_DOMAIN 0x0DD0
731#define GL_MAP1_GRID_SEGMENTS 0x0DD1
732#define GL_MAP1_INDEX 0x0D91
733#define GL_MAP1_NORMAL 0x0D92
734#define GL_MAP1_TEXTURE_COORD_1 0x0D93
735#define GL_MAP1_TEXTURE_COORD_2 0x0D94
736#define GL_MAP1_TEXTURE_COORD_3 0x0D95
737#define GL_MAP1_TEXTURE_COORD_4 0x0D96
738#define GL_MAP1_VERTEX_3 0x0D97
739#define GL_MAP1_VERTEX_4 0x0D98
740#define GL_MAP2_COLOR_4 0x0DB0
741#define GL_MAP2_GRID_DOMAIN 0x0DD2
742#define GL_MAP2_GRID_SEGMENTS 0x0DD3
743#define GL_MAP2_INDEX 0x0DB1
744#define GL_MAP2_NORMAL 0x0DB2
745#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
746#define GL_MAP2_TEXTURE_COORD_2 0x0DB4
747#define GL_MAP2_TEXTURE_COORD_3 0x0DB5
748#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
749#define GL_MAP2_VERTEX_3 0x0DB7
750#define GL_MAP2_VERTEX_4 0x0DB8
751#define GL_MAP_COLOR 0x0D10
752#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
753#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
754#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
755#define GL_MAP_READ_BIT 0x0001
756#define GL_MAP_STENCIL 0x0D11
757#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
758#define GL_MAP_WRITE_BIT 0x0002
759#define GL_MATRIX_MODE 0x0BA0
760#define GL_MAX 0x8008
761#define GL_MAX_3D_TEXTURE_SIZE 0x8073
762#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
763#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
764#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
765#define GL_MAX_CLIP_DISTANCES 0x0D32
766#define GL_MAX_CLIP_PLANES 0x0D32
767#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
768#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
769#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
770#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
771#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
772#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
773#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
774#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
775#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
776#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
777#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
778#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
779#define GL_MAX_DRAW_BUFFERS 0x8824
780#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
781#define GL_MAX_ELEMENTS_INDICES 0x80E9
782#define GL_MAX_ELEMENTS_VERTICES 0x80E8
783#define GL_MAX_EVAL_ORDER 0x0D30
784#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
785#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
786#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
787#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
788#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
789#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
790#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
791#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
792#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
793#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
794#define GL_MAX_INTEGER_SAMPLES 0x9110
795#define GL_MAX_LABEL_LENGTH 0x82E8
796#define GL_MAX_LIGHTS 0x0D31
797#define GL_MAX_LIST_NESTING 0x0B31
798#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
799#define GL_MAX_NAME_STACK_DEPTH 0x0D37
800#define GL_MAX_PIXEL_MAP_TABLE 0x0D34
801#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
802#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
803#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
804#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
805#define GL_MAX_SAMPLES 0x8D57
806#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
807#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
808#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
809#define GL_MAX_TEXTURE_COORDS 0x8871
810#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
811#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
812#define GL_MAX_TEXTURE_SIZE 0x0D33
813#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
814#define GL_MAX_TEXTURE_UNITS 0x84E2
815#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
816#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
817#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
818#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
819#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
820#define GL_MAX_VARYING_COMPONENTS 0x8B4B
821#define GL_MAX_VARYING_FLOATS 0x8B4B
822#define GL_MAX_VERTEX_ATTRIBS 0x8869
823#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
824#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
825#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
826#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
827#define GL_MAX_VIEWPORT_DIMS 0x0D3A
828#define GL_MIN 0x8007
829#define GL_MINOR_VERSION 0x821C
830#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
831#define GL_MIRRORED_REPEAT 0x8370
832#define GL_MODELVIEW 0x1700
833#define GL_MODELVIEW_MATRIX 0x0BA6
834#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
835#define GL_MODULATE 0x2100
836#define GL_MULT 0x0103
837#define GL_MULTISAMPLE 0x809D
838#define GL_MULTISAMPLE_ARB 0x809D
839#define GL_MULTISAMPLE_BIT 0x20000000
840#define GL_MULTISAMPLE_BIT_ARB 0x20000000
841#define GL_N3F_V3F 0x2A25
842#define GL_NAME_STACK_DEPTH 0x0D70
843#define GL_NAND 0x150E
844#define GL_NEAREST 0x2600
845#define GL_NEAREST_MIPMAP_LINEAR 0x2702
846#define GL_NEAREST_MIPMAP_NEAREST 0x2700
847#define GL_NEVER 0x0200
848#define GL_NICEST 0x1102
849#define GL_NONE 0
850#define GL_NOOP 0x1505
851#define GL_NOR 0x1508
852#define GL_NORMALIZE 0x0BA1
853#define GL_NORMAL_ARRAY 0x8075
854#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
855#define GL_NORMAL_ARRAY_POINTER 0x808F
856#define GL_NORMAL_ARRAY_STRIDE 0x807F
857#define GL_NORMAL_ARRAY_TYPE 0x807E
858#define GL_NORMAL_MAP 0x8511
859#define GL_NOTEQUAL 0x0205
860#define GL_NO_ERROR 0
861#define GL_NO_RESET_NOTIFICATION_ARB 0x8261
862#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
863#define GL_NUM_EXTENSIONS 0x821D
864#define GL_OBJECT_LINEAR 0x2401
865#define GL_OBJECT_PLANE 0x2501
866#define GL_OBJECT_TYPE 0x9112
867#define GL_ONE 1
868#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
869#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
870#define GL_ONE_MINUS_DST_ALPHA 0x0305
871#define GL_ONE_MINUS_DST_COLOR 0x0307
872#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
873#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
874#define GL_ONE_MINUS_SRC_ALPHA 0x0303
875#define GL_ONE_MINUS_SRC_COLOR 0x0301
876#define GL_OPERAND0_ALPHA 0x8598
877#define GL_OPERAND0_RGB 0x8590
878#define GL_OPERAND1_ALPHA 0x8599
879#define GL_OPERAND1_RGB 0x8591
880#define GL_OPERAND2_ALPHA 0x859A
881#define GL_OPERAND2_RGB 0x8592
882#define GL_OR 0x1507
883#define GL_ORDER 0x0A01
884#define GL_OR_INVERTED 0x150D
885#define GL_OR_REVERSE 0x150B
886#define GL_OUT_OF_MEMORY 0x0505
887#define GL_PACK_ALIGNMENT 0x0D05
888#define GL_PACK_IMAGE_HEIGHT 0x806C
889#define GL_PACK_LSB_FIRST 0x0D01
890#define GL_PACK_ROW_LENGTH 0x0D02
891#define GL_PACK_SKIP_IMAGES 0x806B
892#define GL_PACK_SKIP_PIXELS 0x0D04
893#define GL_PACK_SKIP_ROWS 0x0D03
894#define GL_PACK_SWAP_BYTES 0x0D00
895#define GL_PASS_THROUGH_TOKEN 0x0700
896#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
897#define GL_PIXEL_MAP_A_TO_A 0x0C79
898#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
899#define GL_PIXEL_MAP_B_TO_B 0x0C78
900#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
901#define GL_PIXEL_MAP_G_TO_G 0x0C77
902#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
903#define GL_PIXEL_MAP_I_TO_A 0x0C75
904#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
905#define GL_PIXEL_MAP_I_TO_B 0x0C74
906#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
907#define GL_PIXEL_MAP_I_TO_G 0x0C73
908#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
909#define GL_PIXEL_MAP_I_TO_I 0x0C70
910#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
911#define GL_PIXEL_MAP_I_TO_R 0x0C72
912#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
913#define GL_PIXEL_MAP_R_TO_R 0x0C76
914#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
915#define GL_PIXEL_MAP_S_TO_S 0x0C71
916#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
917#define GL_PIXEL_MODE_BIT 0x00000020
918#define GL_PIXEL_PACK_BUFFER 0x88EB
919#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
920#define GL_PIXEL_UNPACK_BUFFER 0x88EC
921#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
922#define GL_POINT 0x1B00
923#define GL_POINTS 0x0000
924#define GL_POINT_BIT 0x00000002
925#define GL_POINT_DISTANCE_ATTENUATION 0x8129
926#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
927#define GL_POINT_SIZE 0x0B11
928#define GL_POINT_SIZE_GRANULARITY 0x0B13
929#define GL_POINT_SIZE_MAX 0x8127
930#define GL_POINT_SIZE_MIN 0x8126
931#define GL_POINT_SIZE_RANGE 0x0B12
932#define GL_POINT_SMOOTH 0x0B10
933#define GL_POINT_SMOOTH_HINT 0x0C51
934#define GL_POINT_SPRITE 0x8861
935#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
936#define GL_POINT_TOKEN 0x0701
937#define GL_POLYGON 0x0009
938#define GL_POLYGON_BIT 0x00000008
939#define GL_POLYGON_MODE 0x0B40
940#define GL_POLYGON_OFFSET_FACTOR 0x8038
941#define GL_POLYGON_OFFSET_FILL 0x8037
942#define GL_POLYGON_OFFSET_LINE 0x2A02
943#define GL_POLYGON_OFFSET_POINT 0x2A01
944#define GL_POLYGON_OFFSET_UNITS 0x2A00
945#define GL_POLYGON_SMOOTH 0x0B41
946#define GL_POLYGON_SMOOTH_HINT 0x0C53
947#define GL_POLYGON_STIPPLE 0x0B42
948#define GL_POLYGON_STIPPLE_BIT 0x00000010
949#define GL_POLYGON_TOKEN 0x0703
950#define GL_POSITION 0x1203
951#define GL_PREVIOUS 0x8578
952#define GL_PRIMARY_COLOR 0x8577
953#define GL_PRIMITIVES_GENERATED 0x8C87
954#define GL_PRIMITIVE_RESTART 0x8F9D
955#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
956#define GL_PROGRAM 0x82E2
957#define GL_PROGRAM_PIPELINE 0x82E4
958#define GL_PROGRAM_POINT_SIZE 0x8642
959#define GL_PROJECTION 0x1701
960#define GL_PROJECTION_MATRIX 0x0BA7
961#define GL_PROJECTION_STACK_DEPTH 0x0BA4
962#define GL_PROVOKING_VERTEX 0x8E4F
963#define GL_PROXY_TEXTURE_1D 0x8063
964#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
965#define GL_PROXY_TEXTURE_2D 0x8064
966#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
967#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
968#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
969#define GL_PROXY_TEXTURE_3D 0x8070
970#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
971#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
972#define GL_Q 0x2003
973#define GL_QUADRATIC_ATTENUATION 0x1209
974#define GL_QUADS 0x0007
975#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
976#define GL_QUAD_STRIP 0x0008
977#define GL_QUERY 0x82E3
978#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
979#define GL_QUERY_BY_REGION_WAIT 0x8E15
980#define GL_QUERY_COUNTER_BITS 0x8864
981#define GL_QUERY_NO_WAIT 0x8E14
982#define GL_QUERY_RESULT 0x8866
983#define GL_QUERY_RESULT_AVAILABLE 0x8867
984#define GL_QUERY_WAIT 0x8E13
985#define GL_R 0x2002
986#define GL_R11F_G11F_B10F 0x8C3A
987#define GL_R16 0x822A
988#define GL_R16F 0x822D
989#define GL_R16I 0x8233
990#define GL_R16UI 0x8234
991#define GL_R16_SNORM 0x8F98
992#define GL_R32F 0x822E
993#define GL_R32I 0x8235
994#define GL_R32UI 0x8236
995#define GL_R3_G3_B2 0x2A10
996#define GL_R8 0x8229
997#define GL_R8I 0x8231
998#define GL_R8UI 0x8232
999#define GL_R8_SNORM 0x8F94
1000#define GL_RASTERIZER_DISCARD 0x8C89
1001#define GL_READ_BUFFER 0x0C02
1002#define GL_READ_FRAMEBUFFER 0x8CA8
1003#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
1004#define GL_READ_ONLY 0x88B8
1005#define GL_READ_WRITE 0x88BA
1006#define GL_RED 0x1903
1007#define GL_RED_BIAS 0x0D15
1008#define GL_RED_BITS 0x0D52
1009#define GL_RED_INTEGER 0x8D94
1010#define GL_RED_SCALE 0x0D14
1011#define GL_REFLECTION_MAP 0x8512
1012#define GL_RENDER 0x1C00
1013#define GL_RENDERBUFFER 0x8D41
1014#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
1015#define GL_RENDERBUFFER_BINDING 0x8CA7
1016#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
1017#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
1018#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
1019#define GL_RENDERBUFFER_HEIGHT 0x8D43
1020#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
1021#define GL_RENDERBUFFER_RED_SIZE 0x8D50
1022#define GL_RENDERBUFFER_SAMPLES 0x8CAB
1023#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
1024#define GL_RENDERBUFFER_WIDTH 0x8D42
1025#define GL_RENDERER 0x1F01
1026#define GL_RENDER_MODE 0x0C40
1027#define GL_REPEAT 0x2901
1028#define GL_REPLACE 0x1E01
1029#define GL_RESCALE_NORMAL 0x803A
1030#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
1031#define GL_RETURN 0x0102
1032#define GL_RG 0x8227
1033#define GL_RG16 0x822C
1034#define GL_RG16F 0x822F
1035#define GL_RG16I 0x8239
1036#define GL_RG16UI 0x823A
1037#define GL_RG16_SNORM 0x8F99
1038#define GL_RG32F 0x8230
1039#define GL_RG32I 0x823B
1040#define GL_RG32UI 0x823C
1041#define GL_RG8 0x822B
1042#define GL_RG8I 0x8237
1043#define GL_RG8UI 0x8238
1044#define GL_RG8_SNORM 0x8F95
1045#define GL_RGB 0x1907
1046#define GL_RGB10 0x8052
1047#define GL_RGB10_A2 0x8059
1048#define GL_RGB10_A2UI 0x906F
1049#define GL_RGB12 0x8053
1050#define GL_RGB16 0x8054
1051#define GL_RGB16F 0x881B
1052#define GL_RGB16I 0x8D89
1053#define GL_RGB16UI 0x8D77
1054#define GL_RGB16_SNORM 0x8F9A
1055#define GL_RGB32F 0x8815
1056#define GL_RGB32I 0x8D83
1057#define GL_RGB32UI 0x8D71
1058#define GL_RGB4 0x804F
1059#define GL_RGB5 0x8050
1060#define GL_RGB5_A1 0x8057
1061#define GL_RGB8 0x8051
1062#define GL_RGB8I 0x8D8F
1063#define GL_RGB8UI 0x8D7D
1064#define GL_RGB8_SNORM 0x8F96
1065#define GL_RGB9_E5 0x8C3D
1066#define GL_RGBA 0x1908
1067#define GL_RGBA12 0x805A
1068#define GL_RGBA16 0x805B
1069#define GL_RGBA16F 0x881A
1070#define GL_RGBA16I 0x8D88
1071#define GL_RGBA16UI 0x8D76
1072#define GL_RGBA16_SNORM 0x8F9B
1073#define GL_RGBA2 0x8055
1074#define GL_RGBA32F 0x8814
1075#define GL_RGBA32I 0x8D82
1076#define GL_RGBA32UI 0x8D70
1077#define GL_RGBA4 0x8056
1078#define GL_RGBA8 0x8058
1079#define GL_RGBA8I 0x8D8E
1080#define GL_RGBA8UI 0x8D7C
1081#define GL_RGBA8_SNORM 0x8F97
1082#define GL_RGBA_INTEGER 0x8D99
1083#define GL_RGBA_MODE 0x0C31
1084#define GL_RGB_INTEGER 0x8D98
1085#define GL_RGB_SCALE 0x8573
1086#define GL_RG_INTEGER 0x8228
1087#define GL_RIGHT 0x0407
1088#define GL_S 0x2000
1089#define GL_SAMPLER 0x82E6
1090#define GL_SAMPLER_1D 0x8B5D
1091#define GL_SAMPLER_1D_ARRAY 0x8DC0
1092#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
1093#define GL_SAMPLER_1D_SHADOW 0x8B61
1094#define GL_SAMPLER_2D 0x8B5E
1095#define GL_SAMPLER_2D_ARRAY 0x8DC1
1096#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
1097#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
1098#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
1099#define GL_SAMPLER_2D_RECT 0x8B63
1100#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
1101#define GL_SAMPLER_2D_SHADOW 0x8B62
1102#define GL_SAMPLER_3D 0x8B5F
1103#define GL_SAMPLER_BINDING 0x8919
1104#define GL_SAMPLER_BUFFER 0x8DC2
1105#define GL_SAMPLER_CUBE 0x8B60
1106#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
1107#define GL_SAMPLES 0x80A9
1108#define GL_SAMPLES_ARB 0x80A9
1109#define GL_SAMPLES_PASSED 0x8914
1110#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
1111#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
1112#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
1113#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
1114#define GL_SAMPLE_BUFFERS 0x80A8
1115#define GL_SAMPLE_BUFFERS_ARB 0x80A8
1116#define GL_SAMPLE_COVERAGE 0x80A0
1117#define GL_SAMPLE_COVERAGE_ARB 0x80A0
1118#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
1119#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
1120#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
1121#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
1122#define GL_SAMPLE_MASK 0x8E51
1123#define GL_SAMPLE_MASK_VALUE 0x8E52
1124#define GL_SAMPLE_POSITION 0x8E50
1125#define GL_SCISSOR_BIT 0x00080000
1126#define GL_SCISSOR_BOX 0x0C10
1127#define GL_SCISSOR_TEST 0x0C11
1128#define GL_SECONDARY_COLOR_ARRAY 0x845E
1129#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
1130#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
1131#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
1132#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
1133#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
1134#define GL_SELECT 0x1C02
1135#define GL_SELECTION_BUFFER_POINTER 0x0DF3
1136#define GL_SELECTION_BUFFER_SIZE 0x0DF4
1137#define GL_SEPARATE_ATTRIBS 0x8C8D
1138#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
1139#define GL_SET 0x150F
1140#define GL_SHADER 0x82E1
1141#define GL_SHADER_SOURCE_LENGTH 0x8B88
1142#define GL_SHADER_TYPE 0x8B4F
1143#define GL_SHADE_MODEL 0x0B54
1144#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
1145#define GL_SHININESS 0x1601
1146#define GL_SHORT 0x1402
1147#define GL_SIGNALED 0x9119
1148#define GL_SIGNED_NORMALIZED 0x8F9C
1149#define GL_SINGLE_COLOR 0x81F9
1150#define GL_SLUMINANCE 0x8C46
1151#define GL_SLUMINANCE8 0x8C47
1152#define GL_SLUMINANCE8_ALPHA8 0x8C45
1153#define GL_SLUMINANCE_ALPHA 0x8C44
1154#define GL_SMOOTH 0x1D01
1155#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
1156#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
1157#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
1158#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
1159#define GL_SOURCE0_ALPHA 0x8588
1160#define GL_SOURCE0_RGB 0x8580
1161#define GL_SOURCE1_ALPHA 0x8589
1162#define GL_SOURCE1_RGB 0x8581
1163#define GL_SOURCE2_ALPHA 0x858A
1164#define GL_SOURCE2_RGB 0x8582
1165#define GL_SPECULAR 0x1202
1166#define GL_SPHERE_MAP 0x2402
1167#define GL_SPOT_CUTOFF 0x1206
1168#define GL_SPOT_DIRECTION 0x1204
1169#define GL_SPOT_EXPONENT 0x1205
1170#define GL_SRC0_ALPHA 0x8588
1171#define GL_SRC0_RGB 0x8580
1172#define GL_SRC1_ALPHA 0x8589
1173#define GL_SRC1_COLOR 0x88F9
1174#define GL_SRC1_RGB 0x8581
1175#define GL_SRC2_ALPHA 0x858A
1176#define GL_SRC2_RGB 0x8582
1177#define GL_SRC_ALPHA 0x0302
1178#define GL_SRC_ALPHA_SATURATE 0x0308
1179#define GL_SRC_COLOR 0x0300
1180#define GL_SRGB 0x8C40
1181#define GL_SRGB8 0x8C41
1182#define GL_SRGB8_ALPHA8 0x8C43
1183#define GL_SRGB_ALPHA 0x8C42
1184#define GL_STACK_OVERFLOW 0x0503
1185#define GL_STACK_UNDERFLOW 0x0504
1186#define GL_STATIC_COPY 0x88E6
1187#define GL_STATIC_DRAW 0x88E4
1188#define GL_STATIC_READ 0x88E5
1189#define GL_STENCIL 0x1802
1190#define GL_STENCIL_ATTACHMENT 0x8D20
1191#define GL_STENCIL_BACK_FAIL 0x8801
1192#define GL_STENCIL_BACK_FUNC 0x8800
1193#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
1194#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
1195#define GL_STENCIL_BACK_REF 0x8CA3
1196#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
1197#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
1198#define GL_STENCIL_BITS 0x0D57
1199#define GL_STENCIL_BUFFER_BIT 0x00000400
1200#define GL_STENCIL_CLEAR_VALUE 0x0B91
1201#define GL_STENCIL_FAIL 0x0B94
1202#define GL_STENCIL_FUNC 0x0B92
1203#define GL_STENCIL_INDEX 0x1901
1204#define GL_STENCIL_INDEX1 0x8D46
1205#define GL_STENCIL_INDEX16 0x8D49
1206#define GL_STENCIL_INDEX4 0x8D47
1207#define GL_STENCIL_INDEX8 0x8D48
1208#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
1209#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
1210#define GL_STENCIL_REF 0x0B97
1211#define GL_STENCIL_TEST 0x0B90
1212#define GL_STENCIL_VALUE_MASK 0x0B93
1213#define GL_STENCIL_WRITEMASK 0x0B98
1214#define GL_STEREO 0x0C33
1215#define GL_STREAM_COPY 0x88E2
1216#define GL_STREAM_DRAW 0x88E0
1217#define GL_STREAM_READ 0x88E1
1218#define GL_SUBPIXEL_BITS 0x0D50
1219#define GL_SUBTRACT 0x84E7
1220#define GL_SYNC_CONDITION 0x9113
1221#define GL_SYNC_FENCE 0x9116
1222#define GL_SYNC_FLAGS 0x9115
1223#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
1224#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
1225#define GL_SYNC_STATUS 0x9114
1226#define GL_T 0x2001
1227#define GL_T2F_C3F_V3F 0x2A2A
1228#define GL_T2F_C4F_N3F_V3F 0x2A2C
1229#define GL_T2F_C4UB_V3F 0x2A29
1230#define GL_T2F_N3F_V3F 0x2A2B
1231#define GL_T2F_V3F 0x2A27
1232#define GL_T4F_C4F_N3F_V4F 0x2A2D
1233#define GL_T4F_V4F 0x2A28
1234#define GL_TEXTURE 0x1702
1235#define GL_TEXTURE0 0x84C0
1236#define GL_TEXTURE1 0x84C1
1237#define GL_TEXTURE10 0x84CA
1238#define GL_TEXTURE11 0x84CB
1239#define GL_TEXTURE12 0x84CC
1240#define GL_TEXTURE13 0x84CD
1241#define GL_TEXTURE14 0x84CE
1242#define GL_TEXTURE15 0x84CF
1243#define GL_TEXTURE16 0x84D0
1244#define GL_TEXTURE17 0x84D1
1245#define GL_TEXTURE18 0x84D2
1246#define GL_TEXTURE19 0x84D3
1247#define GL_TEXTURE2 0x84C2
1248#define GL_TEXTURE20 0x84D4
1249#define GL_TEXTURE21 0x84D5
1250#define GL_TEXTURE22 0x84D6
1251#define GL_TEXTURE23 0x84D7
1252#define GL_TEXTURE24 0x84D8
1253#define GL_TEXTURE25 0x84D9
1254#define GL_TEXTURE26 0x84DA
1255#define GL_TEXTURE27 0x84DB
1256#define GL_TEXTURE28 0x84DC
1257#define GL_TEXTURE29 0x84DD
1258#define GL_TEXTURE3 0x84C3
1259#define GL_TEXTURE30 0x84DE
1260#define GL_TEXTURE31 0x84DF
1261#define GL_TEXTURE4 0x84C4
1262#define GL_TEXTURE5 0x84C5
1263#define GL_TEXTURE6 0x84C6
1264#define GL_TEXTURE7 0x84C7
1265#define GL_TEXTURE8 0x84C8
1266#define GL_TEXTURE9 0x84C9
1267#define GL_TEXTURE_1D 0x0DE0
1268#define GL_TEXTURE_1D_ARRAY 0x8C18
1269#define GL_TEXTURE_2D 0x0DE1
1270#define GL_TEXTURE_2D_ARRAY 0x8C1A
1271#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
1272#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
1273#define GL_TEXTURE_3D 0x806F
1274#define GL_TEXTURE_ALPHA_SIZE 0x805F
1275#define GL_TEXTURE_ALPHA_TYPE 0x8C13
1276#define GL_TEXTURE_BASE_LEVEL 0x813C
1277#define GL_TEXTURE_BINDING_1D 0x8068
1278#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
1279#define GL_TEXTURE_BINDING_2D 0x8069
1280#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
1281#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
1282#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
1283#define GL_TEXTURE_BINDING_3D 0x806A
1284#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
1285#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
1286#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
1287#define GL_TEXTURE_BIT 0x00040000
1288#define GL_TEXTURE_BLUE_SIZE 0x805E
1289#define GL_TEXTURE_BLUE_TYPE 0x8C12
1290#define GL_TEXTURE_BORDER 0x1005
1291#define GL_TEXTURE_BORDER_COLOR 0x1004
1292#define GL_TEXTURE_BUFFER 0x8C2A
1293#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
1294#define GL_TEXTURE_COMPARE_FUNC 0x884D
1295#define GL_TEXTURE_COMPARE_MODE 0x884C
1296#define GL_TEXTURE_COMPONENTS 0x1003
1297#define GL_TEXTURE_COMPRESSED 0x86A1
1298#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
1299#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
1300#define GL_TEXTURE_COORD_ARRAY 0x8078
1301#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
1302#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
1303#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
1304#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
1305#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
1306#define GL_TEXTURE_CUBE_MAP 0x8513
1307#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
1308#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
1309#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
1310#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
1311#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
1312#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
1313#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
1314#define GL_TEXTURE_DEPTH 0x8071
1315#define GL_TEXTURE_DEPTH_SIZE 0x884A
1316#define GL_TEXTURE_DEPTH_TYPE 0x8C16
1317#define GL_TEXTURE_ENV 0x2300
1318#define GL_TEXTURE_ENV_COLOR 0x2201
1319#define GL_TEXTURE_ENV_MODE 0x2200
1320#define GL_TEXTURE_FILTER_CONTROL 0x8500
1321#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
1322#define GL_TEXTURE_GEN_MODE 0x2500
1323#define GL_TEXTURE_GEN_Q 0x0C63
1324#define GL_TEXTURE_GEN_R 0x0C62
1325#define GL_TEXTURE_GEN_S 0x0C60
1326#define GL_TEXTURE_GEN_T 0x0C61
1327#define GL_TEXTURE_GREEN_SIZE 0x805D
1328#define GL_TEXTURE_GREEN_TYPE 0x8C11
1329#define GL_TEXTURE_HEIGHT 0x1001
1330#define GL_TEXTURE_INTENSITY_SIZE 0x8061
1331#define GL_TEXTURE_INTENSITY_TYPE 0x8C15
1332#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
1333#define GL_TEXTURE_LOD_BIAS 0x8501
1334#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
1335#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
1336#define GL_TEXTURE_MAG_FILTER 0x2800
1337#define GL_TEXTURE_MATRIX 0x0BA8
1338#define GL_TEXTURE_MAX_LEVEL 0x813D
1339#define GL_TEXTURE_MAX_LOD 0x813B
1340#define GL_TEXTURE_MIN_FILTER 0x2801
1341#define GL_TEXTURE_MIN_LOD 0x813A
1342#define GL_TEXTURE_PRIORITY 0x8066
1343#define GL_TEXTURE_RECTANGLE 0x84F5
1344#define GL_TEXTURE_RED_SIZE 0x805C
1345#define GL_TEXTURE_RED_TYPE 0x8C10
1346#define GL_TEXTURE_RESIDENT 0x8067
1347#define GL_TEXTURE_SAMPLES 0x9106
1348#define GL_TEXTURE_SHARED_SIZE 0x8C3F
1349#define GL_TEXTURE_STACK_DEPTH 0x0BA5
1350#define GL_TEXTURE_STENCIL_SIZE 0x88F1
1351#define GL_TEXTURE_SWIZZLE_A 0x8E45
1352#define GL_TEXTURE_SWIZZLE_B 0x8E44
1353#define GL_TEXTURE_SWIZZLE_G 0x8E43
1354#define GL_TEXTURE_SWIZZLE_R 0x8E42
1355#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
1356#define GL_TEXTURE_WIDTH 0x1000
1357#define GL_TEXTURE_WRAP_R 0x8072
1358#define GL_TEXTURE_WRAP_S 0x2802
1359#define GL_TEXTURE_WRAP_T 0x2803
1360#define GL_TIMEOUT_EXPIRED 0x911B
1361#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
1362#define GL_TIMESTAMP 0x8E28
1363#define GL_TIME_ELAPSED 0x88BF
1364#define GL_TRANSFORM_BIT 0x00001000
1365#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
1366#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
1367#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
1368#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
1369#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
1370#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
1371#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
1372#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
1373#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
1374#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
1375#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
1376#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
1377#define GL_TRIANGLES 0x0004
1378#define GL_TRIANGLES_ADJACENCY 0x000C
1379#define GL_TRIANGLE_FAN 0x0006
1380#define GL_TRIANGLE_STRIP 0x0005
1381#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
1382#define GL_TRUE 1
1383#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
1384#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
1385#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
1386#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
1387#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
1388#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
1389#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
1390#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
1391#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
1392#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
1393#define GL_UNIFORM_BUFFER 0x8A11
1394#define GL_UNIFORM_BUFFER_BINDING 0x8A28
1395#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
1396#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
1397#define GL_UNIFORM_BUFFER_START 0x8A29
1398#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
1399#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
1400#define GL_UNIFORM_NAME_LENGTH 0x8A39
1401#define GL_UNIFORM_OFFSET 0x8A3B
1402#define GL_UNIFORM_SIZE 0x8A38
1403#define GL_UNIFORM_TYPE 0x8A37
1404#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
1405#define GL_UNPACK_ALIGNMENT 0x0CF5
1406#define GL_UNPACK_IMAGE_HEIGHT 0x806E
1407#define GL_UNPACK_LSB_FIRST 0x0CF1
1408#define GL_UNPACK_ROW_LENGTH 0x0CF2
1409#define GL_UNPACK_SKIP_IMAGES 0x806D
1410#define GL_UNPACK_SKIP_PIXELS 0x0CF4
1411#define GL_UNPACK_SKIP_ROWS 0x0CF3
1412#define GL_UNPACK_SWAP_BYTES 0x0CF0
1413#define GL_UNSIGNALED 0x9118
1414#define GL_UNSIGNED_BYTE 0x1401
1415#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
1416#define GL_UNSIGNED_BYTE_3_3_2 0x8032
1417#define GL_UNSIGNED_INT 0x1405
1418#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
1419#define GL_UNSIGNED_INT_10_10_10_2 0x8036
1420#define GL_UNSIGNED_INT_24_8 0x84FA
1421#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
1422#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
1423#define GL_UNSIGNED_INT_8_8_8_8 0x8035
1424#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
1425#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
1426#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
1427#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
1428#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
1429#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
1430#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
1431#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
1432#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
1433#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
1434#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
1435#define GL_UNSIGNED_INT_VEC2 0x8DC6
1436#define GL_UNSIGNED_INT_VEC3 0x8DC7
1437#define GL_UNSIGNED_INT_VEC4 0x8DC8
1438#define GL_UNSIGNED_NORMALIZED 0x8C17
1439#define GL_UNSIGNED_SHORT 0x1403
1440#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
1441#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
1442#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
1443#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
1444#define GL_UNSIGNED_SHORT_5_6_5 0x8363
1445#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
1446#define GL_UPPER_LEFT 0x8CA2
1447#define GL_V2F 0x2A20
1448#define GL_V3F 0x2A21
1449#define GL_VALIDATE_STATUS 0x8B83
1450#define GL_VENDOR 0x1F00
1451#define GL_VERSION 0x1F02
1452#define GL_VERTEX_ARRAY 0x8074
1453#define GL_VERTEX_ARRAY_BINDING 0x85B5
1454#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
1455#define GL_VERTEX_ARRAY_POINTER 0x808E
1456#define GL_VERTEX_ARRAY_SIZE 0x807A
1457#define GL_VERTEX_ARRAY_STRIDE 0x807C
1458#define GL_VERTEX_ARRAY_TYPE 0x807B
1459#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
1460#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
1461#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
1462#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
1463#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
1464#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
1465#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
1466#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
1467#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
1468#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
1469#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
1470#define GL_VERTEX_SHADER 0x8B31
1471#define GL_VIEWPORT 0x0BA2
1472#define GL_VIEWPORT_BIT 0x00000800
1473#define GL_WAIT_FAILED 0x911D
1474#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
1475#define GL_WRITE_ONLY 0x88B9
1476#define GL_XOR 0x1506
1477#define GL_ZERO 0
1478#define GL_ZOOM_X 0x0D16
1479#define GL_ZOOM_Y 0x0D17
1480
1481
1482#ifndef __khrplatform_h_
1483#define __khrplatform_h_
1484
1485/*
1486** Copyright (c) 2008-2018 The Khronos Group Inc.
1487**
1488** Permission is hereby granted, free of charge, to any person obtaining a
1489** copy of this software and/or associated documentation files (the
1490** "Materials"), to deal in the Materials without restriction, including
1491** without limitation the rights to use, copy, modify, merge, publish,
1492** distribute, sublicense, and/or sell copies of the Materials, and to
1493** permit persons to whom the Materials are furnished to do so, subject to
1494** the following conditions:
1495**
1496** The above copyright notice and this permission notice shall be included
1497** in all copies or substantial portions of the Materials.
1498**
1499** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1500** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1501** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
1502** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
1503** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
1504** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
1505** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
1506*/
1507
1508/* Khronos platform-specific types and definitions.
1509 *
1510 * The master copy of khrplatform.h is maintained in the Khronos EGL
1511 * Registry repository at https://github.com/KhronosGroup/EGL-Registry
1512 * The last semantic modification to khrplatform.h was at commit ID:
1513 * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
1514 *
1515 * Adopters may modify this file to suit their platform. Adopters are
1516 * encouraged to submit platform specific modifications to the Khronos
1517 * group so that they can be included in future versions of this file.
1518 * Please submit changes by filing pull requests or issues on
1519 * the EGL Registry repository linked above.
1520 *
1521 *
1522 * See the Implementer's Guidelines for information about where this file
1523 * should be located on your system and for more details of its use:
1524 * http://www.khronos.org/registry/implementers_guide.pdf
1525 *
1526 * This file should be included as
1527 * #include <KHR/khrplatform.h>
1528 * by Khronos client API header files that use its types and defines.
1529 *
1530 * The types in khrplatform.h should only be used to define API-specific types.
1531 *
1532 * Types defined in khrplatform.h:
1533 * khronos_int8_t signed 8 bit
1534 * khronos_uint8_t unsigned 8 bit
1535 * khronos_int16_t signed 16 bit
1536 * khronos_uint16_t unsigned 16 bit
1537 * khronos_int32_t signed 32 bit
1538 * khronos_uint32_t unsigned 32 bit
1539 * khronos_int64_t signed 64 bit
1540 * khronos_uint64_t unsigned 64 bit
1541 * khronos_intptr_t signed same number of bits as a pointer
1542 * khronos_uintptr_t unsigned same number of bits as a pointer
1543 * khronos_ssize_t signed size
1544 * khronos_usize_t unsigned size
1545 * khronos_float_t signed 32 bit floating point
1546 * khronos_time_ns_t unsigned 64 bit time in nanoseconds
1547 * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
1548 * nanoseconds
1549 * khronos_stime_nanoseconds_t signed time interval in nanoseconds
1550 * khronos_boolean_enum_t enumerated boolean type. This should
1551 * only be used as a base type when a client API's boolean type is
1552 * an enum. Client APIs which use an integer or other type for
1553 * booleans cannot use this as the base type for their boolean.
1554 *
1555 * Tokens defined in khrplatform.h:
1556 *
1557 * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
1558 *
1559 * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
1560 * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
1561 *
1562 * Calling convention macros defined in this file:
1563 * KHRONOS_APICALL
1564 * KHRONOS_GLAD_API_PTR
1565 * KHRONOS_APIATTRIBUTES
1566 *
1567 * These may be used in function prototypes as:
1568 *
1569 * KHRONOS_APICALL void KHRONOS_GLAD_API_PTR funcname(
1570 * int arg1,
1571 * int arg2) KHRONOS_APIATTRIBUTES;
1572 */
1573
1574#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
1575# define KHRONOS_STATIC 1
1576#endif
1577
1578/*-------------------------------------------------------------------------
1579 * Definition of KHRONOS_APICALL
1580 *-------------------------------------------------------------------------
1581 * This precedes the return type of the function in the function prototype.
1582 */
1583#if defined(KHRONOS_STATIC)
1584 /* If the preprocessor constant KHRONOS_STATIC is defined, make the
1585 * header compatible with static linking. */
1586# define KHRONOS_APICALL
1587#elif defined(_WIN32)
1588# define KHRONOS_APICALL __declspec(dllimport)
1589#elif defined (__SYMBIAN32__)
1590# define KHRONOS_APICALL IMPORT_C
1591#elif defined(__ANDROID__)
1592# define KHRONOS_APICALL __attribute__((visibility("default")))
1593#else
1594# define KHRONOS_APICALL
1595#endif
1596
1597/*-------------------------------------------------------------------------
1598 * Definition of KHRONOS_GLAD_API_PTR
1599 *-------------------------------------------------------------------------
1600 * This follows the return type of the function and precedes the function
1601 * name in the function prototype.
1602 */
1603#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
1604 /* Win32 but not WinCE */
1605# define KHRONOS_GLAD_API_PTR __stdcall
1606#else
1607# define KHRONOS_GLAD_API_PTR
1608#endif
1609
1610/*-------------------------------------------------------------------------
1611 * Definition of KHRONOS_APIATTRIBUTES
1612 *-------------------------------------------------------------------------
1613 * This follows the closing parenthesis of the function prototype arguments.
1614 */
1615#if defined (__ARMCC_2__)
1616#define KHRONOS_APIATTRIBUTES __softfp
1617#else
1618#define KHRONOS_APIATTRIBUTES
1619#endif
1620
1621/*-------------------------------------------------------------------------
1622 * basic type definitions
1623 *-----------------------------------------------------------------------*/
1624#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
1625
1626
1627/*
1628 * Using <stdint.h>
1629 */
1630#include <stdint.h>
1631typedef int32_t khronos_int32_t;
1632typedef uint32_t khronos_uint32_t;
1633typedef int64_t khronos_int64_t;
1634typedef uint64_t khronos_uint64_t;
1635#define KHRONOS_SUPPORT_INT64 1
1636#define KHRONOS_SUPPORT_FLOAT 1
1637
1638#elif defined(__VMS ) || defined(__sgi)
1639
1640/*
1641 * Using <inttypes.h>
1642 */
1643#include <inttypes.h>
1644typedef int32_t khronos_int32_t;
1645typedef uint32_t khronos_uint32_t;
1646typedef int64_t khronos_int64_t;
1647typedef uint64_t khronos_uint64_t;
1648#define KHRONOS_SUPPORT_INT64 1
1649#define KHRONOS_SUPPORT_FLOAT 1
1650
1651#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
1652
1653/*
1654 * Win32
1655 */
1656typedef __int32 khronos_int32_t;
1657typedef unsigned __int32 khronos_uint32_t;
1658typedef __int64 khronos_int64_t;
1659typedef unsigned __int64 khronos_uint64_t;
1660#define KHRONOS_SUPPORT_INT64 1
1661#define KHRONOS_SUPPORT_FLOAT 1
1662
1663#elif defined(__sun__) || defined(__digital__)
1664
1665/*
1666 * Sun or Digital
1667 */
1668typedef int khronos_int32_t;
1669typedef unsigned int khronos_uint32_t;
1670#if defined(__arch64__) || defined(_LP64)
1671typedef long int khronos_int64_t;
1672typedef unsigned long int khronos_uint64_t;
1673#else
1674typedef long long int khronos_int64_t;
1675typedef unsigned long long int khronos_uint64_t;
1676#endif /* __arch64__ */
1677#define KHRONOS_SUPPORT_INT64 1
1678#define KHRONOS_SUPPORT_FLOAT 1
1679
1680#elif 0
1681
1682/*
1683 * Hypothetical platform with no float or int64 support
1684 */
1685typedef int khronos_int32_t;
1686typedef unsigned int khronos_uint32_t;
1687#define KHRONOS_SUPPORT_INT64 0
1688#define KHRONOS_SUPPORT_FLOAT 0
1689
1690#else
1691
1692/*
1693 * Generic fallback
1694 */
1695#include <stdint.h>
1696typedef int32_t khronos_int32_t;
1697typedef uint32_t khronos_uint32_t;
1698typedef int64_t khronos_int64_t;
1699typedef uint64_t khronos_uint64_t;
1700#define KHRONOS_SUPPORT_INT64 1
1701#define KHRONOS_SUPPORT_FLOAT 1
1702
1703#endif
1704
1705
1706/*
1707 * Types that are (so far) the same on all platforms
1708 */
1709typedef signed char khronos_int8_t;
1710typedef unsigned char khronos_uint8_t;
1711typedef signed short int khronos_int16_t;
1712typedef unsigned short int khronos_uint16_t;
1713
1714/*
1715 * Types that differ between LLP64 and LP64 architectures - in LLP64,
1716 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
1717 * to be the only LLP64 architecture in current use.
1718 */
1719#ifdef _WIN64
1720typedef signed long long int khronos_intptr_t;
1721typedef unsigned long long int khronos_uintptr_t;
1722typedef signed long long int khronos_ssize_t;
1723typedef unsigned long long int khronos_usize_t;
1724#else
1725typedef signed long int khronos_intptr_t;
1726typedef unsigned long int khronos_uintptr_t;
1727typedef signed long int khronos_ssize_t;
1728typedef unsigned long int khronos_usize_t;
1729#endif
1730
1731#if KHRONOS_SUPPORT_FLOAT
1732/*
1733 * Float type
1734 */
1735typedef float khronos_float_t;
1736#endif
1737
1738#if KHRONOS_SUPPORT_INT64
1739/* Time types
1740 *
1741 * These types can be used to represent a time interval in nanoseconds or
1742 * an absolute Unadjusted System Time. Unadjusted System Time is the number
1743 * of nanoseconds since some arbitrary system event (e.g. since the last
1744 * time the system booted). The Unadjusted System Time is an unsigned
1745 * 64 bit value that wraps back to 0 every 584 years. Time intervals
1746 * may be either signed or unsigned.
1747 */
1748typedef khronos_uint64_t khronos_utime_nanoseconds_t;
1749typedef khronos_int64_t khronos_stime_nanoseconds_t;
1750#endif
1751
1752/*
1753 * Dummy value used to pad enum types to 32 bits.
1754 */
1755#ifndef KHRONOS_MAX_ENUM
1756#define KHRONOS_MAX_ENUM 0x7FFFFFFF
1757#endif
1758
1759/*
1760 * Enumerated boolean type
1761 *
1762 * Values other than zero should be considered to be true. Therefore
1763 * comparisons should not be made against KHRONOS_TRUE.
1764 */
1765typedef enum {
1766 KHRONOS_FALSE = 0,
1767 KHRONOS_TRUE = 1,
1768 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
1769} khronos_boolean_enum_t;
1770
1771#endif /* __khrplatform_h_ */
1772
1773typedef unsigned int GLenum;
1774
1775typedef unsigned char GLboolean;
1776
1777typedef unsigned int GLbitfield;
1778
1779typedef void GLvoid;
1780
1781typedef khronos_int8_t GLbyte;
1782
1783typedef khronos_uint8_t GLubyte;
1784
1785typedef khronos_int16_t GLshort;
1786
1787typedef khronos_uint16_t GLushort;
1788
1789typedef int GLint;
1790
1791typedef unsigned int GLuint;
1792
1793typedef khronos_int32_t GLclampx;
1794
1795typedef int GLsizei;
1796
1797typedef khronos_float_t GLfloat;
1798
1799typedef khronos_float_t GLclampf;
1800
1801typedef double GLdouble;
1802
1803typedef double GLclampd;
1804
1805typedef void *GLeglClientBufferEXT;
1806
1807typedef void *GLeglImageOES;
1808
1809typedef char GLchar;
1810
1811typedef char GLcharARB;
1812
1813#ifdef __APPLE__
1814typedef void *GLhandleARB;
1815#else
1816typedef unsigned int GLhandleARB;
1817#endif
1818
1819typedef khronos_uint16_t GLhalf;
1820
1821typedef khronos_uint16_t GLhalfARB;
1822
1823typedef khronos_int32_t GLfixed;
1824
1825#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
1826typedef khronos_intptr_t GLintptr;
1827#else
1828typedef khronos_intptr_t GLintptr;
1829#endif
1830
1831#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
1832typedef khronos_intptr_t GLintptrARB;
1833#else
1834typedef khronos_intptr_t GLintptrARB;
1835#endif
1836
1837#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
1838typedef khronos_ssize_t GLsizeiptr;
1839#else
1840typedef khronos_ssize_t GLsizeiptr;
1841#endif
1842
1843#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
1844typedef khronos_ssize_t GLsizeiptrARB;
1845#else
1846typedef khronos_ssize_t GLsizeiptrARB;
1847#endif
1848
1849typedef khronos_int64_t GLint64;
1850
1851typedef khronos_int64_t GLint64EXT;
1852
1853typedef khronos_uint64_t GLuint64;
1854
1855typedef khronos_uint64_t GLuint64EXT;
1856
1857typedef struct __GLsync *GLsync;
1858
1859struct _cl_context;
1860
1861struct _cl_event;
1862
1863typedef void (GLAD_API_PTR *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
1864
1865typedef void (GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
1866
1867typedef void (GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
1868
1869typedef void (GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
1870
1871typedef unsigned short GLhalfNV;
1872
1873typedef GLintptr GLvdpauSurfaceNV;
1874
1875typedef void (GLAD_API_PTR *GLVULKANPROCNV)(void);
1876
1877
1878
1879#define GL_VERSION_1_0 1
1880GLAD_API_CALL int GLAD_GL_VERSION_1_0;
1881#define GL_VERSION_1_1 1
1882GLAD_API_CALL int GLAD_GL_VERSION_1_1;
1883#define GL_VERSION_1_2 1
1884GLAD_API_CALL int GLAD_GL_VERSION_1_2;
1885#define GL_VERSION_1_3 1
1886GLAD_API_CALL int GLAD_GL_VERSION_1_3;
1887#define GL_VERSION_1_4 1
1888GLAD_API_CALL int GLAD_GL_VERSION_1_4;
1889#define GL_VERSION_1_5 1
1890GLAD_API_CALL int GLAD_GL_VERSION_1_5;
1891#define GL_VERSION_2_0 1
1892GLAD_API_CALL int GLAD_GL_VERSION_2_0;
1893#define GL_VERSION_2_1 1
1894GLAD_API_CALL int GLAD_GL_VERSION_2_1;
1895#define GL_VERSION_3_0 1
1896GLAD_API_CALL int GLAD_GL_VERSION_3_0;
1897#define GL_VERSION_3_1 1
1898GLAD_API_CALL int GLAD_GL_VERSION_3_1;
1899#define GL_VERSION_3_2 1
1900GLAD_API_CALL int GLAD_GL_VERSION_3_2;
1901#define GL_VERSION_3_3 1
1902GLAD_API_CALL int GLAD_GL_VERSION_3_3;
1903#define GL_ARB_multisample 1
1904GLAD_API_CALL int GLAD_GL_ARB_multisample;
1905#define GL_ARB_robustness 1
1906GLAD_API_CALL int GLAD_GL_ARB_robustness;
1907#define GL_KHR_debug 1
1908GLAD_API_CALL int GLAD_GL_KHR_debug;
1909
1910
1911typedef void (GLAD_API_PTR *PFNGLACCUMPROC)(GLenum op, GLfloat value);
1912typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
1913typedef void (GLAD_API_PTR *PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref);
1914typedef GLboolean (GLAD_API_PTR *PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint * textures, GLboolean * residences);
1915typedef void (GLAD_API_PTR *PFNGLARRAYELEMENTPROC)(GLint i);
1916typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
1917typedef void (GLAD_API_PTR *PFNGLBEGINPROC)(GLenum mode);
1918typedef void (GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
1919typedef void (GLAD_API_PTR *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
1920typedef void (GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
1921typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name);
1922typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
1923typedef void (GLAD_API_PTR *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
1924typedef void (GLAD_API_PTR *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
1925typedef void (GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar * name);
1926typedef void (GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
1927typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
1928typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
1929typedef void (GLAD_API_PTR *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
1930typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
1931typedef void (GLAD_API_PTR *PFNGLBINDVERTEXARRAYPROC)(GLuint array);
1932typedef void (GLAD_API_PTR *PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap);
1933typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1934typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
1935typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
1936typedef void (GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
1937typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
1938typedef void (GLAD_API_PTR *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1939typedef void (GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
1940typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
1941typedef void (GLAD_API_PTR *PFNGLCALLLISTPROC)(GLuint list);
1942typedef void (GLAD_API_PTR *PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void * lists);
1943typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
1944typedef void (GLAD_API_PTR *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
1945typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
1946typedef void (GLAD_API_PTR *PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1947typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
1948typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat * value);
1949typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint * value);
1950typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint * value);
1951typedef void (GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1952typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth);
1953typedef void (GLAD_API_PTR *PFNGLCLEARINDEXPROC)(GLfloat c);
1954typedef void (GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
1955typedef void (GLAD_API_PTR *PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture);
1956typedef GLenum (GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
1957typedef void (GLAD_API_PTR *PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble * equation);
1958typedef void (GLAD_API_PTR *PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
1959typedef void (GLAD_API_PTR *PFNGLCOLOR3BVPROC)(const GLbyte * v);
1960typedef void (GLAD_API_PTR *PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
1961typedef void (GLAD_API_PTR *PFNGLCOLOR3DVPROC)(const GLdouble * v);
1962typedef void (GLAD_API_PTR *PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
1963typedef void (GLAD_API_PTR *PFNGLCOLOR3FVPROC)(const GLfloat * v);
1964typedef void (GLAD_API_PTR *PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue);
1965typedef void (GLAD_API_PTR *PFNGLCOLOR3IVPROC)(const GLint * v);
1966typedef void (GLAD_API_PTR *PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
1967typedef void (GLAD_API_PTR *PFNGLCOLOR3SVPROC)(const GLshort * v);
1968typedef void (GLAD_API_PTR *PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
1969typedef void (GLAD_API_PTR *PFNGLCOLOR3UBVPROC)(const GLubyte * v);
1970typedef void (GLAD_API_PTR *PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
1971typedef void (GLAD_API_PTR *PFNGLCOLOR3UIVPROC)(const GLuint * v);
1972typedef void (GLAD_API_PTR *PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
1973typedef void (GLAD_API_PTR *PFNGLCOLOR3USVPROC)(const GLushort * v);
1974typedef void (GLAD_API_PTR *PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
1975typedef void (GLAD_API_PTR *PFNGLCOLOR4BVPROC)(const GLbyte * v);
1976typedef void (GLAD_API_PTR *PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
1977typedef void (GLAD_API_PTR *PFNGLCOLOR4DVPROC)(const GLdouble * v);
1978typedef void (GLAD_API_PTR *PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1979typedef void (GLAD_API_PTR *PFNGLCOLOR4FVPROC)(const GLfloat * v);
1980typedef void (GLAD_API_PTR *PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha);
1981typedef void (GLAD_API_PTR *PFNGLCOLOR4IVPROC)(const GLint * v);
1982typedef void (GLAD_API_PTR *PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
1983typedef void (GLAD_API_PTR *PFNGLCOLOR4SVPROC)(const GLshort * v);
1984typedef void (GLAD_API_PTR *PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
1985typedef void (GLAD_API_PTR *PFNGLCOLOR4UBVPROC)(const GLubyte * v);
1986typedef void (GLAD_API_PTR *PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
1987typedef void (GLAD_API_PTR *PFNGLCOLOR4UIVPROC)(const GLuint * v);
1988typedef void (GLAD_API_PTR *PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
1989typedef void (GLAD_API_PTR *PFNGLCOLOR4USVPROC)(const GLushort * v);
1990typedef void (GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
1991typedef void (GLAD_API_PTR *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
1992typedef void (GLAD_API_PTR *PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode);
1993typedef void (GLAD_API_PTR *PFNGLCOLORP3UIPROC)(GLenum type, GLuint color);
1994typedef void (GLAD_API_PTR *PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint * color);
1995typedef void (GLAD_API_PTR *PFNGLCOLORP4UIPROC)(GLenum type, GLuint color);
1996typedef void (GLAD_API_PTR *PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint * color);
1997typedef void (GLAD_API_PTR *PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
1998typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
1999typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
2000typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
2001typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
2002typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
2003typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
2004typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
2005typedef void (GLAD_API_PTR *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
2006typedef void (GLAD_API_PTR *PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
2007typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2008typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2009typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2010typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2011typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2012typedef GLuint (GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
2013typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
2014typedef void (GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
2015typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void * userParam);
2016typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
2017typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
2018typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers);
2019typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers);
2020typedef void (GLAD_API_PTR *PFNGLDELETELISTSPROC)(GLuint list, GLsizei range);
2021typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
2022typedef void (GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint * ids);
2023typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers);
2024typedef void (GLAD_API_PTR *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint * samplers);
2025typedef void (GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
2026typedef void (GLAD_API_PTR *PFNGLDELETESYNCPROC)(GLsync sync);
2027typedef void (GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures);
2028typedef void (GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint * arrays);
2029typedef void (GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
2030typedef void (GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
2031typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
2032typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
2033typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
2034typedef void (GLAD_API_PTR *PFNGLDISABLECLIENTSTATEPROC)(GLenum array);
2035typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
2036typedef void (GLAD_API_PTR *PFNGLDISABLEIPROC)(GLenum target, GLuint index);
2037typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
2038typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
2039typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERPROC)(GLenum buf);
2040typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum * bufs);
2041typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
2042typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
2043typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount);
2044typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
2045typedef void (GLAD_API_PTR *PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
2046typedef void (GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
2047typedef void (GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
2048typedef void (GLAD_API_PTR *PFNGLEDGEFLAGPROC)(GLboolean flag);
2049typedef void (GLAD_API_PTR *PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void * pointer);
2050typedef void (GLAD_API_PTR *PFNGLEDGEFLAGVPROC)(const GLboolean * flag);
2051typedef void (GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
2052typedef void (GLAD_API_PTR *PFNGLENABLECLIENTSTATEPROC)(GLenum array);
2053typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
2054typedef void (GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index);
2055typedef void (GLAD_API_PTR *PFNGLENDPROC)(void);
2056typedef void (GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void);
2057typedef void (GLAD_API_PTR *PFNGLENDLISTPROC)(void);
2058typedef void (GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target);
2059typedef void (GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void);
2060typedef void (GLAD_API_PTR *PFNGLEVALCOORD1DPROC)(GLdouble u);
2061typedef void (GLAD_API_PTR *PFNGLEVALCOORD1DVPROC)(const GLdouble * u);
2062typedef void (GLAD_API_PTR *PFNGLEVALCOORD1FPROC)(GLfloat u);
2063typedef void (GLAD_API_PTR *PFNGLEVALCOORD1FVPROC)(const GLfloat * u);
2064typedef void (GLAD_API_PTR *PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v);
2065typedef void (GLAD_API_PTR *PFNGLEVALCOORD2DVPROC)(const GLdouble * u);
2066typedef void (GLAD_API_PTR *PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v);
2067typedef void (GLAD_API_PTR *PFNGLEVALCOORD2FVPROC)(const GLfloat * u);
2068typedef void (GLAD_API_PTR *PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2);
2069typedef void (GLAD_API_PTR *PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
2070typedef void (GLAD_API_PTR *PFNGLEVALPOINT1PROC)(GLint i);
2071typedef void (GLAD_API_PTR *PFNGLEVALPOINT2PROC)(GLint i, GLint j);
2072typedef void (GLAD_API_PTR *PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat * buffer);
2073typedef GLsync (GLAD_API_PTR *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
2074typedef void (GLAD_API_PTR *PFNGLFINISHPROC)(void);
2075typedef void (GLAD_API_PTR *PFNGLFLUSHPROC)(void);
2076typedef void (GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
2077typedef void (GLAD_API_PTR *PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void * pointer);
2078typedef void (GLAD_API_PTR *PFNGLFOGCOORDDPROC)(GLdouble coord);
2079typedef void (GLAD_API_PTR *PFNGLFOGCOORDDVPROC)(const GLdouble * coord);
2080typedef void (GLAD_API_PTR *PFNGLFOGCOORDFPROC)(GLfloat coord);
2081typedef void (GLAD_API_PTR *PFNGLFOGCOORDFVPROC)(const GLfloat * coord);
2082typedef void (GLAD_API_PTR *PFNGLFOGFPROC)(GLenum pname, GLfloat param);
2083typedef void (GLAD_API_PTR *PFNGLFOGFVPROC)(GLenum pname, const GLfloat * params);
2084typedef void (GLAD_API_PTR *PFNGLFOGIPROC)(GLenum pname, GLint param);
2085typedef void (GLAD_API_PTR *PFNGLFOGIVPROC)(GLenum pname, const GLint * params);
2086typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
2087typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
2088typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
2089typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
2090typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
2091typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
2092typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
2093typedef void (GLAD_API_PTR *PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
2094typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers);
2095typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
2096typedef GLuint (GLAD_API_PTR *PFNGLGENLISTSPROC)(GLsizei range);
2097typedef void (GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint * ids);
2098typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
2099typedef void (GLAD_API_PTR *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint * samplers);
2100typedef void (GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures);
2101typedef void (GLAD_API_PTR *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays);
2102typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
2103typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
2104typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
2105typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName);
2106typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params);
2107typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName);
2108typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params);
2109typedef void (GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
2110typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name);
2111typedef void (GLAD_API_PTR *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean * data);
2112typedef void (GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data);
2113typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 * params);
2114typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
2115typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void ** params);
2116typedef void (GLAD_API_PTR *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void * data);
2117typedef void (GLAD_API_PTR *PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble * equation);
2118typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void * img);
2119typedef GLuint (GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
2120typedef void (GLAD_API_PTR *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble * data);
2121typedef GLenum (GLAD_API_PTR *PFNGLGETERRORPROC)(void);
2122typedef void (GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data);
2123typedef GLint (GLAD_API_PTR *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar * name);
2124typedef GLint (GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar * name);
2125typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
2126typedef GLenum (GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void);
2127typedef void (GLAD_API_PTR *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 * data);
2128typedef void (GLAD_API_PTR *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 * data);
2129typedef void (GLAD_API_PTR *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint * data);
2130typedef void (GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data);
2131typedef void (GLAD_API_PTR *PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat * params);
2132typedef void (GLAD_API_PTR *PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint * params);
2133typedef void (GLAD_API_PTR *PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble * v);
2134typedef void (GLAD_API_PTR *PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat * v);
2135typedef void (GLAD_API_PTR *PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint * v);
2136typedef void (GLAD_API_PTR *PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat * params);
2137typedef void (GLAD_API_PTR *PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint * params);
2138typedef void (GLAD_API_PTR *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat * val);
2139typedef void (GLAD_API_PTR *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
2140typedef void (GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
2141typedef void (GLAD_API_PTR *PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat * values);
2142typedef void (GLAD_API_PTR *PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint * values);
2143typedef void (GLAD_API_PTR *PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort * values);
2144typedef void (GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void ** params);
2145typedef void (GLAD_API_PTR *PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte * mask);
2146typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
2147typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params);
2148typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 * params);
2149typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint * params);
2150typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 * params);
2151typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint * params);
2152typedef void (GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint * params);
2153typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
2154typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint * params);
2155typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint * params);
2156typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat * params);
2157typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint * params);
2158typedef void (GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
2159typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
2160typedef void (GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params);
2161typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
2162typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
2163typedef void (GLAD_API_PTR *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values);
2164typedef void (GLAD_API_PTR *PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat * params);
2165typedef void (GLAD_API_PTR *PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint * params);
2166typedef void (GLAD_API_PTR *PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble * params);
2167typedef void (GLAD_API_PTR *PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat * params);
2168typedef void (GLAD_API_PTR *PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint * params);
2169typedef void (GLAD_API_PTR *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
2170typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat * params);
2171typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint * params);
2172typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint * params);
2173typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint * params);
2174typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
2175typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
2176typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
2177typedef GLuint (GLAD_API_PTR *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar * uniformBlockName);
2178typedef void (GLAD_API_PTR *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices);
2179typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name);
2180typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params);
2181typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params);
2182typedef void (GLAD_API_PTR *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint * params);
2183typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint * params);
2184typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint * params);
2185typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer);
2186typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble * params);
2187typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params);
2188typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params);
2189typedef void (GLAD_API_PTR *PFNGLGETNCOLORTABLEARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table);
2190typedef void (GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, GLsizei bufSize, void * img);
2191typedef void (GLAD_API_PTR *PFNGLGETNCONVOLUTIONFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image);
2192typedef void (GLAD_API_PTR *PFNGLGETNHISTOGRAMARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
2193typedef void (GLAD_API_PTR *PFNGLGETNMAPDVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v);
2194typedef void (GLAD_API_PTR *PFNGLGETNMAPFVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v);
2195typedef void (GLAD_API_PTR *PFNGLGETNMAPIVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint * v);
2196typedef void (GLAD_API_PTR *PFNGLGETNMINMAXARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
2197typedef void (GLAD_API_PTR *PFNGLGETNPIXELMAPFVARBPROC)(GLenum map, GLsizei bufSize, GLfloat * values);
2198typedef void (GLAD_API_PTR *PFNGLGETNPIXELMAPUIVARBPROC)(GLenum map, GLsizei bufSize, GLuint * values);
2199typedef void (GLAD_API_PTR *PFNGLGETNPIXELMAPUSVARBPROC)(GLenum map, GLsizei bufSize, GLushort * values);
2200typedef void (GLAD_API_PTR *PFNGLGETNPOLYGONSTIPPLEARBPROC)(GLsizei bufSize, GLubyte * pattern);
2201typedef void (GLAD_API_PTR *PFNGLGETNSEPARABLEFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, void * column, void * span);
2202typedef void (GLAD_API_PTR *PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * img);
2203typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params);
2204typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
2205typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
2206typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
2207typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
2208typedef void (GLAD_API_PTR *PFNGLINDEXMASKPROC)(GLuint mask);
2209typedef void (GLAD_API_PTR *PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void * pointer);
2210typedef void (GLAD_API_PTR *PFNGLINDEXDPROC)(GLdouble c);
2211typedef void (GLAD_API_PTR *PFNGLINDEXDVPROC)(const GLdouble * c);
2212typedef void (GLAD_API_PTR *PFNGLINDEXFPROC)(GLfloat c);
2213typedef void (GLAD_API_PTR *PFNGLINDEXFVPROC)(const GLfloat * c);
2214typedef void (GLAD_API_PTR *PFNGLINDEXIPROC)(GLint c);
2215typedef void (GLAD_API_PTR *PFNGLINDEXIVPROC)(const GLint * c);
2216typedef void (GLAD_API_PTR *PFNGLINDEXSPROC)(GLshort c);
2217typedef void (GLAD_API_PTR *PFNGLINDEXSVPROC)(const GLshort * c);
2218typedef void (GLAD_API_PTR *PFNGLINDEXUBPROC)(GLubyte c);
2219typedef void (GLAD_API_PTR *PFNGLINDEXUBVPROC)(const GLubyte * c);
2220typedef void (GLAD_API_PTR *PFNGLINITNAMESPROC)(void);
2221typedef void (GLAD_API_PTR *PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void * pointer);
2222typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
2223typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
2224typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
2225typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
2226typedef GLboolean (GLAD_API_PTR *PFNGLISLISTPROC)(GLuint list);
2227typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
2228typedef GLboolean (GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id);
2229typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
2230typedef GLboolean (GLAD_API_PTR *PFNGLISSAMPLERPROC)(GLuint sampler);
2231typedef GLboolean (GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
2232typedef GLboolean (GLAD_API_PTR *PFNGLISSYNCPROC)(GLsync sync);
2233typedef GLboolean (GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
2234typedef GLboolean (GLAD_API_PTR *PFNGLISVERTEXARRAYPROC)(GLuint array);
2235typedef void (GLAD_API_PTR *PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param);
2236typedef void (GLAD_API_PTR *PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat * params);
2237typedef void (GLAD_API_PTR *PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param);
2238typedef void (GLAD_API_PTR *PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint * params);
2239typedef void (GLAD_API_PTR *PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param);
2240typedef void (GLAD_API_PTR *PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat * params);
2241typedef void (GLAD_API_PTR *PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param);
2242typedef void (GLAD_API_PTR *PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint * params);
2243typedef void (GLAD_API_PTR *PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern);
2244typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
2245typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
2246typedef void (GLAD_API_PTR *PFNGLLISTBASEPROC)(GLuint base);
2247typedef void (GLAD_API_PTR *PFNGLLOADIDENTITYPROC)(void);
2248typedef void (GLAD_API_PTR *PFNGLLOADMATRIXDPROC)(const GLdouble * m);
2249typedef void (GLAD_API_PTR *PFNGLLOADMATRIXFPROC)(const GLfloat * m);
2250typedef void (GLAD_API_PTR *PFNGLLOADNAMEPROC)(GLuint name);
2251typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble * m);
2252typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat * m);
2253typedef void (GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode);
2254typedef void (GLAD_API_PTR *PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points);
2255typedef void (GLAD_API_PTR *PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points);
2256typedef void (GLAD_API_PTR *PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points);
2257typedef void (GLAD_API_PTR *PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points);
2258typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
2259typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
2260typedef void (GLAD_API_PTR *PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2);
2261typedef void (GLAD_API_PTR *PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2);
2262typedef void (GLAD_API_PTR *PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
2263typedef void (GLAD_API_PTR *PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
2264typedef void (GLAD_API_PTR *PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param);
2265typedef void (GLAD_API_PTR *PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat * params);
2266typedef void (GLAD_API_PTR *PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param);
2267typedef void (GLAD_API_PTR *PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint * params);
2268typedef void (GLAD_API_PTR *PFNGLMATRIXMODEPROC)(GLenum mode);
2269typedef void (GLAD_API_PTR *PFNGLMULTMATRIXDPROC)(const GLdouble * m);
2270typedef void (GLAD_API_PTR *PFNGLMULTMATRIXFPROC)(const GLfloat * m);
2271typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble * m);
2272typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat * m);
2273typedef void (GLAD_API_PTR *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount);
2274typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount);
2275typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex);
2276typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s);
2277typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble * v);
2278typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s);
2279typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat * v);
2280typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s);
2281typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint * v);
2282typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s);
2283typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort * v);
2284typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t);
2285typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble * v);
2286typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t);
2287typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat * v);
2288typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t);
2289typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint * v);
2290typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t);
2291typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort * v);
2292typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
2293typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble * v);
2294typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
2295typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat * v);
2296typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r);
2297typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint * v);
2298typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
2299typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort * v);
2300typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
2301typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble * v);
2302typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
2303typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat * v);
2304typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
2305typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint * v);
2306typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
2307typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort * v);
2308typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords);
2309typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
2310typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords);
2311typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
2312typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords);
2313typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
2314typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords);
2315typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
2316typedef void (GLAD_API_PTR *PFNGLNEWLISTPROC)(GLuint list, GLenum mode);
2317typedef void (GLAD_API_PTR *PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz);
2318typedef void (GLAD_API_PTR *PFNGLNORMAL3BVPROC)(const GLbyte * v);
2319typedef void (GLAD_API_PTR *PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz);
2320typedef void (GLAD_API_PTR *PFNGLNORMAL3DVPROC)(const GLdouble * v);
2321typedef void (GLAD_API_PTR *PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz);
2322typedef void (GLAD_API_PTR *PFNGLNORMAL3FVPROC)(const GLfloat * v);
2323typedef void (GLAD_API_PTR *PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz);
2324typedef void (GLAD_API_PTR *PFNGLNORMAL3IVPROC)(const GLint * v);
2325typedef void (GLAD_API_PTR *PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz);
2326typedef void (GLAD_API_PTR *PFNGLNORMAL3SVPROC)(const GLshort * v);
2327typedef void (GLAD_API_PTR *PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords);
2328typedef void (GLAD_API_PTR *PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint * coords);
2329typedef void (GLAD_API_PTR *PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void * pointer);
2330typedef void (GLAD_API_PTR *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
2331typedef void (GLAD_API_PTR *PFNGLOBJECTPTRLABELPROC)(const void * ptr, GLsizei length, const GLchar * label);
2332typedef void (GLAD_API_PTR *PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
2333typedef void (GLAD_API_PTR *PFNGLPASSTHROUGHPROC)(GLfloat token);
2334typedef void (GLAD_API_PTR *PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat * values);
2335typedef void (GLAD_API_PTR *PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint * values);
2336typedef void (GLAD_API_PTR *PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort * values);
2337typedef void (GLAD_API_PTR *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
2338typedef void (GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
2339typedef void (GLAD_API_PTR *PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param);
2340typedef void (GLAD_API_PTR *PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param);
2341typedef void (GLAD_API_PTR *PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor);
2342typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
2343typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat * params);
2344typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
2345typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint * params);
2346typedef void (GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size);
2347typedef void (GLAD_API_PTR *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
2348typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
2349typedef void (GLAD_API_PTR *PFNGLPOLYGONSTIPPLEPROC)(const GLubyte * mask);
2350typedef void (GLAD_API_PTR *PFNGLPOPATTRIBPROC)(void);
2351typedef void (GLAD_API_PTR *PFNGLPOPCLIENTATTRIBPROC)(void);
2352typedef void (GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void);
2353typedef void (GLAD_API_PTR *PFNGLPOPMATRIXPROC)(void);
2354typedef void (GLAD_API_PTR *PFNGLPOPNAMEPROC)(void);
2355typedef void (GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
2356typedef void (GLAD_API_PTR *PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint * textures, const GLfloat * priorities);
2357typedef void (GLAD_API_PTR *PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
2358typedef void (GLAD_API_PTR *PFNGLPUSHATTRIBPROC)(GLbitfield mask);
2359typedef void (GLAD_API_PTR *PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask);
2360typedef void (GLAD_API_PTR *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
2361typedef void (GLAD_API_PTR *PFNGLPUSHMATRIXPROC)(void);
2362typedef void (GLAD_API_PTR *PFNGLPUSHNAMEPROC)(GLuint name);
2363typedef void (GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
2364typedef void (GLAD_API_PTR *PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y);
2365typedef void (GLAD_API_PTR *PFNGLRASTERPOS2DVPROC)(const GLdouble * v);
2366typedef void (GLAD_API_PTR *PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y);
2367typedef void (GLAD_API_PTR *PFNGLRASTERPOS2FVPROC)(const GLfloat * v);
2368typedef void (GLAD_API_PTR *PFNGLRASTERPOS2IPROC)(GLint x, GLint y);
2369typedef void (GLAD_API_PTR *PFNGLRASTERPOS2IVPROC)(const GLint * v);
2370typedef void (GLAD_API_PTR *PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y);
2371typedef void (GLAD_API_PTR *PFNGLRASTERPOS2SVPROC)(const GLshort * v);
2372typedef void (GLAD_API_PTR *PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
2373typedef void (GLAD_API_PTR *PFNGLRASTERPOS3DVPROC)(const GLdouble * v);
2374typedef void (GLAD_API_PTR *PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
2375typedef void (GLAD_API_PTR *PFNGLRASTERPOS3FVPROC)(const GLfloat * v);
2376typedef void (GLAD_API_PTR *PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z);
2377typedef void (GLAD_API_PTR *PFNGLRASTERPOS3IVPROC)(const GLint * v);
2378typedef void (GLAD_API_PTR *PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z);
2379typedef void (GLAD_API_PTR *PFNGLRASTERPOS3SVPROC)(const GLshort * v);
2380typedef void (GLAD_API_PTR *PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2381typedef void (GLAD_API_PTR *PFNGLRASTERPOS4DVPROC)(const GLdouble * v);
2382typedef void (GLAD_API_PTR *PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2383typedef void (GLAD_API_PTR *PFNGLRASTERPOS4FVPROC)(const GLfloat * v);
2384typedef void (GLAD_API_PTR *PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w);
2385typedef void (GLAD_API_PTR *PFNGLRASTERPOS4IVPROC)(const GLint * v);
2386typedef void (GLAD_API_PTR *PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
2387typedef void (GLAD_API_PTR *PFNGLRASTERPOS4SVPROC)(const GLshort * v);
2388typedef void (GLAD_API_PTR *PFNGLREADBUFFERPROC)(GLenum src);
2389typedef void (GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
2390typedef void (GLAD_API_PTR *PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
2391typedef void (GLAD_API_PTR *PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
2392typedef void (GLAD_API_PTR *PFNGLRECTDVPROC)(const GLdouble * v1, const GLdouble * v2);
2393typedef void (GLAD_API_PTR *PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
2394typedef void (GLAD_API_PTR *PFNGLRECTFVPROC)(const GLfloat * v1, const GLfloat * v2);
2395typedef void (GLAD_API_PTR *PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2);
2396typedef void (GLAD_API_PTR *PFNGLRECTIVPROC)(const GLint * v1, const GLint * v2);
2397typedef void (GLAD_API_PTR *PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
2398typedef void (GLAD_API_PTR *PFNGLRECTSVPROC)(const GLshort * v1, const GLshort * v2);
2399typedef GLint (GLAD_API_PTR *PFNGLRENDERMODEPROC)(GLenum mode);
2400typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
2401typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
2402typedef void (GLAD_API_PTR *PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
2403typedef void (GLAD_API_PTR *PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
2404typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
2405typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
2406typedef void (GLAD_API_PTR *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
2407typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint * param);
2408typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint * param);
2409typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
2410typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat * param);
2411typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
2412typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint * param);
2413typedef void (GLAD_API_PTR *PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z);
2414typedef void (GLAD_API_PTR *PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z);
2415typedef void (GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
2416typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
2417typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte * v);
2418typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
2419typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble * v);
2420typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
2421typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat * v);
2422typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue);
2423typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3IVPROC)(const GLint * v);
2424typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
2425typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3SVPROC)(const GLshort * v);
2426typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
2427typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte * v);
2428typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
2429typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint * v);
2430typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
2431typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLOR3USVPROC)(const GLushort * v);
2432typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color);
2433typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint * color);
2434typedef void (GLAD_API_PTR *PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
2435typedef void (GLAD_API_PTR *PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint * buffer);
2436typedef void (GLAD_API_PTR *PFNGLSHADEMODELPROC)(GLenum mode);
2437typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
2438typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
2439typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
2440typedef void (GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
2441typedef void (GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
2442typedef void (GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
2443typedef void (GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
2444typedef void (GLAD_API_PTR *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
2445typedef void (GLAD_API_PTR *PFNGLTEXCOORD1DPROC)(GLdouble s);
2446typedef void (GLAD_API_PTR *PFNGLTEXCOORD1DVPROC)(const GLdouble * v);
2447typedef void (GLAD_API_PTR *PFNGLTEXCOORD1FPROC)(GLfloat s);
2448typedef void (GLAD_API_PTR *PFNGLTEXCOORD1FVPROC)(const GLfloat * v);
2449typedef void (GLAD_API_PTR *PFNGLTEXCOORD1IPROC)(GLint s);
2450typedef void (GLAD_API_PTR *PFNGLTEXCOORD1IVPROC)(const GLint * v);
2451typedef void (GLAD_API_PTR *PFNGLTEXCOORD1SPROC)(GLshort s);
2452typedef void (GLAD_API_PTR *PFNGLTEXCOORD1SVPROC)(const GLshort * v);
2453typedef void (GLAD_API_PTR *PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t);
2454typedef void (GLAD_API_PTR *PFNGLTEXCOORD2DVPROC)(const GLdouble * v);
2455typedef void (GLAD_API_PTR *PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t);
2456typedef void (GLAD_API_PTR *PFNGLTEXCOORD2FVPROC)(const GLfloat * v);
2457typedef void (GLAD_API_PTR *PFNGLTEXCOORD2IPROC)(GLint s, GLint t);
2458typedef void (GLAD_API_PTR *PFNGLTEXCOORD2IVPROC)(const GLint * v);
2459typedef void (GLAD_API_PTR *PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t);
2460typedef void (GLAD_API_PTR *PFNGLTEXCOORD2SVPROC)(const GLshort * v);
2461typedef void (GLAD_API_PTR *PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r);
2462typedef void (GLAD_API_PTR *PFNGLTEXCOORD3DVPROC)(const GLdouble * v);
2463typedef void (GLAD_API_PTR *PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r);
2464typedef void (GLAD_API_PTR *PFNGLTEXCOORD3FVPROC)(const GLfloat * v);
2465typedef void (GLAD_API_PTR *PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r);
2466typedef void (GLAD_API_PTR *PFNGLTEXCOORD3IVPROC)(const GLint * v);
2467typedef void (GLAD_API_PTR *PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r);
2468typedef void (GLAD_API_PTR *PFNGLTEXCOORD3SVPROC)(const GLshort * v);
2469typedef void (GLAD_API_PTR *PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
2470typedef void (GLAD_API_PTR *PFNGLTEXCOORD4DVPROC)(const GLdouble * v);
2471typedef void (GLAD_API_PTR *PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
2472typedef void (GLAD_API_PTR *PFNGLTEXCOORD4FVPROC)(const GLfloat * v);
2473typedef void (GLAD_API_PTR *PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q);
2474typedef void (GLAD_API_PTR *PFNGLTEXCOORD4IVPROC)(const GLint * v);
2475typedef void (GLAD_API_PTR *PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q);
2476typedef void (GLAD_API_PTR *PFNGLTEXCOORD4SVPROC)(const GLshort * v);
2477typedef void (GLAD_API_PTR *PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords);
2478typedef void (GLAD_API_PTR *PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint * coords);
2479typedef void (GLAD_API_PTR *PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords);
2480typedef void (GLAD_API_PTR *PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint * coords);
2481typedef void (GLAD_API_PTR *PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords);
2482typedef void (GLAD_API_PTR *PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint * coords);
2483typedef void (GLAD_API_PTR *PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords);
2484typedef void (GLAD_API_PTR *PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint * coords);
2485typedef void (GLAD_API_PTR *PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
2486typedef void (GLAD_API_PTR *PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param);
2487typedef void (GLAD_API_PTR *PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
2488typedef void (GLAD_API_PTR *PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param);
2489typedef void (GLAD_API_PTR *PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint * params);
2490typedef void (GLAD_API_PTR *PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param);
2491typedef void (GLAD_API_PTR *PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble * params);
2492typedef void (GLAD_API_PTR *PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param);
2493typedef void (GLAD_API_PTR *PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat * params);
2494typedef void (GLAD_API_PTR *PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param);
2495typedef void (GLAD_API_PTR *PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint * params);
2496typedef void (GLAD_API_PTR *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
2497typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
2498typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
2499typedef void (GLAD_API_PTR *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
2500typedef void (GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
2501typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint * params);
2502typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint * params);
2503typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
2504typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
2505typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
2506typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
2507typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
2508typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
2509typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
2510typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
2511typedef void (GLAD_API_PTR *PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z);
2512typedef void (GLAD_API_PTR *PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z);
2513typedef void (GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
2514typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value);
2515typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
2516typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value);
2517typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
2518typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint * value);
2519typedef void (GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
2520typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value);
2521typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
2522typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value);
2523typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
2524typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint * value);
2525typedef void (GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2526typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value);
2527typedef void (GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
2528typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value);
2529typedef void (GLAD_API_PTR *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
2530typedef void (GLAD_API_PTR *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint * value);
2531typedef void (GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2532typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value);
2533typedef void (GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2534typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value);
2535typedef void (GLAD_API_PTR *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2536typedef void (GLAD_API_PTR *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint * value);
2537typedef void (GLAD_API_PTR *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
2538typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2539typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2540typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2541typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2542typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2543typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2544typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2545typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2546typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
2547typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPBUFFERPROC)(GLenum target);
2548typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
2549typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
2550typedef void (GLAD_API_PTR *PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y);
2551typedef void (GLAD_API_PTR *PFNGLVERTEX2DVPROC)(const GLdouble * v);
2552typedef void (GLAD_API_PTR *PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y);
2553typedef void (GLAD_API_PTR *PFNGLVERTEX2FVPROC)(const GLfloat * v);
2554typedef void (GLAD_API_PTR *PFNGLVERTEX2IPROC)(GLint x, GLint y);
2555typedef void (GLAD_API_PTR *PFNGLVERTEX2IVPROC)(const GLint * v);
2556typedef void (GLAD_API_PTR *PFNGLVERTEX2SPROC)(GLshort x, GLshort y);
2557typedef void (GLAD_API_PTR *PFNGLVERTEX2SVPROC)(const GLshort * v);
2558typedef void (GLAD_API_PTR *PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z);
2559typedef void (GLAD_API_PTR *PFNGLVERTEX3DVPROC)(const GLdouble * v);
2560typedef void (GLAD_API_PTR *PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z);
2561typedef void (GLAD_API_PTR *PFNGLVERTEX3FVPROC)(const GLfloat * v);
2562typedef void (GLAD_API_PTR *PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z);
2563typedef void (GLAD_API_PTR *PFNGLVERTEX3IVPROC)(const GLint * v);
2564typedef void (GLAD_API_PTR *PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z);
2565typedef void (GLAD_API_PTR *PFNGLVERTEX3SVPROC)(const GLshort * v);
2566typedef void (GLAD_API_PTR *PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2567typedef void (GLAD_API_PTR *PFNGLVERTEX4DVPROC)(const GLdouble * v);
2568typedef void (GLAD_API_PTR *PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2569typedef void (GLAD_API_PTR *PFNGLVERTEX4FVPROC)(const GLfloat * v);
2570typedef void (GLAD_API_PTR *PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w);
2571typedef void (GLAD_API_PTR *PFNGLVERTEX4IVPROC)(const GLint * v);
2572typedef void (GLAD_API_PTR *PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
2573typedef void (GLAD_API_PTR *PFNGLVERTEX4SVPROC)(const GLshort * v);
2574typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
2575typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble * v);
2576typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
2577typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v);
2578typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
2579typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort * v);
2580typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
2581typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble * v);
2582typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
2583typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v);
2584typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
2585typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort * v);
2586typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
2587typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble * v);
2588typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
2589typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v);
2590typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
2591typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort * v);
2592typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte * v);
2593typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint * v);
2594typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort * v);
2595typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
2596typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte * v);
2597typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint * v);
2598typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort * v);
2599typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte * v);
2600typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2601typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble * v);
2602typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2603typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v);
2604typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint * v);
2605typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
2606typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort * v);
2607typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte * v);
2608typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint * v);
2609typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort * v);
2610typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
2611typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
2612typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint * v);
2613typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
2614typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint * v);
2615typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
2616typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint * v);
2617typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
2618typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint * v);
2619typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
2620typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint * v);
2621typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
2622typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint * v);
2623typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte * v);
2624typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
2625typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint * v);
2626typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort * v);
2627typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte * v);
2628typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
2629typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint * v);
2630typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort * v);
2631typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
2632typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
2633typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
2634typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
2635typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
2636typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
2637typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
2638typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
2639typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
2640typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
2641typedef void (GLAD_API_PTR *PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value);
2642typedef void (GLAD_API_PTR *PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint * value);
2643typedef void (GLAD_API_PTR *PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value);
2644typedef void (GLAD_API_PTR *PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint * value);
2645typedef void (GLAD_API_PTR *PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value);
2646typedef void (GLAD_API_PTR *PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint * value);
2647typedef void (GLAD_API_PTR *PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
2648typedef void (GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
2649typedef void (GLAD_API_PTR *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
2650typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y);
2651typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2DVPROC)(const GLdouble * v);
2652typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y);
2653typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2FVPROC)(const GLfloat * v);
2654typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2IPROC)(GLint x, GLint y);
2655typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2IVPROC)(const GLint * v);
2656typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y);
2657typedef void (GLAD_API_PTR *PFNGLWINDOWPOS2SVPROC)(const GLshort * v);
2658typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
2659typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3DVPROC)(const GLdouble * v);
2660typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
2661typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3FVPROC)(const GLfloat * v);
2662typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z);
2663typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3IVPROC)(const GLint * v);
2664typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z);
2665typedef void (GLAD_API_PTR *PFNGLWINDOWPOS3SVPROC)(const GLshort * v);
2666
2667GLAD_API_CALL PFNGLACCUMPROC glad_glAccum;
2668#define glAccum glad_glAccum
2669GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
2670#define glActiveTexture glad_glActiveTexture
2671GLAD_API_CALL PFNGLALPHAFUNCPROC glad_glAlphaFunc;
2672#define glAlphaFunc glad_glAlphaFunc
2673GLAD_API_CALL PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident;
2674#define glAreTexturesResident glad_glAreTexturesResident
2675GLAD_API_CALL PFNGLARRAYELEMENTPROC glad_glArrayElement;
2676#define glArrayElement glad_glArrayElement
2677GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader;
2678#define glAttachShader glad_glAttachShader
2679GLAD_API_CALL PFNGLBEGINPROC glad_glBegin;
2680#define glBegin glad_glBegin
2681GLAD_API_CALL PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
2682#define glBeginConditionalRender glad_glBeginConditionalRender
2683GLAD_API_CALL PFNGLBEGINQUERYPROC glad_glBeginQuery;
2684#define glBeginQuery glad_glBeginQuery
2685GLAD_API_CALL PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
2686#define glBeginTransformFeedback glad_glBeginTransformFeedback
2687GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
2688#define glBindAttribLocation glad_glBindAttribLocation
2689GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer;
2690#define glBindBuffer glad_glBindBuffer
2691GLAD_API_CALL PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
2692#define glBindBufferBase glad_glBindBufferBase
2693GLAD_API_CALL PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
2694#define glBindBufferRange glad_glBindBufferRange
2695GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
2696#define glBindFragDataLocation glad_glBindFragDataLocation
2697GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
2698#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed
2699GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
2700#define glBindFramebuffer glad_glBindFramebuffer
2701GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
2702#define glBindRenderbuffer glad_glBindRenderbuffer
2703GLAD_API_CALL PFNGLBINDSAMPLERPROC glad_glBindSampler;
2704#define glBindSampler glad_glBindSampler
2705GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture;
2706#define glBindTexture glad_glBindTexture
2707GLAD_API_CALL PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
2708#define glBindVertexArray glad_glBindVertexArray
2709GLAD_API_CALL PFNGLBITMAPPROC glad_glBitmap;
2710#define glBitmap glad_glBitmap
2711GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor;
2712#define glBlendColor glad_glBlendColor
2713GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
2714#define glBlendEquation glad_glBlendEquation
2715GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
2716#define glBlendEquationSeparate glad_glBlendEquationSeparate
2717GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc;
2718#define glBlendFunc glad_glBlendFunc
2719GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
2720#define glBlendFuncSeparate glad_glBlendFuncSeparate
2721GLAD_API_CALL PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
2722#define glBlitFramebuffer glad_glBlitFramebuffer
2723GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData;
2724#define glBufferData glad_glBufferData
2725GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
2726#define glBufferSubData glad_glBufferSubData
2727GLAD_API_CALL PFNGLCALLLISTPROC glad_glCallList;
2728#define glCallList glad_glCallList
2729GLAD_API_CALL PFNGLCALLLISTSPROC glad_glCallLists;
2730#define glCallLists glad_glCallLists
2731GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
2732#define glCheckFramebufferStatus glad_glCheckFramebufferStatus
2733GLAD_API_CALL PFNGLCLAMPCOLORPROC glad_glClampColor;
2734#define glClampColor glad_glClampColor
2735GLAD_API_CALL PFNGLCLEARPROC glad_glClear;
2736#define glClear glad_glClear
2737GLAD_API_CALL PFNGLCLEARACCUMPROC glad_glClearAccum;
2738#define glClearAccum glad_glClearAccum
2739GLAD_API_CALL PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
2740#define glClearBufferfi glad_glClearBufferfi
2741GLAD_API_CALL PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
2742#define glClearBufferfv glad_glClearBufferfv
2743GLAD_API_CALL PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
2744#define glClearBufferiv glad_glClearBufferiv
2745GLAD_API_CALL PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
2746#define glClearBufferuiv glad_glClearBufferuiv
2747GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor;
2748#define glClearColor glad_glClearColor
2749GLAD_API_CALL PFNGLCLEARDEPTHPROC glad_glClearDepth;
2750#define glClearDepth glad_glClearDepth
2751GLAD_API_CALL PFNGLCLEARINDEXPROC glad_glClearIndex;
2752#define glClearIndex glad_glClearIndex
2753GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil;
2754#define glClearStencil glad_glClearStencil
2755GLAD_API_CALL PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture;
2756#define glClientActiveTexture glad_glClientActiveTexture
2757GLAD_API_CALL PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
2758#define glClientWaitSync glad_glClientWaitSync
2759GLAD_API_CALL PFNGLCLIPPLANEPROC glad_glClipPlane;
2760#define glClipPlane glad_glClipPlane
2761GLAD_API_CALL PFNGLCOLOR3BPROC glad_glColor3b;
2762#define glColor3b glad_glColor3b
2763GLAD_API_CALL PFNGLCOLOR3BVPROC glad_glColor3bv;
2764#define glColor3bv glad_glColor3bv
2765GLAD_API_CALL PFNGLCOLOR3DPROC glad_glColor3d;
2766#define glColor3d glad_glColor3d
2767GLAD_API_CALL PFNGLCOLOR3DVPROC glad_glColor3dv;
2768#define glColor3dv glad_glColor3dv
2769GLAD_API_CALL PFNGLCOLOR3FPROC glad_glColor3f;
2770#define glColor3f glad_glColor3f
2771GLAD_API_CALL PFNGLCOLOR3FVPROC glad_glColor3fv;
2772#define glColor3fv glad_glColor3fv
2773GLAD_API_CALL PFNGLCOLOR3IPROC glad_glColor3i;
2774#define glColor3i glad_glColor3i
2775GLAD_API_CALL PFNGLCOLOR3IVPROC glad_glColor3iv;
2776#define glColor3iv glad_glColor3iv
2777GLAD_API_CALL PFNGLCOLOR3SPROC glad_glColor3s;
2778#define glColor3s glad_glColor3s
2779GLAD_API_CALL PFNGLCOLOR3SVPROC glad_glColor3sv;
2780#define glColor3sv glad_glColor3sv
2781GLAD_API_CALL PFNGLCOLOR3UBPROC glad_glColor3ub;
2782#define glColor3ub glad_glColor3ub
2783GLAD_API_CALL PFNGLCOLOR3UBVPROC glad_glColor3ubv;
2784#define glColor3ubv glad_glColor3ubv
2785GLAD_API_CALL PFNGLCOLOR3UIPROC glad_glColor3ui;
2786#define glColor3ui glad_glColor3ui
2787GLAD_API_CALL PFNGLCOLOR3UIVPROC glad_glColor3uiv;
2788#define glColor3uiv glad_glColor3uiv
2789GLAD_API_CALL PFNGLCOLOR3USPROC glad_glColor3us;
2790#define glColor3us glad_glColor3us
2791GLAD_API_CALL PFNGLCOLOR3USVPROC glad_glColor3usv;
2792#define glColor3usv glad_glColor3usv
2793GLAD_API_CALL PFNGLCOLOR4BPROC glad_glColor4b;
2794#define glColor4b glad_glColor4b
2795GLAD_API_CALL PFNGLCOLOR4BVPROC glad_glColor4bv;
2796#define glColor4bv glad_glColor4bv
2797GLAD_API_CALL PFNGLCOLOR4DPROC glad_glColor4d;
2798#define glColor4d glad_glColor4d
2799GLAD_API_CALL PFNGLCOLOR4DVPROC glad_glColor4dv;
2800#define glColor4dv glad_glColor4dv
2801GLAD_API_CALL PFNGLCOLOR4FPROC glad_glColor4f;
2802#define glColor4f glad_glColor4f
2803GLAD_API_CALL PFNGLCOLOR4FVPROC glad_glColor4fv;
2804#define glColor4fv glad_glColor4fv
2805GLAD_API_CALL PFNGLCOLOR4IPROC glad_glColor4i;
2806#define glColor4i glad_glColor4i
2807GLAD_API_CALL PFNGLCOLOR4IVPROC glad_glColor4iv;
2808#define glColor4iv glad_glColor4iv
2809GLAD_API_CALL PFNGLCOLOR4SPROC glad_glColor4s;
2810#define glColor4s glad_glColor4s
2811GLAD_API_CALL PFNGLCOLOR4SVPROC glad_glColor4sv;
2812#define glColor4sv glad_glColor4sv
2813GLAD_API_CALL PFNGLCOLOR4UBPROC glad_glColor4ub;
2814#define glColor4ub glad_glColor4ub
2815GLAD_API_CALL PFNGLCOLOR4UBVPROC glad_glColor4ubv;
2816#define glColor4ubv glad_glColor4ubv
2817GLAD_API_CALL PFNGLCOLOR4UIPROC glad_glColor4ui;
2818#define glColor4ui glad_glColor4ui
2819GLAD_API_CALL PFNGLCOLOR4UIVPROC glad_glColor4uiv;
2820#define glColor4uiv glad_glColor4uiv
2821GLAD_API_CALL PFNGLCOLOR4USPROC glad_glColor4us;
2822#define glColor4us glad_glColor4us
2823GLAD_API_CALL PFNGLCOLOR4USVPROC glad_glColor4usv;
2824#define glColor4usv glad_glColor4usv
2825GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask;
2826#define glColorMask glad_glColorMask
2827GLAD_API_CALL PFNGLCOLORMASKIPROC glad_glColorMaski;
2828#define glColorMaski glad_glColorMaski
2829GLAD_API_CALL PFNGLCOLORMATERIALPROC glad_glColorMaterial;
2830#define glColorMaterial glad_glColorMaterial
2831GLAD_API_CALL PFNGLCOLORP3UIPROC glad_glColorP3ui;
2832#define glColorP3ui glad_glColorP3ui
2833GLAD_API_CALL PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
2834#define glColorP3uiv glad_glColorP3uiv
2835GLAD_API_CALL PFNGLCOLORP4UIPROC glad_glColorP4ui;
2836#define glColorP4ui glad_glColorP4ui
2837GLAD_API_CALL PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
2838#define glColorP4uiv glad_glColorP4uiv
2839GLAD_API_CALL PFNGLCOLORPOINTERPROC glad_glColorPointer;
2840#define glColorPointer glad_glColorPointer
2841GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader;
2842#define glCompileShader glad_glCompileShader
2843GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
2844#define glCompressedTexImage1D glad_glCompressedTexImage1D
2845GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
2846#define glCompressedTexImage2D glad_glCompressedTexImage2D
2847GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
2848#define glCompressedTexImage3D glad_glCompressedTexImage3D
2849GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
2850#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D
2851GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
2852#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
2853GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
2854#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D
2855GLAD_API_CALL PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
2856#define glCopyBufferSubData glad_glCopyBufferSubData
2857GLAD_API_CALL PFNGLCOPYPIXELSPROC glad_glCopyPixels;
2858#define glCopyPixels glad_glCopyPixels
2859GLAD_API_CALL PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
2860#define glCopyTexImage1D glad_glCopyTexImage1D
2861GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
2862#define glCopyTexImage2D glad_glCopyTexImage2D
2863GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
2864#define glCopyTexSubImage1D glad_glCopyTexSubImage1D
2865GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
2866#define glCopyTexSubImage2D glad_glCopyTexSubImage2D
2867GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
2868#define glCopyTexSubImage3D glad_glCopyTexSubImage3D
2869GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
2870#define glCreateProgram glad_glCreateProgram
2871GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader;
2872#define glCreateShader glad_glCreateShader
2873GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace;
2874#define glCullFace glad_glCullFace
2875GLAD_API_CALL PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback;
2876#define glDebugMessageCallback glad_glDebugMessageCallback
2877GLAD_API_CALL PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl;
2878#define glDebugMessageControl glad_glDebugMessageControl
2879GLAD_API_CALL PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert;
2880#define glDebugMessageInsert glad_glDebugMessageInsert
2881GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
2882#define glDeleteBuffers glad_glDeleteBuffers
2883GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
2884#define glDeleteFramebuffers glad_glDeleteFramebuffers
2885GLAD_API_CALL PFNGLDELETELISTSPROC glad_glDeleteLists;
2886#define glDeleteLists glad_glDeleteLists
2887GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
2888#define glDeleteProgram glad_glDeleteProgram
2889GLAD_API_CALL PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
2890#define glDeleteQueries glad_glDeleteQueries
2891GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
2892#define glDeleteRenderbuffers glad_glDeleteRenderbuffers
2893GLAD_API_CALL PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
2894#define glDeleteSamplers glad_glDeleteSamplers
2895GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader;
2896#define glDeleteShader glad_glDeleteShader
2897GLAD_API_CALL PFNGLDELETESYNCPROC glad_glDeleteSync;
2898#define glDeleteSync glad_glDeleteSync
2899GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
2900#define glDeleteTextures glad_glDeleteTextures
2901GLAD_API_CALL PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
2902#define glDeleteVertexArrays glad_glDeleteVertexArrays
2903GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc;
2904#define glDepthFunc glad_glDepthFunc
2905GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask;
2906#define glDepthMask glad_glDepthMask
2907GLAD_API_CALL PFNGLDEPTHRANGEPROC glad_glDepthRange;
2908#define glDepthRange glad_glDepthRange
2909GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader;
2910#define glDetachShader glad_glDetachShader
2911GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable;
2912#define glDisable glad_glDisable
2913GLAD_API_CALL PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState;
2914#define glDisableClientState glad_glDisableClientState
2915GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
2916#define glDisableVertexAttribArray glad_glDisableVertexAttribArray
2917GLAD_API_CALL PFNGLDISABLEIPROC glad_glDisablei;
2918#define glDisablei glad_glDisablei
2919GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays;
2920#define glDrawArrays glad_glDrawArrays
2921GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
2922#define glDrawArraysInstanced glad_glDrawArraysInstanced
2923GLAD_API_CALL PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
2924#define glDrawBuffer glad_glDrawBuffer
2925GLAD_API_CALL PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
2926#define glDrawBuffers glad_glDrawBuffers
2927GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements;
2928#define glDrawElements glad_glDrawElements
2929GLAD_API_CALL PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
2930#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex
2931GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
2932#define glDrawElementsInstanced glad_glDrawElementsInstanced
2933GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
2934#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex
2935GLAD_API_CALL PFNGLDRAWPIXELSPROC glad_glDrawPixels;
2936#define glDrawPixels glad_glDrawPixels
2937GLAD_API_CALL PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
2938#define glDrawRangeElements glad_glDrawRangeElements
2939GLAD_API_CALL PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
2940#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex
2941GLAD_API_CALL PFNGLEDGEFLAGPROC glad_glEdgeFlag;
2942#define glEdgeFlag glad_glEdgeFlag
2943GLAD_API_CALL PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer;
2944#define glEdgeFlagPointer glad_glEdgeFlagPointer
2945GLAD_API_CALL PFNGLEDGEFLAGVPROC glad_glEdgeFlagv;
2946#define glEdgeFlagv glad_glEdgeFlagv
2947GLAD_API_CALL PFNGLENABLEPROC glad_glEnable;
2948#define glEnable glad_glEnable
2949GLAD_API_CALL PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState;
2950#define glEnableClientState glad_glEnableClientState
2951GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
2952#define glEnableVertexAttribArray glad_glEnableVertexAttribArray
2953GLAD_API_CALL PFNGLENABLEIPROC glad_glEnablei;
2954#define glEnablei glad_glEnablei
2955GLAD_API_CALL PFNGLENDPROC glad_glEnd;
2956#define glEnd glad_glEnd
2957GLAD_API_CALL PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
2958#define glEndConditionalRender glad_glEndConditionalRender
2959GLAD_API_CALL PFNGLENDLISTPROC glad_glEndList;
2960#define glEndList glad_glEndList
2961GLAD_API_CALL PFNGLENDQUERYPROC glad_glEndQuery;
2962#define glEndQuery glad_glEndQuery
2963GLAD_API_CALL PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
2964#define glEndTransformFeedback glad_glEndTransformFeedback
2965GLAD_API_CALL PFNGLEVALCOORD1DPROC glad_glEvalCoord1d;
2966#define glEvalCoord1d glad_glEvalCoord1d
2967GLAD_API_CALL PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv;
2968#define glEvalCoord1dv glad_glEvalCoord1dv
2969GLAD_API_CALL PFNGLEVALCOORD1FPROC glad_glEvalCoord1f;
2970#define glEvalCoord1f glad_glEvalCoord1f
2971GLAD_API_CALL PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv;
2972#define glEvalCoord1fv glad_glEvalCoord1fv
2973GLAD_API_CALL PFNGLEVALCOORD2DPROC glad_glEvalCoord2d;
2974#define glEvalCoord2d glad_glEvalCoord2d
2975GLAD_API_CALL PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv;
2976#define glEvalCoord2dv glad_glEvalCoord2dv
2977GLAD_API_CALL PFNGLEVALCOORD2FPROC glad_glEvalCoord2f;
2978#define glEvalCoord2f glad_glEvalCoord2f
2979GLAD_API_CALL PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv;
2980#define glEvalCoord2fv glad_glEvalCoord2fv
2981GLAD_API_CALL PFNGLEVALMESH1PROC glad_glEvalMesh1;
2982#define glEvalMesh1 glad_glEvalMesh1
2983GLAD_API_CALL PFNGLEVALMESH2PROC glad_glEvalMesh2;
2984#define glEvalMesh2 glad_glEvalMesh2
2985GLAD_API_CALL PFNGLEVALPOINT1PROC glad_glEvalPoint1;
2986#define glEvalPoint1 glad_glEvalPoint1
2987GLAD_API_CALL PFNGLEVALPOINT2PROC glad_glEvalPoint2;
2988#define glEvalPoint2 glad_glEvalPoint2
2989GLAD_API_CALL PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer;
2990#define glFeedbackBuffer glad_glFeedbackBuffer
2991GLAD_API_CALL PFNGLFENCESYNCPROC glad_glFenceSync;
2992#define glFenceSync glad_glFenceSync
2993GLAD_API_CALL PFNGLFINISHPROC glad_glFinish;
2994#define glFinish glad_glFinish
2995GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush;
2996#define glFlush glad_glFlush
2997GLAD_API_CALL PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
2998#define glFlushMappedBufferRange glad_glFlushMappedBufferRange
2999GLAD_API_CALL PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer;
3000#define glFogCoordPointer glad_glFogCoordPointer
3001GLAD_API_CALL PFNGLFOGCOORDDPROC glad_glFogCoordd;
3002#define glFogCoordd glad_glFogCoordd
3003GLAD_API_CALL PFNGLFOGCOORDDVPROC glad_glFogCoorddv;
3004#define glFogCoorddv glad_glFogCoorddv
3005GLAD_API_CALL PFNGLFOGCOORDFPROC glad_glFogCoordf;
3006#define glFogCoordf glad_glFogCoordf
3007GLAD_API_CALL PFNGLFOGCOORDFVPROC glad_glFogCoordfv;
3008#define glFogCoordfv glad_glFogCoordfv
3009GLAD_API_CALL PFNGLFOGFPROC glad_glFogf;
3010#define glFogf glad_glFogf
3011GLAD_API_CALL PFNGLFOGFVPROC glad_glFogfv;
3012#define glFogfv glad_glFogfv
3013GLAD_API_CALL PFNGLFOGIPROC glad_glFogi;
3014#define glFogi glad_glFogi
3015GLAD_API_CALL PFNGLFOGIVPROC glad_glFogiv;
3016#define glFogiv glad_glFogiv
3017GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
3018#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
3019GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
3020#define glFramebufferTexture glad_glFramebufferTexture
3021GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
3022#define glFramebufferTexture1D glad_glFramebufferTexture1D
3023GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
3024#define glFramebufferTexture2D glad_glFramebufferTexture2D
3025GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
3026#define glFramebufferTexture3D glad_glFramebufferTexture3D
3027GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
3028#define glFramebufferTextureLayer glad_glFramebufferTextureLayer
3029GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace;
3030#define glFrontFace glad_glFrontFace
3031GLAD_API_CALL PFNGLFRUSTUMPROC glad_glFrustum;
3032#define glFrustum glad_glFrustum
3033GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers;
3034#define glGenBuffers glad_glGenBuffers
3035GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
3036#define glGenFramebuffers glad_glGenFramebuffers
3037GLAD_API_CALL PFNGLGENLISTSPROC glad_glGenLists;
3038#define glGenLists glad_glGenLists
3039GLAD_API_CALL PFNGLGENQUERIESPROC glad_glGenQueries;
3040#define glGenQueries glad_glGenQueries
3041GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
3042#define glGenRenderbuffers glad_glGenRenderbuffers
3043GLAD_API_CALL PFNGLGENSAMPLERSPROC glad_glGenSamplers;
3044#define glGenSamplers glad_glGenSamplers
3045GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures;
3046#define glGenTextures glad_glGenTextures
3047GLAD_API_CALL PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
3048#define glGenVertexArrays glad_glGenVertexArrays
3049GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
3050#define glGenerateMipmap glad_glGenerateMipmap
3051GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
3052#define glGetActiveAttrib glad_glGetActiveAttrib
3053GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
3054#define glGetActiveUniform glad_glGetActiveUniform
3055GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
3056#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName
3057GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
3058#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv
3059GLAD_API_CALL PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
3060#define glGetActiveUniformName glad_glGetActiveUniformName
3061GLAD_API_CALL PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
3062#define glGetActiveUniformsiv glad_glGetActiveUniformsiv
3063GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
3064#define glGetAttachedShaders glad_glGetAttachedShaders
3065GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
3066#define glGetAttribLocation glad_glGetAttribLocation
3067GLAD_API_CALL PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
3068#define glGetBooleani_v glad_glGetBooleani_v
3069GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
3070#define glGetBooleanv glad_glGetBooleanv
3071GLAD_API_CALL PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
3072#define glGetBufferParameteri64v glad_glGetBufferParameteri64v
3073GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
3074#define glGetBufferParameteriv glad_glGetBufferParameteriv
3075GLAD_API_CALL PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
3076#define glGetBufferPointerv glad_glGetBufferPointerv
3077GLAD_API_CALL PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
3078#define glGetBufferSubData glad_glGetBufferSubData
3079GLAD_API_CALL PFNGLGETCLIPPLANEPROC glad_glGetClipPlane;
3080#define glGetClipPlane glad_glGetClipPlane
3081GLAD_API_CALL PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
3082#define glGetCompressedTexImage glad_glGetCompressedTexImage
3083GLAD_API_CALL PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog;
3084#define glGetDebugMessageLog glad_glGetDebugMessageLog
3085GLAD_API_CALL PFNGLGETDOUBLEVPROC glad_glGetDoublev;
3086#define glGetDoublev glad_glGetDoublev
3087GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError;
3088#define glGetError glad_glGetError
3089GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv;
3090#define glGetFloatv glad_glGetFloatv
3091GLAD_API_CALL PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
3092#define glGetFragDataIndex glad_glGetFragDataIndex
3093GLAD_API_CALL PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
3094#define glGetFragDataLocation glad_glGetFragDataLocation
3095GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
3096#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
3097GLAD_API_CALL PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB;
3098#define glGetGraphicsResetStatusARB glad_glGetGraphicsResetStatusARB
3099GLAD_API_CALL PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
3100#define glGetInteger64i_v glad_glGetInteger64i_v
3101GLAD_API_CALL PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
3102#define glGetInteger64v glad_glGetInteger64v
3103GLAD_API_CALL PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
3104#define glGetIntegeri_v glad_glGetIntegeri_v
3105GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv;
3106#define glGetIntegerv glad_glGetIntegerv
3107GLAD_API_CALL PFNGLGETLIGHTFVPROC glad_glGetLightfv;
3108#define glGetLightfv glad_glGetLightfv
3109GLAD_API_CALL PFNGLGETLIGHTIVPROC glad_glGetLightiv;
3110#define glGetLightiv glad_glGetLightiv
3111GLAD_API_CALL PFNGLGETMAPDVPROC glad_glGetMapdv;
3112#define glGetMapdv glad_glGetMapdv
3113GLAD_API_CALL PFNGLGETMAPFVPROC glad_glGetMapfv;
3114#define glGetMapfv glad_glGetMapfv
3115GLAD_API_CALL PFNGLGETMAPIVPROC glad_glGetMapiv;
3116#define glGetMapiv glad_glGetMapiv
3117GLAD_API_CALL PFNGLGETMATERIALFVPROC glad_glGetMaterialfv;
3118#define glGetMaterialfv glad_glGetMaterialfv
3119GLAD_API_CALL PFNGLGETMATERIALIVPROC glad_glGetMaterialiv;
3120#define glGetMaterialiv glad_glGetMaterialiv
3121GLAD_API_CALL PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
3122#define glGetMultisamplefv glad_glGetMultisamplefv
3123GLAD_API_CALL PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel;
3124#define glGetObjectLabel glad_glGetObjectLabel
3125GLAD_API_CALL PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel;
3126#define glGetObjectPtrLabel glad_glGetObjectPtrLabel
3127GLAD_API_CALL PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv;
3128#define glGetPixelMapfv glad_glGetPixelMapfv
3129GLAD_API_CALL PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv;
3130#define glGetPixelMapuiv glad_glGetPixelMapuiv
3131GLAD_API_CALL PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv;
3132#define glGetPixelMapusv glad_glGetPixelMapusv
3133GLAD_API_CALL PFNGLGETPOINTERVPROC glad_glGetPointerv;
3134#define glGetPointerv glad_glGetPointerv
3135GLAD_API_CALL PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple;
3136#define glGetPolygonStipple glad_glGetPolygonStipple
3137GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
3138#define glGetProgramInfoLog glad_glGetProgramInfoLog
3139GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
3140#define glGetProgramiv glad_glGetProgramiv
3141GLAD_API_CALL PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
3142#define glGetQueryObjecti64v glad_glGetQueryObjecti64v
3143GLAD_API_CALL PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
3144#define glGetQueryObjectiv glad_glGetQueryObjectiv
3145GLAD_API_CALL PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
3146#define glGetQueryObjectui64v glad_glGetQueryObjectui64v
3147GLAD_API_CALL PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
3148#define glGetQueryObjectuiv glad_glGetQueryObjectuiv
3149GLAD_API_CALL PFNGLGETQUERYIVPROC glad_glGetQueryiv;
3150#define glGetQueryiv glad_glGetQueryiv
3151GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
3152#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
3153GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
3154#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv
3155GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
3156#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv
3157GLAD_API_CALL PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
3158#define glGetSamplerParameterfv glad_glGetSamplerParameterfv
3159GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
3160#define glGetSamplerParameteriv glad_glGetSamplerParameteriv
3161GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
3162#define glGetShaderInfoLog glad_glGetShaderInfoLog
3163GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
3164#define glGetShaderSource glad_glGetShaderSource
3165GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv;
3166#define glGetShaderiv glad_glGetShaderiv
3167GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString;
3168#define glGetString glad_glGetString
3169GLAD_API_CALL PFNGLGETSTRINGIPROC glad_glGetStringi;
3170#define glGetStringi glad_glGetStringi
3171GLAD_API_CALL PFNGLGETSYNCIVPROC glad_glGetSynciv;
3172#define glGetSynciv glad_glGetSynciv
3173GLAD_API_CALL PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv;
3174#define glGetTexEnvfv glad_glGetTexEnvfv
3175GLAD_API_CALL PFNGLGETTEXENVIVPROC glad_glGetTexEnviv;
3176#define glGetTexEnviv glad_glGetTexEnviv
3177GLAD_API_CALL PFNGLGETTEXGENDVPROC glad_glGetTexGendv;
3178#define glGetTexGendv glad_glGetTexGendv
3179GLAD_API_CALL PFNGLGETTEXGENFVPROC glad_glGetTexGenfv;
3180#define glGetTexGenfv glad_glGetTexGenfv
3181GLAD_API_CALL PFNGLGETTEXGENIVPROC glad_glGetTexGeniv;
3182#define glGetTexGeniv glad_glGetTexGeniv
3183GLAD_API_CALL PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
3184#define glGetTexImage glad_glGetTexImage
3185GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
3186#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv
3187GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
3188#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv
3189GLAD_API_CALL PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
3190#define glGetTexParameterIiv glad_glGetTexParameterIiv
3191GLAD_API_CALL PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
3192#define glGetTexParameterIuiv glad_glGetTexParameterIuiv
3193GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
3194#define glGetTexParameterfv glad_glGetTexParameterfv
3195GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
3196#define glGetTexParameteriv glad_glGetTexParameteriv
3197GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
3198#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying
3199GLAD_API_CALL PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
3200#define glGetUniformBlockIndex glad_glGetUniformBlockIndex
3201GLAD_API_CALL PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
3202#define glGetUniformIndices glad_glGetUniformIndices
3203GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
3204#define glGetUniformLocation glad_glGetUniformLocation
3205GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
3206#define glGetUniformfv glad_glGetUniformfv
3207GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
3208#define glGetUniformiv glad_glGetUniformiv
3209GLAD_API_CALL PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
3210#define glGetUniformuiv glad_glGetUniformuiv
3211GLAD_API_CALL PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
3212#define glGetVertexAttribIiv glad_glGetVertexAttribIiv
3213GLAD_API_CALL PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
3214#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv
3215GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
3216#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
3217GLAD_API_CALL PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
3218#define glGetVertexAttribdv glad_glGetVertexAttribdv
3219GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
3220#define glGetVertexAttribfv glad_glGetVertexAttribfv
3221GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
3222#define glGetVertexAttribiv glad_glGetVertexAttribiv
3223GLAD_API_CALL PFNGLGETNCOLORTABLEARBPROC glad_glGetnColorTableARB;
3224#define glGetnColorTableARB glad_glGetnColorTableARB
3225GLAD_API_CALL PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC glad_glGetnCompressedTexImageARB;
3226#define glGetnCompressedTexImageARB glad_glGetnCompressedTexImageARB
3227GLAD_API_CALL PFNGLGETNCONVOLUTIONFILTERARBPROC glad_glGetnConvolutionFilterARB;
3228#define glGetnConvolutionFilterARB glad_glGetnConvolutionFilterARB
3229GLAD_API_CALL PFNGLGETNHISTOGRAMARBPROC glad_glGetnHistogramARB;
3230#define glGetnHistogramARB glad_glGetnHistogramARB
3231GLAD_API_CALL PFNGLGETNMAPDVARBPROC glad_glGetnMapdvARB;
3232#define glGetnMapdvARB glad_glGetnMapdvARB
3233GLAD_API_CALL PFNGLGETNMAPFVARBPROC glad_glGetnMapfvARB;
3234#define glGetnMapfvARB glad_glGetnMapfvARB
3235GLAD_API_CALL PFNGLGETNMAPIVARBPROC glad_glGetnMapivARB;
3236#define glGetnMapivARB glad_glGetnMapivARB
3237GLAD_API_CALL PFNGLGETNMINMAXARBPROC glad_glGetnMinmaxARB;
3238#define glGetnMinmaxARB glad_glGetnMinmaxARB
3239GLAD_API_CALL PFNGLGETNPIXELMAPFVARBPROC glad_glGetnPixelMapfvARB;
3240#define glGetnPixelMapfvARB glad_glGetnPixelMapfvARB
3241GLAD_API_CALL PFNGLGETNPIXELMAPUIVARBPROC glad_glGetnPixelMapuivARB;
3242#define glGetnPixelMapuivARB glad_glGetnPixelMapuivARB
3243GLAD_API_CALL PFNGLGETNPIXELMAPUSVARBPROC glad_glGetnPixelMapusvARB;
3244#define glGetnPixelMapusvARB glad_glGetnPixelMapusvARB
3245GLAD_API_CALL PFNGLGETNPOLYGONSTIPPLEARBPROC glad_glGetnPolygonStippleARB;
3246#define glGetnPolygonStippleARB glad_glGetnPolygonStippleARB
3247GLAD_API_CALL PFNGLGETNSEPARABLEFILTERARBPROC glad_glGetnSeparableFilterARB;
3248#define glGetnSeparableFilterARB glad_glGetnSeparableFilterARB
3249GLAD_API_CALL PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB;
3250#define glGetnTexImageARB glad_glGetnTexImageARB
3251GLAD_API_CALL PFNGLGETNUNIFORMDVARBPROC glad_glGetnUniformdvARB;
3252#define glGetnUniformdvARB glad_glGetnUniformdvARB
3253GLAD_API_CALL PFNGLGETNUNIFORMFVARBPROC glad_glGetnUniformfvARB;
3254#define glGetnUniformfvARB glad_glGetnUniformfvARB
3255GLAD_API_CALL PFNGLGETNUNIFORMIVARBPROC glad_glGetnUniformivARB;
3256#define glGetnUniformivARB glad_glGetnUniformivARB
3257GLAD_API_CALL PFNGLGETNUNIFORMUIVARBPROC glad_glGetnUniformuivARB;
3258#define glGetnUniformuivARB glad_glGetnUniformuivARB
3259GLAD_API_CALL PFNGLHINTPROC glad_glHint;
3260#define glHint glad_glHint
3261GLAD_API_CALL PFNGLINDEXMASKPROC glad_glIndexMask;
3262#define glIndexMask glad_glIndexMask
3263GLAD_API_CALL PFNGLINDEXPOINTERPROC glad_glIndexPointer;
3264#define glIndexPointer glad_glIndexPointer
3265GLAD_API_CALL PFNGLINDEXDPROC glad_glIndexd;
3266#define glIndexd glad_glIndexd
3267GLAD_API_CALL PFNGLINDEXDVPROC glad_glIndexdv;
3268#define glIndexdv glad_glIndexdv
3269GLAD_API_CALL PFNGLINDEXFPROC glad_glIndexf;
3270#define glIndexf glad_glIndexf
3271GLAD_API_CALL PFNGLINDEXFVPROC glad_glIndexfv;
3272#define glIndexfv glad_glIndexfv
3273GLAD_API_CALL PFNGLINDEXIPROC glad_glIndexi;
3274#define glIndexi glad_glIndexi
3275GLAD_API_CALL PFNGLINDEXIVPROC glad_glIndexiv;
3276#define glIndexiv glad_glIndexiv
3277GLAD_API_CALL PFNGLINDEXSPROC glad_glIndexs;
3278#define glIndexs glad_glIndexs
3279GLAD_API_CALL PFNGLINDEXSVPROC glad_glIndexsv;
3280#define glIndexsv glad_glIndexsv
3281GLAD_API_CALL PFNGLINDEXUBPROC glad_glIndexub;
3282#define glIndexub glad_glIndexub
3283GLAD_API_CALL PFNGLINDEXUBVPROC glad_glIndexubv;
3284#define glIndexubv glad_glIndexubv
3285GLAD_API_CALL PFNGLINITNAMESPROC glad_glInitNames;
3286#define glInitNames glad_glInitNames
3287GLAD_API_CALL PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays;
3288#define glInterleavedArrays glad_glInterleavedArrays
3289GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer;
3290#define glIsBuffer glad_glIsBuffer
3291GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled;
3292#define glIsEnabled glad_glIsEnabled
3293GLAD_API_CALL PFNGLISENABLEDIPROC glad_glIsEnabledi;
3294#define glIsEnabledi glad_glIsEnabledi
3295GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
3296#define glIsFramebuffer glad_glIsFramebuffer
3297GLAD_API_CALL PFNGLISLISTPROC glad_glIsList;
3298#define glIsList glad_glIsList
3299GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram;
3300#define glIsProgram glad_glIsProgram
3301GLAD_API_CALL PFNGLISQUERYPROC glad_glIsQuery;
3302#define glIsQuery glad_glIsQuery
3303GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
3304#define glIsRenderbuffer glad_glIsRenderbuffer
3305GLAD_API_CALL PFNGLISSAMPLERPROC glad_glIsSampler;
3306#define glIsSampler glad_glIsSampler
3307GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader;
3308#define glIsShader glad_glIsShader
3309GLAD_API_CALL PFNGLISSYNCPROC glad_glIsSync;
3310#define glIsSync glad_glIsSync
3311GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture;
3312#define glIsTexture glad_glIsTexture
3313GLAD_API_CALL PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
3314#define glIsVertexArray glad_glIsVertexArray
3315GLAD_API_CALL PFNGLLIGHTMODELFPROC glad_glLightModelf;
3316#define glLightModelf glad_glLightModelf
3317GLAD_API_CALL PFNGLLIGHTMODELFVPROC glad_glLightModelfv;
3318#define glLightModelfv glad_glLightModelfv
3319GLAD_API_CALL PFNGLLIGHTMODELIPROC glad_glLightModeli;
3320#define glLightModeli glad_glLightModeli
3321GLAD_API_CALL PFNGLLIGHTMODELIVPROC glad_glLightModeliv;
3322#define glLightModeliv glad_glLightModeliv
3323GLAD_API_CALL PFNGLLIGHTFPROC glad_glLightf;
3324#define glLightf glad_glLightf
3325GLAD_API_CALL PFNGLLIGHTFVPROC glad_glLightfv;
3326#define glLightfv glad_glLightfv
3327GLAD_API_CALL PFNGLLIGHTIPROC glad_glLighti;
3328#define glLighti glad_glLighti
3329GLAD_API_CALL PFNGLLIGHTIVPROC glad_glLightiv;
3330#define glLightiv glad_glLightiv
3331GLAD_API_CALL PFNGLLINESTIPPLEPROC glad_glLineStipple;
3332#define glLineStipple glad_glLineStipple
3333GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth;
3334#define glLineWidth glad_glLineWidth
3335GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram;
3336#define glLinkProgram glad_glLinkProgram
3337GLAD_API_CALL PFNGLLISTBASEPROC glad_glListBase;
3338#define glListBase glad_glListBase
3339GLAD_API_CALL PFNGLLOADIDENTITYPROC glad_glLoadIdentity;
3340#define glLoadIdentity glad_glLoadIdentity
3341GLAD_API_CALL PFNGLLOADMATRIXDPROC glad_glLoadMatrixd;
3342#define glLoadMatrixd glad_glLoadMatrixd
3343GLAD_API_CALL PFNGLLOADMATRIXFPROC glad_glLoadMatrixf;
3344#define glLoadMatrixf glad_glLoadMatrixf
3345GLAD_API_CALL PFNGLLOADNAMEPROC glad_glLoadName;
3346#define glLoadName glad_glLoadName
3347GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd;
3348#define glLoadTransposeMatrixd glad_glLoadTransposeMatrixd
3349GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf;
3350#define glLoadTransposeMatrixf glad_glLoadTransposeMatrixf
3351GLAD_API_CALL PFNGLLOGICOPPROC glad_glLogicOp;
3352#define glLogicOp glad_glLogicOp
3353GLAD_API_CALL PFNGLMAP1DPROC glad_glMap1d;
3354#define glMap1d glad_glMap1d
3355GLAD_API_CALL PFNGLMAP1FPROC glad_glMap1f;
3356#define glMap1f glad_glMap1f
3357GLAD_API_CALL PFNGLMAP2DPROC glad_glMap2d;
3358#define glMap2d glad_glMap2d
3359GLAD_API_CALL PFNGLMAP2FPROC glad_glMap2f;
3360#define glMap2f glad_glMap2f
3361GLAD_API_CALL PFNGLMAPBUFFERPROC glad_glMapBuffer;
3362#define glMapBuffer glad_glMapBuffer
3363GLAD_API_CALL PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
3364#define glMapBufferRange glad_glMapBufferRange
3365GLAD_API_CALL PFNGLMAPGRID1DPROC glad_glMapGrid1d;
3366#define glMapGrid1d glad_glMapGrid1d
3367GLAD_API_CALL PFNGLMAPGRID1FPROC glad_glMapGrid1f;
3368#define glMapGrid1f glad_glMapGrid1f
3369GLAD_API_CALL PFNGLMAPGRID2DPROC glad_glMapGrid2d;
3370#define glMapGrid2d glad_glMapGrid2d
3371GLAD_API_CALL PFNGLMAPGRID2FPROC glad_glMapGrid2f;
3372#define glMapGrid2f glad_glMapGrid2f
3373GLAD_API_CALL PFNGLMATERIALFPROC glad_glMaterialf;
3374#define glMaterialf glad_glMaterialf
3375GLAD_API_CALL PFNGLMATERIALFVPROC glad_glMaterialfv;
3376#define glMaterialfv glad_glMaterialfv
3377GLAD_API_CALL PFNGLMATERIALIPROC glad_glMateriali;
3378#define glMateriali glad_glMateriali
3379GLAD_API_CALL PFNGLMATERIALIVPROC glad_glMaterialiv;
3380#define glMaterialiv glad_glMaterialiv
3381GLAD_API_CALL PFNGLMATRIXMODEPROC glad_glMatrixMode;
3382#define glMatrixMode glad_glMatrixMode
3383GLAD_API_CALL PFNGLMULTMATRIXDPROC glad_glMultMatrixd;
3384#define glMultMatrixd glad_glMultMatrixd
3385GLAD_API_CALL PFNGLMULTMATRIXFPROC glad_glMultMatrixf;
3386#define glMultMatrixf glad_glMultMatrixf
3387GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd;
3388#define glMultTransposeMatrixd glad_glMultTransposeMatrixd
3389GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf;
3390#define glMultTransposeMatrixf glad_glMultTransposeMatrixf
3391GLAD_API_CALL PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
3392#define glMultiDrawArrays glad_glMultiDrawArrays
3393GLAD_API_CALL PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
3394#define glMultiDrawElements glad_glMultiDrawElements
3395GLAD_API_CALL PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
3396#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex
3397GLAD_API_CALL PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d;
3398#define glMultiTexCoord1d glad_glMultiTexCoord1d
3399GLAD_API_CALL PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv;
3400#define glMultiTexCoord1dv glad_glMultiTexCoord1dv
3401GLAD_API_CALL PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f;
3402#define glMultiTexCoord1f glad_glMultiTexCoord1f
3403GLAD_API_CALL PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv;
3404#define glMultiTexCoord1fv glad_glMultiTexCoord1fv
3405GLAD_API_CALL PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i;
3406#define glMultiTexCoord1i glad_glMultiTexCoord1i
3407GLAD_API_CALL PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv;
3408#define glMultiTexCoord1iv glad_glMultiTexCoord1iv
3409GLAD_API_CALL PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s;
3410#define glMultiTexCoord1s glad_glMultiTexCoord1s
3411GLAD_API_CALL PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv;
3412#define glMultiTexCoord1sv glad_glMultiTexCoord1sv
3413GLAD_API_CALL PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d;
3414#define glMultiTexCoord2d glad_glMultiTexCoord2d
3415GLAD_API_CALL PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv;
3416#define glMultiTexCoord2dv glad_glMultiTexCoord2dv
3417GLAD_API_CALL PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f;
3418#define glMultiTexCoord2f glad_glMultiTexCoord2f
3419GLAD_API_CALL PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv;
3420#define glMultiTexCoord2fv glad_glMultiTexCoord2fv
3421GLAD_API_CALL PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i;
3422#define glMultiTexCoord2i glad_glMultiTexCoord2i
3423GLAD_API_CALL PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv;
3424#define glMultiTexCoord2iv glad_glMultiTexCoord2iv
3425GLAD_API_CALL PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s;
3426#define glMultiTexCoord2s glad_glMultiTexCoord2s
3427GLAD_API_CALL PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv;
3428#define glMultiTexCoord2sv glad_glMultiTexCoord2sv
3429GLAD_API_CALL PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d;
3430#define glMultiTexCoord3d glad_glMultiTexCoord3d
3431GLAD_API_CALL PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv;
3432#define glMultiTexCoord3dv glad_glMultiTexCoord3dv
3433GLAD_API_CALL PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f;
3434#define glMultiTexCoord3f glad_glMultiTexCoord3f
3435GLAD_API_CALL PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv;
3436#define glMultiTexCoord3fv glad_glMultiTexCoord3fv
3437GLAD_API_CALL PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i;
3438#define glMultiTexCoord3i glad_glMultiTexCoord3i
3439GLAD_API_CALL PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv;
3440#define glMultiTexCoord3iv glad_glMultiTexCoord3iv
3441GLAD_API_CALL PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s;
3442#define glMultiTexCoord3s glad_glMultiTexCoord3s
3443GLAD_API_CALL PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv;
3444#define glMultiTexCoord3sv glad_glMultiTexCoord3sv
3445GLAD_API_CALL PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d;
3446#define glMultiTexCoord4d glad_glMultiTexCoord4d
3447GLAD_API_CALL PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv;
3448#define glMultiTexCoord4dv glad_glMultiTexCoord4dv
3449GLAD_API_CALL PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f;
3450#define glMultiTexCoord4f glad_glMultiTexCoord4f
3451GLAD_API_CALL PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv;
3452#define glMultiTexCoord4fv glad_glMultiTexCoord4fv
3453GLAD_API_CALL PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i;
3454#define glMultiTexCoord4i glad_glMultiTexCoord4i
3455GLAD_API_CALL PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv;
3456#define glMultiTexCoord4iv glad_glMultiTexCoord4iv
3457GLAD_API_CALL PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s;
3458#define glMultiTexCoord4s glad_glMultiTexCoord4s
3459GLAD_API_CALL PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv;
3460#define glMultiTexCoord4sv glad_glMultiTexCoord4sv
3461GLAD_API_CALL PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
3462#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui
3463GLAD_API_CALL PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
3464#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv
3465GLAD_API_CALL PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
3466#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui
3467GLAD_API_CALL PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
3468#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv
3469GLAD_API_CALL PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
3470#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui
3471GLAD_API_CALL PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
3472#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv
3473GLAD_API_CALL PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
3474#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui
3475GLAD_API_CALL PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
3476#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv
3477GLAD_API_CALL PFNGLNEWLISTPROC glad_glNewList;
3478#define glNewList glad_glNewList
3479GLAD_API_CALL PFNGLNORMAL3BPROC glad_glNormal3b;
3480#define glNormal3b glad_glNormal3b
3481GLAD_API_CALL PFNGLNORMAL3BVPROC glad_glNormal3bv;
3482#define glNormal3bv glad_glNormal3bv
3483GLAD_API_CALL PFNGLNORMAL3DPROC glad_glNormal3d;
3484#define glNormal3d glad_glNormal3d
3485GLAD_API_CALL PFNGLNORMAL3DVPROC glad_glNormal3dv;
3486#define glNormal3dv glad_glNormal3dv
3487GLAD_API_CALL PFNGLNORMAL3FPROC glad_glNormal3f;
3488#define glNormal3f glad_glNormal3f
3489GLAD_API_CALL PFNGLNORMAL3FVPROC glad_glNormal3fv;
3490#define glNormal3fv glad_glNormal3fv
3491GLAD_API_CALL PFNGLNORMAL3IPROC glad_glNormal3i;
3492#define glNormal3i glad_glNormal3i
3493GLAD_API_CALL PFNGLNORMAL3IVPROC glad_glNormal3iv;
3494#define glNormal3iv glad_glNormal3iv
3495GLAD_API_CALL PFNGLNORMAL3SPROC glad_glNormal3s;
3496#define glNormal3s glad_glNormal3s
3497GLAD_API_CALL PFNGLNORMAL3SVPROC glad_glNormal3sv;
3498#define glNormal3sv glad_glNormal3sv
3499GLAD_API_CALL PFNGLNORMALP3UIPROC glad_glNormalP3ui;
3500#define glNormalP3ui glad_glNormalP3ui
3501GLAD_API_CALL PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
3502#define glNormalP3uiv glad_glNormalP3uiv
3503GLAD_API_CALL PFNGLNORMALPOINTERPROC glad_glNormalPointer;
3504#define glNormalPointer glad_glNormalPointer
3505GLAD_API_CALL PFNGLOBJECTLABELPROC glad_glObjectLabel;
3506#define glObjectLabel glad_glObjectLabel
3507GLAD_API_CALL PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel;
3508#define glObjectPtrLabel glad_glObjectPtrLabel
3509GLAD_API_CALL PFNGLORTHOPROC glad_glOrtho;
3510#define glOrtho glad_glOrtho
3511GLAD_API_CALL PFNGLPASSTHROUGHPROC glad_glPassThrough;
3512#define glPassThrough glad_glPassThrough
3513GLAD_API_CALL PFNGLPIXELMAPFVPROC glad_glPixelMapfv;
3514#define glPixelMapfv glad_glPixelMapfv
3515GLAD_API_CALL PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv;
3516#define glPixelMapuiv glad_glPixelMapuiv
3517GLAD_API_CALL PFNGLPIXELMAPUSVPROC glad_glPixelMapusv;
3518#define glPixelMapusv glad_glPixelMapusv
3519GLAD_API_CALL PFNGLPIXELSTOREFPROC glad_glPixelStoref;
3520#define glPixelStoref glad_glPixelStoref
3521GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei;
3522#define glPixelStorei glad_glPixelStorei
3523GLAD_API_CALL PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf;
3524#define glPixelTransferf glad_glPixelTransferf
3525GLAD_API_CALL PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi;
3526#define glPixelTransferi glad_glPixelTransferi
3527GLAD_API_CALL PFNGLPIXELZOOMPROC glad_glPixelZoom;
3528#define glPixelZoom glad_glPixelZoom
3529GLAD_API_CALL PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
3530#define glPointParameterf glad_glPointParameterf
3531GLAD_API_CALL PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
3532#define glPointParameterfv glad_glPointParameterfv
3533GLAD_API_CALL PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
3534#define glPointParameteri glad_glPointParameteri
3535GLAD_API_CALL PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
3536#define glPointParameteriv glad_glPointParameteriv
3537GLAD_API_CALL PFNGLPOINTSIZEPROC glad_glPointSize;
3538#define glPointSize glad_glPointSize
3539GLAD_API_CALL PFNGLPOLYGONMODEPROC glad_glPolygonMode;
3540#define glPolygonMode glad_glPolygonMode
3541GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
3542#define glPolygonOffset glad_glPolygonOffset
3543GLAD_API_CALL PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple;
3544#define glPolygonStipple glad_glPolygonStipple
3545GLAD_API_CALL PFNGLPOPATTRIBPROC glad_glPopAttrib;
3546#define glPopAttrib glad_glPopAttrib
3547GLAD_API_CALL PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib;
3548#define glPopClientAttrib glad_glPopClientAttrib
3549GLAD_API_CALL PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup;
3550#define glPopDebugGroup glad_glPopDebugGroup
3551GLAD_API_CALL PFNGLPOPMATRIXPROC glad_glPopMatrix;
3552#define glPopMatrix glad_glPopMatrix
3553GLAD_API_CALL PFNGLPOPNAMEPROC glad_glPopName;
3554#define glPopName glad_glPopName
3555GLAD_API_CALL PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
3556#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex
3557GLAD_API_CALL PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures;
3558#define glPrioritizeTextures glad_glPrioritizeTextures
3559GLAD_API_CALL PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
3560#define glProvokingVertex glad_glProvokingVertex
3561GLAD_API_CALL PFNGLPUSHATTRIBPROC glad_glPushAttrib;
3562#define glPushAttrib glad_glPushAttrib
3563GLAD_API_CALL PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib;
3564#define glPushClientAttrib glad_glPushClientAttrib
3565GLAD_API_CALL PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup;
3566#define glPushDebugGroup glad_glPushDebugGroup
3567GLAD_API_CALL PFNGLPUSHMATRIXPROC glad_glPushMatrix;
3568#define glPushMatrix glad_glPushMatrix
3569GLAD_API_CALL PFNGLPUSHNAMEPROC glad_glPushName;
3570#define glPushName glad_glPushName
3571GLAD_API_CALL PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
3572#define glQueryCounter glad_glQueryCounter
3573GLAD_API_CALL PFNGLRASTERPOS2DPROC glad_glRasterPos2d;
3574#define glRasterPos2d glad_glRasterPos2d
3575GLAD_API_CALL PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv;
3576#define glRasterPos2dv glad_glRasterPos2dv
3577GLAD_API_CALL PFNGLRASTERPOS2FPROC glad_glRasterPos2f;
3578#define glRasterPos2f glad_glRasterPos2f
3579GLAD_API_CALL PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv;
3580#define glRasterPos2fv glad_glRasterPos2fv
3581GLAD_API_CALL PFNGLRASTERPOS2IPROC glad_glRasterPos2i;
3582#define glRasterPos2i glad_glRasterPos2i
3583GLAD_API_CALL PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv;
3584#define glRasterPos2iv glad_glRasterPos2iv
3585GLAD_API_CALL PFNGLRASTERPOS2SPROC glad_glRasterPos2s;
3586#define glRasterPos2s glad_glRasterPos2s
3587GLAD_API_CALL PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv;
3588#define glRasterPos2sv glad_glRasterPos2sv
3589GLAD_API_CALL PFNGLRASTERPOS3DPROC glad_glRasterPos3d;
3590#define glRasterPos3d glad_glRasterPos3d
3591GLAD_API_CALL PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv;
3592#define glRasterPos3dv glad_glRasterPos3dv
3593GLAD_API_CALL PFNGLRASTERPOS3FPROC glad_glRasterPos3f;
3594#define glRasterPos3f glad_glRasterPos3f
3595GLAD_API_CALL PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv;
3596#define glRasterPos3fv glad_glRasterPos3fv
3597GLAD_API_CALL PFNGLRASTERPOS3IPROC glad_glRasterPos3i;
3598#define glRasterPos3i glad_glRasterPos3i
3599GLAD_API_CALL PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv;
3600#define glRasterPos3iv glad_glRasterPos3iv
3601GLAD_API_CALL PFNGLRASTERPOS3SPROC glad_glRasterPos3s;
3602#define glRasterPos3s glad_glRasterPos3s
3603GLAD_API_CALL PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv;
3604#define glRasterPos3sv glad_glRasterPos3sv
3605GLAD_API_CALL PFNGLRASTERPOS4DPROC glad_glRasterPos4d;
3606#define glRasterPos4d glad_glRasterPos4d
3607GLAD_API_CALL PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv;
3608#define glRasterPos4dv glad_glRasterPos4dv
3609GLAD_API_CALL PFNGLRASTERPOS4FPROC glad_glRasterPos4f;
3610#define glRasterPos4f glad_glRasterPos4f
3611GLAD_API_CALL PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv;
3612#define glRasterPos4fv glad_glRasterPos4fv
3613GLAD_API_CALL PFNGLRASTERPOS4IPROC glad_glRasterPos4i;
3614#define glRasterPos4i glad_glRasterPos4i
3615GLAD_API_CALL PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv;
3616#define glRasterPos4iv glad_glRasterPos4iv
3617GLAD_API_CALL PFNGLRASTERPOS4SPROC glad_glRasterPos4s;
3618#define glRasterPos4s glad_glRasterPos4s
3619GLAD_API_CALL PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv;
3620#define glRasterPos4sv glad_glRasterPos4sv
3621GLAD_API_CALL PFNGLREADBUFFERPROC glad_glReadBuffer;
3622#define glReadBuffer glad_glReadBuffer
3623GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels;
3624#define glReadPixels glad_glReadPixels
3625GLAD_API_CALL PFNGLREADNPIXELSARBPROC glad_glReadnPixelsARB;
3626#define glReadnPixelsARB glad_glReadnPixelsARB
3627GLAD_API_CALL PFNGLRECTDPROC glad_glRectd;
3628#define glRectd glad_glRectd
3629GLAD_API_CALL PFNGLRECTDVPROC glad_glRectdv;
3630#define glRectdv glad_glRectdv
3631GLAD_API_CALL PFNGLRECTFPROC glad_glRectf;
3632#define glRectf glad_glRectf
3633GLAD_API_CALL PFNGLRECTFVPROC glad_glRectfv;
3634#define glRectfv glad_glRectfv
3635GLAD_API_CALL PFNGLRECTIPROC glad_glRecti;
3636#define glRecti glad_glRecti
3637GLAD_API_CALL PFNGLRECTIVPROC glad_glRectiv;
3638#define glRectiv glad_glRectiv
3639GLAD_API_CALL PFNGLRECTSPROC glad_glRects;
3640#define glRects glad_glRects
3641GLAD_API_CALL PFNGLRECTSVPROC glad_glRectsv;
3642#define glRectsv glad_glRectsv
3643GLAD_API_CALL PFNGLRENDERMODEPROC glad_glRenderMode;
3644#define glRenderMode glad_glRenderMode
3645GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
3646#define glRenderbufferStorage glad_glRenderbufferStorage
3647GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
3648#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample
3649GLAD_API_CALL PFNGLROTATEDPROC glad_glRotated;
3650#define glRotated glad_glRotated
3651GLAD_API_CALL PFNGLROTATEFPROC glad_glRotatef;
3652#define glRotatef glad_glRotatef
3653GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
3654#define glSampleCoverage glad_glSampleCoverage
3655GLAD_API_CALL PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB;
3656#define glSampleCoverageARB glad_glSampleCoverageARB
3657GLAD_API_CALL PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
3658#define glSampleMaski glad_glSampleMaski
3659GLAD_API_CALL PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
3660#define glSamplerParameterIiv glad_glSamplerParameterIiv
3661GLAD_API_CALL PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
3662#define glSamplerParameterIuiv glad_glSamplerParameterIuiv
3663GLAD_API_CALL PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
3664#define glSamplerParameterf glad_glSamplerParameterf
3665GLAD_API_CALL PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
3666#define glSamplerParameterfv glad_glSamplerParameterfv
3667GLAD_API_CALL PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
3668#define glSamplerParameteri glad_glSamplerParameteri
3669GLAD_API_CALL PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
3670#define glSamplerParameteriv glad_glSamplerParameteriv
3671GLAD_API_CALL PFNGLSCALEDPROC glad_glScaled;
3672#define glScaled glad_glScaled
3673GLAD_API_CALL PFNGLSCALEFPROC glad_glScalef;
3674#define glScalef glad_glScalef
3675GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor;
3676#define glScissor glad_glScissor
3677GLAD_API_CALL PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b;
3678#define glSecondaryColor3b glad_glSecondaryColor3b
3679GLAD_API_CALL PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv;
3680#define glSecondaryColor3bv glad_glSecondaryColor3bv
3681GLAD_API_CALL PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d;
3682#define glSecondaryColor3d glad_glSecondaryColor3d
3683GLAD_API_CALL PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv;
3684#define glSecondaryColor3dv glad_glSecondaryColor3dv
3685GLAD_API_CALL PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f;
3686#define glSecondaryColor3f glad_glSecondaryColor3f
3687GLAD_API_CALL PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv;
3688#define glSecondaryColor3fv glad_glSecondaryColor3fv
3689GLAD_API_CALL PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i;
3690#define glSecondaryColor3i glad_glSecondaryColor3i
3691GLAD_API_CALL PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv;
3692#define glSecondaryColor3iv glad_glSecondaryColor3iv
3693GLAD_API_CALL PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s;
3694#define glSecondaryColor3s glad_glSecondaryColor3s
3695GLAD_API_CALL PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv;
3696#define glSecondaryColor3sv glad_glSecondaryColor3sv
3697GLAD_API_CALL PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub;
3698#define glSecondaryColor3ub glad_glSecondaryColor3ub
3699GLAD_API_CALL PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv;
3700#define glSecondaryColor3ubv glad_glSecondaryColor3ubv
3701GLAD_API_CALL PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui;
3702#define glSecondaryColor3ui glad_glSecondaryColor3ui
3703GLAD_API_CALL PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv;
3704#define glSecondaryColor3uiv glad_glSecondaryColor3uiv
3705GLAD_API_CALL PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us;
3706#define glSecondaryColor3us glad_glSecondaryColor3us
3707GLAD_API_CALL PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv;
3708#define glSecondaryColor3usv glad_glSecondaryColor3usv
3709GLAD_API_CALL PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
3710#define glSecondaryColorP3ui glad_glSecondaryColorP3ui
3711GLAD_API_CALL PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
3712#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv
3713GLAD_API_CALL PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer;
3714#define glSecondaryColorPointer glad_glSecondaryColorPointer
3715GLAD_API_CALL PFNGLSELECTBUFFERPROC glad_glSelectBuffer;
3716#define glSelectBuffer glad_glSelectBuffer
3717GLAD_API_CALL PFNGLSHADEMODELPROC glad_glShadeModel;
3718#define glShadeModel glad_glShadeModel
3719GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource;
3720#define glShaderSource glad_glShaderSource
3721GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc;
3722#define glStencilFunc glad_glStencilFunc
3723GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
3724#define glStencilFuncSeparate glad_glStencilFuncSeparate
3725GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask;
3726#define glStencilMask glad_glStencilMask
3727GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
3728#define glStencilMaskSeparate glad_glStencilMaskSeparate
3729GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp;
3730#define glStencilOp glad_glStencilOp
3731GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
3732#define glStencilOpSeparate glad_glStencilOpSeparate
3733GLAD_API_CALL PFNGLTEXBUFFERPROC glad_glTexBuffer;
3734#define glTexBuffer glad_glTexBuffer
3735GLAD_API_CALL PFNGLTEXCOORD1DPROC glad_glTexCoord1d;
3736#define glTexCoord1d glad_glTexCoord1d
3737GLAD_API_CALL PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv;
3738#define glTexCoord1dv glad_glTexCoord1dv
3739GLAD_API_CALL PFNGLTEXCOORD1FPROC glad_glTexCoord1f;
3740#define glTexCoord1f glad_glTexCoord1f
3741GLAD_API_CALL PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv;
3742#define glTexCoord1fv glad_glTexCoord1fv
3743GLAD_API_CALL PFNGLTEXCOORD1IPROC glad_glTexCoord1i;
3744#define glTexCoord1i glad_glTexCoord1i
3745GLAD_API_CALL PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv;
3746#define glTexCoord1iv glad_glTexCoord1iv
3747GLAD_API_CALL PFNGLTEXCOORD1SPROC glad_glTexCoord1s;
3748#define glTexCoord1s glad_glTexCoord1s
3749GLAD_API_CALL PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv;
3750#define glTexCoord1sv glad_glTexCoord1sv
3751GLAD_API_CALL PFNGLTEXCOORD2DPROC glad_glTexCoord2d;
3752#define glTexCoord2d glad_glTexCoord2d
3753GLAD_API_CALL PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv;
3754#define glTexCoord2dv glad_glTexCoord2dv
3755GLAD_API_CALL PFNGLTEXCOORD2FPROC glad_glTexCoord2f;
3756#define glTexCoord2f glad_glTexCoord2f
3757GLAD_API_CALL PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv;
3758#define glTexCoord2fv glad_glTexCoord2fv
3759GLAD_API_CALL PFNGLTEXCOORD2IPROC glad_glTexCoord2i;
3760#define glTexCoord2i glad_glTexCoord2i
3761GLAD_API_CALL PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv;
3762#define glTexCoord2iv glad_glTexCoord2iv
3763GLAD_API_CALL PFNGLTEXCOORD2SPROC glad_glTexCoord2s;
3764#define glTexCoord2s glad_glTexCoord2s
3765GLAD_API_CALL PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv;
3766#define glTexCoord2sv glad_glTexCoord2sv
3767GLAD_API_CALL PFNGLTEXCOORD3DPROC glad_glTexCoord3d;
3768#define glTexCoord3d glad_glTexCoord3d
3769GLAD_API_CALL PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv;
3770#define glTexCoord3dv glad_glTexCoord3dv
3771GLAD_API_CALL PFNGLTEXCOORD3FPROC glad_glTexCoord3f;
3772#define glTexCoord3f glad_glTexCoord3f
3773GLAD_API_CALL PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv;
3774#define glTexCoord3fv glad_glTexCoord3fv
3775GLAD_API_CALL PFNGLTEXCOORD3IPROC glad_glTexCoord3i;
3776#define glTexCoord3i glad_glTexCoord3i
3777GLAD_API_CALL PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv;
3778#define glTexCoord3iv glad_glTexCoord3iv
3779GLAD_API_CALL PFNGLTEXCOORD3SPROC glad_glTexCoord3s;
3780#define glTexCoord3s glad_glTexCoord3s
3781GLAD_API_CALL PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv;
3782#define glTexCoord3sv glad_glTexCoord3sv
3783GLAD_API_CALL PFNGLTEXCOORD4DPROC glad_glTexCoord4d;
3784#define glTexCoord4d glad_glTexCoord4d
3785GLAD_API_CALL PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv;
3786#define glTexCoord4dv glad_glTexCoord4dv
3787GLAD_API_CALL PFNGLTEXCOORD4FPROC glad_glTexCoord4f;
3788#define glTexCoord4f glad_glTexCoord4f
3789GLAD_API_CALL PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv;
3790#define glTexCoord4fv glad_glTexCoord4fv
3791GLAD_API_CALL PFNGLTEXCOORD4IPROC glad_glTexCoord4i;
3792#define glTexCoord4i glad_glTexCoord4i
3793GLAD_API_CALL PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv;
3794#define glTexCoord4iv glad_glTexCoord4iv
3795GLAD_API_CALL PFNGLTEXCOORD4SPROC glad_glTexCoord4s;
3796#define glTexCoord4s glad_glTexCoord4s
3797GLAD_API_CALL PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv;
3798#define glTexCoord4sv glad_glTexCoord4sv
3799GLAD_API_CALL PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
3800#define glTexCoordP1ui glad_glTexCoordP1ui
3801GLAD_API_CALL PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
3802#define glTexCoordP1uiv glad_glTexCoordP1uiv
3803GLAD_API_CALL PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
3804#define glTexCoordP2ui glad_glTexCoordP2ui
3805GLAD_API_CALL PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
3806#define glTexCoordP2uiv glad_glTexCoordP2uiv
3807GLAD_API_CALL PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
3808#define glTexCoordP3ui glad_glTexCoordP3ui
3809GLAD_API_CALL PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
3810#define glTexCoordP3uiv glad_glTexCoordP3uiv
3811GLAD_API_CALL PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
3812#define glTexCoordP4ui glad_glTexCoordP4ui
3813GLAD_API_CALL PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
3814#define glTexCoordP4uiv glad_glTexCoordP4uiv
3815GLAD_API_CALL PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer;
3816#define glTexCoordPointer glad_glTexCoordPointer
3817GLAD_API_CALL PFNGLTEXENVFPROC glad_glTexEnvf;
3818#define glTexEnvf glad_glTexEnvf
3819GLAD_API_CALL PFNGLTEXENVFVPROC glad_glTexEnvfv;
3820#define glTexEnvfv glad_glTexEnvfv
3821GLAD_API_CALL PFNGLTEXENVIPROC glad_glTexEnvi;
3822#define glTexEnvi glad_glTexEnvi
3823GLAD_API_CALL PFNGLTEXENVIVPROC glad_glTexEnviv;
3824#define glTexEnviv glad_glTexEnviv
3825GLAD_API_CALL PFNGLTEXGENDPROC glad_glTexGend;
3826#define glTexGend glad_glTexGend
3827GLAD_API_CALL PFNGLTEXGENDVPROC glad_glTexGendv;
3828#define glTexGendv glad_glTexGendv
3829GLAD_API_CALL PFNGLTEXGENFPROC glad_glTexGenf;
3830#define glTexGenf glad_glTexGenf
3831GLAD_API_CALL PFNGLTEXGENFVPROC glad_glTexGenfv;
3832#define glTexGenfv glad_glTexGenfv
3833GLAD_API_CALL PFNGLTEXGENIPROC glad_glTexGeni;
3834#define glTexGeni glad_glTexGeni
3835GLAD_API_CALL PFNGLTEXGENIVPROC glad_glTexGeniv;
3836#define glTexGeniv glad_glTexGeniv
3837GLAD_API_CALL PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
3838#define glTexImage1D glad_glTexImage1D
3839GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
3840#define glTexImage2D glad_glTexImage2D
3841GLAD_API_CALL PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
3842#define glTexImage2DMultisample glad_glTexImage2DMultisample
3843GLAD_API_CALL PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
3844#define glTexImage3D glad_glTexImage3D
3845GLAD_API_CALL PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
3846#define glTexImage3DMultisample glad_glTexImage3DMultisample
3847GLAD_API_CALL PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
3848#define glTexParameterIiv glad_glTexParameterIiv
3849GLAD_API_CALL PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
3850#define glTexParameterIuiv glad_glTexParameterIuiv
3851GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
3852#define glTexParameterf glad_glTexParameterf
3853GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
3854#define glTexParameterfv glad_glTexParameterfv
3855GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
3856#define glTexParameteri glad_glTexParameteri
3857GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
3858#define glTexParameteriv glad_glTexParameteriv
3859GLAD_API_CALL PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
3860#define glTexSubImage1D glad_glTexSubImage1D
3861GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
3862#define glTexSubImage2D glad_glTexSubImage2D
3863GLAD_API_CALL PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
3864#define glTexSubImage3D glad_glTexSubImage3D
3865GLAD_API_CALL PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
3866#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings
3867GLAD_API_CALL PFNGLTRANSLATEDPROC glad_glTranslated;
3868#define glTranslated glad_glTranslated
3869GLAD_API_CALL PFNGLTRANSLATEFPROC glad_glTranslatef;
3870#define glTranslatef glad_glTranslatef
3871GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f;
3872#define glUniform1f glad_glUniform1f
3873GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv;
3874#define glUniform1fv glad_glUniform1fv
3875GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i;
3876#define glUniform1i glad_glUniform1i
3877GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv;
3878#define glUniform1iv glad_glUniform1iv
3879GLAD_API_CALL PFNGLUNIFORM1UIPROC glad_glUniform1ui;
3880#define glUniform1ui glad_glUniform1ui
3881GLAD_API_CALL PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
3882#define glUniform1uiv glad_glUniform1uiv
3883GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f;
3884#define glUniform2f glad_glUniform2f
3885GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv;
3886#define glUniform2fv glad_glUniform2fv
3887GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i;
3888#define glUniform2i glad_glUniform2i
3889GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv;
3890#define glUniform2iv glad_glUniform2iv
3891GLAD_API_CALL PFNGLUNIFORM2UIPROC glad_glUniform2ui;
3892#define glUniform2ui glad_glUniform2ui
3893GLAD_API_CALL PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
3894#define glUniform2uiv glad_glUniform2uiv
3895GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f;
3896#define glUniform3f glad_glUniform3f
3897GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv;
3898#define glUniform3fv glad_glUniform3fv
3899GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i;
3900#define glUniform3i glad_glUniform3i
3901GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv;
3902#define glUniform3iv glad_glUniform3iv
3903GLAD_API_CALL PFNGLUNIFORM3UIPROC glad_glUniform3ui;
3904#define glUniform3ui glad_glUniform3ui
3905GLAD_API_CALL PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
3906#define glUniform3uiv glad_glUniform3uiv
3907GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f;
3908#define glUniform4f glad_glUniform4f
3909GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv;
3910#define glUniform4fv glad_glUniform4fv
3911GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i;
3912#define glUniform4i glad_glUniform4i
3913GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv;
3914#define glUniform4iv glad_glUniform4iv
3915GLAD_API_CALL PFNGLUNIFORM4UIPROC glad_glUniform4ui;
3916#define glUniform4ui glad_glUniform4ui
3917GLAD_API_CALL PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
3918#define glUniform4uiv glad_glUniform4uiv
3919GLAD_API_CALL PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
3920#define glUniformBlockBinding glad_glUniformBlockBinding
3921GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
3922#define glUniformMatrix2fv glad_glUniformMatrix2fv
3923GLAD_API_CALL PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
3924#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv
3925GLAD_API_CALL PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
3926#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv
3927GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
3928#define glUniformMatrix3fv glad_glUniformMatrix3fv
3929GLAD_API_CALL PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
3930#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv
3931GLAD_API_CALL PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
3932#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv
3933GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
3934#define glUniformMatrix4fv glad_glUniformMatrix4fv
3935GLAD_API_CALL PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
3936#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv
3937GLAD_API_CALL PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
3938#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv
3939GLAD_API_CALL PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
3940#define glUnmapBuffer glad_glUnmapBuffer
3941GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram;
3942#define glUseProgram glad_glUseProgram
3943GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
3944#define glValidateProgram glad_glValidateProgram
3945GLAD_API_CALL PFNGLVERTEX2DPROC glad_glVertex2d;
3946#define glVertex2d glad_glVertex2d
3947GLAD_API_CALL PFNGLVERTEX2DVPROC glad_glVertex2dv;
3948#define glVertex2dv glad_glVertex2dv
3949GLAD_API_CALL PFNGLVERTEX2FPROC glad_glVertex2f;
3950#define glVertex2f glad_glVertex2f
3951GLAD_API_CALL PFNGLVERTEX2FVPROC glad_glVertex2fv;
3952#define glVertex2fv glad_glVertex2fv
3953GLAD_API_CALL PFNGLVERTEX2IPROC glad_glVertex2i;
3954#define glVertex2i glad_glVertex2i
3955GLAD_API_CALL PFNGLVERTEX2IVPROC glad_glVertex2iv;
3956#define glVertex2iv glad_glVertex2iv
3957GLAD_API_CALL PFNGLVERTEX2SPROC glad_glVertex2s;
3958#define glVertex2s glad_glVertex2s
3959GLAD_API_CALL PFNGLVERTEX2SVPROC glad_glVertex2sv;
3960#define glVertex2sv glad_glVertex2sv
3961GLAD_API_CALL PFNGLVERTEX3DPROC glad_glVertex3d;
3962#define glVertex3d glad_glVertex3d
3963GLAD_API_CALL PFNGLVERTEX3DVPROC glad_glVertex3dv;
3964#define glVertex3dv glad_glVertex3dv
3965GLAD_API_CALL PFNGLVERTEX3FPROC glad_glVertex3f;
3966#define glVertex3f glad_glVertex3f
3967GLAD_API_CALL PFNGLVERTEX3FVPROC glad_glVertex3fv;
3968#define glVertex3fv glad_glVertex3fv
3969GLAD_API_CALL PFNGLVERTEX3IPROC glad_glVertex3i;
3970#define glVertex3i glad_glVertex3i
3971GLAD_API_CALL PFNGLVERTEX3IVPROC glad_glVertex3iv;
3972#define glVertex3iv glad_glVertex3iv
3973GLAD_API_CALL PFNGLVERTEX3SPROC glad_glVertex3s;
3974#define glVertex3s glad_glVertex3s
3975GLAD_API_CALL PFNGLVERTEX3SVPROC glad_glVertex3sv;
3976#define glVertex3sv glad_glVertex3sv
3977GLAD_API_CALL PFNGLVERTEX4DPROC glad_glVertex4d;
3978#define glVertex4d glad_glVertex4d
3979GLAD_API_CALL PFNGLVERTEX4DVPROC glad_glVertex4dv;
3980#define glVertex4dv glad_glVertex4dv
3981GLAD_API_CALL PFNGLVERTEX4FPROC glad_glVertex4f;
3982#define glVertex4f glad_glVertex4f
3983GLAD_API_CALL PFNGLVERTEX4FVPROC glad_glVertex4fv;
3984#define glVertex4fv glad_glVertex4fv
3985GLAD_API_CALL PFNGLVERTEX4IPROC glad_glVertex4i;
3986#define glVertex4i glad_glVertex4i
3987GLAD_API_CALL PFNGLVERTEX4IVPROC glad_glVertex4iv;
3988#define glVertex4iv glad_glVertex4iv
3989GLAD_API_CALL PFNGLVERTEX4SPROC glad_glVertex4s;
3990#define glVertex4s glad_glVertex4s
3991GLAD_API_CALL PFNGLVERTEX4SVPROC glad_glVertex4sv;
3992#define glVertex4sv glad_glVertex4sv
3993GLAD_API_CALL PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
3994#define glVertexAttrib1d glad_glVertexAttrib1d
3995GLAD_API_CALL PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
3996#define glVertexAttrib1dv glad_glVertexAttrib1dv
3997GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
3998#define glVertexAttrib1f glad_glVertexAttrib1f
3999GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
4000#define glVertexAttrib1fv glad_glVertexAttrib1fv
4001GLAD_API_CALL PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
4002#define glVertexAttrib1s glad_glVertexAttrib1s
4003GLAD_API_CALL PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
4004#define glVertexAttrib1sv glad_glVertexAttrib1sv
4005GLAD_API_CALL PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
4006#define glVertexAttrib2d glad_glVertexAttrib2d
4007GLAD_API_CALL PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
4008#define glVertexAttrib2dv glad_glVertexAttrib2dv
4009GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
4010#define glVertexAttrib2f glad_glVertexAttrib2f
4011GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
4012#define glVertexAttrib2fv glad_glVertexAttrib2fv
4013GLAD_API_CALL PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
4014#define glVertexAttrib2s glad_glVertexAttrib2s
4015GLAD_API_CALL PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
4016#define glVertexAttrib2sv glad_glVertexAttrib2sv
4017GLAD_API_CALL PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
4018#define glVertexAttrib3d glad_glVertexAttrib3d
4019GLAD_API_CALL PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
4020#define glVertexAttrib3dv glad_glVertexAttrib3dv
4021GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
4022#define glVertexAttrib3f glad_glVertexAttrib3f
4023GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
4024#define glVertexAttrib3fv glad_glVertexAttrib3fv
4025GLAD_API_CALL PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
4026#define glVertexAttrib3s glad_glVertexAttrib3s
4027GLAD_API_CALL PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
4028#define glVertexAttrib3sv glad_glVertexAttrib3sv
4029GLAD_API_CALL PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
4030#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv
4031GLAD_API_CALL PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
4032#define glVertexAttrib4Niv glad_glVertexAttrib4Niv
4033GLAD_API_CALL PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
4034#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv
4035GLAD_API_CALL PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
4036#define glVertexAttrib4Nub glad_glVertexAttrib4Nub
4037GLAD_API_CALL PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
4038#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv
4039GLAD_API_CALL PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
4040#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv
4041GLAD_API_CALL PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
4042#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv
4043GLAD_API_CALL PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
4044#define glVertexAttrib4bv glad_glVertexAttrib4bv
4045GLAD_API_CALL PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
4046#define glVertexAttrib4d glad_glVertexAttrib4d
4047GLAD_API_CALL PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
4048#define glVertexAttrib4dv glad_glVertexAttrib4dv
4049GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
4050#define glVertexAttrib4f glad_glVertexAttrib4f
4051GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
4052#define glVertexAttrib4fv glad_glVertexAttrib4fv
4053GLAD_API_CALL PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
4054#define glVertexAttrib4iv glad_glVertexAttrib4iv
4055GLAD_API_CALL PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
4056#define glVertexAttrib4s glad_glVertexAttrib4s
4057GLAD_API_CALL PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
4058#define glVertexAttrib4sv glad_glVertexAttrib4sv
4059GLAD_API_CALL PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
4060#define glVertexAttrib4ubv glad_glVertexAttrib4ubv
4061GLAD_API_CALL PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
4062#define glVertexAttrib4uiv glad_glVertexAttrib4uiv
4063GLAD_API_CALL PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
4064#define glVertexAttrib4usv glad_glVertexAttrib4usv
4065GLAD_API_CALL PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
4066#define glVertexAttribDivisor glad_glVertexAttribDivisor
4067GLAD_API_CALL PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
4068#define glVertexAttribI1i glad_glVertexAttribI1i
4069GLAD_API_CALL PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
4070#define glVertexAttribI1iv glad_glVertexAttribI1iv
4071GLAD_API_CALL PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
4072#define glVertexAttribI1ui glad_glVertexAttribI1ui
4073GLAD_API_CALL PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
4074#define glVertexAttribI1uiv glad_glVertexAttribI1uiv
4075GLAD_API_CALL PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
4076#define glVertexAttribI2i glad_glVertexAttribI2i
4077GLAD_API_CALL PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
4078#define glVertexAttribI2iv glad_glVertexAttribI2iv
4079GLAD_API_CALL PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
4080#define glVertexAttribI2ui glad_glVertexAttribI2ui
4081GLAD_API_CALL PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
4082#define glVertexAttribI2uiv glad_glVertexAttribI2uiv
4083GLAD_API_CALL PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
4084#define glVertexAttribI3i glad_glVertexAttribI3i
4085GLAD_API_CALL PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
4086#define glVertexAttribI3iv glad_glVertexAttribI3iv
4087GLAD_API_CALL PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
4088#define glVertexAttribI3ui glad_glVertexAttribI3ui
4089GLAD_API_CALL PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
4090#define glVertexAttribI3uiv glad_glVertexAttribI3uiv
4091GLAD_API_CALL PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
4092#define glVertexAttribI4bv glad_glVertexAttribI4bv
4093GLAD_API_CALL PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
4094#define glVertexAttribI4i glad_glVertexAttribI4i
4095GLAD_API_CALL PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
4096#define glVertexAttribI4iv glad_glVertexAttribI4iv
4097GLAD_API_CALL PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
4098#define glVertexAttribI4sv glad_glVertexAttribI4sv
4099GLAD_API_CALL PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
4100#define glVertexAttribI4ubv glad_glVertexAttribI4ubv
4101GLAD_API_CALL PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
4102#define glVertexAttribI4ui glad_glVertexAttribI4ui
4103GLAD_API_CALL PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
4104#define glVertexAttribI4uiv glad_glVertexAttribI4uiv
4105GLAD_API_CALL PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
4106#define glVertexAttribI4usv glad_glVertexAttribI4usv
4107GLAD_API_CALL PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
4108#define glVertexAttribIPointer glad_glVertexAttribIPointer
4109GLAD_API_CALL PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
4110#define glVertexAttribP1ui glad_glVertexAttribP1ui
4111GLAD_API_CALL PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
4112#define glVertexAttribP1uiv glad_glVertexAttribP1uiv
4113GLAD_API_CALL PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
4114#define glVertexAttribP2ui glad_glVertexAttribP2ui
4115GLAD_API_CALL PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
4116#define glVertexAttribP2uiv glad_glVertexAttribP2uiv
4117GLAD_API_CALL PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
4118#define glVertexAttribP3ui glad_glVertexAttribP3ui
4119GLAD_API_CALL PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
4120#define glVertexAttribP3uiv glad_glVertexAttribP3uiv
4121GLAD_API_CALL PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
4122#define glVertexAttribP4ui glad_glVertexAttribP4ui
4123GLAD_API_CALL PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
4124#define glVertexAttribP4uiv glad_glVertexAttribP4uiv
4125GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
4126#define glVertexAttribPointer glad_glVertexAttribPointer
4127GLAD_API_CALL PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
4128#define glVertexP2ui glad_glVertexP2ui
4129GLAD_API_CALL PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
4130#define glVertexP2uiv glad_glVertexP2uiv
4131GLAD_API_CALL PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
4132#define glVertexP3ui glad_glVertexP3ui
4133GLAD_API_CALL PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
4134#define glVertexP3uiv glad_glVertexP3uiv
4135GLAD_API_CALL PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
4136#define glVertexP4ui glad_glVertexP4ui
4137GLAD_API_CALL PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
4138#define glVertexP4uiv glad_glVertexP4uiv
4139GLAD_API_CALL PFNGLVERTEXPOINTERPROC glad_glVertexPointer;
4140#define glVertexPointer glad_glVertexPointer
4141GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport;
4142#define glViewport glad_glViewport
4143GLAD_API_CALL PFNGLWAITSYNCPROC glad_glWaitSync;
4144#define glWaitSync glad_glWaitSync
4145GLAD_API_CALL PFNGLWINDOWPOS2DPROC glad_glWindowPos2d;
4146#define glWindowPos2d glad_glWindowPos2d
4147GLAD_API_CALL PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv;
4148#define glWindowPos2dv glad_glWindowPos2dv
4149GLAD_API_CALL PFNGLWINDOWPOS2FPROC glad_glWindowPos2f;
4150#define glWindowPos2f glad_glWindowPos2f
4151GLAD_API_CALL PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv;
4152#define glWindowPos2fv glad_glWindowPos2fv
4153GLAD_API_CALL PFNGLWINDOWPOS2IPROC glad_glWindowPos2i;
4154#define glWindowPos2i glad_glWindowPos2i
4155GLAD_API_CALL PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv;
4156#define glWindowPos2iv glad_glWindowPos2iv
4157GLAD_API_CALL PFNGLWINDOWPOS2SPROC glad_glWindowPos2s;
4158#define glWindowPos2s glad_glWindowPos2s
4159GLAD_API_CALL PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv;
4160#define glWindowPos2sv glad_glWindowPos2sv
4161GLAD_API_CALL PFNGLWINDOWPOS3DPROC glad_glWindowPos3d;
4162#define glWindowPos3d glad_glWindowPos3d
4163GLAD_API_CALL PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv;
4164#define glWindowPos3dv glad_glWindowPos3dv
4165GLAD_API_CALL PFNGLWINDOWPOS3FPROC glad_glWindowPos3f;
4166#define glWindowPos3f glad_glWindowPos3f
4167GLAD_API_CALL PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv;
4168#define glWindowPos3fv glad_glWindowPos3fv
4169GLAD_API_CALL PFNGLWINDOWPOS3IPROC glad_glWindowPos3i;
4170#define glWindowPos3i glad_glWindowPos3i
4171GLAD_API_CALL PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv;
4172#define glWindowPos3iv glad_glWindowPos3iv
4173GLAD_API_CALL PFNGLWINDOWPOS3SPROC glad_glWindowPos3s;
4174#define glWindowPos3s glad_glWindowPos3s
4175GLAD_API_CALL PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv;
4176#define glWindowPos3sv glad_glWindowPos3sv
4177
4178
4179
4180
4181
4182GLAD_API_CALL int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr);
4183GLAD_API_CALL int gladLoadGL( GLADloadfunc load);
4184
4185
4186
4187#ifdef __cplusplus
4188}
4189#endif
4190#endif
4191
4192/* Source */
4193#ifdef GLAD_GL_IMPLEMENTATION
4194#include <stdio.h>
4195#include <stdlib.h>
4196#include <string.h>
4197
4198#ifndef GLAD_IMPL_UTIL_C_
4199#define GLAD_IMPL_UTIL_C_
4200
4201#ifdef _MSC_VER
4202#define GLAD_IMPL_UTIL_SSCANF sscanf_s
4203#else
4204#define GLAD_IMPL_UTIL_SSCANF sscanf
4205#endif
4206
4207#endif /* GLAD_IMPL_UTIL_C_ */
4208
4209#ifdef __cplusplus
4210extern "C" {
4211#endif
4212
4213
4214
4215int GLAD_GL_VERSION_1_0 = 0;
4216int GLAD_GL_VERSION_1_1 = 0;
4217int GLAD_GL_VERSION_1_2 = 0;
4218int GLAD_GL_VERSION_1_3 = 0;
4219int GLAD_GL_VERSION_1_4 = 0;
4220int GLAD_GL_VERSION_1_5 = 0;
4221int GLAD_GL_VERSION_2_0 = 0;
4222int GLAD_GL_VERSION_2_1 = 0;
4223int GLAD_GL_VERSION_3_0 = 0;
4224int GLAD_GL_VERSION_3_1 = 0;
4225int GLAD_GL_VERSION_3_2 = 0;
4226int GLAD_GL_VERSION_3_3 = 0;
4227int GLAD_GL_ARB_multisample = 0;
4228int GLAD_GL_ARB_robustness = 0;
4229int GLAD_GL_KHR_debug = 0;
4230
4231
4232
4233PFNGLACCUMPROC glad_glAccum = NULL;
4234PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
4235PFNGLALPHAFUNCPROC glad_glAlphaFunc = NULL;
4236PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident = NULL;
4237PFNGLARRAYELEMENTPROC glad_glArrayElement = NULL;
4238PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
4239PFNGLBEGINPROC glad_glBegin = NULL;
4240PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL;
4241PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL;
4242PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL;
4243PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
4244PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
4245PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL;
4246PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL;
4247PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL;
4248PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL;
4249PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
4250PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
4251PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL;
4252PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
4253PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL;
4254PFNGLBITMAPPROC glad_glBitmap = NULL;
4255PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
4256PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
4257PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
4258PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
4259PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
4260PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL;
4261PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
4262PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
4263PFNGLCALLLISTPROC glad_glCallList = NULL;
4264PFNGLCALLLISTSPROC glad_glCallLists = NULL;
4265PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
4266PFNGLCLAMPCOLORPROC glad_glClampColor = NULL;
4267PFNGLCLEARPROC glad_glClear = NULL;
4268PFNGLCLEARACCUMPROC glad_glClearAccum = NULL;
4269PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL;
4270PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL;
4271PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL;
4272PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL;
4273PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
4274PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL;
4275PFNGLCLEARINDEXPROC glad_glClearIndex = NULL;
4276PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
4277PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture = NULL;
4278PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL;
4279PFNGLCLIPPLANEPROC glad_glClipPlane = NULL;
4280PFNGLCOLOR3BPROC glad_glColor3b = NULL;
4281PFNGLCOLOR3BVPROC glad_glColor3bv = NULL;
4282PFNGLCOLOR3DPROC glad_glColor3d = NULL;
4283PFNGLCOLOR3DVPROC glad_glColor3dv = NULL;
4284PFNGLCOLOR3FPROC glad_glColor3f = NULL;
4285PFNGLCOLOR3FVPROC glad_glColor3fv = NULL;
4286PFNGLCOLOR3IPROC glad_glColor3i = NULL;
4287PFNGLCOLOR3IVPROC glad_glColor3iv = NULL;
4288PFNGLCOLOR3SPROC glad_glColor3s = NULL;
4289PFNGLCOLOR3SVPROC glad_glColor3sv = NULL;
4290PFNGLCOLOR3UBPROC glad_glColor3ub = NULL;
4291PFNGLCOLOR3UBVPROC glad_glColor3ubv = NULL;
4292PFNGLCOLOR3UIPROC glad_glColor3ui = NULL;
4293PFNGLCOLOR3UIVPROC glad_glColor3uiv = NULL;
4294PFNGLCOLOR3USPROC glad_glColor3us = NULL;
4295PFNGLCOLOR3USVPROC glad_glColor3usv = NULL;
4296PFNGLCOLOR4BPROC glad_glColor4b = NULL;
4297PFNGLCOLOR4BVPROC glad_glColor4bv = NULL;
4298PFNGLCOLOR4DPROC glad_glColor4d = NULL;
4299PFNGLCOLOR4DVPROC glad_glColor4dv = NULL;
4300PFNGLCOLOR4FPROC glad_glColor4f = NULL;
4301PFNGLCOLOR4FVPROC glad_glColor4fv = NULL;
4302PFNGLCOLOR4IPROC glad_glColor4i = NULL;
4303PFNGLCOLOR4IVPROC glad_glColor4iv = NULL;
4304PFNGLCOLOR4SPROC glad_glColor4s = NULL;
4305PFNGLCOLOR4SVPROC glad_glColor4sv = NULL;
4306PFNGLCOLOR4UBPROC glad_glColor4ub = NULL;
4307PFNGLCOLOR4UBVPROC glad_glColor4ubv = NULL;
4308PFNGLCOLOR4UIPROC glad_glColor4ui = NULL;
4309PFNGLCOLOR4UIVPROC glad_glColor4uiv = NULL;
4310PFNGLCOLOR4USPROC glad_glColor4us = NULL;
4311PFNGLCOLOR4USVPROC glad_glColor4usv = NULL;
4312PFNGLCOLORMASKPROC glad_glColorMask = NULL;
4313PFNGLCOLORMASKIPROC glad_glColorMaski = NULL;
4314PFNGLCOLORMATERIALPROC glad_glColorMaterial = NULL;
4315PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL;
4316PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL;
4317PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL;
4318PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL;
4319PFNGLCOLORPOINTERPROC glad_glColorPointer = NULL;
4320PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
4321PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL;
4322PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
4323PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL;
4324PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL;
4325PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
4326PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL;
4327PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL;
4328PFNGLCOPYPIXELSPROC glad_glCopyPixels = NULL;
4329PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL;
4330PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
4331PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL;
4332PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
4333PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL;
4334PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
4335PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
4336PFNGLCULLFACEPROC glad_glCullFace = NULL;
4337PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL;
4338PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL;
4339PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL;
4340PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
4341PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
4342PFNGLDELETELISTSPROC glad_glDeleteLists = NULL;
4343PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
4344PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL;
4345PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
4346PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL;
4347PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
4348PFNGLDELETESYNCPROC glad_glDeleteSync = NULL;
4349PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
4350PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL;
4351PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
4352PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
4353PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL;
4354PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
4355PFNGLDISABLEPROC glad_glDisable = NULL;
4356PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState = NULL;
4357PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
4358PFNGLDISABLEIPROC glad_glDisablei = NULL;
4359PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
4360PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL;
4361PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL;
4362PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL;
4363PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
4364PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL;
4365PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL;
4366PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL;
4367PFNGLDRAWPIXELSPROC glad_glDrawPixels = NULL;
4368PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL;
4369PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL;
4370PFNGLEDGEFLAGPROC glad_glEdgeFlag = NULL;
4371PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer = NULL;
4372PFNGLEDGEFLAGVPROC glad_glEdgeFlagv = NULL;
4373PFNGLENABLEPROC glad_glEnable = NULL;
4374PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState = NULL;
4375PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
4376PFNGLENABLEIPROC glad_glEnablei = NULL;
4377PFNGLENDPROC glad_glEnd = NULL;
4378PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL;
4379PFNGLENDLISTPROC glad_glEndList = NULL;
4380PFNGLENDQUERYPROC glad_glEndQuery = NULL;
4381PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL;
4382PFNGLEVALCOORD1DPROC glad_glEvalCoord1d = NULL;
4383PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv = NULL;
4384PFNGLEVALCOORD1FPROC glad_glEvalCoord1f = NULL;
4385PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv = NULL;
4386PFNGLEVALCOORD2DPROC glad_glEvalCoord2d = NULL;
4387PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv = NULL;
4388PFNGLEVALCOORD2FPROC glad_glEvalCoord2f = NULL;
4389PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv = NULL;
4390PFNGLEVALMESH1PROC glad_glEvalMesh1 = NULL;
4391PFNGLEVALMESH2PROC glad_glEvalMesh2 = NULL;
4392PFNGLEVALPOINT1PROC glad_glEvalPoint1 = NULL;
4393PFNGLEVALPOINT2PROC glad_glEvalPoint2 = NULL;
4394PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer = NULL;
4395PFNGLFENCESYNCPROC glad_glFenceSync = NULL;
4396PFNGLFINISHPROC glad_glFinish = NULL;
4397PFNGLFLUSHPROC glad_glFlush = NULL;
4398PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL;
4399PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer = NULL;
4400PFNGLFOGCOORDDPROC glad_glFogCoordd = NULL;
4401PFNGLFOGCOORDDVPROC glad_glFogCoorddv = NULL;
4402PFNGLFOGCOORDFPROC glad_glFogCoordf = NULL;
4403PFNGLFOGCOORDFVPROC glad_glFogCoordfv = NULL;
4404PFNGLFOGFPROC glad_glFogf = NULL;
4405PFNGLFOGFVPROC glad_glFogfv = NULL;
4406PFNGLFOGIPROC glad_glFogi = NULL;
4407PFNGLFOGIVPROC glad_glFogiv = NULL;
4408PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
4409PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL;
4410PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL;
4411PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
4412PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL;
4413PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL;
4414PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
4415PFNGLFRUSTUMPROC glad_glFrustum = NULL;
4416PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
4417PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
4418PFNGLGENLISTSPROC glad_glGenLists = NULL;
4419PFNGLGENQUERIESPROC glad_glGenQueries = NULL;
4420PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
4421PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL;
4422PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
4423PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL;
4424PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
4425PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
4426PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
4427PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL;
4428PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL;
4429PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL;
4430PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL;
4431PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
4432PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
4433PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL;
4434PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
4435PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL;
4436PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
4437PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL;
4438PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL;
4439PFNGLGETCLIPPLANEPROC glad_glGetClipPlane = NULL;
4440PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL;
4441PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL;
4442PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL;
4443PFNGLGETERRORPROC glad_glGetError = NULL;
4444PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
4445PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL;
4446PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL;
4447PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
4448PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB = NULL;
4449PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL;
4450PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL;
4451PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL;
4452PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
4453PFNGLGETLIGHTFVPROC glad_glGetLightfv = NULL;
4454PFNGLGETLIGHTIVPROC glad_glGetLightiv = NULL;
4455PFNGLGETMAPDVPROC glad_glGetMapdv = NULL;
4456PFNGLGETMAPFVPROC glad_glGetMapfv = NULL;
4457PFNGLGETMAPIVPROC glad_glGetMapiv = NULL;
4458PFNGLGETMATERIALFVPROC glad_glGetMaterialfv = NULL;
4459PFNGLGETMATERIALIVPROC glad_glGetMaterialiv = NULL;
4460PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL;
4461PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL;
4462PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL;
4463PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv = NULL;
4464PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv = NULL;
4465PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv = NULL;
4466PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL;
4467PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple = NULL;
4468PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
4469PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
4470PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL;
4471PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL;
4472PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL;
4473PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL;
4474PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL;
4475PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
4476PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL;
4477PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL;
4478PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL;
4479PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL;
4480PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
4481PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
4482PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
4483PFNGLGETSTRINGPROC glad_glGetString = NULL;
4484PFNGLGETSTRINGIPROC glad_glGetStringi = NULL;
4485PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL;
4486PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv = NULL;
4487PFNGLGETTEXENVIVPROC glad_glGetTexEnviv = NULL;
4488PFNGLGETTEXGENDVPROC glad_glGetTexGendv = NULL;
4489PFNGLGETTEXGENFVPROC glad_glGetTexGenfv = NULL;
4490PFNGLGETTEXGENIVPROC glad_glGetTexGeniv = NULL;
4491PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL;
4492PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL;
4493PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL;
4494PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL;
4495PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL;
4496PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
4497PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
4498PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL;
4499PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL;
4500PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL;
4501PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
4502PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
4503PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
4504PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL;
4505PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL;
4506PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL;
4507PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
4508PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL;
4509PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
4510PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
4511PFNGLGETNCOLORTABLEARBPROC glad_glGetnColorTableARB = NULL;
4512PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC glad_glGetnCompressedTexImageARB = NULL;
4513PFNGLGETNCONVOLUTIONFILTERARBPROC glad_glGetnConvolutionFilterARB = NULL;
4514PFNGLGETNHISTOGRAMARBPROC glad_glGetnHistogramARB = NULL;
4515PFNGLGETNMAPDVARBPROC glad_glGetnMapdvARB = NULL;
4516PFNGLGETNMAPFVARBPROC glad_glGetnMapfvARB = NULL;
4517PFNGLGETNMAPIVARBPROC glad_glGetnMapivARB = NULL;
4518PFNGLGETNMINMAXARBPROC glad_glGetnMinmaxARB = NULL;
4519PFNGLGETNPIXELMAPFVARBPROC glad_glGetnPixelMapfvARB = NULL;
4520PFNGLGETNPIXELMAPUIVARBPROC glad_glGetnPixelMapuivARB = NULL;
4521PFNGLGETNPIXELMAPUSVARBPROC glad_glGetnPixelMapusvARB = NULL;
4522PFNGLGETNPOLYGONSTIPPLEARBPROC glad_glGetnPolygonStippleARB = NULL;
4523PFNGLGETNSEPARABLEFILTERARBPROC glad_glGetnSeparableFilterARB = NULL;
4524PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB = NULL;
4525PFNGLGETNUNIFORMDVARBPROC glad_glGetnUniformdvARB = NULL;
4526PFNGLGETNUNIFORMFVARBPROC glad_glGetnUniformfvARB = NULL;
4527PFNGLGETNUNIFORMIVARBPROC glad_glGetnUniformivARB = NULL;
4528PFNGLGETNUNIFORMUIVARBPROC glad_glGetnUniformuivARB = NULL;
4529PFNGLHINTPROC glad_glHint = NULL;
4530PFNGLINDEXMASKPROC glad_glIndexMask = NULL;
4531PFNGLINDEXPOINTERPROC glad_glIndexPointer = NULL;
4532PFNGLINDEXDPROC glad_glIndexd = NULL;
4533PFNGLINDEXDVPROC glad_glIndexdv = NULL;
4534PFNGLINDEXFPROC glad_glIndexf = NULL;
4535PFNGLINDEXFVPROC glad_glIndexfv = NULL;
4536PFNGLINDEXIPROC glad_glIndexi = NULL;
4537PFNGLINDEXIVPROC glad_glIndexiv = NULL;
4538PFNGLINDEXSPROC glad_glIndexs = NULL;
4539PFNGLINDEXSVPROC glad_glIndexsv = NULL;
4540PFNGLINDEXUBPROC glad_glIndexub = NULL;
4541PFNGLINDEXUBVPROC glad_glIndexubv = NULL;
4542PFNGLINITNAMESPROC glad_glInitNames = NULL;
4543PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays = NULL;
4544PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
4545PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
4546PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL;
4547PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
4548PFNGLISLISTPROC glad_glIsList = NULL;
4549PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
4550PFNGLISQUERYPROC glad_glIsQuery = NULL;
4551PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
4552PFNGLISSAMPLERPROC glad_glIsSampler = NULL;
4553PFNGLISSHADERPROC glad_glIsShader = NULL;
4554PFNGLISSYNCPROC glad_glIsSync = NULL;
4555PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
4556PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL;
4557PFNGLLIGHTMODELFPROC glad_glLightModelf = NULL;
4558PFNGLLIGHTMODELFVPROC glad_glLightModelfv = NULL;
4559PFNGLLIGHTMODELIPROC glad_glLightModeli = NULL;
4560PFNGLLIGHTMODELIVPROC glad_glLightModeliv = NULL;
4561PFNGLLIGHTFPROC glad_glLightf = NULL;
4562PFNGLLIGHTFVPROC glad_glLightfv = NULL;
4563PFNGLLIGHTIPROC glad_glLighti = NULL;
4564PFNGLLIGHTIVPROC glad_glLightiv = NULL;
4565PFNGLLINESTIPPLEPROC glad_glLineStipple = NULL;
4566PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
4567PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
4568PFNGLLISTBASEPROC glad_glListBase = NULL;
4569PFNGLLOADIDENTITYPROC glad_glLoadIdentity = NULL;
4570PFNGLLOADMATRIXDPROC glad_glLoadMatrixd = NULL;
4571PFNGLLOADMATRIXFPROC glad_glLoadMatrixf = NULL;
4572PFNGLLOADNAMEPROC glad_glLoadName = NULL;
4573PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd = NULL;
4574PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf = NULL;
4575PFNGLLOGICOPPROC glad_glLogicOp = NULL;
4576PFNGLMAP1DPROC glad_glMap1d = NULL;
4577PFNGLMAP1FPROC glad_glMap1f = NULL;
4578PFNGLMAP2DPROC glad_glMap2d = NULL;
4579PFNGLMAP2FPROC glad_glMap2f = NULL;
4580PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL;
4581PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL;
4582PFNGLMAPGRID1DPROC glad_glMapGrid1d = NULL;
4583PFNGLMAPGRID1FPROC glad_glMapGrid1f = NULL;
4584PFNGLMAPGRID2DPROC glad_glMapGrid2d = NULL;
4585PFNGLMAPGRID2FPROC glad_glMapGrid2f = NULL;
4586PFNGLMATERIALFPROC glad_glMaterialf = NULL;
4587PFNGLMATERIALFVPROC glad_glMaterialfv = NULL;
4588PFNGLMATERIALIPROC glad_glMateriali = NULL;
4589PFNGLMATERIALIVPROC glad_glMaterialiv = NULL;
4590PFNGLMATRIXMODEPROC glad_glMatrixMode = NULL;
4591PFNGLMULTMATRIXDPROC glad_glMultMatrixd = NULL;
4592PFNGLMULTMATRIXFPROC glad_glMultMatrixf = NULL;
4593PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd = NULL;
4594PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf = NULL;
4595PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL;
4596PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL;
4597PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL;
4598PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d = NULL;
4599PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv = NULL;
4600PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f = NULL;
4601PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv = NULL;
4602PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i = NULL;
4603PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv = NULL;
4604PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s = NULL;
4605PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv = NULL;
4606PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d = NULL;
4607PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv = NULL;
4608PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f = NULL;
4609PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv = NULL;
4610PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i = NULL;
4611PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv = NULL;
4612PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s = NULL;
4613PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv = NULL;
4614PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d = NULL;
4615PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv = NULL;
4616PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f = NULL;
4617PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv = NULL;
4618PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i = NULL;
4619PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv = NULL;
4620PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s = NULL;
4621PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv = NULL;
4622PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d = NULL;
4623PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv = NULL;
4624PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f = NULL;
4625PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv = NULL;
4626PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i = NULL;
4627PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv = NULL;
4628PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s = NULL;
4629PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv = NULL;
4630PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL;
4631PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL;
4632PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL;
4633PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv = NULL;
4634PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui = NULL;
4635PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL;
4636PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL;
4637PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL;
4638PFNGLNEWLISTPROC glad_glNewList = NULL;
4639PFNGLNORMAL3BPROC glad_glNormal3b = NULL;
4640PFNGLNORMAL3BVPROC glad_glNormal3bv = NULL;
4641PFNGLNORMAL3DPROC glad_glNormal3d = NULL;
4642PFNGLNORMAL3DVPROC glad_glNormal3dv = NULL;
4643PFNGLNORMAL3FPROC glad_glNormal3f = NULL;
4644PFNGLNORMAL3FVPROC glad_glNormal3fv = NULL;
4645PFNGLNORMAL3IPROC glad_glNormal3i = NULL;
4646PFNGLNORMAL3IVPROC glad_glNormal3iv = NULL;
4647PFNGLNORMAL3SPROC glad_glNormal3s = NULL;
4648PFNGLNORMAL3SVPROC glad_glNormal3sv = NULL;
4649PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL;
4650PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL;
4651PFNGLNORMALPOINTERPROC glad_glNormalPointer = NULL;
4652PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL;
4653PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL;
4654PFNGLORTHOPROC glad_glOrtho = NULL;
4655PFNGLPASSTHROUGHPROC glad_glPassThrough = NULL;
4656PFNGLPIXELMAPFVPROC glad_glPixelMapfv = NULL;
4657PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv = NULL;
4658PFNGLPIXELMAPUSVPROC glad_glPixelMapusv = NULL;
4659PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL;
4660PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
4661PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf = NULL;
4662PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi = NULL;
4663PFNGLPIXELZOOMPROC glad_glPixelZoom = NULL;
4664PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL;
4665PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL;
4666PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL;
4667PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL;
4668PFNGLPOINTSIZEPROC glad_glPointSize = NULL;
4669PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL;
4670PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
4671PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple = NULL;
4672PFNGLPOPATTRIBPROC glad_glPopAttrib = NULL;
4673PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib = NULL;
4674PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL;
4675PFNGLPOPMATRIXPROC glad_glPopMatrix = NULL;
4676PFNGLPOPNAMEPROC glad_glPopName = NULL;
4677PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL;
4678PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures = NULL;
4679PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL;
4680PFNGLPUSHATTRIBPROC glad_glPushAttrib = NULL;
4681PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib = NULL;
4682PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL;
4683PFNGLPUSHMATRIXPROC glad_glPushMatrix = NULL;
4684PFNGLPUSHNAMEPROC glad_glPushName = NULL;
4685PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL;
4686PFNGLRASTERPOS2DPROC glad_glRasterPos2d = NULL;
4687PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv = NULL;
4688PFNGLRASTERPOS2FPROC glad_glRasterPos2f = NULL;
4689PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv = NULL;
4690PFNGLRASTERPOS2IPROC glad_glRasterPos2i = NULL;
4691PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv = NULL;
4692PFNGLRASTERPOS2SPROC glad_glRasterPos2s = NULL;
4693PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv = NULL;
4694PFNGLRASTERPOS3DPROC glad_glRasterPos3d = NULL;
4695PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv = NULL;
4696PFNGLRASTERPOS3FPROC glad_glRasterPos3f = NULL;
4697PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv = NULL;
4698PFNGLRASTERPOS3IPROC glad_glRasterPos3i = NULL;
4699PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv = NULL;
4700PFNGLRASTERPOS3SPROC glad_glRasterPos3s = NULL;
4701PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv = NULL;
4702PFNGLRASTERPOS4DPROC glad_glRasterPos4d = NULL;
4703PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv = NULL;
4704PFNGLRASTERPOS4FPROC glad_glRasterPos4f = NULL;
4705PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv = NULL;
4706PFNGLRASTERPOS4IPROC glad_glRasterPos4i = NULL;
4707PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv = NULL;
4708PFNGLRASTERPOS4SPROC glad_glRasterPos4s = NULL;
4709PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv = NULL;
4710PFNGLREADBUFFERPROC glad_glReadBuffer = NULL;
4711PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
4712PFNGLREADNPIXELSARBPROC glad_glReadnPixelsARB = NULL;
4713PFNGLRECTDPROC glad_glRectd = NULL;
4714PFNGLRECTDVPROC glad_glRectdv = NULL;
4715PFNGLRECTFPROC glad_glRectf = NULL;
4716PFNGLRECTFVPROC glad_glRectfv = NULL;
4717PFNGLRECTIPROC glad_glRecti = NULL;
4718PFNGLRECTIVPROC glad_glRectiv = NULL;
4719PFNGLRECTSPROC glad_glRects = NULL;
4720PFNGLRECTSVPROC glad_glRectsv = NULL;
4721PFNGLRENDERMODEPROC glad_glRenderMode = NULL;
4722PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
4723PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL;
4724PFNGLROTATEDPROC glad_glRotated = NULL;
4725PFNGLROTATEFPROC glad_glRotatef = NULL;
4726PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
4727PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB = NULL;
4728PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL;
4729PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL;
4730PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL;
4731PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL;
4732PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL;
4733PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL;
4734PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL;
4735PFNGLSCALEDPROC glad_glScaled = NULL;
4736PFNGLSCALEFPROC glad_glScalef = NULL;
4737PFNGLSCISSORPROC glad_glScissor = NULL;
4738PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b = NULL;
4739PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv = NULL;
4740PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d = NULL;
4741PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv = NULL;
4742PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f = NULL;
4743PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv = NULL;
4744PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i = NULL;
4745PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv = NULL;
4746PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s = NULL;
4747PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv = NULL;
4748PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub = NULL;
4749PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv = NULL;
4750PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui = NULL;
4751PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv = NULL;
4752PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us = NULL;
4753PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv = NULL;
4754PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL;
4755PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL;
4756PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer = NULL;
4757PFNGLSELECTBUFFERPROC glad_glSelectBuffer = NULL;
4758PFNGLSHADEMODELPROC glad_glShadeModel = NULL;
4759PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
4760PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
4761PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
4762PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
4763PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
4764PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
4765PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
4766PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL;
4767PFNGLTEXCOORD1DPROC glad_glTexCoord1d = NULL;
4768PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv = NULL;
4769PFNGLTEXCOORD1FPROC glad_glTexCoord1f = NULL;
4770PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv = NULL;
4771PFNGLTEXCOORD1IPROC glad_glTexCoord1i = NULL;
4772PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv = NULL;
4773PFNGLTEXCOORD1SPROC glad_glTexCoord1s = NULL;
4774PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv = NULL;
4775PFNGLTEXCOORD2DPROC glad_glTexCoord2d = NULL;
4776PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv = NULL;
4777PFNGLTEXCOORD2FPROC glad_glTexCoord2f = NULL;
4778PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv = NULL;
4779PFNGLTEXCOORD2IPROC glad_glTexCoord2i = NULL;
4780PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv = NULL;
4781PFNGLTEXCOORD2SPROC glad_glTexCoord2s = NULL;
4782PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv = NULL;
4783PFNGLTEXCOORD3DPROC glad_glTexCoord3d = NULL;
4784PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv = NULL;
4785PFNGLTEXCOORD3FPROC glad_glTexCoord3f = NULL;
4786PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv = NULL;
4787PFNGLTEXCOORD3IPROC glad_glTexCoord3i = NULL;
4788PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv = NULL;
4789PFNGLTEXCOORD3SPROC glad_glTexCoord3s = NULL;
4790PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv = NULL;
4791PFNGLTEXCOORD4DPROC glad_glTexCoord4d = NULL;
4792PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv = NULL;
4793PFNGLTEXCOORD4FPROC glad_glTexCoord4f = NULL;
4794PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv = NULL;
4795PFNGLTEXCOORD4IPROC glad_glTexCoord4i = NULL;
4796PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv = NULL;
4797PFNGLTEXCOORD4SPROC glad_glTexCoord4s = NULL;
4798PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv = NULL;
4799PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL;
4800PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL;
4801PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL;
4802PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv = NULL;
4803PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui = NULL;
4804PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL;
4805PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL;
4806PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL;
4807PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer = NULL;
4808PFNGLTEXENVFPROC glad_glTexEnvf = NULL;
4809PFNGLTEXENVFVPROC glad_glTexEnvfv = NULL;
4810PFNGLTEXENVIPROC glad_glTexEnvi = NULL;
4811PFNGLTEXENVIVPROC glad_glTexEnviv = NULL;
4812PFNGLTEXGENDPROC glad_glTexGend = NULL;
4813PFNGLTEXGENDVPROC glad_glTexGendv = NULL;
4814PFNGLTEXGENFPROC glad_glTexGenf = NULL;
4815PFNGLTEXGENFVPROC glad_glTexGenfv = NULL;
4816PFNGLTEXGENIPROC glad_glTexGeni = NULL;
4817PFNGLTEXGENIVPROC glad_glTexGeniv = NULL;
4818PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL;
4819PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
4820PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL;
4821PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL;
4822PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL;
4823PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL;
4824PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL;
4825PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
4826PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
4827PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
4828PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
4829PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL;
4830PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
4831PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL;
4832PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL;
4833PFNGLTRANSLATEDPROC glad_glTranslated = NULL;
4834PFNGLTRANSLATEFPROC glad_glTranslatef = NULL;
4835PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
4836PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
4837PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
4838PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
4839PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL;
4840PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL;
4841PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
4842PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
4843PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
4844PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
4845PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL;
4846PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL;
4847PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
4848PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
4849PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
4850PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
4851PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL;
4852PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL;
4853PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
4854PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
4855PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
4856PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
4857PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL;
4858PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL;
4859PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL;
4860PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
4861PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL;
4862PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL;
4863PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
4864PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL;
4865PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL;
4866PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
4867PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL;
4868PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL;
4869PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL;
4870PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
4871PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
4872PFNGLVERTEX2DPROC glad_glVertex2d = NULL;
4873PFNGLVERTEX2DVPROC glad_glVertex2dv = NULL;
4874PFNGLVERTEX2FPROC glad_glVertex2f = NULL;
4875PFNGLVERTEX2FVPROC glad_glVertex2fv = NULL;
4876PFNGLVERTEX2IPROC glad_glVertex2i = NULL;
4877PFNGLVERTEX2IVPROC glad_glVertex2iv = NULL;
4878PFNGLVERTEX2SPROC glad_glVertex2s = NULL;
4879PFNGLVERTEX2SVPROC glad_glVertex2sv = NULL;
4880PFNGLVERTEX3DPROC glad_glVertex3d = NULL;
4881PFNGLVERTEX3DVPROC glad_glVertex3dv = NULL;
4882PFNGLVERTEX3FPROC glad_glVertex3f = NULL;
4883PFNGLVERTEX3FVPROC glad_glVertex3fv = NULL;
4884PFNGLVERTEX3IPROC glad_glVertex3i = NULL;
4885PFNGLVERTEX3IVPROC glad_glVertex3iv = NULL;
4886PFNGLVERTEX3SPROC glad_glVertex3s = NULL;
4887PFNGLVERTEX3SVPROC glad_glVertex3sv = NULL;
4888PFNGLVERTEX4DPROC glad_glVertex4d = NULL;
4889PFNGLVERTEX4DVPROC glad_glVertex4dv = NULL;
4890PFNGLVERTEX4FPROC glad_glVertex4f = NULL;
4891PFNGLVERTEX4FVPROC glad_glVertex4fv = NULL;
4892PFNGLVERTEX4IPROC glad_glVertex4i = NULL;
4893PFNGLVERTEX4IVPROC glad_glVertex4iv = NULL;
4894PFNGLVERTEX4SPROC glad_glVertex4s = NULL;
4895PFNGLVERTEX4SVPROC glad_glVertex4sv = NULL;
4896PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL;
4897PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL;
4898PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
4899PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
4900PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL;
4901PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL;
4902PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL;
4903PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL;
4904PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
4905PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
4906PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL;
4907PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL;
4908PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL;
4909PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL;
4910PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
4911PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
4912PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL;
4913PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL;
4914PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL;
4915PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL;
4916PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL;
4917PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL;
4918PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL;
4919PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL;
4920PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL;
4921PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL;
4922PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL;
4923PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL;
4924PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
4925PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
4926PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL;
4927PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL;
4928PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL;
4929PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL;
4930PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL;
4931PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL;
4932PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL;
4933PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL;
4934PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL;
4935PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL;
4936PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL;
4937PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL;
4938PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL;
4939PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL;
4940PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL;
4941PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL;
4942PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL;
4943PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL;
4944PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL;
4945PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL;
4946PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL;
4947PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL;
4948PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL;
4949PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL;
4950PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL;
4951PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL;
4952PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL;
4953PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL;
4954PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL;
4955PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL;
4956PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL;
4957PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL;
4958PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL;
4959PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL;
4960PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL;
4961PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL;
4962PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
4963PFNGLVERTEXP2UIPROC glad_glVertexP2ui = NULL;
4964PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv = NULL;
4965PFNGLVERTEXP3UIPROC glad_glVertexP3ui = NULL;
4966PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL;
4967PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL;
4968PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL;
4969PFNGLVERTEXPOINTERPROC glad_glVertexPointer = NULL;
4970PFNGLVIEWPORTPROC glad_glViewport = NULL;
4971PFNGLWAITSYNCPROC glad_glWaitSync = NULL;
4972PFNGLWINDOWPOS2DPROC glad_glWindowPos2d = NULL;
4973PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv = NULL;
4974PFNGLWINDOWPOS2FPROC glad_glWindowPos2f = NULL;
4975PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv = NULL;
4976PFNGLWINDOWPOS2IPROC glad_glWindowPos2i = NULL;
4977PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv = NULL;
4978PFNGLWINDOWPOS2SPROC glad_glWindowPos2s = NULL;
4979PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv = NULL;
4980PFNGLWINDOWPOS3DPROC glad_glWindowPos3d = NULL;
4981PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv = NULL;
4982PFNGLWINDOWPOS3FPROC glad_glWindowPos3f = NULL;
4983PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv = NULL;
4984PFNGLWINDOWPOS3IPROC glad_glWindowPos3i = NULL;
4985PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv = NULL;
4986PFNGLWINDOWPOS3SPROC glad_glWindowPos3s = NULL;
4987PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv = NULL;
4988
4989
4990static void glad_gl_load_GL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
4991 if(!GLAD_GL_VERSION_1_0) return;
4992 glad_glAccum = (PFNGLACCUMPROC) load(userptr, "glAccum");
4993 glad_glAlphaFunc = (PFNGLALPHAFUNCPROC) load(userptr, "glAlphaFunc");
4994 glad_glBegin = (PFNGLBEGINPROC) load(userptr, "glBegin");
4995 glad_glBitmap = (PFNGLBITMAPPROC) load(userptr, "glBitmap");
4996 glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc");
4997 glad_glCallList = (PFNGLCALLLISTPROC) load(userptr, "glCallList");
4998 glad_glCallLists = (PFNGLCALLLISTSPROC) load(userptr, "glCallLists");
4999 glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear");
5000 glad_glClearAccum = (PFNGLCLEARACCUMPROC) load(userptr, "glClearAccum");
5001 glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor");
5002 glad_glClearDepth = (PFNGLCLEARDEPTHPROC) load(userptr, "glClearDepth");
5003 glad_glClearIndex = (PFNGLCLEARINDEXPROC) load(userptr, "glClearIndex");
5004 glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil");
5005 glad_glClipPlane = (PFNGLCLIPPLANEPROC) load(userptr, "glClipPlane");
5006 glad_glColor3b = (PFNGLCOLOR3BPROC) load(userptr, "glColor3b");
5007 glad_glColor3bv = (PFNGLCOLOR3BVPROC) load(userptr, "glColor3bv");
5008 glad_glColor3d = (PFNGLCOLOR3DPROC) load(userptr, "glColor3d");
5009 glad_glColor3dv = (PFNGLCOLOR3DVPROC) load(userptr, "glColor3dv");
5010 glad_glColor3f = (PFNGLCOLOR3FPROC) load(userptr, "glColor3f");
5011 glad_glColor3fv = (PFNGLCOLOR3FVPROC) load(userptr, "glColor3fv");
5012 glad_glColor3i = (PFNGLCOLOR3IPROC) load(userptr, "glColor3i");
5013 glad_glColor3iv = (PFNGLCOLOR3IVPROC) load(userptr, "glColor3iv");
5014 glad_glColor3s = (PFNGLCOLOR3SPROC) load(userptr, "glColor3s");
5015 glad_glColor3sv = (PFNGLCOLOR3SVPROC) load(userptr, "glColor3sv");
5016 glad_glColor3ub = (PFNGLCOLOR3UBPROC) load(userptr, "glColor3ub");
5017 glad_glColor3ubv = (PFNGLCOLOR3UBVPROC) load(userptr, "glColor3ubv");
5018 glad_glColor3ui = (PFNGLCOLOR3UIPROC) load(userptr, "glColor3ui");
5019 glad_glColor3uiv = (PFNGLCOLOR3UIVPROC) load(userptr, "glColor3uiv");
5020 glad_glColor3us = (PFNGLCOLOR3USPROC) load(userptr, "glColor3us");
5021 glad_glColor3usv = (PFNGLCOLOR3USVPROC) load(userptr, "glColor3usv");
5022 glad_glColor4b = (PFNGLCOLOR4BPROC) load(userptr, "glColor4b");
5023 glad_glColor4bv = (PFNGLCOLOR4BVPROC) load(userptr, "glColor4bv");
5024 glad_glColor4d = (PFNGLCOLOR4DPROC) load(userptr, "glColor4d");
5025 glad_glColor4dv = (PFNGLCOLOR4DVPROC) load(userptr, "glColor4dv");
5026 glad_glColor4f = (PFNGLCOLOR4FPROC) load(userptr, "glColor4f");
5027 glad_glColor4fv = (PFNGLCOLOR4FVPROC) load(userptr, "glColor4fv");
5028 glad_glColor4i = (PFNGLCOLOR4IPROC) load(userptr, "glColor4i");
5029 glad_glColor4iv = (PFNGLCOLOR4IVPROC) load(userptr, "glColor4iv");
5030 glad_glColor4s = (PFNGLCOLOR4SPROC) load(userptr, "glColor4s");
5031 glad_glColor4sv = (PFNGLCOLOR4SVPROC) load(userptr, "glColor4sv");
5032 glad_glColor4ub = (PFNGLCOLOR4UBPROC) load(userptr, "glColor4ub");
5033 glad_glColor4ubv = (PFNGLCOLOR4UBVPROC) load(userptr, "glColor4ubv");
5034 glad_glColor4ui = (PFNGLCOLOR4UIPROC) load(userptr, "glColor4ui");
5035 glad_glColor4uiv = (PFNGLCOLOR4UIVPROC) load(userptr, "glColor4uiv");
5036 glad_glColor4us = (PFNGLCOLOR4USPROC) load(userptr, "glColor4us");
5037 glad_glColor4usv = (PFNGLCOLOR4USVPROC) load(userptr, "glColor4usv");
5038 glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask");
5039 glad_glColorMaterial = (PFNGLCOLORMATERIALPROC) load(userptr, "glColorMaterial");
5040 glad_glCopyPixels = (PFNGLCOPYPIXELSPROC) load(userptr, "glCopyPixels");
5041 glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace");
5042 glad_glDeleteLists = (PFNGLDELETELISTSPROC) load(userptr, "glDeleteLists");
5043 glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc");
5044 glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask");
5045 glad_glDepthRange = (PFNGLDEPTHRANGEPROC) load(userptr, "glDepthRange");
5046 glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable");
5047 glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC) load(userptr, "glDrawBuffer");
5048 glad_glDrawPixels = (PFNGLDRAWPIXELSPROC) load(userptr, "glDrawPixels");
5049 glad_glEdgeFlag = (PFNGLEDGEFLAGPROC) load(userptr, "glEdgeFlag");
5050 glad_glEdgeFlagv = (PFNGLEDGEFLAGVPROC) load(userptr, "glEdgeFlagv");
5051 glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable");
5052 glad_glEnd = (PFNGLENDPROC) load(userptr, "glEnd");
5053 glad_glEndList = (PFNGLENDLISTPROC) load(userptr, "glEndList");
5054 glad_glEvalCoord1d = (PFNGLEVALCOORD1DPROC) load(userptr, "glEvalCoord1d");
5055 glad_glEvalCoord1dv = (PFNGLEVALCOORD1DVPROC) load(userptr, "glEvalCoord1dv");
5056 glad_glEvalCoord1f = (PFNGLEVALCOORD1FPROC) load(userptr, "glEvalCoord1f");
5057 glad_glEvalCoord1fv = (PFNGLEVALCOORD1FVPROC) load(userptr, "glEvalCoord1fv");
5058 glad_glEvalCoord2d = (PFNGLEVALCOORD2DPROC) load(userptr, "glEvalCoord2d");
5059 glad_glEvalCoord2dv = (PFNGLEVALCOORD2DVPROC) load(userptr, "glEvalCoord2dv");
5060 glad_glEvalCoord2f = (PFNGLEVALCOORD2FPROC) load(userptr, "glEvalCoord2f");
5061 glad_glEvalCoord2fv = (PFNGLEVALCOORD2FVPROC) load(userptr, "glEvalCoord2fv");
5062 glad_glEvalMesh1 = (PFNGLEVALMESH1PROC) load(userptr, "glEvalMesh1");
5063 glad_glEvalMesh2 = (PFNGLEVALMESH2PROC) load(userptr, "glEvalMesh2");
5064 glad_glEvalPoint1 = (PFNGLEVALPOINT1PROC) load(userptr, "glEvalPoint1");
5065 glad_glEvalPoint2 = (PFNGLEVALPOINT2PROC) load(userptr, "glEvalPoint2");
5066 glad_glFeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC) load(userptr, "glFeedbackBuffer");
5067 glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish");
5068 glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush");
5069 glad_glFogf = (PFNGLFOGFPROC) load(userptr, "glFogf");
5070 glad_glFogfv = (PFNGLFOGFVPROC) load(userptr, "glFogfv");
5071 glad_glFogi = (PFNGLFOGIPROC) load(userptr, "glFogi");
5072 glad_glFogiv = (PFNGLFOGIVPROC) load(userptr, "glFogiv");
5073 glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace");
5074 glad_glFrustum = (PFNGLFRUSTUMPROC) load(userptr, "glFrustum");
5075 glad_glGenLists = (PFNGLGENLISTSPROC) load(userptr, "glGenLists");
5076 glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv");
5077 glad_glGetClipPlane = (PFNGLGETCLIPPLANEPROC) load(userptr, "glGetClipPlane");
5078 glad_glGetDoublev = (PFNGLGETDOUBLEVPROC) load(userptr, "glGetDoublev");
5079 glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError");
5080 glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv");
5081 glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv");
5082 glad_glGetLightfv = (PFNGLGETLIGHTFVPROC) load(userptr, "glGetLightfv");
5083 glad_glGetLightiv = (PFNGLGETLIGHTIVPROC) load(userptr, "glGetLightiv");
5084 glad_glGetMapdv = (PFNGLGETMAPDVPROC) load(userptr, "glGetMapdv");
5085 glad_glGetMapfv = (PFNGLGETMAPFVPROC) load(userptr, "glGetMapfv");
5086 glad_glGetMapiv = (PFNGLGETMAPIVPROC) load(userptr, "glGetMapiv");
5087 glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC) load(userptr, "glGetMaterialfv");
5088 glad_glGetMaterialiv = (PFNGLGETMATERIALIVPROC) load(userptr, "glGetMaterialiv");
5089 glad_glGetPixelMapfv = (PFNGLGETPIXELMAPFVPROC) load(userptr, "glGetPixelMapfv");
5090 glad_glGetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC) load(userptr, "glGetPixelMapuiv");
5091 glad_glGetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC) load(userptr, "glGetPixelMapusv");
5092 glad_glGetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC) load(userptr, "glGetPolygonStipple");
5093 glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
5094 glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC) load(userptr, "glGetTexEnvfv");
5095 glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC) load(userptr, "glGetTexEnviv");
5096 glad_glGetTexGendv = (PFNGLGETTEXGENDVPROC) load(userptr, "glGetTexGendv");
5097 glad_glGetTexGenfv = (PFNGLGETTEXGENFVPROC) load(userptr, "glGetTexGenfv");
5098 glad_glGetTexGeniv = (PFNGLGETTEXGENIVPROC) load(userptr, "glGetTexGeniv");
5099 glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC) load(userptr, "glGetTexImage");
5100 glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC) load(userptr, "glGetTexLevelParameterfv");
5101 glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC) load(userptr, "glGetTexLevelParameteriv");
5102 glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv");
5103 glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv");
5104 glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint");
5105 glad_glIndexMask = (PFNGLINDEXMASKPROC) load(userptr, "glIndexMask");
5106 glad_glIndexd = (PFNGLINDEXDPROC) load(userptr, "glIndexd");
5107 glad_glIndexdv = (PFNGLINDEXDVPROC) load(userptr, "glIndexdv");
5108 glad_glIndexf = (PFNGLINDEXFPROC) load(userptr, "glIndexf");
5109 glad_glIndexfv = (PFNGLINDEXFVPROC) load(userptr, "glIndexfv");
5110 glad_glIndexi = (PFNGLINDEXIPROC) load(userptr, "glIndexi");
5111 glad_glIndexiv = (PFNGLINDEXIVPROC) load(userptr, "glIndexiv");
5112 glad_glIndexs = (PFNGLINDEXSPROC) load(userptr, "glIndexs");
5113 glad_glIndexsv = (PFNGLINDEXSVPROC) load(userptr, "glIndexsv");
5114 glad_glInitNames = (PFNGLINITNAMESPROC) load(userptr, "glInitNames");
5115 glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled");
5116 glad_glIsList = (PFNGLISLISTPROC) load(userptr, "glIsList");
5117 glad_glLightModelf = (PFNGLLIGHTMODELFPROC) load(userptr, "glLightModelf");
5118 glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC) load(userptr, "glLightModelfv");
5119 glad_glLightModeli = (PFNGLLIGHTMODELIPROC) load(userptr, "glLightModeli");
5120 glad_glLightModeliv = (PFNGLLIGHTMODELIVPROC) load(userptr, "glLightModeliv");
5121 glad_glLightf = (PFNGLLIGHTFPROC) load(userptr, "glLightf");
5122 glad_glLightfv = (PFNGLLIGHTFVPROC) load(userptr, "glLightfv");
5123 glad_glLighti = (PFNGLLIGHTIPROC) load(userptr, "glLighti");
5124 glad_glLightiv = (PFNGLLIGHTIVPROC) load(userptr, "glLightiv");
5125 glad_glLineStipple = (PFNGLLINESTIPPLEPROC) load(userptr, "glLineStipple");
5126 glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth");
5127 glad_glListBase = (PFNGLLISTBASEPROC) load(userptr, "glListBase");
5128 glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC) load(userptr, "glLoadIdentity");
5129 glad_glLoadMatrixd = (PFNGLLOADMATRIXDPROC) load(userptr, "glLoadMatrixd");
5130 glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC) load(userptr, "glLoadMatrixf");
5131 glad_glLoadName = (PFNGLLOADNAMEPROC) load(userptr, "glLoadName");
5132 glad_glLogicOp = (PFNGLLOGICOPPROC) load(userptr, "glLogicOp");
5133 glad_glMap1d = (PFNGLMAP1DPROC) load(userptr, "glMap1d");
5134 glad_glMap1f = (PFNGLMAP1FPROC) load(userptr, "glMap1f");
5135 glad_glMap2d = (PFNGLMAP2DPROC) load(userptr, "glMap2d");
5136 glad_glMap2f = (PFNGLMAP2FPROC) load(userptr, "glMap2f");
5137 glad_glMapGrid1d = (PFNGLMAPGRID1DPROC) load(userptr, "glMapGrid1d");
5138 glad_glMapGrid1f = (PFNGLMAPGRID1FPROC) load(userptr, "glMapGrid1f");
5139 glad_glMapGrid2d = (PFNGLMAPGRID2DPROC) load(userptr, "glMapGrid2d");
5140 glad_glMapGrid2f = (PFNGLMAPGRID2FPROC) load(userptr, "glMapGrid2f");
5141 glad_glMaterialf = (PFNGLMATERIALFPROC) load(userptr, "glMaterialf");
5142 glad_glMaterialfv = (PFNGLMATERIALFVPROC) load(userptr, "glMaterialfv");
5143 glad_glMateriali = (PFNGLMATERIALIPROC) load(userptr, "glMateriali");
5144 glad_glMaterialiv = (PFNGLMATERIALIVPROC) load(userptr, "glMaterialiv");
5145 glad_glMatrixMode = (PFNGLMATRIXMODEPROC) load(userptr, "glMatrixMode");
5146 glad_glMultMatrixd = (PFNGLMULTMATRIXDPROC) load(userptr, "glMultMatrixd");
5147 glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC) load(userptr, "glMultMatrixf");
5148 glad_glNewList = (PFNGLNEWLISTPROC) load(userptr, "glNewList");
5149 glad_glNormal3b = (PFNGLNORMAL3BPROC) load(userptr, "glNormal3b");
5150 glad_glNormal3bv = (PFNGLNORMAL3BVPROC) load(userptr, "glNormal3bv");
5151 glad_glNormal3d = (PFNGLNORMAL3DPROC) load(userptr, "glNormal3d");
5152 glad_glNormal3dv = (PFNGLNORMAL3DVPROC) load(userptr, "glNormal3dv");
5153 glad_glNormal3f = (PFNGLNORMAL3FPROC) load(userptr, "glNormal3f");
5154 glad_glNormal3fv = (PFNGLNORMAL3FVPROC) load(userptr, "glNormal3fv");
5155 glad_glNormal3i = (PFNGLNORMAL3IPROC) load(userptr, "glNormal3i");
5156 glad_glNormal3iv = (PFNGLNORMAL3IVPROC) load(userptr, "glNormal3iv");
5157 glad_glNormal3s = (PFNGLNORMAL3SPROC) load(userptr, "glNormal3s");
5158 glad_glNormal3sv = (PFNGLNORMAL3SVPROC) load(userptr, "glNormal3sv");
5159 glad_glOrtho = (PFNGLORTHOPROC) load(userptr, "glOrtho");
5160 glad_glPassThrough = (PFNGLPASSTHROUGHPROC) load(userptr, "glPassThrough");
5161 glad_glPixelMapfv = (PFNGLPIXELMAPFVPROC) load(userptr, "glPixelMapfv");
5162 glad_glPixelMapuiv = (PFNGLPIXELMAPUIVPROC) load(userptr, "glPixelMapuiv");
5163 glad_glPixelMapusv = (PFNGLPIXELMAPUSVPROC) load(userptr, "glPixelMapusv");
5164 glad_glPixelStoref = (PFNGLPIXELSTOREFPROC) load(userptr, "glPixelStoref");
5165 glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei");
5166 glad_glPixelTransferf = (PFNGLPIXELTRANSFERFPROC) load(userptr, "glPixelTransferf");
5167 glad_glPixelTransferi = (PFNGLPIXELTRANSFERIPROC) load(userptr, "glPixelTransferi");
5168 glad_glPixelZoom = (PFNGLPIXELZOOMPROC) load(userptr, "glPixelZoom");
5169 glad_glPointSize = (PFNGLPOINTSIZEPROC) load(userptr, "glPointSize");
5170 glad_glPolygonMode = (PFNGLPOLYGONMODEPROC) load(userptr, "glPolygonMode");
5171 glad_glPolygonStipple = (PFNGLPOLYGONSTIPPLEPROC) load(userptr, "glPolygonStipple");
5172 glad_glPopAttrib = (PFNGLPOPATTRIBPROC) load(userptr, "glPopAttrib");
5173 glad_glPopMatrix = (PFNGLPOPMATRIXPROC) load(userptr, "glPopMatrix");
5174 glad_glPopName = (PFNGLPOPNAMEPROC) load(userptr, "glPopName");
5175 glad_glPushAttrib = (PFNGLPUSHATTRIBPROC) load(userptr, "glPushAttrib");
5176 glad_glPushMatrix = (PFNGLPUSHMATRIXPROC) load(userptr, "glPushMatrix");
5177 glad_glPushName = (PFNGLPUSHNAMEPROC) load(userptr, "glPushName");
5178 glad_glRasterPos2d = (PFNGLRASTERPOS2DPROC) load(userptr, "glRasterPos2d");
5179 glad_glRasterPos2dv = (PFNGLRASTERPOS2DVPROC) load(userptr, "glRasterPos2dv");
5180 glad_glRasterPos2f = (PFNGLRASTERPOS2FPROC) load(userptr, "glRasterPos2f");
5181 glad_glRasterPos2fv = (PFNGLRASTERPOS2FVPROC) load(userptr, "glRasterPos2fv");
5182 glad_glRasterPos2i = (PFNGLRASTERPOS2IPROC) load(userptr, "glRasterPos2i");
5183 glad_glRasterPos2iv = (PFNGLRASTERPOS2IVPROC) load(userptr, "glRasterPos2iv");
5184 glad_glRasterPos2s = (PFNGLRASTERPOS2SPROC) load(userptr, "glRasterPos2s");
5185 glad_glRasterPos2sv = (PFNGLRASTERPOS2SVPROC) load(userptr, "glRasterPos2sv");
5186 glad_glRasterPos3d = (PFNGLRASTERPOS3DPROC) load(userptr, "glRasterPos3d");
5187 glad_glRasterPos3dv = (PFNGLRASTERPOS3DVPROC) load(userptr, "glRasterPos3dv");
5188 glad_glRasterPos3f = (PFNGLRASTERPOS3FPROC) load(userptr, "glRasterPos3f");
5189 glad_glRasterPos3fv = (PFNGLRASTERPOS3FVPROC) load(userptr, "glRasterPos3fv");
5190 glad_glRasterPos3i = (PFNGLRASTERPOS3IPROC) load(userptr, "glRasterPos3i");
5191 glad_glRasterPos3iv = (PFNGLRASTERPOS3IVPROC) load(userptr, "glRasterPos3iv");
5192 glad_glRasterPos3s = (PFNGLRASTERPOS3SPROC) load(userptr, "glRasterPos3s");
5193 glad_glRasterPos3sv = (PFNGLRASTERPOS3SVPROC) load(userptr, "glRasterPos3sv");
5194 glad_glRasterPos4d = (PFNGLRASTERPOS4DPROC) load(userptr, "glRasterPos4d");
5195 glad_glRasterPos4dv = (PFNGLRASTERPOS4DVPROC) load(userptr, "glRasterPos4dv");
5196 glad_glRasterPos4f = (PFNGLRASTERPOS4FPROC) load(userptr, "glRasterPos4f");
5197 glad_glRasterPos4fv = (PFNGLRASTERPOS4FVPROC) load(userptr, "glRasterPos4fv");
5198 glad_glRasterPos4i = (PFNGLRASTERPOS4IPROC) load(userptr, "glRasterPos4i");
5199 glad_glRasterPos4iv = (PFNGLRASTERPOS4IVPROC) load(userptr, "glRasterPos4iv");
5200 glad_glRasterPos4s = (PFNGLRASTERPOS4SPROC) load(userptr, "glRasterPos4s");
5201 glad_glRasterPos4sv = (PFNGLRASTERPOS4SVPROC) load(userptr, "glRasterPos4sv");
5202 glad_glReadBuffer = (PFNGLREADBUFFERPROC) load(userptr, "glReadBuffer");
5203 glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels");
5204 glad_glRectd = (PFNGLRECTDPROC) load(userptr, "glRectd");
5205 glad_glRectdv = (PFNGLRECTDVPROC) load(userptr, "glRectdv");
5206 glad_glRectf = (PFNGLRECTFPROC) load(userptr, "glRectf");
5207 glad_glRectfv = (PFNGLRECTFVPROC) load(userptr, "glRectfv");
5208 glad_glRecti = (PFNGLRECTIPROC) load(userptr, "glRecti");
5209 glad_glRectiv = (PFNGLRECTIVPROC) load(userptr, "glRectiv");
5210 glad_glRects = (PFNGLRECTSPROC) load(userptr, "glRects");
5211 glad_glRectsv = (PFNGLRECTSVPROC) load(userptr, "glRectsv");
5212 glad_glRenderMode = (PFNGLRENDERMODEPROC) load(userptr, "glRenderMode");
5213 glad_glRotated = (PFNGLROTATEDPROC) load(userptr, "glRotated");
5214 glad_glRotatef = (PFNGLROTATEFPROC) load(userptr, "glRotatef");
5215 glad_glScaled = (PFNGLSCALEDPROC) load(userptr, "glScaled");
5216 glad_glScalef = (PFNGLSCALEFPROC) load(userptr, "glScalef");
5217 glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor");
5218 glad_glSelectBuffer = (PFNGLSELECTBUFFERPROC) load(userptr, "glSelectBuffer");
5219 glad_glShadeModel = (PFNGLSHADEMODELPROC) load(userptr, "glShadeModel");
5220 glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc");
5221 glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask");
5222 glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp");
5223 glad_glTexCoord1d = (PFNGLTEXCOORD1DPROC) load(userptr, "glTexCoord1d");
5224 glad_glTexCoord1dv = (PFNGLTEXCOORD1DVPROC) load(userptr, "glTexCoord1dv");
5225 glad_glTexCoord1f = (PFNGLTEXCOORD1FPROC) load(userptr, "glTexCoord1f");
5226 glad_glTexCoord1fv = (PFNGLTEXCOORD1FVPROC) load(userptr, "glTexCoord1fv");
5227 glad_glTexCoord1i = (PFNGLTEXCOORD1IPROC) load(userptr, "glTexCoord1i");
5228 glad_glTexCoord1iv = (PFNGLTEXCOORD1IVPROC) load(userptr, "glTexCoord1iv");
5229 glad_glTexCoord1s = (PFNGLTEXCOORD1SPROC) load(userptr, "glTexCoord1s");
5230 glad_glTexCoord1sv = (PFNGLTEXCOORD1SVPROC) load(userptr, "glTexCoord1sv");
5231 glad_glTexCoord2d = (PFNGLTEXCOORD2DPROC) load(userptr, "glTexCoord2d");
5232 glad_glTexCoord2dv = (PFNGLTEXCOORD2DVPROC) load(userptr, "glTexCoord2dv");
5233 glad_glTexCoord2f = (PFNGLTEXCOORD2FPROC) load(userptr, "glTexCoord2f");
5234 glad_glTexCoord2fv = (PFNGLTEXCOORD2FVPROC) load(userptr, "glTexCoord2fv");
5235 glad_glTexCoord2i = (PFNGLTEXCOORD2IPROC) load(userptr, "glTexCoord2i");
5236 glad_glTexCoord2iv = (PFNGLTEXCOORD2IVPROC) load(userptr, "glTexCoord2iv");
5237 glad_glTexCoord2s = (PFNGLTEXCOORD2SPROC) load(userptr, "glTexCoord2s");
5238 glad_glTexCoord2sv = (PFNGLTEXCOORD2SVPROC) load(userptr, "glTexCoord2sv");
5239 glad_glTexCoord3d = (PFNGLTEXCOORD3DPROC) load(userptr, "glTexCoord3d");
5240 glad_glTexCoord3dv = (PFNGLTEXCOORD3DVPROC) load(userptr, "glTexCoord3dv");
5241 glad_glTexCoord3f = (PFNGLTEXCOORD3FPROC) load(userptr, "glTexCoord3f");
5242 glad_glTexCoord3fv = (PFNGLTEXCOORD3FVPROC) load(userptr, "glTexCoord3fv");
5243 glad_glTexCoord3i = (PFNGLTEXCOORD3IPROC) load(userptr, "glTexCoord3i");
5244 glad_glTexCoord3iv = (PFNGLTEXCOORD3IVPROC) load(userptr, "glTexCoord3iv");
5245 glad_glTexCoord3s = (PFNGLTEXCOORD3SPROC) load(userptr, "glTexCoord3s");
5246 glad_glTexCoord3sv = (PFNGLTEXCOORD3SVPROC) load(userptr, "glTexCoord3sv");
5247 glad_glTexCoord4d = (PFNGLTEXCOORD4DPROC) load(userptr, "glTexCoord4d");
5248 glad_glTexCoord4dv = (PFNGLTEXCOORD4DVPROC) load(userptr, "glTexCoord4dv");
5249 glad_glTexCoord4f = (PFNGLTEXCOORD4FPROC) load(userptr, "glTexCoord4f");
5250 glad_glTexCoord4fv = (PFNGLTEXCOORD4FVPROC) load(userptr, "glTexCoord4fv");
5251 glad_glTexCoord4i = (PFNGLTEXCOORD4IPROC) load(userptr, "glTexCoord4i");
5252 glad_glTexCoord4iv = (PFNGLTEXCOORD4IVPROC) load(userptr, "glTexCoord4iv");
5253 glad_glTexCoord4s = (PFNGLTEXCOORD4SPROC) load(userptr, "glTexCoord4s");
5254 glad_glTexCoord4sv = (PFNGLTEXCOORD4SVPROC) load(userptr, "glTexCoord4sv");
5255 glad_glTexEnvf = (PFNGLTEXENVFPROC) load(userptr, "glTexEnvf");
5256 glad_glTexEnvfv = (PFNGLTEXENVFVPROC) load(userptr, "glTexEnvfv");
5257 glad_glTexEnvi = (PFNGLTEXENVIPROC) load(userptr, "glTexEnvi");
5258 glad_glTexEnviv = (PFNGLTEXENVIVPROC) load(userptr, "glTexEnviv");
5259 glad_glTexGend = (PFNGLTEXGENDPROC) load(userptr, "glTexGend");
5260 glad_glTexGendv = (PFNGLTEXGENDVPROC) load(userptr, "glTexGendv");
5261 glad_glTexGenf = (PFNGLTEXGENFPROC) load(userptr, "glTexGenf");
5262 glad_glTexGenfv = (PFNGLTEXGENFVPROC) load(userptr, "glTexGenfv");
5263 glad_glTexGeni = (PFNGLTEXGENIPROC) load(userptr, "glTexGeni");
5264 glad_glTexGeniv = (PFNGLTEXGENIVPROC) load(userptr, "glTexGeniv");
5265 glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC) load(userptr, "glTexImage1D");
5266 glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D");
5267 glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf");
5268 glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv");
5269 glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri");
5270 glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv");
5271 glad_glTranslated = (PFNGLTRANSLATEDPROC) load(userptr, "glTranslated");
5272 glad_glTranslatef = (PFNGLTRANSLATEFPROC) load(userptr, "glTranslatef");
5273 glad_glVertex2d = (PFNGLVERTEX2DPROC) load(userptr, "glVertex2d");
5274 glad_glVertex2dv = (PFNGLVERTEX2DVPROC) load(userptr, "glVertex2dv");
5275 glad_glVertex2f = (PFNGLVERTEX2FPROC) load(userptr, "glVertex2f");
5276 glad_glVertex2fv = (PFNGLVERTEX2FVPROC) load(userptr, "glVertex2fv");
5277 glad_glVertex2i = (PFNGLVERTEX2IPROC) load(userptr, "glVertex2i");
5278 glad_glVertex2iv = (PFNGLVERTEX2IVPROC) load(userptr, "glVertex2iv");
5279 glad_glVertex2s = (PFNGLVERTEX2SPROC) load(userptr, "glVertex2s");
5280 glad_glVertex2sv = (PFNGLVERTEX2SVPROC) load(userptr, "glVertex2sv");
5281 glad_glVertex3d = (PFNGLVERTEX3DPROC) load(userptr, "glVertex3d");
5282 glad_glVertex3dv = (PFNGLVERTEX3DVPROC) load(userptr, "glVertex3dv");
5283 glad_glVertex3f = (PFNGLVERTEX3FPROC) load(userptr, "glVertex3f");
5284 glad_glVertex3fv = (PFNGLVERTEX3FVPROC) load(userptr, "glVertex3fv");
5285 glad_glVertex3i = (PFNGLVERTEX3IPROC) load(userptr, "glVertex3i");
5286 glad_glVertex3iv = (PFNGLVERTEX3IVPROC) load(userptr, "glVertex3iv");
5287 glad_glVertex3s = (PFNGLVERTEX3SPROC) load(userptr, "glVertex3s");
5288 glad_glVertex3sv = (PFNGLVERTEX3SVPROC) load(userptr, "glVertex3sv");
5289 glad_glVertex4d = (PFNGLVERTEX4DPROC) load(userptr, "glVertex4d");
5290 glad_glVertex4dv = (PFNGLVERTEX4DVPROC) load(userptr, "glVertex4dv");
5291 glad_glVertex4f = (PFNGLVERTEX4FPROC) load(userptr, "glVertex4f");
5292 glad_glVertex4fv = (PFNGLVERTEX4FVPROC) load(userptr, "glVertex4fv");
5293 glad_glVertex4i = (PFNGLVERTEX4IPROC) load(userptr, "glVertex4i");
5294 glad_glVertex4iv = (PFNGLVERTEX4IVPROC) load(userptr, "glVertex4iv");
5295 glad_glVertex4s = (PFNGLVERTEX4SPROC) load(userptr, "glVertex4s");
5296 glad_glVertex4sv = (PFNGLVERTEX4SVPROC) load(userptr, "glVertex4sv");
5297 glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport");
5298}
5299static void glad_gl_load_GL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
5300 if(!GLAD_GL_VERSION_1_1) return;
5301 glad_glAreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC) load(userptr, "glAreTexturesResident");
5302 glad_glArrayElement = (PFNGLARRAYELEMENTPROC) load(userptr, "glArrayElement");
5303 glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture");
5304 glad_glColorPointer = (PFNGLCOLORPOINTERPROC) load(userptr, "glColorPointer");
5305 glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC) load(userptr, "glCopyTexImage1D");
5306 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D");
5307 glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC) load(userptr, "glCopyTexSubImage1D");
5308 glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D");
5309 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures");
5310 glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC) load(userptr, "glDisableClientState");
5311 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays");
5312 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements");
5313 glad_glEdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC) load(userptr, "glEdgeFlagPointer");
5314 glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC) load(userptr, "glEnableClientState");
5315 glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures");
5316 glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv");
5317 glad_glIndexPointer = (PFNGLINDEXPOINTERPROC) load(userptr, "glIndexPointer");
5318 glad_glIndexub = (PFNGLINDEXUBPROC) load(userptr, "glIndexub");
5319 glad_glIndexubv = (PFNGLINDEXUBVPROC) load(userptr, "glIndexubv");
5320 glad_glInterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC) load(userptr, "glInterleavedArrays");
5321 glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture");
5322 glad_glNormalPointer = (PFNGLNORMALPOINTERPROC) load(userptr, "glNormalPointer");
5323 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset");
5324 glad_glPopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC) load(userptr, "glPopClientAttrib");
5325 glad_glPrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC) load(userptr, "glPrioritizeTextures");
5326 glad_glPushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC) load(userptr, "glPushClientAttrib");
5327 glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC) load(userptr, "glTexCoordPointer");
5328 glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC) load(userptr, "glTexSubImage1D");
5329 glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D");
5330 glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC) load(userptr, "glVertexPointer");
5331}
5332static void glad_gl_load_GL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
5333 if(!GLAD_GL_VERSION_1_2) return;
5334 glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) load(userptr, "glCopyTexSubImage3D");
5335 glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) load(userptr, "glDrawRangeElements");
5336 glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC) load(userptr, "glTexImage3D");
5337 glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) load(userptr, "glTexSubImage3D");
5338}
5339static void glad_gl_load_GL_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) {
5340 if(!GLAD_GL_VERSION_1_3) return;
5341 glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture");
5342 glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC) load(userptr, "glClientActiveTexture");
5343 glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC) load(userptr, "glCompressedTexImage1D");
5344 glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D");
5345 glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) load(userptr, "glCompressedTexImage3D");
5346 glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) load(userptr, "glCompressedTexSubImage1D");
5347 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D");
5348 glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) load(userptr, "glCompressedTexSubImage3D");
5349 glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetCompressedTexImage");
5350 glad_glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC) load(userptr, "glLoadTransposeMatrixd");
5351 glad_glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC) load(userptr, "glLoadTransposeMatrixf");
5352 glad_glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC) load(userptr, "glMultTransposeMatrixd");
5353 glad_glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC) load(userptr, "glMultTransposeMatrixf");
5354 glad_glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC) load(userptr, "glMultiTexCoord1d");
5355 glad_glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC) load(userptr, "glMultiTexCoord1dv");
5356 glad_glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC) load(userptr, "glMultiTexCoord1f");
5357 glad_glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC) load(userptr, "glMultiTexCoord1fv");
5358 glad_glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC) load(userptr, "glMultiTexCoord1i");
5359 glad_glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC) load(userptr, "glMultiTexCoord1iv");
5360 glad_glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC) load(userptr, "glMultiTexCoord1s");
5361 glad_glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC) load(userptr, "glMultiTexCoord1sv");
5362 glad_glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC) load(userptr, "glMultiTexCoord2d");
5363 glad_glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC) load(userptr, "glMultiTexCoord2dv");
5364 glad_glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC) load(userptr, "glMultiTexCoord2f");
5365 glad_glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC) load(userptr, "glMultiTexCoord2fv");
5366 glad_glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC) load(userptr, "glMultiTexCoord2i");
5367 glad_glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC) load(userptr, "glMultiTexCoord2iv");
5368 glad_glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC) load(userptr, "glMultiTexCoord2s");
5369 glad_glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC) load(userptr, "glMultiTexCoord2sv");
5370 glad_glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC) load(userptr, "glMultiTexCoord3d");
5371 glad_glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC) load(userptr, "glMultiTexCoord3dv");
5372 glad_glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC) load(userptr, "glMultiTexCoord3f");
5373 glad_glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC) load(userptr, "glMultiTexCoord3fv");
5374 glad_glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC) load(userptr, "glMultiTexCoord3i");
5375 glad_glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC) load(userptr, "glMultiTexCoord3iv");
5376 glad_glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC) load(userptr, "glMultiTexCoord3s");
5377 glad_glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC) load(userptr, "glMultiTexCoord3sv");
5378 glad_glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC) load(userptr, "glMultiTexCoord4d");
5379 glad_glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC) load(userptr, "glMultiTexCoord4dv");
5380 glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC) load(userptr, "glMultiTexCoord4f");
5381 glad_glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC) load(userptr, "glMultiTexCoord4fv");
5382 glad_glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC) load(userptr, "glMultiTexCoord4i");
5383 glad_glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC) load(userptr, "glMultiTexCoord4iv");
5384 glad_glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC) load(userptr, "glMultiTexCoord4s");
5385 glad_glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC) load(userptr, "glMultiTexCoord4sv");
5386 glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage");
5387}
5388static void glad_gl_load_GL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) {
5389 if(!GLAD_GL_VERSION_1_4) return;
5390 glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor");
5391 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation");
5392 glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate");
5393 glad_glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC) load(userptr, "glFogCoordPointer");
5394 glad_glFogCoordd = (PFNGLFOGCOORDDPROC) load(userptr, "glFogCoordd");
5395 glad_glFogCoorddv = (PFNGLFOGCOORDDVPROC) load(userptr, "glFogCoorddv");
5396 glad_glFogCoordf = (PFNGLFOGCOORDFPROC) load(userptr, "glFogCoordf");
5397 glad_glFogCoordfv = (PFNGLFOGCOORDFVPROC) load(userptr, "glFogCoordfv");
5398 glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC) load(userptr, "glMultiDrawArrays");
5399 glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC) load(userptr, "glMultiDrawElements");
5400 glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC) load(userptr, "glPointParameterf");
5401 glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC) load(userptr, "glPointParameterfv");
5402 glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC) load(userptr, "glPointParameteri");
5403 glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC) load(userptr, "glPointParameteriv");
5404 glad_glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC) load(userptr, "glSecondaryColor3b");
5405 glad_glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC) load(userptr, "glSecondaryColor3bv");
5406 glad_glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC) load(userptr, "glSecondaryColor3d");
5407 glad_glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC) load(userptr, "glSecondaryColor3dv");
5408 glad_glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC) load(userptr, "glSecondaryColor3f");
5409 glad_glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC) load(userptr, "glSecondaryColor3fv");
5410 glad_glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC) load(userptr, "glSecondaryColor3i");
5411 glad_glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC) load(userptr, "glSecondaryColor3iv");
5412 glad_glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC) load(userptr, "glSecondaryColor3s");
5413 glad_glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC) load(userptr, "glSecondaryColor3sv");
5414 glad_glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC) load(userptr, "glSecondaryColor3ub");
5415 glad_glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC) load(userptr, "glSecondaryColor3ubv");
5416 glad_glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC) load(userptr, "glSecondaryColor3ui");
5417 glad_glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC) load(userptr, "glSecondaryColor3uiv");
5418 glad_glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC) load(userptr, "glSecondaryColor3us");
5419 glad_glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC) load(userptr, "glSecondaryColor3usv");
5420 glad_glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC) load(userptr, "glSecondaryColorPointer");
5421 glad_glWindowPos2d = (PFNGLWINDOWPOS2DPROC) load(userptr, "glWindowPos2d");
5422 glad_glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC) load(userptr, "glWindowPos2dv");
5423 glad_glWindowPos2f = (PFNGLWINDOWPOS2FPROC) load(userptr, "glWindowPos2f");
5424 glad_glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC) load(userptr, "glWindowPos2fv");
5425 glad_glWindowPos2i = (PFNGLWINDOWPOS2IPROC) load(userptr, "glWindowPos2i");
5426 glad_glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC) load(userptr, "glWindowPos2iv");
5427 glad_glWindowPos2s = (PFNGLWINDOWPOS2SPROC) load(userptr, "glWindowPos2s");
5428 glad_glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC) load(userptr, "glWindowPos2sv");
5429 glad_glWindowPos3d = (PFNGLWINDOWPOS3DPROC) load(userptr, "glWindowPos3d");
5430 glad_glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC) load(userptr, "glWindowPos3dv");
5431 glad_glWindowPos3f = (PFNGLWINDOWPOS3FPROC) load(userptr, "glWindowPos3f");
5432 glad_glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC) load(userptr, "glWindowPos3fv");
5433 glad_glWindowPos3i = (PFNGLWINDOWPOS3IPROC) load(userptr, "glWindowPos3i");
5434 glad_glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC) load(userptr, "glWindowPos3iv");
5435 glad_glWindowPos3s = (PFNGLWINDOWPOS3SPROC) load(userptr, "glWindowPos3s");
5436 glad_glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC) load(userptr, "glWindowPos3sv");
5437}
5438static void glad_gl_load_GL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) {
5439 if(!GLAD_GL_VERSION_1_5) return;
5440 glad_glBeginQuery = (PFNGLBEGINQUERYPROC) load(userptr, "glBeginQuery");
5441 glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer");
5442 glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData");
5443 glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData");
5444 glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers");
5445 glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC) load(userptr, "glDeleteQueries");
5446 glad_glEndQuery = (PFNGLENDQUERYPROC) load(userptr, "glEndQuery");
5447 glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers");
5448 glad_glGenQueries = (PFNGLGENQUERIESPROC) load(userptr, "glGenQueries");
5449 glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv");
5450 glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) load(userptr, "glGetBufferPointerv");
5451 glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC) load(userptr, "glGetBufferSubData");
5452 glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC) load(userptr, "glGetQueryObjectiv");
5453 glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) load(userptr, "glGetQueryObjectuiv");
5454 glad_glGetQueryiv = (PFNGLGETQUERYIVPROC) load(userptr, "glGetQueryiv");
5455 glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer");
5456 glad_glIsQuery = (PFNGLISQUERYPROC) load(userptr, "glIsQuery");
5457 glad_glMapBuffer = (PFNGLMAPBUFFERPROC) load(userptr, "glMapBuffer");
5458 glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC) load(userptr, "glUnmapBuffer");
5459}
5460static void glad_gl_load_GL_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) {
5461 if(!GLAD_GL_VERSION_2_0) return;
5462 glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader");
5463 glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation");
5464 glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate");
5465 glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader");
5466 glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram");
5467 glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader");
5468 glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram");
5469 glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader");
5470 glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader");
5471 glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray");
5472 glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC) load(userptr, "glDrawBuffers");
5473 glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray");
5474 glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib");
5475 glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform");
5476 glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders");
5477 glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation");
5478 glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog");
5479 glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv");
5480 glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog");
5481 glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource");
5482 glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv");
5483 glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation");
5484 glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv");
5485 glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv");
5486 glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv");
5487 glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC) load(userptr, "glGetVertexAttribdv");
5488 glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv");
5489 glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv");
5490 glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram");
5491 glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader");
5492 glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram");
5493 glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource");
5494 glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate");
5495 glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate");
5496 glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate");
5497 glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f");
5498 glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv");
5499 glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i");
5500 glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv");
5501 glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f");
5502 glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv");
5503 glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i");
5504 glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv");
5505 glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f");
5506 glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv");
5507 glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i");
5508 glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv");
5509 glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f");
5510 glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv");
5511 glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i");
5512 glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv");
5513 glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv");
5514 glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv");
5515 glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv");
5516 glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram");
5517 glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram");
5518 glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC) load(userptr, "glVertexAttrib1d");
5519 glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC) load(userptr, "glVertexAttrib1dv");
5520 glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f");
5521 glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv");
5522 glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC) load(userptr, "glVertexAttrib1s");
5523 glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC) load(userptr, "glVertexAttrib1sv");
5524 glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC) load(userptr, "glVertexAttrib2d");
5525 glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC) load(userptr, "glVertexAttrib2dv");
5526 glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f");
5527 glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv");
5528 glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC) load(userptr, "glVertexAttrib2s");
5529 glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC) load(userptr, "glVertexAttrib2sv");
5530 glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC) load(userptr, "glVertexAttrib3d");
5531 glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC) load(userptr, "glVertexAttrib3dv");
5532 glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f");
5533 glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv");
5534 glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC) load(userptr, "glVertexAttrib3s");
5535 glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC) load(userptr, "glVertexAttrib3sv");
5536 glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC) load(userptr, "glVertexAttrib4Nbv");
5537 glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC) load(userptr, "glVertexAttrib4Niv");
5538 glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC) load(userptr, "glVertexAttrib4Nsv");
5539 glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC) load(userptr, "glVertexAttrib4Nub");
5540 glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC) load(userptr, "glVertexAttrib4Nubv");
5541 glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC) load(userptr, "glVertexAttrib4Nuiv");
5542 glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC) load(userptr, "glVertexAttrib4Nusv");
5543 glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC) load(userptr, "glVertexAttrib4bv");
5544 glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC) load(userptr, "glVertexAttrib4d");
5545 glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC) load(userptr, "glVertexAttrib4dv");
5546 glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f");
5547 glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv");
5548 glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC) load(userptr, "glVertexAttrib4iv");
5549 glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC) load(userptr, "glVertexAttrib4s");
5550 glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC) load(userptr, "glVertexAttrib4sv");
5551 glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC) load(userptr, "glVertexAttrib4ubv");
5552 glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC) load(userptr, "glVertexAttrib4uiv");
5553 glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC) load(userptr, "glVertexAttrib4usv");
5554 glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer");
5555}
5556static void glad_gl_load_GL_VERSION_2_1( GLADuserptrloadfunc load, void* userptr) {
5557 if(!GLAD_GL_VERSION_2_1) return;
5558 glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) load(userptr, "glUniformMatrix2x3fv");
5559 glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) load(userptr, "glUniformMatrix2x4fv");
5560 glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) load(userptr, "glUniformMatrix3x2fv");
5561 glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) load(userptr, "glUniformMatrix3x4fv");
5562 glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) load(userptr, "glUniformMatrix4x2fv");
5563 glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) load(userptr, "glUniformMatrix4x3fv");
5564}
5565static void glad_gl_load_GL_VERSION_3_0( GLADuserptrloadfunc load, void* userptr) {
5566 if(!GLAD_GL_VERSION_3_0) return;
5567 glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC) load(userptr, "glBeginConditionalRender");
5568 glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) load(userptr, "glBeginTransformFeedback");
5569 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase");
5570 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange");
5571 glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC) load(userptr, "glBindFragDataLocation");
5572 glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer");
5573 glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer");
5574 glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray");
5575 glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer");
5576 glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus");
5577 glad_glClampColor = (PFNGLCLAMPCOLORPROC) load(userptr, "glClampColor");
5578 glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC) load(userptr, "glClearBufferfi");
5579 glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC) load(userptr, "glClearBufferfv");
5580 glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC) load(userptr, "glClearBufferiv");
5581 glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) load(userptr, "glClearBufferuiv");
5582 glad_glColorMaski = (PFNGLCOLORMASKIPROC) load(userptr, "glColorMaski");
5583 glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers");
5584 glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers");
5585 glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays");
5586 glad_glDisablei = (PFNGLDISABLEIPROC) load(userptr, "glDisablei");
5587 glad_glEnablei = (PFNGLENABLEIPROC) load(userptr, "glEnablei");
5588 glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC) load(userptr, "glEndConditionalRender");
5589 glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) load(userptr, "glEndTransformFeedback");
5590 glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange");
5591 glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer");
5592 glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D");
5593 glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D");
5594 glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D");
5595 glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer");
5596 glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers");
5597 glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers");
5598 glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays");
5599 glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap");
5600 glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC) load(userptr, "glGetBooleani_v");
5601 glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) load(userptr, "glGetFragDataLocation");
5602 glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv");
5603 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v");
5604 glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv");
5605 glad_glGetStringi = (PFNGLGETSTRINGIPROC) load(userptr, "glGetStringi");
5606 glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC) load(userptr, "glGetTexParameterIiv");
5607 glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC) load(userptr, "glGetTexParameterIuiv");
5608 glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) load(userptr, "glGetTransformFeedbackVarying");
5609 glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC) load(userptr, "glGetUniformuiv");
5610 glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) load(userptr, "glGetVertexAttribIiv");
5611 glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) load(userptr, "glGetVertexAttribIuiv");
5612 glad_glIsEnabledi = (PFNGLISENABLEDIPROC) load(userptr, "glIsEnabledi");
5613 glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer");
5614 glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer");
5615 glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray");
5616 glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange");
5617 glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage");
5618 glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample");
5619 glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC) load(userptr, "glTexParameterIiv");
5620 glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC) load(userptr, "glTexParameterIuiv");
5621 glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) load(userptr, "glTransformFeedbackVaryings");
5622 glad_glUniform1ui = (PFNGLUNIFORM1UIPROC) load(userptr, "glUniform1ui");
5623 glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC) load(userptr, "glUniform1uiv");
5624 glad_glUniform2ui = (PFNGLUNIFORM2UIPROC) load(userptr, "glUniform2ui");
5625 glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC) load(userptr, "glUniform2uiv");
5626 glad_glUniform3ui = (PFNGLUNIFORM3UIPROC) load(userptr, "glUniform3ui");
5627 glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC) load(userptr, "glUniform3uiv");
5628 glad_glUniform4ui = (PFNGLUNIFORM4UIPROC) load(userptr, "glUniform4ui");
5629 glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC) load(userptr, "glUniform4uiv");
5630 glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC) load(userptr, "glVertexAttribI1i");
5631 glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC) load(userptr, "glVertexAttribI1iv");
5632 glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) load(userptr, "glVertexAttribI1ui");
5633 glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC) load(userptr, "glVertexAttribI1uiv");
5634 glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC) load(userptr, "glVertexAttribI2i");
5635 glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC) load(userptr, "glVertexAttribI2iv");
5636 glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC) load(userptr, "glVertexAttribI2ui");
5637 glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC) load(userptr, "glVertexAttribI2uiv");
5638 glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC) load(userptr, "glVertexAttribI3i");
5639 glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC) load(userptr, "glVertexAttribI3iv");
5640 glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC) load(userptr, "glVertexAttribI3ui");
5641 glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC) load(userptr, "glVertexAttribI3uiv");
5642 glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC) load(userptr, "glVertexAttribI4bv");
5643 glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) load(userptr, "glVertexAttribI4i");
5644 glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) load(userptr, "glVertexAttribI4iv");
5645 glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC) load(userptr, "glVertexAttribI4sv");
5646 glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC) load(userptr, "glVertexAttribI4ubv");
5647 glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) load(userptr, "glVertexAttribI4ui");
5648 glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) load(userptr, "glVertexAttribI4uiv");
5649 glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC) load(userptr, "glVertexAttribI4usv");
5650 glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) load(userptr, "glVertexAttribIPointer");
5651}
5652static void glad_gl_load_GL_VERSION_3_1( GLADuserptrloadfunc load, void* userptr) {
5653 if(!GLAD_GL_VERSION_3_1) return;
5654 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase");
5655 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange");
5656 glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData");
5657 glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) load(userptr, "glDrawArraysInstanced");
5658 glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) load(userptr, "glDrawElementsInstanced");
5659 glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName");
5660 glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv");
5661 glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName");
5662 glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv");
5663 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v");
5664 glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex");
5665 glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices");
5666 glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) load(userptr, "glPrimitiveRestartIndex");
5667 glad_glTexBuffer = (PFNGLTEXBUFFERPROC) load(userptr, "glTexBuffer");
5668 glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding");
5669}
5670static void glad_gl_load_GL_VERSION_3_2( GLADuserptrloadfunc load, void* userptr) {
5671 if(!GLAD_GL_VERSION_3_2) return;
5672 glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) load(userptr, "glClientWaitSync");
5673 glad_glDeleteSync = (PFNGLDELETESYNCPROC) load(userptr, "glDeleteSync");
5674 glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex");
5675 glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex");
5676 glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex");
5677 glad_glFenceSync = (PFNGLFENCESYNCPROC) load(userptr, "glFenceSync");
5678 glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC) load(userptr, "glFramebufferTexture");
5679 glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) load(userptr, "glGetBufferParameteri64v");
5680 glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) load(userptr, "glGetInteger64i_v");
5681 glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC) load(userptr, "glGetInteger64v");
5682 glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv");
5683 glad_glGetSynciv = (PFNGLGETSYNCIVPROC) load(userptr, "glGetSynciv");
5684 glad_glIsSync = (PFNGLISSYNCPROC) load(userptr, "glIsSync");
5685 glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex");
5686 glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC) load(userptr, "glProvokingVertex");
5687 glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski");
5688 glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample");
5689 glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample");
5690 glad_glWaitSync = (PFNGLWAITSYNCPROC) load(userptr, "glWaitSync");
5691}
5692static void glad_gl_load_GL_VERSION_3_3( GLADuserptrloadfunc load, void* userptr) {
5693 if(!GLAD_GL_VERSION_3_3) return;
5694 glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed");
5695 glad_glBindSampler = (PFNGLBINDSAMPLERPROC) load(userptr, "glBindSampler");
5696 glad_glColorP3ui = (PFNGLCOLORP3UIPROC) load(userptr, "glColorP3ui");
5697 glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC) load(userptr, "glColorP3uiv");
5698 glad_glColorP4ui = (PFNGLCOLORP4UIPROC) load(userptr, "glColorP4ui");
5699 glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC) load(userptr, "glColorP4uiv");
5700 glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC) load(userptr, "glDeleteSamplers");
5701 glad_glGenSamplers = (PFNGLGENSAMPLERSPROC) load(userptr, "glGenSamplers");
5702 glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex");
5703 glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v");
5704 glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v");
5705 glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC) load(userptr, "glGetSamplerParameterIiv");
5706 glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC) load(userptr, "glGetSamplerParameterIuiv");
5707 glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC) load(userptr, "glGetSamplerParameterfv");
5708 glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC) load(userptr, "glGetSamplerParameteriv");
5709 glad_glIsSampler = (PFNGLISSAMPLERPROC) load(userptr, "glIsSampler");
5710 glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC) load(userptr, "glMultiTexCoordP1ui");
5711 glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC) load(userptr, "glMultiTexCoordP1uiv");
5712 glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC) load(userptr, "glMultiTexCoordP2ui");
5713 glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC) load(userptr, "glMultiTexCoordP2uiv");
5714 glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC) load(userptr, "glMultiTexCoordP3ui");
5715 glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC) load(userptr, "glMultiTexCoordP3uiv");
5716 glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC) load(userptr, "glMultiTexCoordP4ui");
5717 glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC) load(userptr, "glMultiTexCoordP4uiv");
5718 glad_glNormalP3ui = (PFNGLNORMALP3UIPROC) load(userptr, "glNormalP3ui");
5719 glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC) load(userptr, "glNormalP3uiv");
5720 glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter");
5721 glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC) load(userptr, "glSamplerParameterIiv");
5722 glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC) load(userptr, "glSamplerParameterIuiv");
5723 glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC) load(userptr, "glSamplerParameterf");
5724 glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC) load(userptr, "glSamplerParameterfv");
5725 glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC) load(userptr, "glSamplerParameteri");
5726 glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC) load(userptr, "glSamplerParameteriv");
5727 glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC) load(userptr, "glSecondaryColorP3ui");
5728 glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC) load(userptr, "glSecondaryColorP3uiv");
5729 glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC) load(userptr, "glTexCoordP1ui");
5730 glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC) load(userptr, "glTexCoordP1uiv");
5731 glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC) load(userptr, "glTexCoordP2ui");
5732 glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC) load(userptr, "glTexCoordP2uiv");
5733 glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC) load(userptr, "glTexCoordP3ui");
5734 glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC) load(userptr, "glTexCoordP3uiv");
5735 glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC) load(userptr, "glTexCoordP4ui");
5736 glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC) load(userptr, "glTexCoordP4uiv");
5737 glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC) load(userptr, "glVertexAttribDivisor");
5738 glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC) load(userptr, "glVertexAttribP1ui");
5739 glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC) load(userptr, "glVertexAttribP1uiv");
5740 glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC) load(userptr, "glVertexAttribP2ui");
5741 glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC) load(userptr, "glVertexAttribP2uiv");
5742 glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC) load(userptr, "glVertexAttribP3ui");
5743 glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC) load(userptr, "glVertexAttribP3uiv");
5744 glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC) load(userptr, "glVertexAttribP4ui");
5745 glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC) load(userptr, "glVertexAttribP4uiv");
5746 glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC) load(userptr, "glVertexP2ui");
5747 glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC) load(userptr, "glVertexP2uiv");
5748 glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC) load(userptr, "glVertexP3ui");
5749 glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC) load(userptr, "glVertexP3uiv");
5750 glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC) load(userptr, "glVertexP4ui");
5751 glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC) load(userptr, "glVertexP4uiv");
5752}
5753static void glad_gl_load_GL_ARB_multisample( GLADuserptrloadfunc load, void* userptr) {
5754 if(!GLAD_GL_ARB_multisample) return;
5755 glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC) load(userptr, "glSampleCoverageARB");
5756}
5757static void glad_gl_load_GL_ARB_robustness( GLADuserptrloadfunc load, void* userptr) {
5758 if(!GLAD_GL_ARB_robustness) return;
5759 glad_glGetGraphicsResetStatusARB = (PFNGLGETGRAPHICSRESETSTATUSARBPROC) load(userptr, "glGetGraphicsResetStatusARB");
5760 glad_glGetnColorTableARB = (PFNGLGETNCOLORTABLEARBPROC) load(userptr, "glGetnColorTableARB");
5761 glad_glGetnCompressedTexImageARB = (PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) load(userptr, "glGetnCompressedTexImageARB");
5762 glad_glGetnConvolutionFilterARB = (PFNGLGETNCONVOLUTIONFILTERARBPROC) load(userptr, "glGetnConvolutionFilterARB");
5763 glad_glGetnHistogramARB = (PFNGLGETNHISTOGRAMARBPROC) load(userptr, "glGetnHistogramARB");
5764 glad_glGetnMapdvARB = (PFNGLGETNMAPDVARBPROC) load(userptr, "glGetnMapdvARB");
5765 glad_glGetnMapfvARB = (PFNGLGETNMAPFVARBPROC) load(userptr, "glGetnMapfvARB");
5766 glad_glGetnMapivARB = (PFNGLGETNMAPIVARBPROC) load(userptr, "glGetnMapivARB");
5767 glad_glGetnMinmaxARB = (PFNGLGETNMINMAXARBPROC) load(userptr, "glGetnMinmaxARB");
5768 glad_glGetnPixelMapfvARB = (PFNGLGETNPIXELMAPFVARBPROC) load(userptr, "glGetnPixelMapfvARB");
5769 glad_glGetnPixelMapuivARB = (PFNGLGETNPIXELMAPUIVARBPROC) load(userptr, "glGetnPixelMapuivARB");
5770 glad_glGetnPixelMapusvARB = (PFNGLGETNPIXELMAPUSVARBPROC) load(userptr, "glGetnPixelMapusvARB");
5771 glad_glGetnPolygonStippleARB = (PFNGLGETNPOLYGONSTIPPLEARBPROC) load(userptr, "glGetnPolygonStippleARB");
5772 glad_glGetnSeparableFilterARB = (PFNGLGETNSEPARABLEFILTERARBPROC) load(userptr, "glGetnSeparableFilterARB");
5773 glad_glGetnTexImageARB = (PFNGLGETNTEXIMAGEARBPROC) load(userptr, "glGetnTexImageARB");
5774 glad_glGetnUniformdvARB = (PFNGLGETNUNIFORMDVARBPROC) load(userptr, "glGetnUniformdvARB");
5775 glad_glGetnUniformfvARB = (PFNGLGETNUNIFORMFVARBPROC) load(userptr, "glGetnUniformfvARB");
5776 glad_glGetnUniformivARB = (PFNGLGETNUNIFORMIVARBPROC) load(userptr, "glGetnUniformivARB");
5777 glad_glGetnUniformuivARB = (PFNGLGETNUNIFORMUIVARBPROC) load(userptr, "glGetnUniformuivARB");
5778 glad_glReadnPixelsARB = (PFNGLREADNPIXELSARBPROC) load(userptr, "glReadnPixelsARB");
5779}
5780static void glad_gl_load_GL_KHR_debug( GLADuserptrloadfunc load, void* userptr) {
5781 if(!GLAD_GL_KHR_debug) return;
5782 glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) load(userptr, "glDebugMessageCallback");
5783 glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) load(userptr, "glDebugMessageControl");
5784 glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC) load(userptr, "glDebugMessageInsert");
5785 glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC) load(userptr, "glGetDebugMessageLog");
5786 glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC) load(userptr, "glGetObjectLabel");
5787 glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC) load(userptr, "glGetObjectPtrLabel");
5788 glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv");
5789 glad_glObjectLabel = (PFNGLOBJECTLABELPROC) load(userptr, "glObjectLabel");
5790 glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC) load(userptr, "glObjectPtrLabel");
5791 glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC) load(userptr, "glPopDebugGroup");
5792 glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC) load(userptr, "glPushDebugGroup");
5793}
5794
5795
5796
5797#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
5798#define GLAD_GL_IS_SOME_NEW_VERSION 1
5799#else
5800#define GLAD_GL_IS_SOME_NEW_VERSION 0
5801#endif
5802
5803static int glad_gl_get_extensions( int version, const char **out_exts, unsigned int *out_num_exts_i, char ***out_exts_i) {
5804#if GLAD_GL_IS_SOME_NEW_VERSION
5805 if(GLAD_VERSION_MAJOR(version) < 3) {
5806#else
5807 (void) version;
5808 (void) out_num_exts_i;
5809 (void) out_exts_i;
5810#endif
5811 if (glad_glGetString == NULL) {
5812 return 0;
5813 }
5814 *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS);
5815#if GLAD_GL_IS_SOME_NEW_VERSION
5816 } else {
5817 unsigned int index = 0;
5818 unsigned int num_exts_i = 0;
5819 char **exts_i = NULL;
5820 if (glad_glGetStringi == NULL || glad_glGetIntegerv == NULL) {
5821 return 0;
5822 }
5823 glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i);
5824 if (num_exts_i > 0) {
5825 exts_i = (char **) malloc(num_exts_i * (sizeof *exts_i));
5826 }
5827 if (exts_i == NULL) {
5828 return 0;
5829 }
5830 for(index = 0; index < num_exts_i; index++) {
5831 const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index);
5832 size_t len = strlen(gl_str_tmp) + 1;
5833
5834 char *local_str = (char*) malloc(len * sizeof(char));
5835 if(local_str != NULL) {
5836 memcpy(local_str, gl_str_tmp, len * sizeof(char));
5837 }
5838
5839 exts_i[index] = local_str;
5840 }
5841
5842 *out_num_exts_i = num_exts_i;
5843 *out_exts_i = exts_i;
5844 }
5845#endif
5846 return 1;
5847}
5848static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) {
5849 if (exts_i != NULL) {
5850 unsigned int index;
5851 for(index = 0; index < num_exts_i; index++) {
5852 free((void *) (exts_i[index]));
5853 }
5854 free((void *)exts_i);
5855 exts_i = NULL;
5856 }
5857}
5858static int glad_gl_has_extension(int version, const char *exts, unsigned int num_exts_i, char **exts_i, const char *ext) {
5859 if(GLAD_VERSION_MAJOR(version) < 3 || !GLAD_GL_IS_SOME_NEW_VERSION) {
5860 const char *extensions;
5861 const char *loc;
5862 const char *terminator;
5863 extensions = exts;
5864 if(extensions == NULL || ext == NULL) {
5865 return 0;
5866 }
5867 while(1) {
5868 loc = strstr(extensions, ext);
5869 if(loc == NULL) {
5870 return 0;
5871 }
5872 terminator = loc + strlen(ext);
5873 if((loc == extensions || *(loc - 1) == ' ') &&
5874 (*terminator == ' ' || *terminator == '\0')) {
5875 return 1;
5876 }
5877 extensions = terminator;
5878 }
5879 } else {
5880 unsigned int index;
5881 for(index = 0; index < num_exts_i; index++) {
5882 const char *e = exts_i[index];
5883 if(strcmp(e, ext) == 0) {
5884 return 1;
5885 }
5886 }
5887 }
5888 return 0;
5889}
5890
5891static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) {
5892 return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
5893}
5894
5895static int glad_gl_find_extensions_gl( int version) {
5896 const char *exts = NULL;
5897 unsigned int num_exts_i = 0;
5898 char **exts_i = NULL;
5899 if (!glad_gl_get_extensions(version, &exts, &num_exts_i, &exts_i)) return 0;
5900
5901 GLAD_GL_ARB_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multisample");
5902 GLAD_GL_ARB_robustness = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_robustness");
5903 GLAD_GL_KHR_debug = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_KHR_debug");
5904
5905 glad_gl_free_extensions(exts_i, num_exts_i);
5906
5907 return 1;
5908}
5909
5910static int glad_gl_find_core_gl(void) {
5911 int i;
5912 const char* version;
5913 const char* prefixes[] = {
5914 "OpenGL ES-CM ",
5915 "OpenGL ES-CL ",
5916 "OpenGL ES ",
5917 "OpenGL SC ",
5918 NULL
5919 };
5920 int major = 0;
5921 int minor = 0;
5922 version = (const char*) glad_glGetString(GL_VERSION);
5923 if (!version) return 0;
5924 for (i = 0; prefixes[i]; i++) {
5925 const size_t length = strlen(prefixes[i]);
5926 if (strncmp(version, prefixes[i], length) == 0) {
5927 version += length;
5928 break;
5929 }
5930 }
5931
5932 GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
5933
5934 GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
5935 GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
5936 GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
5937 GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
5938 GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
5939 GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;
5940 GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
5941 GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2;
5942 GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
5943 GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
5944 GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3;
5945 GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3;
5946
5947 return GLAD_MAKE_VERSION(major, minor);
5948}
5949
5950int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) {
5951 int version;
5952
5953 glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
5954 if(glad_glGetString == NULL) return 0;
5955 if(glad_glGetString(GL_VERSION) == NULL) return 0;
5956 version = glad_gl_find_core_gl();
5957
5958 glad_gl_load_GL_VERSION_1_0(load, userptr);
5959 glad_gl_load_GL_VERSION_1_1(load, userptr);
5960 glad_gl_load_GL_VERSION_1_2(load, userptr);
5961 glad_gl_load_GL_VERSION_1_3(load, userptr);
5962 glad_gl_load_GL_VERSION_1_4(load, userptr);
5963 glad_gl_load_GL_VERSION_1_5(load, userptr);
5964 glad_gl_load_GL_VERSION_2_0(load, userptr);
5965 glad_gl_load_GL_VERSION_2_1(load, userptr);
5966 glad_gl_load_GL_VERSION_3_0(load, userptr);
5967 glad_gl_load_GL_VERSION_3_1(load, userptr);
5968 glad_gl_load_GL_VERSION_3_2(load, userptr);
5969 glad_gl_load_GL_VERSION_3_3(load, userptr);
5970
5971 if (!glad_gl_find_extensions_gl(version)) return 0;
5972 glad_gl_load_GL_ARB_multisample(load, userptr);
5973 glad_gl_load_GL_ARB_robustness(load, userptr);
5974 glad_gl_load_GL_KHR_debug(load, userptr);
5975
5976
5977
5978 return version;
5979}
5980
5981
5982int gladLoadGL( GLADloadfunc load) {
5983 return gladLoadGLUserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
5984}
5985
5986
5987
5988
5989
5990
5991#ifdef __cplusplus
5992}
5993#endif
5994
5995#endif /* GLAD_GL_IMPLEMENTATION */
5996
diff --git a/raylib/src/external/glfw/deps/glad/gles2.h b/raylib/src/external/glfw/deps/glad/gles2.h
new file mode 100644
index 0000000..d67f110
--- /dev/null
+++ b/raylib/src/external/glfw/deps/glad/gles2.h
@@ -0,0 +1,1805 @@
1/**
2 * Loader generated by glad 2.0.0-beta on Tue Aug 24 22:51:42 2021
3 *
4 * Generator: C/C++
5 * Specification: gl
6 * Extensions: 0
7 *
8 * APIs:
9 * - gles2=2.0
10 *
11 * Options:
12 * - ALIAS = False
13 * - DEBUG = False
14 * - HEADER_ONLY = True
15 * - LOADER = False
16 * - MX = False
17 * - MX_GLOBAL = False
18 * - ON_DEMAND = False
19 *
20 * Commandline:
21 * --api='gles2=2.0' --extensions='' c --header-only
22 *
23 * Online:
24 * http://glad.sh/#api=gles2%3D2.0&extensions=&generator=c&options=HEADER_ONLY
25 *
26 */
27
28#ifndef GLAD_GLES2_H_
29#define GLAD_GLES2_H_
30
31#ifdef __clang__
32#pragma clang diagnostic push
33#pragma clang diagnostic ignored "-Wreserved-id-macro"
34#endif
35#ifdef __gl2_h_
36 #error OpenGL ES 2 header already included (API: gles2), remove previous include!
37#endif
38#define __gl2_h_ 1
39#ifdef __gl3_h_
40 #error OpenGL ES 3 header already included (API: gles2), remove previous include!
41#endif
42#define __gl3_h_ 1
43#ifdef __clang__
44#pragma clang diagnostic pop
45#endif
46
47#define GLAD_GLES2
48#define GLAD_OPTION_GLES2_HEADER_ONLY
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54#ifndef GLAD_PLATFORM_H_
55#define GLAD_PLATFORM_H_
56
57#ifndef GLAD_PLATFORM_WIN32
58 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
59 #define GLAD_PLATFORM_WIN32 1
60 #else
61 #define GLAD_PLATFORM_WIN32 0
62 #endif
63#endif
64
65#ifndef GLAD_PLATFORM_APPLE
66 #ifdef __APPLE__
67 #define GLAD_PLATFORM_APPLE 1
68 #else
69 #define GLAD_PLATFORM_APPLE 0
70 #endif
71#endif
72
73#ifndef GLAD_PLATFORM_EMSCRIPTEN
74 #ifdef __EMSCRIPTEN__
75 #define GLAD_PLATFORM_EMSCRIPTEN 1
76 #else
77 #define GLAD_PLATFORM_EMSCRIPTEN 0
78 #endif
79#endif
80
81#ifndef GLAD_PLATFORM_UWP
82 #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
83 #ifdef __has_include
84 #if __has_include(<winapifamily.h>)
85 #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
86 #endif
87 #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
88 #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
89 #endif
90 #endif
91
92 #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
93 #include <winapifamily.h>
94 #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
95 #define GLAD_PLATFORM_UWP 1
96 #endif
97 #endif
98
99 #ifndef GLAD_PLATFORM_UWP
100 #define GLAD_PLATFORM_UWP 0
101 #endif
102#endif
103
104#ifdef __GNUC__
105 #define GLAD_GNUC_EXTENSION __extension__
106#else
107 #define GLAD_GNUC_EXTENSION
108#endif
109
110#ifndef GLAD_API_CALL
111 #if defined(GLAD_API_CALL_EXPORT)
112 #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
113 #if defined(GLAD_API_CALL_EXPORT_BUILD)
114 #if defined(__GNUC__)
115 #define GLAD_API_CALL __attribute__ ((dllexport)) extern
116 #else
117 #define GLAD_API_CALL __declspec(dllexport) extern
118 #endif
119 #else
120 #if defined(__GNUC__)
121 #define GLAD_API_CALL __attribute__ ((dllimport)) extern
122 #else
123 #define GLAD_API_CALL __declspec(dllimport) extern
124 #endif
125 #endif
126 #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
127 #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
128 #else
129 #define GLAD_API_CALL extern
130 #endif
131 #else
132 #define GLAD_API_CALL extern
133 #endif
134#endif
135
136#ifdef APIENTRY
137 #define GLAD_API_PTR APIENTRY
138#elif GLAD_PLATFORM_WIN32
139 #define GLAD_API_PTR __stdcall
140#else
141 #define GLAD_API_PTR
142#endif
143
144#ifndef GLAPI
145#define GLAPI GLAD_API_CALL
146#endif
147
148#ifndef GLAPIENTRY
149#define GLAPIENTRY GLAD_API_PTR
150#endif
151
152#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
153#define GLAD_VERSION_MAJOR(version) (version / 10000)
154#define GLAD_VERSION_MINOR(version) (version % 10000)
155
156#define GLAD_GENERATOR_VERSION "2.0.0-beta"
157
158typedef void (*GLADapiproc)(void);
159
160typedef GLADapiproc (*GLADloadfunc)(const char *name);
161typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
162
163typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
164typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
165
166#endif /* GLAD_PLATFORM_H_ */
167
168#define GL_ACTIVE_ATTRIBUTES 0x8B89
169#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
170#define GL_ACTIVE_TEXTURE 0x84E0
171#define GL_ACTIVE_UNIFORMS 0x8B86
172#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
173#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
174#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
175#define GL_ALPHA 0x1906
176#define GL_ALPHA_BITS 0x0D55
177#define GL_ALWAYS 0x0207
178#define GL_ARRAY_BUFFER 0x8892
179#define GL_ARRAY_BUFFER_BINDING 0x8894
180#define GL_ATTACHED_SHADERS 0x8B85
181#define GL_BACK 0x0405
182#define GL_BLEND 0x0BE2
183#define GL_BLEND_COLOR 0x8005
184#define GL_BLEND_DST_ALPHA 0x80CA
185#define GL_BLEND_DST_RGB 0x80C8
186#define GL_BLEND_EQUATION 0x8009
187#define GL_BLEND_EQUATION_ALPHA 0x883D
188#define GL_BLEND_EQUATION_RGB 0x8009
189#define GL_BLEND_SRC_ALPHA 0x80CB
190#define GL_BLEND_SRC_RGB 0x80C9
191#define GL_BLUE_BITS 0x0D54
192#define GL_BOOL 0x8B56
193#define GL_BOOL_VEC2 0x8B57
194#define GL_BOOL_VEC3 0x8B58
195#define GL_BOOL_VEC4 0x8B59
196#define GL_BUFFER_SIZE 0x8764
197#define GL_BUFFER_USAGE 0x8765
198#define GL_BYTE 0x1400
199#define GL_CCW 0x0901
200#define GL_CLAMP_TO_EDGE 0x812F
201#define GL_COLOR_ATTACHMENT0 0x8CE0
202#define GL_COLOR_BUFFER_BIT 0x00004000
203#define GL_COLOR_CLEAR_VALUE 0x0C22
204#define GL_COLOR_WRITEMASK 0x0C23
205#define GL_COMPILE_STATUS 0x8B81
206#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
207#define GL_CONSTANT_ALPHA 0x8003
208#define GL_CONSTANT_COLOR 0x8001
209#define GL_CULL_FACE 0x0B44
210#define GL_CULL_FACE_MODE 0x0B45
211#define GL_CURRENT_PROGRAM 0x8B8D
212#define GL_CURRENT_VERTEX_ATTRIB 0x8626
213#define GL_CW 0x0900
214#define GL_DECR 0x1E03
215#define GL_DECR_WRAP 0x8508
216#define GL_DELETE_STATUS 0x8B80
217#define GL_DEPTH_ATTACHMENT 0x8D00
218#define GL_DEPTH_BITS 0x0D56
219#define GL_DEPTH_BUFFER_BIT 0x00000100
220#define GL_DEPTH_CLEAR_VALUE 0x0B73
221#define GL_DEPTH_COMPONENT 0x1902
222#define GL_DEPTH_COMPONENT16 0x81A5
223#define GL_DEPTH_FUNC 0x0B74
224#define GL_DEPTH_RANGE 0x0B70
225#define GL_DEPTH_TEST 0x0B71
226#define GL_DEPTH_WRITEMASK 0x0B72
227#define GL_DITHER 0x0BD0
228#define GL_DONT_CARE 0x1100
229#define GL_DST_ALPHA 0x0304
230#define GL_DST_COLOR 0x0306
231#define GL_DYNAMIC_DRAW 0x88E8
232#define GL_ELEMENT_ARRAY_BUFFER 0x8893
233#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
234#define GL_EQUAL 0x0202
235#define GL_EXTENSIONS 0x1F03
236#define GL_FALSE 0
237#define GL_FASTEST 0x1101
238#define GL_FIXED 0x140C
239#define GL_FLOAT 0x1406
240#define GL_FLOAT_MAT2 0x8B5A
241#define GL_FLOAT_MAT3 0x8B5B
242#define GL_FLOAT_MAT4 0x8B5C
243#define GL_FLOAT_VEC2 0x8B50
244#define GL_FLOAT_VEC3 0x8B51
245#define GL_FLOAT_VEC4 0x8B52
246#define GL_FRAGMENT_SHADER 0x8B30
247#define GL_FRAMEBUFFER 0x8D40
248#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
249#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
250#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
251#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
252#define GL_FRAMEBUFFER_BINDING 0x8CA6
253#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
254#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
255#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
256#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
257#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
258#define GL_FRONT 0x0404
259#define GL_FRONT_AND_BACK 0x0408
260#define GL_FRONT_FACE 0x0B46
261#define GL_FUNC_ADD 0x8006
262#define GL_FUNC_REVERSE_SUBTRACT 0x800B
263#define GL_FUNC_SUBTRACT 0x800A
264#define GL_GENERATE_MIPMAP_HINT 0x8192
265#define GL_GEQUAL 0x0206
266#define GL_GREATER 0x0204
267#define GL_GREEN_BITS 0x0D53
268#define GL_HIGH_FLOAT 0x8DF2
269#define GL_HIGH_INT 0x8DF5
270#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
271#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
272#define GL_INCR 0x1E02
273#define GL_INCR_WRAP 0x8507
274#define GL_INFO_LOG_LENGTH 0x8B84
275#define GL_INT 0x1404
276#define GL_INT_VEC2 0x8B53
277#define GL_INT_VEC3 0x8B54
278#define GL_INT_VEC4 0x8B55
279#define GL_INVALID_ENUM 0x0500
280#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
281#define GL_INVALID_OPERATION 0x0502
282#define GL_INVALID_VALUE 0x0501
283#define GL_INVERT 0x150A
284#define GL_KEEP 0x1E00
285#define GL_LEQUAL 0x0203
286#define GL_LESS 0x0201
287#define GL_LINEAR 0x2601
288#define GL_LINEAR_MIPMAP_LINEAR 0x2703
289#define GL_LINEAR_MIPMAP_NEAREST 0x2701
290#define GL_LINES 0x0001
291#define GL_LINE_LOOP 0x0002
292#define GL_LINE_STRIP 0x0003
293#define GL_LINE_WIDTH 0x0B21
294#define GL_LINK_STATUS 0x8B82
295#define GL_LOW_FLOAT 0x8DF0
296#define GL_LOW_INT 0x8DF3
297#define GL_LUMINANCE 0x1909
298#define GL_LUMINANCE_ALPHA 0x190A
299#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
300#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
301#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
302#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
303#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
304#define GL_MAX_TEXTURE_SIZE 0x0D33
305#define GL_MAX_VARYING_VECTORS 0x8DFC
306#define GL_MAX_VERTEX_ATTRIBS 0x8869
307#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
308#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
309#define GL_MAX_VIEWPORT_DIMS 0x0D3A
310#define GL_MEDIUM_FLOAT 0x8DF1
311#define GL_MEDIUM_INT 0x8DF4
312#define GL_MIRRORED_REPEAT 0x8370
313#define GL_NEAREST 0x2600
314#define GL_NEAREST_MIPMAP_LINEAR 0x2702
315#define GL_NEAREST_MIPMAP_NEAREST 0x2700
316#define GL_NEVER 0x0200
317#define GL_NICEST 0x1102
318#define GL_NONE 0
319#define GL_NOTEQUAL 0x0205
320#define GL_NO_ERROR 0
321#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
322#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
323#define GL_ONE 1
324#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
325#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
326#define GL_ONE_MINUS_DST_ALPHA 0x0305
327#define GL_ONE_MINUS_DST_COLOR 0x0307
328#define GL_ONE_MINUS_SRC_ALPHA 0x0303
329#define GL_ONE_MINUS_SRC_COLOR 0x0301
330#define GL_OUT_OF_MEMORY 0x0505
331#define GL_PACK_ALIGNMENT 0x0D05
332#define GL_POINTS 0x0000
333#define GL_POLYGON_OFFSET_FACTOR 0x8038
334#define GL_POLYGON_OFFSET_FILL 0x8037
335#define GL_POLYGON_OFFSET_UNITS 0x2A00
336#define GL_RED_BITS 0x0D52
337#define GL_RENDERBUFFER 0x8D41
338#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
339#define GL_RENDERBUFFER_BINDING 0x8CA7
340#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
341#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
342#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
343#define GL_RENDERBUFFER_HEIGHT 0x8D43
344#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
345#define GL_RENDERBUFFER_RED_SIZE 0x8D50
346#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
347#define GL_RENDERBUFFER_WIDTH 0x8D42
348#define GL_RENDERER 0x1F01
349#define GL_REPEAT 0x2901
350#define GL_REPLACE 0x1E01
351#define GL_RGB 0x1907
352#define GL_RGB565 0x8D62
353#define GL_RGB5_A1 0x8057
354#define GL_RGBA 0x1908
355#define GL_RGBA4 0x8056
356#define GL_SAMPLER_2D 0x8B5E
357#define GL_SAMPLER_CUBE 0x8B60
358#define GL_SAMPLES 0x80A9
359#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
360#define GL_SAMPLE_BUFFERS 0x80A8
361#define GL_SAMPLE_COVERAGE 0x80A0
362#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
363#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
364#define GL_SCISSOR_BOX 0x0C10
365#define GL_SCISSOR_TEST 0x0C11
366#define GL_SHADER_BINARY_FORMATS 0x8DF8
367#define GL_SHADER_COMPILER 0x8DFA
368#define GL_SHADER_SOURCE_LENGTH 0x8B88
369#define GL_SHADER_TYPE 0x8B4F
370#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
371#define GL_SHORT 0x1402
372#define GL_SRC_ALPHA 0x0302
373#define GL_SRC_ALPHA_SATURATE 0x0308
374#define GL_SRC_COLOR 0x0300
375#define GL_STATIC_DRAW 0x88E4
376#define GL_STENCIL_ATTACHMENT 0x8D20
377#define GL_STENCIL_BACK_FAIL 0x8801
378#define GL_STENCIL_BACK_FUNC 0x8800
379#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
380#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
381#define GL_STENCIL_BACK_REF 0x8CA3
382#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
383#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
384#define GL_STENCIL_BITS 0x0D57
385#define GL_STENCIL_BUFFER_BIT 0x00000400
386#define GL_STENCIL_CLEAR_VALUE 0x0B91
387#define GL_STENCIL_FAIL 0x0B94
388#define GL_STENCIL_FUNC 0x0B92
389#define GL_STENCIL_INDEX8 0x8D48
390#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
391#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
392#define GL_STENCIL_REF 0x0B97
393#define GL_STENCIL_TEST 0x0B90
394#define GL_STENCIL_VALUE_MASK 0x0B93
395#define GL_STENCIL_WRITEMASK 0x0B98
396#define GL_STREAM_DRAW 0x88E0
397#define GL_SUBPIXEL_BITS 0x0D50
398#define GL_TEXTURE 0x1702
399#define GL_TEXTURE0 0x84C0
400#define GL_TEXTURE1 0x84C1
401#define GL_TEXTURE10 0x84CA
402#define GL_TEXTURE11 0x84CB
403#define GL_TEXTURE12 0x84CC
404#define GL_TEXTURE13 0x84CD
405#define GL_TEXTURE14 0x84CE
406#define GL_TEXTURE15 0x84CF
407#define GL_TEXTURE16 0x84D0
408#define GL_TEXTURE17 0x84D1
409#define GL_TEXTURE18 0x84D2
410#define GL_TEXTURE19 0x84D3
411#define GL_TEXTURE2 0x84C2
412#define GL_TEXTURE20 0x84D4
413#define GL_TEXTURE21 0x84D5
414#define GL_TEXTURE22 0x84D6
415#define GL_TEXTURE23 0x84D7
416#define GL_TEXTURE24 0x84D8
417#define GL_TEXTURE25 0x84D9
418#define GL_TEXTURE26 0x84DA
419#define GL_TEXTURE27 0x84DB
420#define GL_TEXTURE28 0x84DC
421#define GL_TEXTURE29 0x84DD
422#define GL_TEXTURE3 0x84C3
423#define GL_TEXTURE30 0x84DE
424#define GL_TEXTURE31 0x84DF
425#define GL_TEXTURE4 0x84C4
426#define GL_TEXTURE5 0x84C5
427#define GL_TEXTURE6 0x84C6
428#define GL_TEXTURE7 0x84C7
429#define GL_TEXTURE8 0x84C8
430#define GL_TEXTURE9 0x84C9
431#define GL_TEXTURE_2D 0x0DE1
432#define GL_TEXTURE_BINDING_2D 0x8069
433#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
434#define GL_TEXTURE_CUBE_MAP 0x8513
435#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
436#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
437#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
438#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
439#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
440#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
441#define GL_TEXTURE_MAG_FILTER 0x2800
442#define GL_TEXTURE_MIN_FILTER 0x2801
443#define GL_TEXTURE_WRAP_S 0x2802
444#define GL_TEXTURE_WRAP_T 0x2803
445#define GL_TRIANGLES 0x0004
446#define GL_TRIANGLE_FAN 0x0006
447#define GL_TRIANGLE_STRIP 0x0005
448#define GL_TRUE 1
449#define GL_UNPACK_ALIGNMENT 0x0CF5
450#define GL_UNSIGNED_BYTE 0x1401
451#define GL_UNSIGNED_INT 0x1405
452#define GL_UNSIGNED_SHORT 0x1403
453#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
454#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
455#define GL_UNSIGNED_SHORT_5_6_5 0x8363
456#define GL_VALIDATE_STATUS 0x8B83
457#define GL_VENDOR 0x1F00
458#define GL_VERSION 0x1F02
459#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
460#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
461#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
462#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
463#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
464#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
465#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
466#define GL_VERTEX_SHADER 0x8B31
467#define GL_VIEWPORT 0x0BA2
468#define GL_ZERO 0
469
470
471#ifndef __khrplatform_h_
472#define __khrplatform_h_
473
474/*
475** Copyright (c) 2008-2018 The Khronos Group Inc.
476**
477** Permission is hereby granted, free of charge, to any person obtaining a
478** copy of this software and/or associated documentation files (the
479** "Materials"), to deal in the Materials without restriction, including
480** without limitation the rights to use, copy, modify, merge, publish,
481** distribute, sublicense, and/or sell copies of the Materials, and to
482** permit persons to whom the Materials are furnished to do so, subject to
483** the following conditions:
484**
485** The above copyright notice and this permission notice shall be included
486** in all copies or substantial portions of the Materials.
487**
488** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
489** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
490** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
491** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
492** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
493** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
494** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
495*/
496
497/* Khronos platform-specific types and definitions.
498 *
499 * The master copy of khrplatform.h is maintained in the Khronos EGL
500 * Registry repository at https://github.com/KhronosGroup/EGL-Registry
501 * The last semantic modification to khrplatform.h was at commit ID:
502 * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
503 *
504 * Adopters may modify this file to suit their platform. Adopters are
505 * encouraged to submit platform specific modifications to the Khronos
506 * group so that they can be included in future versions of this file.
507 * Please submit changes by filing pull requests or issues on
508 * the EGL Registry repository linked above.
509 *
510 *
511 * See the Implementer's Guidelines for information about where this file
512 * should be located on your system and for more details of its use:
513 * http://www.khronos.org/registry/implementers_guide.pdf
514 *
515 * This file should be included as
516 * #include <KHR/khrplatform.h>
517 * by Khronos client API header files that use its types and defines.
518 *
519 * The types in khrplatform.h should only be used to define API-specific types.
520 *
521 * Types defined in khrplatform.h:
522 * khronos_int8_t signed 8 bit
523 * khronos_uint8_t unsigned 8 bit
524 * khronos_int16_t signed 16 bit
525 * khronos_uint16_t unsigned 16 bit
526 * khronos_int32_t signed 32 bit
527 * khronos_uint32_t unsigned 32 bit
528 * khronos_int64_t signed 64 bit
529 * khronos_uint64_t unsigned 64 bit
530 * khronos_intptr_t signed same number of bits as a pointer
531 * khronos_uintptr_t unsigned same number of bits as a pointer
532 * khronos_ssize_t signed size
533 * khronos_usize_t unsigned size
534 * khronos_float_t signed 32 bit floating point
535 * khronos_time_ns_t unsigned 64 bit time in nanoseconds
536 * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
537 * nanoseconds
538 * khronos_stime_nanoseconds_t signed time interval in nanoseconds
539 * khronos_boolean_enum_t enumerated boolean type. This should
540 * only be used as a base type when a client API's boolean type is
541 * an enum. Client APIs which use an integer or other type for
542 * booleans cannot use this as the base type for their boolean.
543 *
544 * Tokens defined in khrplatform.h:
545 *
546 * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
547 *
548 * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
549 * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
550 *
551 * Calling convention macros defined in this file:
552 * KHRONOS_APICALL
553 * KHRONOS_GLAD_API_PTR
554 * KHRONOS_APIATTRIBUTES
555 *
556 * These may be used in function prototypes as:
557 *
558 * KHRONOS_APICALL void KHRONOS_GLAD_API_PTR funcname(
559 * int arg1,
560 * int arg2) KHRONOS_APIATTRIBUTES;
561 */
562
563#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
564# define KHRONOS_STATIC 1
565#endif
566
567/*-------------------------------------------------------------------------
568 * Definition of KHRONOS_APICALL
569 *-------------------------------------------------------------------------
570 * This precedes the return type of the function in the function prototype.
571 */
572#if defined(KHRONOS_STATIC)
573 /* If the preprocessor constant KHRONOS_STATIC is defined, make the
574 * header compatible with static linking. */
575# define KHRONOS_APICALL
576#elif defined(_WIN32)
577# define KHRONOS_APICALL __declspec(dllimport)
578#elif defined (__SYMBIAN32__)
579# define KHRONOS_APICALL IMPORT_C
580#elif defined(__ANDROID__)
581# define KHRONOS_APICALL __attribute__((visibility("default")))
582#else
583# define KHRONOS_APICALL
584#endif
585
586/*-------------------------------------------------------------------------
587 * Definition of KHRONOS_GLAD_API_PTR
588 *-------------------------------------------------------------------------
589 * This follows the return type of the function and precedes the function
590 * name in the function prototype.
591 */
592#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
593 /* Win32 but not WinCE */
594# define KHRONOS_GLAD_API_PTR __stdcall
595#else
596# define KHRONOS_GLAD_API_PTR
597#endif
598
599/*-------------------------------------------------------------------------
600 * Definition of KHRONOS_APIATTRIBUTES
601 *-------------------------------------------------------------------------
602 * This follows the closing parenthesis of the function prototype arguments.
603 */
604#if defined (__ARMCC_2__)
605#define KHRONOS_APIATTRIBUTES __softfp
606#else
607#define KHRONOS_APIATTRIBUTES
608#endif
609
610/*-------------------------------------------------------------------------
611 * basic type definitions
612 *-----------------------------------------------------------------------*/
613#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
614
615
616/*
617 * Using <stdint.h>
618 */
619#include <stdint.h>
620typedef int32_t khronos_int32_t;
621typedef uint32_t khronos_uint32_t;
622typedef int64_t khronos_int64_t;
623typedef uint64_t khronos_uint64_t;
624#define KHRONOS_SUPPORT_INT64 1
625#define KHRONOS_SUPPORT_FLOAT 1
626
627#elif defined(__VMS ) || defined(__sgi)
628
629/*
630 * Using <inttypes.h>
631 */
632#include <inttypes.h>
633typedef int32_t khronos_int32_t;
634typedef uint32_t khronos_uint32_t;
635typedef int64_t khronos_int64_t;
636typedef uint64_t khronos_uint64_t;
637#define KHRONOS_SUPPORT_INT64 1
638#define KHRONOS_SUPPORT_FLOAT 1
639
640#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
641
642/*
643 * Win32
644 */
645typedef __int32 khronos_int32_t;
646typedef unsigned __int32 khronos_uint32_t;
647typedef __int64 khronos_int64_t;
648typedef unsigned __int64 khronos_uint64_t;
649#define KHRONOS_SUPPORT_INT64 1
650#define KHRONOS_SUPPORT_FLOAT 1
651
652#elif defined(__sun__) || defined(__digital__)
653
654/*
655 * Sun or Digital
656 */
657typedef int khronos_int32_t;
658typedef unsigned int khronos_uint32_t;
659#if defined(__arch64__) || defined(_LP64)
660typedef long int khronos_int64_t;
661typedef unsigned long int khronos_uint64_t;
662#else
663typedef long long int khronos_int64_t;
664typedef unsigned long long int khronos_uint64_t;
665#endif /* __arch64__ */
666#define KHRONOS_SUPPORT_INT64 1
667#define KHRONOS_SUPPORT_FLOAT 1
668
669#elif 0
670
671/*
672 * Hypothetical platform with no float or int64 support
673 */
674typedef int khronos_int32_t;
675typedef unsigned int khronos_uint32_t;
676#define KHRONOS_SUPPORT_INT64 0
677#define KHRONOS_SUPPORT_FLOAT 0
678
679#else
680
681/*
682 * Generic fallback
683 */
684#include <stdint.h>
685typedef int32_t khronos_int32_t;
686typedef uint32_t khronos_uint32_t;
687typedef int64_t khronos_int64_t;
688typedef uint64_t khronos_uint64_t;
689#define KHRONOS_SUPPORT_INT64 1
690#define KHRONOS_SUPPORT_FLOAT 1
691
692#endif
693
694
695/*
696 * Types that are (so far) the same on all platforms
697 */
698typedef signed char khronos_int8_t;
699typedef unsigned char khronos_uint8_t;
700typedef signed short int khronos_int16_t;
701typedef unsigned short int khronos_uint16_t;
702
703/*
704 * Types that differ between LLP64 and LP64 architectures - in LLP64,
705 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
706 * to be the only LLP64 architecture in current use.
707 */
708#ifdef _WIN64
709typedef signed long long int khronos_intptr_t;
710typedef unsigned long long int khronos_uintptr_t;
711typedef signed long long int khronos_ssize_t;
712typedef unsigned long long int khronos_usize_t;
713#else
714typedef signed long int khronos_intptr_t;
715typedef unsigned long int khronos_uintptr_t;
716typedef signed long int khronos_ssize_t;
717typedef unsigned long int khronos_usize_t;
718#endif
719
720#if KHRONOS_SUPPORT_FLOAT
721/*
722 * Float type
723 */
724typedef float khronos_float_t;
725#endif
726
727#if KHRONOS_SUPPORT_INT64
728/* Time types
729 *
730 * These types can be used to represent a time interval in nanoseconds or
731 * an absolute Unadjusted System Time. Unadjusted System Time is the number
732 * of nanoseconds since some arbitrary system event (e.g. since the last
733 * time the system booted). The Unadjusted System Time is an unsigned
734 * 64 bit value that wraps back to 0 every 584 years. Time intervals
735 * may be either signed or unsigned.
736 */
737typedef khronos_uint64_t khronos_utime_nanoseconds_t;
738typedef khronos_int64_t khronos_stime_nanoseconds_t;
739#endif
740
741/*
742 * Dummy value used to pad enum types to 32 bits.
743 */
744#ifndef KHRONOS_MAX_ENUM
745#define KHRONOS_MAX_ENUM 0x7FFFFFFF
746#endif
747
748/*
749 * Enumerated boolean type
750 *
751 * Values other than zero should be considered to be true. Therefore
752 * comparisons should not be made against KHRONOS_TRUE.
753 */
754typedef enum {
755 KHRONOS_FALSE = 0,
756 KHRONOS_TRUE = 1,
757 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
758} khronos_boolean_enum_t;
759
760#endif /* __khrplatform_h_ */
761
762typedef unsigned int GLenum;
763
764typedef unsigned char GLboolean;
765
766typedef unsigned int GLbitfield;
767
768typedef void GLvoid;
769
770typedef khronos_int8_t GLbyte;
771
772typedef khronos_uint8_t GLubyte;
773
774typedef khronos_int16_t GLshort;
775
776typedef khronos_uint16_t GLushort;
777
778typedef int GLint;
779
780typedef unsigned int GLuint;
781
782typedef khronos_int32_t GLclampx;
783
784typedef int GLsizei;
785
786typedef khronos_float_t GLfloat;
787
788typedef khronos_float_t GLclampf;
789
790typedef double GLdouble;
791
792typedef double GLclampd;
793
794typedef void *GLeglClientBufferEXT;
795
796typedef void *GLeglImageOES;
797
798typedef char GLchar;
799
800typedef char GLcharARB;
801
802#ifdef __APPLE__
803typedef void *GLhandleARB;
804#else
805typedef unsigned int GLhandleARB;
806#endif
807
808typedef khronos_uint16_t GLhalf;
809
810typedef khronos_uint16_t GLhalfARB;
811
812typedef khronos_int32_t GLfixed;
813
814#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
815typedef khronos_intptr_t GLintptr;
816#else
817typedef khronos_intptr_t GLintptr;
818#endif
819
820#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
821typedef khronos_intptr_t GLintptrARB;
822#else
823typedef khronos_intptr_t GLintptrARB;
824#endif
825
826#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
827typedef khronos_ssize_t GLsizeiptr;
828#else
829typedef khronos_ssize_t GLsizeiptr;
830#endif
831
832#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
833typedef khronos_ssize_t GLsizeiptrARB;
834#else
835typedef khronos_ssize_t GLsizeiptrARB;
836#endif
837
838typedef khronos_int64_t GLint64;
839
840typedef khronos_int64_t GLint64EXT;
841
842typedef khronos_uint64_t GLuint64;
843
844typedef khronos_uint64_t GLuint64EXT;
845
846typedef struct __GLsync *GLsync;
847
848struct _cl_context;
849
850struct _cl_event;
851
852typedef void (GLAD_API_PTR *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
853
854typedef void (GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
855
856typedef void (GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
857
858typedef void (GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
859
860typedef unsigned short GLhalfNV;
861
862typedef GLintptr GLvdpauSurfaceNV;
863
864typedef void (GLAD_API_PTR *GLVULKANPROCNV)(void);
865
866
867
868#define GL_ES_VERSION_2_0 1
869GLAD_API_CALL int GLAD_GL_ES_VERSION_2_0;
870
871
872typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
873typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
874typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name);
875typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
876typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
877typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
878typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
879typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
880typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
881typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
882typedef void (GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
883typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
884typedef void (GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
885typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
886typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
887typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
888typedef void (GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
889typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d);
890typedef void (GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
891typedef void (GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
892typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
893typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
894typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
895typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
896typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
897typedef GLuint (GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
898typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
899typedef void (GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
900typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers);
901typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers);
902typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
903typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers);
904typedef void (GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
905typedef void (GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures);
906typedef void (GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
907typedef void (GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
908typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
909typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
910typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
911typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
912typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
913typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
914typedef void (GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
915typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
916typedef void (GLAD_API_PTR *PFNGLFINISHPROC)(void);
917typedef void (GLAD_API_PTR *PFNGLFLUSHPROC)(void);
918typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
919typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
920typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
921typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers);
922typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
923typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
924typedef void (GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures);
925typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
926typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
927typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
928typedef void (GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
929typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name);
930typedef void (GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data);
931typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
932typedef GLenum (GLAD_API_PTR *PFNGLGETERRORPROC)(void);
933typedef void (GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data);
934typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
935typedef void (GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data);
936typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
937typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params);
938typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
939typedef void (GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
940typedef void (GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
941typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
942typedef void (GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params);
943typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
944typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
945typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
946typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name);
947typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params);
948typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params);
949typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer);
950typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params);
951typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params);
952typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
953typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
954typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
955typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
956typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
957typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
958typedef GLboolean (GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
959typedef GLboolean (GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
960typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
961typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
962typedef void (GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
963typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
964typedef void (GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
965typedef void (GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void);
966typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
967typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
968typedef void (GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
969typedef void (GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length);
970typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
971typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
972typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
973typedef void (GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
974typedef void (GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
975typedef void (GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
976typedef void (GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
977typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
978typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
979typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
980typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
981typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
982typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
983typedef void (GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
984typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value);
985typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
986typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value);
987typedef void (GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
988typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value);
989typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
990typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value);
991typedef void (GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
992typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value);
993typedef void (GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
994typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value);
995typedef void (GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
996typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value);
997typedef void (GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
998typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value);
999typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
1000typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
1001typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
1002typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
1003typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
1004typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
1005typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v);
1006typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
1007typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v);
1008typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
1009typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v);
1010typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1011typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v);
1012typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
1013typedef void (GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
1014
1015GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
1016#define glActiveTexture glad_glActiveTexture
1017GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader;
1018#define glAttachShader glad_glAttachShader
1019GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
1020#define glBindAttribLocation glad_glBindAttribLocation
1021GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer;
1022#define glBindBuffer glad_glBindBuffer
1023GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
1024#define glBindFramebuffer glad_glBindFramebuffer
1025GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
1026#define glBindRenderbuffer glad_glBindRenderbuffer
1027GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture;
1028#define glBindTexture glad_glBindTexture
1029GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor;
1030#define glBlendColor glad_glBlendColor
1031GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
1032#define glBlendEquation glad_glBlendEquation
1033GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
1034#define glBlendEquationSeparate glad_glBlendEquationSeparate
1035GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc;
1036#define glBlendFunc glad_glBlendFunc
1037GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
1038#define glBlendFuncSeparate glad_glBlendFuncSeparate
1039GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData;
1040#define glBufferData glad_glBufferData
1041GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
1042#define glBufferSubData glad_glBufferSubData
1043GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
1044#define glCheckFramebufferStatus glad_glCheckFramebufferStatus
1045GLAD_API_CALL PFNGLCLEARPROC glad_glClear;
1046#define glClear glad_glClear
1047GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor;
1048#define glClearColor glad_glClearColor
1049GLAD_API_CALL PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
1050#define glClearDepthf glad_glClearDepthf
1051GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil;
1052#define glClearStencil glad_glClearStencil
1053GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask;
1054#define glColorMask glad_glColorMask
1055GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader;
1056#define glCompileShader glad_glCompileShader
1057GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
1058#define glCompressedTexImage2D glad_glCompressedTexImage2D
1059GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
1060#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
1061GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
1062#define glCopyTexImage2D glad_glCopyTexImage2D
1063GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
1064#define glCopyTexSubImage2D glad_glCopyTexSubImage2D
1065GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
1066#define glCreateProgram glad_glCreateProgram
1067GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader;
1068#define glCreateShader glad_glCreateShader
1069GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace;
1070#define glCullFace glad_glCullFace
1071GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
1072#define glDeleteBuffers glad_glDeleteBuffers
1073GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
1074#define glDeleteFramebuffers glad_glDeleteFramebuffers
1075GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
1076#define glDeleteProgram glad_glDeleteProgram
1077GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
1078#define glDeleteRenderbuffers glad_glDeleteRenderbuffers
1079GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader;
1080#define glDeleteShader glad_glDeleteShader
1081GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
1082#define glDeleteTextures glad_glDeleteTextures
1083GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc;
1084#define glDepthFunc glad_glDepthFunc
1085GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask;
1086#define glDepthMask glad_glDepthMask
1087GLAD_API_CALL PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
1088#define glDepthRangef glad_glDepthRangef
1089GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader;
1090#define glDetachShader glad_glDetachShader
1091GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable;
1092#define glDisable glad_glDisable
1093GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
1094#define glDisableVertexAttribArray glad_glDisableVertexAttribArray
1095GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays;
1096#define glDrawArrays glad_glDrawArrays
1097GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements;
1098#define glDrawElements glad_glDrawElements
1099GLAD_API_CALL PFNGLENABLEPROC glad_glEnable;
1100#define glEnable glad_glEnable
1101GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
1102#define glEnableVertexAttribArray glad_glEnableVertexAttribArray
1103GLAD_API_CALL PFNGLFINISHPROC glad_glFinish;
1104#define glFinish glad_glFinish
1105GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush;
1106#define glFlush glad_glFlush
1107GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
1108#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
1109GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
1110#define glFramebufferTexture2D glad_glFramebufferTexture2D
1111GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace;
1112#define glFrontFace glad_glFrontFace
1113GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers;
1114#define glGenBuffers glad_glGenBuffers
1115GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
1116#define glGenFramebuffers glad_glGenFramebuffers
1117GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
1118#define glGenRenderbuffers glad_glGenRenderbuffers
1119GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures;
1120#define glGenTextures glad_glGenTextures
1121GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
1122#define glGenerateMipmap glad_glGenerateMipmap
1123GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
1124#define glGetActiveAttrib glad_glGetActiveAttrib
1125GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
1126#define glGetActiveUniform glad_glGetActiveUniform
1127GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
1128#define glGetAttachedShaders glad_glGetAttachedShaders
1129GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
1130#define glGetAttribLocation glad_glGetAttribLocation
1131GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
1132#define glGetBooleanv glad_glGetBooleanv
1133GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
1134#define glGetBufferParameteriv glad_glGetBufferParameteriv
1135GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError;
1136#define glGetError glad_glGetError
1137GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv;
1138#define glGetFloatv glad_glGetFloatv
1139GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
1140#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
1141GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv;
1142#define glGetIntegerv glad_glGetIntegerv
1143GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
1144#define glGetProgramInfoLog glad_glGetProgramInfoLog
1145GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
1146#define glGetProgramiv glad_glGetProgramiv
1147GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
1148#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
1149GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
1150#define glGetShaderInfoLog glad_glGetShaderInfoLog
1151GLAD_API_CALL PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
1152#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat
1153GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
1154#define glGetShaderSource glad_glGetShaderSource
1155GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv;
1156#define glGetShaderiv glad_glGetShaderiv
1157GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString;
1158#define glGetString glad_glGetString
1159GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
1160#define glGetTexParameterfv glad_glGetTexParameterfv
1161GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
1162#define glGetTexParameteriv glad_glGetTexParameteriv
1163GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
1164#define glGetUniformLocation glad_glGetUniformLocation
1165GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
1166#define glGetUniformfv glad_glGetUniformfv
1167GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
1168#define glGetUniformiv glad_glGetUniformiv
1169GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
1170#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
1171GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
1172#define glGetVertexAttribfv glad_glGetVertexAttribfv
1173GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
1174#define glGetVertexAttribiv glad_glGetVertexAttribiv
1175GLAD_API_CALL PFNGLHINTPROC glad_glHint;
1176#define glHint glad_glHint
1177GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer;
1178#define glIsBuffer glad_glIsBuffer
1179GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled;
1180#define glIsEnabled glad_glIsEnabled
1181GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
1182#define glIsFramebuffer glad_glIsFramebuffer
1183GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram;
1184#define glIsProgram glad_glIsProgram
1185GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
1186#define glIsRenderbuffer glad_glIsRenderbuffer
1187GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader;
1188#define glIsShader glad_glIsShader
1189GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture;
1190#define glIsTexture glad_glIsTexture
1191GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth;
1192#define glLineWidth glad_glLineWidth
1193GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram;
1194#define glLinkProgram glad_glLinkProgram
1195GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei;
1196#define glPixelStorei glad_glPixelStorei
1197GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
1198#define glPolygonOffset glad_glPolygonOffset
1199GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels;
1200#define glReadPixels glad_glReadPixels
1201GLAD_API_CALL PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
1202#define glReleaseShaderCompiler glad_glReleaseShaderCompiler
1203GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
1204#define glRenderbufferStorage glad_glRenderbufferStorage
1205GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
1206#define glSampleCoverage glad_glSampleCoverage
1207GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor;
1208#define glScissor glad_glScissor
1209GLAD_API_CALL PFNGLSHADERBINARYPROC glad_glShaderBinary;
1210#define glShaderBinary glad_glShaderBinary
1211GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource;
1212#define glShaderSource glad_glShaderSource
1213GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc;
1214#define glStencilFunc glad_glStencilFunc
1215GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
1216#define glStencilFuncSeparate glad_glStencilFuncSeparate
1217GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask;
1218#define glStencilMask glad_glStencilMask
1219GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
1220#define glStencilMaskSeparate glad_glStencilMaskSeparate
1221GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp;
1222#define glStencilOp glad_glStencilOp
1223GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
1224#define glStencilOpSeparate glad_glStencilOpSeparate
1225GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
1226#define glTexImage2D glad_glTexImage2D
1227GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
1228#define glTexParameterf glad_glTexParameterf
1229GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
1230#define glTexParameterfv glad_glTexParameterfv
1231GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
1232#define glTexParameteri glad_glTexParameteri
1233GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
1234#define glTexParameteriv glad_glTexParameteriv
1235GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
1236#define glTexSubImage2D glad_glTexSubImage2D
1237GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f;
1238#define glUniform1f glad_glUniform1f
1239GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv;
1240#define glUniform1fv glad_glUniform1fv
1241GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i;
1242#define glUniform1i glad_glUniform1i
1243GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv;
1244#define glUniform1iv glad_glUniform1iv
1245GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f;
1246#define glUniform2f glad_glUniform2f
1247GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv;
1248#define glUniform2fv glad_glUniform2fv
1249GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i;
1250#define glUniform2i glad_glUniform2i
1251GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv;
1252#define glUniform2iv glad_glUniform2iv
1253GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f;
1254#define glUniform3f glad_glUniform3f
1255GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv;
1256#define glUniform3fv glad_glUniform3fv
1257GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i;
1258#define glUniform3i glad_glUniform3i
1259GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv;
1260#define glUniform3iv glad_glUniform3iv
1261GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f;
1262#define glUniform4f glad_glUniform4f
1263GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv;
1264#define glUniform4fv glad_glUniform4fv
1265GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i;
1266#define glUniform4i glad_glUniform4i
1267GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv;
1268#define glUniform4iv glad_glUniform4iv
1269GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
1270#define glUniformMatrix2fv glad_glUniformMatrix2fv
1271GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
1272#define glUniformMatrix3fv glad_glUniformMatrix3fv
1273GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
1274#define glUniformMatrix4fv glad_glUniformMatrix4fv
1275GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram;
1276#define glUseProgram glad_glUseProgram
1277GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
1278#define glValidateProgram glad_glValidateProgram
1279GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
1280#define glVertexAttrib1f glad_glVertexAttrib1f
1281GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
1282#define glVertexAttrib1fv glad_glVertexAttrib1fv
1283GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
1284#define glVertexAttrib2f glad_glVertexAttrib2f
1285GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
1286#define glVertexAttrib2fv glad_glVertexAttrib2fv
1287GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
1288#define glVertexAttrib3f glad_glVertexAttrib3f
1289GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
1290#define glVertexAttrib3fv glad_glVertexAttrib3fv
1291GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
1292#define glVertexAttrib4f glad_glVertexAttrib4f
1293GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
1294#define glVertexAttrib4fv glad_glVertexAttrib4fv
1295GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
1296#define glVertexAttribPointer glad_glVertexAttribPointer
1297GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport;
1298#define glViewport glad_glViewport
1299
1300
1301
1302
1303
1304GLAD_API_CALL int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr);
1305GLAD_API_CALL int gladLoadGLES2( GLADloadfunc load);
1306
1307
1308
1309#ifdef __cplusplus
1310}
1311#endif
1312#endif
1313
1314/* Source */
1315#ifdef GLAD_GLES2_IMPLEMENTATION
1316#include <stdio.h>
1317#include <stdlib.h>
1318#include <string.h>
1319
1320#ifndef GLAD_IMPL_UTIL_C_
1321#define GLAD_IMPL_UTIL_C_
1322
1323#ifdef _MSC_VER
1324#define GLAD_IMPL_UTIL_SSCANF sscanf_s
1325#else
1326#define GLAD_IMPL_UTIL_SSCANF sscanf
1327#endif
1328
1329#endif /* GLAD_IMPL_UTIL_C_ */
1330
1331#ifdef __cplusplus
1332extern "C" {
1333#endif
1334
1335
1336
1337int GLAD_GL_ES_VERSION_2_0 = 0;
1338
1339
1340
1341PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
1342PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
1343PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
1344PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
1345PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
1346PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
1347PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
1348PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
1349PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
1350PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
1351PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
1352PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
1353PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
1354PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
1355PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
1356PFNGLCLEARPROC glad_glClear = NULL;
1357PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
1358PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL;
1359PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
1360PFNGLCOLORMASKPROC glad_glColorMask = NULL;
1361PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
1362PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
1363PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
1364PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
1365PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
1366PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
1367PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
1368PFNGLCULLFACEPROC glad_glCullFace = NULL;
1369PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
1370PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
1371PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
1372PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
1373PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
1374PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
1375PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
1376PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
1377PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL;
1378PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
1379PFNGLDISABLEPROC glad_glDisable = NULL;
1380PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
1381PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
1382PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
1383PFNGLENABLEPROC glad_glEnable = NULL;
1384PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
1385PFNGLFINISHPROC glad_glFinish = NULL;
1386PFNGLFLUSHPROC glad_glFlush = NULL;
1387PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
1388PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
1389PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
1390PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
1391PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
1392PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
1393PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
1394PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
1395PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
1396PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
1397PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
1398PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
1399PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
1400PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
1401PFNGLGETERRORPROC glad_glGetError = NULL;
1402PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
1403PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
1404PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
1405PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
1406PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
1407PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
1408PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
1409PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL;
1410PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
1411PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
1412PFNGLGETSTRINGPROC glad_glGetString = NULL;
1413PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
1414PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
1415PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
1416PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
1417PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
1418PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
1419PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
1420PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
1421PFNGLHINTPROC glad_glHint = NULL;
1422PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
1423PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
1424PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
1425PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
1426PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
1427PFNGLISSHADERPROC glad_glIsShader = NULL;
1428PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
1429PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
1430PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
1431PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
1432PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
1433PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
1434PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL;
1435PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
1436PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
1437PFNGLSCISSORPROC glad_glScissor = NULL;
1438PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL;
1439PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
1440PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
1441PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
1442PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
1443PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
1444PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
1445PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
1446PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
1447PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
1448PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
1449PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
1450PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
1451PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
1452PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
1453PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
1454PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
1455PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
1456PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
1457PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
1458PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
1459PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
1460PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
1461PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
1462PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
1463PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
1464PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
1465PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
1466PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
1467PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
1468PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
1469PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
1470PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
1471PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
1472PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
1473PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
1474PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
1475PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
1476PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
1477PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
1478PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
1479PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
1480PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
1481PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
1482PFNGLVIEWPORTPROC glad_glViewport = NULL;
1483
1484
1485static void glad_gl_load_GL_ES_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) {
1486 if(!GLAD_GL_ES_VERSION_2_0) return;
1487 glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture");
1488 glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader");
1489 glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation");
1490 glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer");
1491 glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer");
1492 glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer");
1493 glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture");
1494 glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor");
1495 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation");
1496 glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate");
1497 glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc");
1498 glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate");
1499 glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData");
1500 glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData");
1501 glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus");
1502 glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear");
1503 glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor");
1504 glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf");
1505 glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil");
1506 glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask");
1507 glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader");
1508 glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D");
1509 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D");
1510 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D");
1511 glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D");
1512 glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram");
1513 glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader");
1514 glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace");
1515 glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers");
1516 glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers");
1517 glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram");
1518 glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers");
1519 glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader");
1520 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures");
1521 glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc");
1522 glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask");
1523 glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef");
1524 glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader");
1525 glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable");
1526 glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray");
1527 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays");
1528 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements");
1529 glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable");
1530 glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray");
1531 glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish");
1532 glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush");
1533 glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer");
1534 glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D");
1535 glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace");
1536 glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers");
1537 glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers");
1538 glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers");
1539 glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures");
1540 glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap");
1541 glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib");
1542 glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform");
1543 glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders");
1544 glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation");
1545 glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv");
1546 glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv");
1547 glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError");
1548 glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv");
1549 glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv");
1550 glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv");
1551 glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog");
1552 glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv");
1553 glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv");
1554 glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog");
1555 glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat");
1556 glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource");
1557 glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv");
1558 glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
1559 glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv");
1560 glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv");
1561 glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation");
1562 glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv");
1563 glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv");
1564 glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv");
1565 glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv");
1566 glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv");
1567 glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint");
1568 glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer");
1569 glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled");
1570 glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer");
1571 glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram");
1572 glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer");
1573 glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader");
1574 glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture");
1575 glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth");
1576 glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram");
1577 glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei");
1578 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset");
1579 glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels");
1580 glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler");
1581 glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage");
1582 glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage");
1583 glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor");
1584 glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary");
1585 glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource");
1586 glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc");
1587 glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate");
1588 glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask");
1589 glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate");
1590 glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp");
1591 glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate");
1592 glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D");
1593 glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf");
1594 glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv");
1595 glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri");
1596 glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv");
1597 glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D");
1598 glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f");
1599 glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv");
1600 glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i");
1601 glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv");
1602 glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f");
1603 glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv");
1604 glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i");
1605 glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv");
1606 glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f");
1607 glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv");
1608 glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i");
1609 glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv");
1610 glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f");
1611 glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv");
1612 glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i");
1613 glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv");
1614 glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv");
1615 glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv");
1616 glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv");
1617 glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram");
1618 glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram");
1619 glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f");
1620 glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv");
1621 glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f");
1622 glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv");
1623 glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f");
1624 glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv");
1625 glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f");
1626 glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv");
1627 glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer");
1628 glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport");
1629}
1630
1631
1632
1633#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
1634#define GLAD_GL_IS_SOME_NEW_VERSION 1
1635#else
1636#define GLAD_GL_IS_SOME_NEW_VERSION 0
1637#endif
1638
1639static int glad_gl_get_extensions( int version, const char **out_exts, unsigned int *out_num_exts_i, char ***out_exts_i) {
1640#if GLAD_GL_IS_SOME_NEW_VERSION
1641 if(GLAD_VERSION_MAJOR(version) < 3) {
1642#else
1643 (void) version;
1644 (void) out_num_exts_i;
1645 (void) out_exts_i;
1646#endif
1647 if (glad_glGetString == NULL) {
1648 return 0;
1649 }
1650 *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS);
1651#if GLAD_GL_IS_SOME_NEW_VERSION
1652 } else {
1653 unsigned int index = 0;
1654 unsigned int num_exts_i = 0;
1655 char **exts_i = NULL;
1656 if (glad_glGetStringi == NULL || glad_glGetIntegerv == NULL) {
1657 return 0;
1658 }
1659 glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i);
1660 if (num_exts_i > 0) {
1661 exts_i = (char **) malloc(num_exts_i * (sizeof *exts_i));
1662 }
1663 if (exts_i == NULL) {
1664 return 0;
1665 }
1666 for(index = 0; index < num_exts_i; index++) {
1667 const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index);
1668 size_t len = strlen(gl_str_tmp) + 1;
1669
1670 char *local_str = (char*) malloc(len * sizeof(char));
1671 if(local_str != NULL) {
1672 memcpy(local_str, gl_str_tmp, len * sizeof(char));
1673 }
1674
1675 exts_i[index] = local_str;
1676 }
1677
1678 *out_num_exts_i = num_exts_i;
1679 *out_exts_i = exts_i;
1680 }
1681#endif
1682 return 1;
1683}
1684static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) {
1685 if (exts_i != NULL) {
1686 unsigned int index;
1687 for(index = 0; index < num_exts_i; index++) {
1688 free((void *) (exts_i[index]));
1689 }
1690 free((void *)exts_i);
1691 exts_i = NULL;
1692 }
1693}
1694static int glad_gl_has_extension(int version, const char *exts, unsigned int num_exts_i, char **exts_i, const char *ext) {
1695 if(GLAD_VERSION_MAJOR(version) < 3 || !GLAD_GL_IS_SOME_NEW_VERSION) {
1696 const char *extensions;
1697 const char *loc;
1698 const char *terminator;
1699 extensions = exts;
1700 if(extensions == NULL || ext == NULL) {
1701 return 0;
1702 }
1703 while(1) {
1704 loc = strstr(extensions, ext);
1705 if(loc == NULL) {
1706 return 0;
1707 }
1708 terminator = loc + strlen(ext);
1709 if((loc == extensions || *(loc - 1) == ' ') &&
1710 (*terminator == ' ' || *terminator == '\0')) {
1711 return 1;
1712 }
1713 extensions = terminator;
1714 }
1715 } else {
1716 unsigned int index;
1717 for(index = 0; index < num_exts_i; index++) {
1718 const char *e = exts_i[index];
1719 if(strcmp(e, ext) == 0) {
1720 return 1;
1721 }
1722 }
1723 }
1724 return 0;
1725}
1726
1727static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) {
1728 return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
1729}
1730
1731static int glad_gl_find_extensions_gles2( int version) {
1732 const char *exts = NULL;
1733 unsigned int num_exts_i = 0;
1734 char **exts_i = NULL;
1735 if (!glad_gl_get_extensions(version, &exts, &num_exts_i, &exts_i)) return 0;
1736
1737 (void) glad_gl_has_extension;
1738
1739 glad_gl_free_extensions(exts_i, num_exts_i);
1740
1741 return 1;
1742}
1743
1744static int glad_gl_find_core_gles2(void) {
1745 int i;
1746 const char* version;
1747 const char* prefixes[] = {
1748 "OpenGL ES-CM ",
1749 "OpenGL ES-CL ",
1750 "OpenGL ES ",
1751 "OpenGL SC ",
1752 NULL
1753 };
1754 int major = 0;
1755 int minor = 0;
1756 version = (const char*) glad_glGetString(GL_VERSION);
1757 if (!version) return 0;
1758 for (i = 0; prefixes[i]; i++) {
1759 const size_t length = strlen(prefixes[i]);
1760 if (strncmp(version, prefixes[i], length) == 0) {
1761 version += length;
1762 break;
1763 }
1764 }
1765
1766 GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
1767
1768 GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
1769
1770 return GLAD_MAKE_VERSION(major, minor);
1771}
1772
1773int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr) {
1774 int version;
1775
1776 glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
1777 if(glad_glGetString == NULL) return 0;
1778 if(glad_glGetString(GL_VERSION) == NULL) return 0;
1779 version = glad_gl_find_core_gles2();
1780
1781 glad_gl_load_GL_ES_VERSION_2_0(load, userptr);
1782
1783 if (!glad_gl_find_extensions_gles2(version)) return 0;
1784
1785
1786
1787 return version;
1788}
1789
1790
1791int gladLoadGLES2( GLADloadfunc load) {
1792 return gladLoadGLES2UserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
1793}
1794
1795
1796
1797
1798
1799
1800#ifdef __cplusplus
1801}
1802#endif
1803
1804#endif /* GLAD_GLES2_IMPLEMENTATION */
1805
diff --git a/raylib/src/external/glfw/deps/glad/vulkan.h b/raylib/src/external/glfw/deps/glad/vulkan.h
new file mode 100644
index 0000000..469ffe5
--- /dev/null
+++ b/raylib/src/external/glfw/deps/glad/vulkan.h
@@ -0,0 +1,6330 @@
1/**
2 * Loader generated by glad 2.0.0-beta on Thu Jul 7 20:52:04 2022
3 *
4 * Generator: C/C++
5 * Specification: vk
6 * Extensions: 4
7 *
8 * APIs:
9 * - vulkan=1.3
10 *
11 * Options:
12 * - ALIAS = False
13 * - DEBUG = False
14 * - HEADER_ONLY = True
15 * - LOADER = False
16 * - MX = False
17 * - MX_GLOBAL = False
18 * - ON_DEMAND = False
19 *
20 * Commandline:
21 * --api='vulkan=1.3' --extensions='VK_EXT_debug_report,VK_KHR_portability_enumeration,VK_KHR_surface,VK_KHR_swapchain' c --header-only
22 *
23 * Online:
24 * http://glad.sh/#api=vulkan%3D1.3&extensions=VK_EXT_debug_report%2CVK_KHR_portability_enumeration%2CVK_KHR_surface%2CVK_KHR_swapchain&generator=c&options=HEADER_ONLY
25 *
26 */
27
28#ifndef GLAD_VULKAN_H_
29#define GLAD_VULKAN_H_
30
31#ifdef VULKAN_H_
32 #error header already included (API: vulkan), remove previous include!
33#endif
34#define VULKAN_H_ 1
35
36#ifdef VULKAN_CORE_H_
37 #error header already included (API: vulkan), remove previous include!
38#endif
39#define VULKAN_CORE_H_ 1
40
41
42#define GLAD_VULKAN
43#define GLAD_OPTION_VULKAN_HEADER_ONLY
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
49#ifndef GLAD_PLATFORM_H_
50#define GLAD_PLATFORM_H_
51
52#ifndef GLAD_PLATFORM_WIN32
53 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
54 #define GLAD_PLATFORM_WIN32 1
55 #else
56 #define GLAD_PLATFORM_WIN32 0
57 #endif
58#endif
59
60#ifndef GLAD_PLATFORM_APPLE
61 #ifdef __APPLE__
62 #define GLAD_PLATFORM_APPLE 1
63 #else
64 #define GLAD_PLATFORM_APPLE 0
65 #endif
66#endif
67
68#ifndef GLAD_PLATFORM_EMSCRIPTEN
69 #ifdef __EMSCRIPTEN__
70 #define GLAD_PLATFORM_EMSCRIPTEN 1
71 #else
72 #define GLAD_PLATFORM_EMSCRIPTEN 0
73 #endif
74#endif
75
76#ifndef GLAD_PLATFORM_UWP
77 #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
78 #ifdef __has_include
79 #if __has_include(<winapifamily.h>)
80 #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
81 #endif
82 #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
83 #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
84 #endif
85 #endif
86
87 #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
88 #include <winapifamily.h>
89 #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
90 #define GLAD_PLATFORM_UWP 1
91 #endif
92 #endif
93
94 #ifndef GLAD_PLATFORM_UWP
95 #define GLAD_PLATFORM_UWP 0
96 #endif
97#endif
98
99#ifdef __GNUC__
100 #define GLAD_GNUC_EXTENSION __extension__
101#else
102 #define GLAD_GNUC_EXTENSION
103#endif
104
105#ifndef GLAD_API_CALL
106 #if defined(GLAD_API_CALL_EXPORT)
107 #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
108 #if defined(GLAD_API_CALL_EXPORT_BUILD)
109 #if defined(__GNUC__)
110 #define GLAD_API_CALL __attribute__ ((dllexport)) extern
111 #else
112 #define GLAD_API_CALL __declspec(dllexport) extern
113 #endif
114 #else
115 #if defined(__GNUC__)
116 #define GLAD_API_CALL __attribute__ ((dllimport)) extern
117 #else
118 #define GLAD_API_CALL __declspec(dllimport) extern
119 #endif
120 #endif
121 #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
122 #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
123 #else
124 #define GLAD_API_CALL extern
125 #endif
126 #else
127 #define GLAD_API_CALL extern
128 #endif
129#endif
130
131#ifdef APIENTRY
132 #define GLAD_API_PTR APIENTRY
133#elif GLAD_PLATFORM_WIN32
134 #define GLAD_API_PTR __stdcall
135#else
136 #define GLAD_API_PTR
137#endif
138
139#ifndef GLAPI
140#define GLAPI GLAD_API_CALL
141#endif
142
143#ifndef GLAPIENTRY
144#define GLAPIENTRY GLAD_API_PTR
145#endif
146
147#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
148#define GLAD_VERSION_MAJOR(version) (version / 10000)
149#define GLAD_VERSION_MINOR(version) (version % 10000)
150
151#define GLAD_GENERATOR_VERSION "2.0.0-beta"
152
153typedef void (*GLADapiproc)(void);
154
155typedef GLADapiproc (*GLADloadfunc)(const char *name);
156typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
157
158typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
159typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
160
161#endif /* GLAD_PLATFORM_H_ */
162
163#define VK_ATTACHMENT_UNUSED (~0U)
164#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
165#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
166#define VK_FALSE 0
167#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
168#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
169#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
170#define VK_KHR_SURFACE_SPEC_VERSION 25
171#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
172#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
173#define VK_LOD_CLAMP_NONE 1000.0F
174#define VK_LUID_SIZE 8
175#define VK_MAX_DESCRIPTION_SIZE 256
176#define VK_MAX_DEVICE_GROUP_SIZE 32
177#define VK_MAX_DRIVER_INFO_SIZE 256
178#define VK_MAX_DRIVER_NAME_SIZE 256
179#define VK_MAX_EXTENSION_NAME_SIZE 256
180#define VK_MAX_MEMORY_HEAPS 16
181#define VK_MAX_MEMORY_TYPES 32
182#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
183#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
184#define VK_QUEUE_FAMILY_IGNORED (~0U)
185#define VK_REMAINING_ARRAY_LAYERS (~0U)
186#define VK_REMAINING_MIP_LEVELS (~0U)
187#define VK_SUBPASS_EXTERNAL (~0U)
188#define VK_TRUE 1
189#define VK_UUID_SIZE 16
190#define VK_WHOLE_SIZE (~0ULL)
191
192
193/* */
194/* File: vk_platform.h */
195/* */
196/*
197** Copyright 2014-2022 The Khronos Group Inc.
198**
199** SPDX-License-Identifier: Apache-2.0
200*/
201
202
203#ifndef VK_PLATFORM_H_
204#define VK_PLATFORM_H_
205
206#ifdef __cplusplus
207extern "C"
208{
209#endif /* __cplusplus */
210
211/*
212***************************************************************************************************
213* Platform-specific directives and type declarations
214***************************************************************************************************
215*/
216
217/* Platform-specific calling convention macros.
218 *
219 * Platforms should define these so that Vulkan clients call Vulkan commands
220 * with the same calling conventions that the Vulkan implementation expects.
221 *
222 * VKAPI_ATTR - Placed before the return type in function declarations.
223 * Useful for C++11 and GCC/Clang-style function attribute syntax.
224 * VKAPI_CALL - Placed after the return type in function declarations.
225 * Useful for MSVC-style calling convention syntax.
226 * VKAPI_PTR - Placed between the '(' and '*' in function pointer types.
227 *
228 * Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
229 * Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
230 */
231#if defined(_WIN32)
232 /* On Windows, Vulkan commands use the stdcall convention */
233 #define VKAPI_ATTR
234 #define VKAPI_CALL __stdcall
235 #define VKAPI_PTR VKAPI_CALL
236#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
237 #error "Vulkan is not supported for the 'armeabi' NDK ABI"
238#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
239 /* On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" */
240 /* calling convention, i.e. float parameters are passed in registers. This */
241 /* is true even if the rest of the application passes floats on the stack, */
242 /* as it does by default when compiling for the armeabi-v7a NDK ABI. */
243 #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
244 #define VKAPI_CALL
245 #define VKAPI_PTR VKAPI_ATTR
246#else
247 /* On other platforms, use the default calling convention */
248 #define VKAPI_ATTR
249 #define VKAPI_CALL
250 #define VKAPI_PTR
251#endif
252
253#if !defined(VK_NO_STDDEF_H)
254 #include <stddef.h>
255#endif /* !defined(VK_NO_STDDEF_H) */
256
257#if !defined(VK_NO_STDINT_H)
258 #if defined(_MSC_VER) && (_MSC_VER < 1600)
259 typedef signed __int8 int8_t;
260 typedef unsigned __int8 uint8_t;
261 typedef signed __int16 int16_t;
262 typedef unsigned __int16 uint16_t;
263 typedef signed __int32 int32_t;
264 typedef unsigned __int32 uint32_t;
265 typedef signed __int64 int64_t;
266 typedef unsigned __int64 uint64_t;
267 #else
268 #include <stdint.h>
269 #endif
270#endif /* !defined(VK_NO_STDINT_H) */
271
272#ifdef __cplusplus
273} /* extern "C" */
274#endif /* __cplusplus */
275
276#endif
277/* DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. */
278#define VK_MAKE_VERSION(major, minor, patch) \
279 ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
280/* DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. */
281#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
282/* DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. */
283#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
284/* DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. */
285#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
286#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
287 ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
288#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
289#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
290#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
291#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
292/* DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. */
293/*#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 */
294/* Vulkan 1.0 version number */
295#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)/* Patch version should always be set to 0 */
296/* Vulkan 1.1 version number */
297#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)/* Patch version should always be set to 0 */
298/* Vulkan 1.2 version number */
299#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)/* Patch version should always be set to 0 */
300/* Vulkan 1.3 version number */
301#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)/* Patch version should always be set to 0 */
302/* Version of this file */
303#define VK_HEADER_VERSION 220
304/* Complete version of this file */
305#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
306#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
307#ifndef VK_USE_64_BIT_PTR_DEFINES
308 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
309 #define VK_USE_64_BIT_PTR_DEFINES 1
310 #else
311 #define VK_USE_64_BIT_PTR_DEFINES 0
312 #endif
313#endif
314#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
315 #if (VK_USE_64_BIT_PTR_DEFINES==1)
316 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
317 #define VK_NULL_HANDLE nullptr
318 #else
319 #define VK_NULL_HANDLE ((void*)0)
320 #endif
321 #else
322 #define VK_NULL_HANDLE 0ULL
323 #endif
324#endif
325#ifndef VK_NULL_HANDLE
326 #define VK_NULL_HANDLE 0
327#endif
328#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
329 #if (VK_USE_64_BIT_PTR_DEFINES==1)
330 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
331 #else
332 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
333 #endif
334#endif
335
336
337
338
339
340
341
342
343VK_DEFINE_HANDLE(VkInstance)
344VK_DEFINE_HANDLE(VkPhysicalDevice)
345VK_DEFINE_HANDLE(VkDevice)
346VK_DEFINE_HANDLE(VkQueue)
347VK_DEFINE_HANDLE(VkCommandBuffer)
348VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
349VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
350VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
351VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
352VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
353VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
354VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
355VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
356VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
357VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
358VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
359VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
360VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
361VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
362VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
363VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
364VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
365VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
366VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
367VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
368VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
369VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
370VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
371VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
372VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
373VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
374typedef enum VkAttachmentLoadOp {
375 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
376 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
377 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
378 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
379} VkAttachmentLoadOp;
380typedef enum VkAttachmentStoreOp {
381 VK_ATTACHMENT_STORE_OP_STORE = 0,
382 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
383 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
384 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
385} VkAttachmentStoreOp;
386typedef enum VkBlendFactor {
387 VK_BLEND_FACTOR_ZERO = 0,
388 VK_BLEND_FACTOR_ONE = 1,
389 VK_BLEND_FACTOR_SRC_COLOR = 2,
390 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
391 VK_BLEND_FACTOR_DST_COLOR = 4,
392 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
393 VK_BLEND_FACTOR_SRC_ALPHA = 6,
394 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
395 VK_BLEND_FACTOR_DST_ALPHA = 8,
396 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
397 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
398 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
399 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
400 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
401 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
402 VK_BLEND_FACTOR_SRC1_COLOR = 15,
403 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
404 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
405 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
406 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
407} VkBlendFactor;
408typedef enum VkBlendOp {
409 VK_BLEND_OP_ADD = 0,
410 VK_BLEND_OP_SUBTRACT = 1,
411 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
412 VK_BLEND_OP_MIN = 3,
413 VK_BLEND_OP_MAX = 4,
414 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
415} VkBlendOp;
416typedef enum VkBorderColor {
417 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
418 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
419 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
420 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
421 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
422 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
423 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
424} VkBorderColor;
425typedef enum VkFramebufferCreateFlagBits {
426 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 1,
427 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
428} VkFramebufferCreateFlagBits;
429typedef enum VkPipelineCacheHeaderVersion {
430 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
431 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
432} VkPipelineCacheHeaderVersion;
433typedef enum VkPipelineCacheCreateFlagBits {
434 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 1,
435 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
436} VkPipelineCacheCreateFlagBits;
437typedef enum VkPipelineShaderStageCreateFlagBits {
438 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 1,
439 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 2,
440 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
441} VkPipelineShaderStageCreateFlagBits;
442typedef enum VkDescriptorSetLayoutCreateFlagBits {
443 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2,
444 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
445} VkDescriptorSetLayoutCreateFlagBits;
446typedef enum VkInstanceCreateFlagBits {
447 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1,
448 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
449} VkInstanceCreateFlagBits;
450typedef enum VkDeviceQueueCreateFlagBits {
451 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 1,
452 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
453} VkDeviceQueueCreateFlagBits;
454typedef enum VkBufferCreateFlagBits {
455 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1,
456 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2,
457 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4,
458 VK_BUFFER_CREATE_PROTECTED_BIT = 8,
459 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16,
460 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
461} VkBufferCreateFlagBits;
462typedef enum VkBufferUsageFlagBits {
463 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 1,
464 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 2,
465 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 4,
466 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 8,
467 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 16,
468 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 32,
469 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 64,
470 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128,
471 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256,
472 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072,
473 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
474} VkBufferUsageFlagBits;
475typedef enum VkColorComponentFlagBits {
476 VK_COLOR_COMPONENT_R_BIT = 1,
477 VK_COLOR_COMPONENT_G_BIT = 2,
478 VK_COLOR_COMPONENT_B_BIT = 4,
479 VK_COLOR_COMPONENT_A_BIT = 8,
480 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
481} VkColorComponentFlagBits;
482typedef enum VkComponentSwizzle {
483 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
484 VK_COMPONENT_SWIZZLE_ZERO = 1,
485 VK_COMPONENT_SWIZZLE_ONE = 2,
486 VK_COMPONENT_SWIZZLE_R = 3,
487 VK_COMPONENT_SWIZZLE_G = 4,
488 VK_COMPONENT_SWIZZLE_B = 5,
489 VK_COMPONENT_SWIZZLE_A = 6,
490 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
491} VkComponentSwizzle;
492typedef enum VkCommandPoolCreateFlagBits {
493 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1,
494 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2,
495 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 4,
496 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
497} VkCommandPoolCreateFlagBits;
498typedef enum VkCommandPoolResetFlagBits {
499 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1,
500 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
501} VkCommandPoolResetFlagBits;
502typedef enum VkCommandBufferResetFlagBits {
503 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1,
504 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
505} VkCommandBufferResetFlagBits;
506typedef enum VkCommandBufferLevel {
507 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
508 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
509 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
510} VkCommandBufferLevel;
511typedef enum VkCommandBufferUsageFlagBits {
512 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1,
513 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2,
514 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4,
515 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
516} VkCommandBufferUsageFlagBits;
517typedef enum VkCompareOp {
518 VK_COMPARE_OP_NEVER = 0,
519 VK_COMPARE_OP_LESS = 1,
520 VK_COMPARE_OP_EQUAL = 2,
521 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
522 VK_COMPARE_OP_GREATER = 4,
523 VK_COMPARE_OP_NOT_EQUAL = 5,
524 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
525 VK_COMPARE_OP_ALWAYS = 7,
526 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
527} VkCompareOp;
528typedef enum VkCullModeFlagBits {
529 VK_CULL_MODE_NONE = 0,
530 VK_CULL_MODE_FRONT_BIT = 1,
531 VK_CULL_MODE_BACK_BIT = 2,
532 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
533 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
534} VkCullModeFlagBits;
535typedef enum VkDescriptorType {
536 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
537 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
538 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
539 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
540 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
541 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
542 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
543 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
544 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
545 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
546 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
547 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
548 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
549} VkDescriptorType;
550typedef enum VkDynamicState {
551 VK_DYNAMIC_STATE_VIEWPORT = 0,
552 VK_DYNAMIC_STATE_SCISSOR = 1,
553 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
554 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
555 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
556 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
557 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
558 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
559 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
560 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
561 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
562 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
563 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
564 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
565 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
566 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
567 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
568 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
569 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
570 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
571 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
572 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
573 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
574 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
575 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
576} VkDynamicState;
577typedef enum VkFenceCreateFlagBits {
578 VK_FENCE_CREATE_SIGNALED_BIT = 1,
579 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
580} VkFenceCreateFlagBits;
581typedef enum VkPolygonMode {
582 VK_POLYGON_MODE_FILL = 0,
583 VK_POLYGON_MODE_LINE = 1,
584 VK_POLYGON_MODE_POINT = 2,
585 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
586} VkPolygonMode;
587typedef enum VkFormat {
588 VK_FORMAT_UNDEFINED = 0,
589 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
590 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
591 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
592 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
593 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
594 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
595 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
596 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
597 VK_FORMAT_R8_UNORM = 9,
598 VK_FORMAT_R8_SNORM = 10,
599 VK_FORMAT_R8_USCALED = 11,
600 VK_FORMAT_R8_SSCALED = 12,
601 VK_FORMAT_R8_UINT = 13,
602 VK_FORMAT_R8_SINT = 14,
603 VK_FORMAT_R8_SRGB = 15,
604 VK_FORMAT_R8G8_UNORM = 16,
605 VK_FORMAT_R8G8_SNORM = 17,
606 VK_FORMAT_R8G8_USCALED = 18,
607 VK_FORMAT_R8G8_SSCALED = 19,
608 VK_FORMAT_R8G8_UINT = 20,
609 VK_FORMAT_R8G8_SINT = 21,
610 VK_FORMAT_R8G8_SRGB = 22,
611 VK_FORMAT_R8G8B8_UNORM = 23,
612 VK_FORMAT_R8G8B8_SNORM = 24,
613 VK_FORMAT_R8G8B8_USCALED = 25,
614 VK_FORMAT_R8G8B8_SSCALED = 26,
615 VK_FORMAT_R8G8B8_UINT = 27,
616 VK_FORMAT_R8G8B8_SINT = 28,
617 VK_FORMAT_R8G8B8_SRGB = 29,
618 VK_FORMAT_B8G8R8_UNORM = 30,
619 VK_FORMAT_B8G8R8_SNORM = 31,
620 VK_FORMAT_B8G8R8_USCALED = 32,
621 VK_FORMAT_B8G8R8_SSCALED = 33,
622 VK_FORMAT_B8G8R8_UINT = 34,
623 VK_FORMAT_B8G8R8_SINT = 35,
624 VK_FORMAT_B8G8R8_SRGB = 36,
625 VK_FORMAT_R8G8B8A8_UNORM = 37,
626 VK_FORMAT_R8G8B8A8_SNORM = 38,
627 VK_FORMAT_R8G8B8A8_USCALED = 39,
628 VK_FORMAT_R8G8B8A8_SSCALED = 40,
629 VK_FORMAT_R8G8B8A8_UINT = 41,
630 VK_FORMAT_R8G8B8A8_SINT = 42,
631 VK_FORMAT_R8G8B8A8_SRGB = 43,
632 VK_FORMAT_B8G8R8A8_UNORM = 44,
633 VK_FORMAT_B8G8R8A8_SNORM = 45,
634 VK_FORMAT_B8G8R8A8_USCALED = 46,
635 VK_FORMAT_B8G8R8A8_SSCALED = 47,
636 VK_FORMAT_B8G8R8A8_UINT = 48,
637 VK_FORMAT_B8G8R8A8_SINT = 49,
638 VK_FORMAT_B8G8R8A8_SRGB = 50,
639 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
640 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
641 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
642 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
643 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
644 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
645 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
646 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
647 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
648 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
649 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
650 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
651 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
652 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
653 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
654 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
655 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
656 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
657 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
658 VK_FORMAT_R16_UNORM = 70,
659 VK_FORMAT_R16_SNORM = 71,
660 VK_FORMAT_R16_USCALED = 72,
661 VK_FORMAT_R16_SSCALED = 73,
662 VK_FORMAT_R16_UINT = 74,
663 VK_FORMAT_R16_SINT = 75,
664 VK_FORMAT_R16_SFLOAT = 76,
665 VK_FORMAT_R16G16_UNORM = 77,
666 VK_FORMAT_R16G16_SNORM = 78,
667 VK_FORMAT_R16G16_USCALED = 79,
668 VK_FORMAT_R16G16_SSCALED = 80,
669 VK_FORMAT_R16G16_UINT = 81,
670 VK_FORMAT_R16G16_SINT = 82,
671 VK_FORMAT_R16G16_SFLOAT = 83,
672 VK_FORMAT_R16G16B16_UNORM = 84,
673 VK_FORMAT_R16G16B16_SNORM = 85,
674 VK_FORMAT_R16G16B16_USCALED = 86,
675 VK_FORMAT_R16G16B16_SSCALED = 87,
676 VK_FORMAT_R16G16B16_UINT = 88,
677 VK_FORMAT_R16G16B16_SINT = 89,
678 VK_FORMAT_R16G16B16_SFLOAT = 90,
679 VK_FORMAT_R16G16B16A16_UNORM = 91,
680 VK_FORMAT_R16G16B16A16_SNORM = 92,
681 VK_FORMAT_R16G16B16A16_USCALED = 93,
682 VK_FORMAT_R16G16B16A16_SSCALED = 94,
683 VK_FORMAT_R16G16B16A16_UINT = 95,
684 VK_FORMAT_R16G16B16A16_SINT = 96,
685 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
686 VK_FORMAT_R32_UINT = 98,
687 VK_FORMAT_R32_SINT = 99,
688 VK_FORMAT_R32_SFLOAT = 100,
689 VK_FORMAT_R32G32_UINT = 101,
690 VK_FORMAT_R32G32_SINT = 102,
691 VK_FORMAT_R32G32_SFLOAT = 103,
692 VK_FORMAT_R32G32B32_UINT = 104,
693 VK_FORMAT_R32G32B32_SINT = 105,
694 VK_FORMAT_R32G32B32_SFLOAT = 106,
695 VK_FORMAT_R32G32B32A32_UINT = 107,
696 VK_FORMAT_R32G32B32A32_SINT = 108,
697 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
698 VK_FORMAT_R64_UINT = 110,
699 VK_FORMAT_R64_SINT = 111,
700 VK_FORMAT_R64_SFLOAT = 112,
701 VK_FORMAT_R64G64_UINT = 113,
702 VK_FORMAT_R64G64_SINT = 114,
703 VK_FORMAT_R64G64_SFLOAT = 115,
704 VK_FORMAT_R64G64B64_UINT = 116,
705 VK_FORMAT_R64G64B64_SINT = 117,
706 VK_FORMAT_R64G64B64_SFLOAT = 118,
707 VK_FORMAT_R64G64B64A64_UINT = 119,
708 VK_FORMAT_R64G64B64A64_SINT = 120,
709 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
710 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
711 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
712 VK_FORMAT_D16_UNORM = 124,
713 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
714 VK_FORMAT_D32_SFLOAT = 126,
715 VK_FORMAT_S8_UINT = 127,
716 VK_FORMAT_D16_UNORM_S8_UINT = 128,
717 VK_FORMAT_D24_UNORM_S8_UINT = 129,
718 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
719 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
720 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
721 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
722 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
723 VK_FORMAT_BC2_UNORM_BLOCK = 135,
724 VK_FORMAT_BC2_SRGB_BLOCK = 136,
725 VK_FORMAT_BC3_UNORM_BLOCK = 137,
726 VK_FORMAT_BC3_SRGB_BLOCK = 138,
727 VK_FORMAT_BC4_UNORM_BLOCK = 139,
728 VK_FORMAT_BC4_SNORM_BLOCK = 140,
729 VK_FORMAT_BC5_UNORM_BLOCK = 141,
730 VK_FORMAT_BC5_SNORM_BLOCK = 142,
731 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
732 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
733 VK_FORMAT_BC7_UNORM_BLOCK = 145,
734 VK_FORMAT_BC7_SRGB_BLOCK = 146,
735 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
736 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
737 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
738 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
739 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
740 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
741 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
742 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
743 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
744 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
745 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
746 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
747 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
748 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
749 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
750 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
751 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
752 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
753 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
754 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
755 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
756 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
757 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
758 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
759 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
760 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
761 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
762 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
763 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
764 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
765 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
766 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
767 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
768 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
769 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
770 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
771 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
772 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
773 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
774 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
775 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
776 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
777 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
778 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
779 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
780 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
781 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
782 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
783 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
784 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
785 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
786 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
787 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
788 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
789 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
790 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
791 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
792 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
793 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
794 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
795 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
796 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
797 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
798 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
799 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
800 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
801 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
802 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
803 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
804 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
805 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
806 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
807 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
808 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
809 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
810 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
811 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
812 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
813 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
814 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
815 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
816 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
817 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
818 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
819 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
820 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
821 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
822 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
823 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
824 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
825 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
826 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
827 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
828} VkFormat;
829typedef enum VkFormatFeatureFlagBits {
830 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1,
831 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2,
832 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4,
833 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8,
834 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16,
835 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32,
836 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64,
837 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128,
838 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256,
839 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512,
840 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024,
841 VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048,
842 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096,
843 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 16384,
844 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 32768,
845 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 131072,
846 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144,
847 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288,
848 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576,
849 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152,
850 VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304,
851 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608,
852 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536,
853 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
854} VkFormatFeatureFlagBits;
855typedef enum VkFrontFace {
856 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
857 VK_FRONT_FACE_CLOCKWISE = 1,
858 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
859} VkFrontFace;
860typedef enum VkImageAspectFlagBits {
861 VK_IMAGE_ASPECT_COLOR_BIT = 1,
862 VK_IMAGE_ASPECT_DEPTH_BIT = 2,
863 VK_IMAGE_ASPECT_STENCIL_BIT = 4,
864 VK_IMAGE_ASPECT_METADATA_BIT = 8,
865 VK_IMAGE_ASPECT_PLANE_0_BIT = 16,
866 VK_IMAGE_ASPECT_PLANE_1_BIT = 32,
867 VK_IMAGE_ASPECT_PLANE_2_BIT = 64,
868 VK_IMAGE_ASPECT_NONE = 0,
869 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
870} VkImageAspectFlagBits;
871typedef enum VkImageCreateFlagBits {
872 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1,
873 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2,
874 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4,
875 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8,
876 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16,
877 VK_IMAGE_CREATE_ALIAS_BIT = 1024,
878 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 64,
879 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 32,
880 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 128,
881 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 256,
882 VK_IMAGE_CREATE_PROTECTED_BIT = 2048,
883 VK_IMAGE_CREATE_DISJOINT_BIT = 512,
884 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
885} VkImageCreateFlagBits;
886typedef enum VkImageLayout {
887 VK_IMAGE_LAYOUT_UNDEFINED = 0,
888 VK_IMAGE_LAYOUT_GENERAL = 1,
889 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
890 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
891 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
892 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
893 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
894 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
895 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
896 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
897 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
898 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
899 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
900 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
901 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
902 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
903 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
904 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
905 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
906} VkImageLayout;
907typedef enum VkImageTiling {
908 VK_IMAGE_TILING_OPTIMAL = 0,
909 VK_IMAGE_TILING_LINEAR = 1,
910 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
911} VkImageTiling;
912typedef enum VkImageType {
913 VK_IMAGE_TYPE_1D = 0,
914 VK_IMAGE_TYPE_2D = 1,
915 VK_IMAGE_TYPE_3D = 2,
916 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
917} VkImageType;
918typedef enum VkImageUsageFlagBits {
919 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1,
920 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2,
921 VK_IMAGE_USAGE_SAMPLED_BIT = 4,
922 VK_IMAGE_USAGE_STORAGE_BIT = 8,
923 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16,
924 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32,
925 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64,
926 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128,
927 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
928} VkImageUsageFlagBits;
929typedef enum VkImageViewType {
930 VK_IMAGE_VIEW_TYPE_1D = 0,
931 VK_IMAGE_VIEW_TYPE_2D = 1,
932 VK_IMAGE_VIEW_TYPE_3D = 2,
933 VK_IMAGE_VIEW_TYPE_CUBE = 3,
934 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
935 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
936 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
937 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
938} VkImageViewType;
939typedef enum VkSharingMode {
940 VK_SHARING_MODE_EXCLUSIVE = 0,
941 VK_SHARING_MODE_CONCURRENT = 1,
942 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
943} VkSharingMode;
944typedef enum VkIndexType {
945 VK_INDEX_TYPE_UINT16 = 0,
946 VK_INDEX_TYPE_UINT32 = 1,
947 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
948} VkIndexType;
949typedef enum VkLogicOp {
950 VK_LOGIC_OP_CLEAR = 0,
951 VK_LOGIC_OP_AND = 1,
952 VK_LOGIC_OP_AND_REVERSE = 2,
953 VK_LOGIC_OP_COPY = 3,
954 VK_LOGIC_OP_AND_INVERTED = 4,
955 VK_LOGIC_OP_NO_OP = 5,
956 VK_LOGIC_OP_XOR = 6,
957 VK_LOGIC_OP_OR = 7,
958 VK_LOGIC_OP_NOR = 8,
959 VK_LOGIC_OP_EQUIVALENT = 9,
960 VK_LOGIC_OP_INVERT = 10,
961 VK_LOGIC_OP_OR_REVERSE = 11,
962 VK_LOGIC_OP_COPY_INVERTED = 12,
963 VK_LOGIC_OP_OR_INVERTED = 13,
964 VK_LOGIC_OP_NAND = 14,
965 VK_LOGIC_OP_SET = 15,
966 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
967} VkLogicOp;
968typedef enum VkMemoryHeapFlagBits {
969 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1,
970 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 2,
971 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
972} VkMemoryHeapFlagBits;
973typedef enum VkAccessFlagBits {
974 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1,
975 VK_ACCESS_INDEX_READ_BIT = 2,
976 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4,
977 VK_ACCESS_UNIFORM_READ_BIT = 8,
978 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16,
979 VK_ACCESS_SHADER_READ_BIT = 32,
980 VK_ACCESS_SHADER_WRITE_BIT = 64,
981 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128,
982 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256,
983 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512,
984 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024,
985 VK_ACCESS_TRANSFER_READ_BIT = 2048,
986 VK_ACCESS_TRANSFER_WRITE_BIT = 4096,
987 VK_ACCESS_HOST_READ_BIT = 8192,
988 VK_ACCESS_HOST_WRITE_BIT = 16384,
989 VK_ACCESS_MEMORY_READ_BIT = 32768,
990 VK_ACCESS_MEMORY_WRITE_BIT = 65536,
991 VK_ACCESS_NONE = 0,
992 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
993} VkAccessFlagBits;
994typedef enum VkMemoryPropertyFlagBits {
995 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1,
996 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2,
997 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4,
998 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8,
999 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16,
1000 VK_MEMORY_PROPERTY_PROTECTED_BIT = 32,
1001 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1002} VkMemoryPropertyFlagBits;
1003typedef enum VkPhysicalDeviceType {
1004 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1005 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1006 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1007 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1008 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1009 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1010} VkPhysicalDeviceType;
1011typedef enum VkPipelineBindPoint {
1012 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
1013 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
1014 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
1015} VkPipelineBindPoint;
1016typedef enum VkPipelineCreateFlagBits {
1017 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1,
1018 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2,
1019 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4,
1020 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 8,
1021 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 16,
1022 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
1023 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 256,
1024 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 512,
1025 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1026} VkPipelineCreateFlagBits;
1027typedef enum VkPrimitiveTopology {
1028 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
1029 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
1030 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
1031 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
1032 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
1033 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
1034 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
1035 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
1036 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
1037 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
1038 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
1039 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
1040} VkPrimitiveTopology;
1041typedef enum VkQueryControlFlagBits {
1042 VK_QUERY_CONTROL_PRECISE_BIT = 1,
1043 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1044} VkQueryControlFlagBits;
1045typedef enum VkQueryPipelineStatisticFlagBits {
1046 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1,
1047 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2,
1048 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4,
1049 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8,
1050 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16,
1051 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32,
1052 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64,
1053 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128,
1054 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256,
1055 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512,
1056 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024,
1057 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1058} VkQueryPipelineStatisticFlagBits;
1059typedef enum VkQueryResultFlagBits {
1060 VK_QUERY_RESULT_64_BIT = 1,
1061 VK_QUERY_RESULT_WAIT_BIT = 2,
1062 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4,
1063 VK_QUERY_RESULT_PARTIAL_BIT = 8,
1064 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1065} VkQueryResultFlagBits;
1066typedef enum VkQueryType {
1067 VK_QUERY_TYPE_OCCLUSION = 0,
1068 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1069 VK_QUERY_TYPE_TIMESTAMP = 2,
1070 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1071} VkQueryType;
1072typedef enum VkQueueFlagBits {
1073 VK_QUEUE_GRAPHICS_BIT = 1,
1074 VK_QUEUE_COMPUTE_BIT = 2,
1075 VK_QUEUE_TRANSFER_BIT = 4,
1076 VK_QUEUE_SPARSE_BINDING_BIT = 8,
1077 VK_QUEUE_PROTECTED_BIT = 16,
1078 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1079} VkQueueFlagBits;
1080typedef enum VkSubpassContents {
1081 VK_SUBPASS_CONTENTS_INLINE = 0,
1082 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
1083 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
1084} VkSubpassContents;
1085typedef enum VkResult {
1086 VK_SUCCESS = 0,
1087 VK_NOT_READY = 1,
1088 VK_TIMEOUT = 2,
1089 VK_EVENT_SET = 3,
1090 VK_EVENT_RESET = 4,
1091 VK_INCOMPLETE = 5,
1092 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1093 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
1094 VK_ERROR_INITIALIZATION_FAILED = -3,
1095 VK_ERROR_DEVICE_LOST = -4,
1096 VK_ERROR_MEMORY_MAP_FAILED = -5,
1097 VK_ERROR_LAYER_NOT_PRESENT = -6,
1098 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
1099 VK_ERROR_FEATURE_NOT_PRESENT = -8,
1100 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
1101 VK_ERROR_TOO_MANY_OBJECTS = -10,
1102 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
1103 VK_ERROR_FRAGMENTED_POOL = -12,
1104 VK_ERROR_UNKNOWN = -13,
1105 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
1106 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
1107 VK_ERROR_FRAGMENTATION = -1000161000,
1108 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
1109 VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
1110 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
1111 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
1112 VK_SUBOPTIMAL_KHR = 1000001003,
1113 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
1114 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
1115 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
1116} VkResult;
1117typedef enum VkShaderStageFlagBits {
1118 VK_SHADER_STAGE_VERTEX_BIT = 1,
1119 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2,
1120 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4,
1121 VK_SHADER_STAGE_GEOMETRY_BIT = 8,
1122 VK_SHADER_STAGE_FRAGMENT_BIT = 16,
1123 VK_SHADER_STAGE_COMPUTE_BIT = 32,
1124 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1125 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
1126 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1127} VkShaderStageFlagBits;
1128typedef enum VkSparseMemoryBindFlagBits {
1129 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1,
1130 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1131} VkSparseMemoryBindFlagBits;
1132typedef enum VkStencilFaceFlagBits {
1133 VK_STENCIL_FACE_FRONT_BIT = 1,
1134 VK_STENCIL_FACE_BACK_BIT = 2,
1135 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
1136 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
1137 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1138} VkStencilFaceFlagBits;
1139typedef enum VkStencilOp {
1140 VK_STENCIL_OP_KEEP = 0,
1141 VK_STENCIL_OP_ZERO = 1,
1142 VK_STENCIL_OP_REPLACE = 2,
1143 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1144 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1145 VK_STENCIL_OP_INVERT = 5,
1146 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
1147 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
1148 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
1149} VkStencilOp;
1150typedef enum VkStructureType {
1151 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
1152 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1153 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1154 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1155 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
1156 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
1157 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1158 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1159 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1160 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1161 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
1162 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1163 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1164 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1165 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1166 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1167 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1168 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1169 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1170 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1171 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1172 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1173 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1174 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1175 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1176 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1177 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1178 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1179 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1180 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1181 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1182 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1183 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1184 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
1185 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
1186 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1187 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1188 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1189 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1190 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
1191 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
1192 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1193 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1194 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1195 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1196 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1197 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1198 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1199 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
1200 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1201 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1202 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1203 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1204 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1205 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1206 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1207 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1208 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1209 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1210 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1211 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1212 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1213 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1214 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1215 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1216 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1217 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1218 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1219 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1220 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1221 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1222 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1223 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1224 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1225 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1226 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1227 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1228 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1229 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1230 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1231 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1232 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1233 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1235 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
1237 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1238 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1239 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1241 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1242 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1243 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1244 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1245 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1247 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1248 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1249 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1250 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1252 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1254 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1255 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1256 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1258 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1259 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1260 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1262 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1264 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
1266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
1268 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
1270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
1271 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
1272 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
1273 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
1274 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
1275 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
1276 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
1277 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
1278 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
1279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
1280 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
1282 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
1283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
1284 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
1286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
1287 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
1288 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
1289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
1290 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
1291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
1292 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
1293 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
1294 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
1295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
1296 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
1297 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
1298 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
1299 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
1300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
1301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
1302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
1303 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
1304 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
1305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
1306 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
1307 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
1308 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
1309 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
1310 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
1311 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
1312 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
1313 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
1314 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
1315 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
1316 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
1317 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
1318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
1319 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
1320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
1321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
1322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
1323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
1324 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
1325 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
1326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
1327 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
1328 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
1329 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
1330 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
1331 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
1332 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
1333 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
1334 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
1335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
1336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
1337 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
1338 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
1339 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
1340 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
1341 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
1342 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
1343 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
1344 VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
1345 VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
1346 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
1347 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
1348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
1349 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
1351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
1352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
1353 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
1354 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
1355 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
1356 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
1357 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
1358 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
1359 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
1360 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
1361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
1362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
1363 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
1364 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
1365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
1366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
1367 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
1368 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
1369 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1370 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
1371 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1372 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1373 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1374 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1375 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1376 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
1377 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1378 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1379 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1380} VkStructureType;
1381typedef enum VkSystemAllocationScope {
1382 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1383 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1384 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1385 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1386 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1387 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1388} VkSystemAllocationScope;
1389typedef enum VkInternalAllocationType {
1390 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1391 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1392} VkInternalAllocationType;
1393typedef enum VkSamplerAddressMode {
1394 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
1395 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
1396 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
1397 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
1398 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
1399 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
1400} VkSamplerAddressMode;
1401typedef enum VkFilter {
1402 VK_FILTER_NEAREST = 0,
1403 VK_FILTER_LINEAR = 1,
1404 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
1405} VkFilter;
1406typedef enum VkSamplerMipmapMode {
1407 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
1408 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
1409 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
1410} VkSamplerMipmapMode;
1411typedef enum VkVertexInputRate {
1412 VK_VERTEX_INPUT_RATE_VERTEX = 0,
1413 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
1414 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
1415} VkVertexInputRate;
1416typedef enum VkPipelineStageFlagBits {
1417 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 1,
1418 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 2,
1419 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 4,
1420 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 8,
1421 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 16,
1422 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 32,
1423 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 64,
1424 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 128,
1425 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 256,
1426 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 512,
1427 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 1024,
1428 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 2048,
1429 VK_PIPELINE_STAGE_TRANSFER_BIT = 4096,
1430 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 8192,
1431 VK_PIPELINE_STAGE_HOST_BIT = 16384,
1432 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 32768,
1433 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 65536,
1434 VK_PIPELINE_STAGE_NONE = 0,
1435 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1436} VkPipelineStageFlagBits;
1437typedef enum VkSparseImageFormatFlagBits {
1438 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1,
1439 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2,
1440 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4,
1441 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1442} VkSparseImageFormatFlagBits;
1443typedef enum VkSampleCountFlagBits {
1444 VK_SAMPLE_COUNT_1_BIT = 1,
1445 VK_SAMPLE_COUNT_2_BIT = 2,
1446 VK_SAMPLE_COUNT_4_BIT = 4,
1447 VK_SAMPLE_COUNT_8_BIT = 8,
1448 VK_SAMPLE_COUNT_16_BIT = 16,
1449 VK_SAMPLE_COUNT_32_BIT = 32,
1450 VK_SAMPLE_COUNT_64_BIT = 64,
1451 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1452} VkSampleCountFlagBits;
1453typedef enum VkAttachmentDescriptionFlagBits {
1454 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1,
1455 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1456} VkAttachmentDescriptionFlagBits;
1457typedef enum VkDescriptorPoolCreateFlagBits {
1458 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1,
1459 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2,
1460 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1461} VkDescriptorPoolCreateFlagBits;
1462typedef enum VkDependencyFlagBits {
1463 VK_DEPENDENCY_BY_REGION_BIT = 1,
1464 VK_DEPENDENCY_DEVICE_GROUP_BIT = 4,
1465 VK_DEPENDENCY_VIEW_LOCAL_BIT = 2,
1466 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1467} VkDependencyFlagBits;
1468typedef enum VkObjectType {
1469 VK_OBJECT_TYPE_UNKNOWN = 0,
1470 VK_OBJECT_TYPE_INSTANCE = 1,
1471 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1472 VK_OBJECT_TYPE_DEVICE = 3,
1473 VK_OBJECT_TYPE_QUEUE = 4,
1474 VK_OBJECT_TYPE_SEMAPHORE = 5,
1475 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1476 VK_OBJECT_TYPE_FENCE = 7,
1477 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1478 VK_OBJECT_TYPE_BUFFER = 9,
1479 VK_OBJECT_TYPE_IMAGE = 10,
1480 VK_OBJECT_TYPE_EVENT = 11,
1481 VK_OBJECT_TYPE_QUERY_POOL = 12,
1482 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1483 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1484 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1485 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1486 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1487 VK_OBJECT_TYPE_RENDER_PASS = 18,
1488 VK_OBJECT_TYPE_PIPELINE = 19,
1489 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1490 VK_OBJECT_TYPE_SAMPLER = 21,
1491 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1492 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1493 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1494 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1495 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1496 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1497 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1498 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1499 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1500 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1501 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1502} VkObjectType;
1503typedef enum VkEventCreateFlagBits {
1504 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 1,
1505 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1506} VkEventCreateFlagBits;
1507typedef enum VkDescriptorUpdateTemplateType {
1508 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1509 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
1510} VkDescriptorUpdateTemplateType;
1511typedef enum VkPointClippingBehavior {
1512 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1513 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1514 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
1515} VkPointClippingBehavior;
1516typedef enum VkResolveModeFlagBits {
1517 VK_RESOLVE_MODE_NONE = 0,
1518 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 1,
1519 VK_RESOLVE_MODE_AVERAGE_BIT = 2,
1520 VK_RESOLVE_MODE_MIN_BIT = 4,
1521 VK_RESOLVE_MODE_MAX_BIT = 8,
1522 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1523} VkResolveModeFlagBits;
1524typedef enum VkDescriptorBindingFlagBits {
1525 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 1,
1526 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 2,
1527 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 4,
1528 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 8,
1529 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1530} VkDescriptorBindingFlagBits;
1531typedef enum VkSemaphoreType {
1532 VK_SEMAPHORE_TYPE_BINARY = 0,
1533 VK_SEMAPHORE_TYPE_TIMELINE = 1,
1534 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
1535} VkSemaphoreType;
1536typedef enum VkPipelineCreationFeedbackFlagBits {
1537 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 1,
1538 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
1539 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 2,
1540 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
1541 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 4,
1542 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
1543 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1544} VkPipelineCreationFeedbackFlagBits;
1545typedef enum VkSemaphoreWaitFlagBits {
1546 VK_SEMAPHORE_WAIT_ANY_BIT = 1,
1547 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1548} VkSemaphoreWaitFlagBits;
1549typedef enum VkToolPurposeFlagBits {
1550 VK_TOOL_PURPOSE_VALIDATION_BIT = 1,
1551 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
1552 VK_TOOL_PURPOSE_PROFILING_BIT = 2,
1553 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
1554 VK_TOOL_PURPOSE_TRACING_BIT = 4,
1555 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
1556 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 8,
1557 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
1558 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 16,
1559 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
1560 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1561} VkToolPurposeFlagBits;
1562typedef uint64_t VkAccessFlagBits2;
1563static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0;
1564static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0;
1565static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 1;
1566static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 1;
1567static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 2;
1568static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 2;
1569static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 4;
1570static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 4;
1571static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 8;
1572static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 8;
1573static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 16;
1574static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 16;
1575static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 32;
1576static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 32;
1577static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 64;
1578static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 64;
1579static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 128;
1580static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 128;
1581static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 256;
1582static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 256;
1583static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512;
1584static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 512;
1585static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024;
1586static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 1024;
1587static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 2048;
1588static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 2048;
1589static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 4096;
1590static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 4096;
1591static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 8192;
1592static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 8192;
1593static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 16384;
1594static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 16384;
1595static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 32768;
1596static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 32768;
1597static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 65536;
1598static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 65536;
1599static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 4294967296;
1600static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 4294967296;
1601static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 8589934592;
1602static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 8589934592;
1603static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 17179869184;
1604static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 17179869184;
1605
1606typedef uint64_t VkPipelineStageFlagBits2;
1607static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0;
1608static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0;
1609static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 1;
1610static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 1;
1611static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 2;
1612static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 2;
1613static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 4;
1614static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 4;
1615static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 8;
1616static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 8;
1617static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 16;
1618static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 16;
1619static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 32;
1620static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 32;
1621static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 64;
1622static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 64;
1623static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 128;
1624static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 128;
1625static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 256;
1626static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 256;
1627static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 512;
1628static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 512;
1629static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 1024;
1630static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 1024;
1631static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 2048;
1632static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 2048;
1633static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 4096;
1634static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 4096;
1635static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 4096;
1636static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 4096;
1637static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 8192;
1638static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 8192;
1639static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 16384;
1640static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 16384;
1641static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 32768;
1642static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 32768;
1643static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 65536;
1644static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 65536;
1645static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 4294967296;
1646static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 4294967296;
1647static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 8589934592;
1648static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 8589934592;
1649static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 17179869184;
1650static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 17179869184;
1651static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 34359738368;
1652static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 34359738368;
1653static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 68719476736;
1654static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 68719476736;
1655static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 137438953472;
1656static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 137438953472;
1657static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 274877906944;
1658static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 274877906944;
1659
1660typedef uint64_t VkFormatFeatureFlagBits2;
1661static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 1;
1662static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 1;
1663static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 2;
1664static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 2;
1665static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 4;
1666static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 4;
1667static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 8;
1668static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 8;
1669static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 16;
1670static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 16;
1671static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32;
1672static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 32;
1673static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 64;
1674static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 64;
1675static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 128;
1676static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 128;
1677static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 256;
1678static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 256;
1679static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 512;
1680static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 512;
1681static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 1024;
1682static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 1024;
1683static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 2048;
1684static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 2048;
1685static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096;
1686static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 4096;
1687static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 8192;
1688static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192;
1689static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 16384;
1690static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 16384;
1691static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 32768;
1692static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 32768;
1693static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536;
1694static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 65536;
1695static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 131072;
1696static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 131072;
1697static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144;
1698static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 262144;
1699static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288;
1700static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 524288;
1701static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576;
1702static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 1048576;
1703static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152;
1704static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152;
1705static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 4194304;
1706static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 4194304;
1707static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 8388608;
1708static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608;
1709static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 2147483648;
1710static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 2147483648;
1711static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 4294967296;
1712static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 4294967296;
1713static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 8589934592;
1714static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 8589934592;
1715
1716typedef enum VkRenderingFlagBits {
1717 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1,
1718 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
1719 VK_RENDERING_SUSPENDING_BIT = 2,
1720 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
1721 VK_RENDERING_RESUMING_BIT = 4,
1722 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
1723 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1724} VkRenderingFlagBits;
1725typedef enum VkColorSpaceKHR {
1726 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
1727 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
1728 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
1729} VkColorSpaceKHR;
1730typedef enum VkCompositeAlphaFlagBitsKHR {
1731 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1,
1732 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2,
1733 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4,
1734 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8,
1735 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
1736} VkCompositeAlphaFlagBitsKHR;
1737typedef enum VkPresentModeKHR {
1738 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
1739 VK_PRESENT_MODE_MAILBOX_KHR = 1,
1740 VK_PRESENT_MODE_FIFO_KHR = 2,
1741 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
1742 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
1743} VkPresentModeKHR;
1744typedef enum VkSurfaceTransformFlagBitsKHR {
1745 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1,
1746 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2,
1747 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4,
1748 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8,
1749 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16,
1750 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32,
1751 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64,
1752 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128,
1753 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256,
1754 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
1755} VkSurfaceTransformFlagBitsKHR;
1756typedef enum VkDebugReportFlagBitsEXT {
1757 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1,
1758 VK_DEBUG_REPORT_WARNING_BIT_EXT = 2,
1759 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4,
1760 VK_DEBUG_REPORT_ERROR_BIT_EXT = 8,
1761 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16,
1762 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
1763} VkDebugReportFlagBitsEXT;
1764typedef enum VkDebugReportObjectTypeEXT {
1765 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1766 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1767 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1768 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1769 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1770 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1771 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1772 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1773 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1774 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1775 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1776 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1777 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1778 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1779 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1780 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1781 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1782 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1783 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1784 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1785 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1786 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1787 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1788 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1789 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1790 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1791 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1792 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
1793 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
1794 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
1795 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1796 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1797 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
1798 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
1799 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
1800 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
1801 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
1802} VkDebugReportObjectTypeEXT;
1803typedef enum VkExternalMemoryHandleTypeFlagBits {
1804 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
1805 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
1806 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
1807 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 8,
1808 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 16,
1809 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 32,
1810 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 64,
1811 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1812} VkExternalMemoryHandleTypeFlagBits;
1813typedef enum VkExternalMemoryFeatureFlagBits {
1814 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1,
1815 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2,
1816 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4,
1817 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1818} VkExternalMemoryFeatureFlagBits;
1819typedef enum VkExternalSemaphoreHandleTypeFlagBits {
1820 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
1821 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
1822 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
1823 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 8,
1824 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
1825 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16,
1826 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1827} VkExternalSemaphoreHandleTypeFlagBits;
1828typedef enum VkExternalSemaphoreFeatureFlagBits {
1829 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1,
1830 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2,
1831 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1832} VkExternalSemaphoreFeatureFlagBits;
1833typedef enum VkSemaphoreImportFlagBits {
1834 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1,
1835 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1836} VkSemaphoreImportFlagBits;
1837typedef enum VkExternalFenceHandleTypeFlagBits {
1838 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
1839 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
1840 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
1841 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 8,
1842 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1843} VkExternalFenceHandleTypeFlagBits;
1844typedef enum VkExternalFenceFeatureFlagBits {
1845 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1,
1846 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2,
1847 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1848} VkExternalFenceFeatureFlagBits;
1849typedef enum VkFenceImportFlagBits {
1850 VK_FENCE_IMPORT_TEMPORARY_BIT = 1,
1851 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1852} VkFenceImportFlagBits;
1853typedef enum VkPeerMemoryFeatureFlagBits {
1854 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 1,
1855 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 2,
1856 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 4,
1857 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 8,
1858 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1859} VkPeerMemoryFeatureFlagBits;
1860typedef enum VkMemoryAllocateFlagBits {
1861 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1,
1862 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 2,
1863 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 4,
1864 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1865} VkMemoryAllocateFlagBits;
1866typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
1867 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1,
1868 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2,
1869 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4,
1870 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8,
1871 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
1872} VkDeviceGroupPresentModeFlagBitsKHR;
1873typedef enum VkSwapchainCreateFlagBitsKHR {
1874 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1,
1875 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2,
1876 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
1877} VkSwapchainCreateFlagBitsKHR;
1878typedef enum VkSubgroupFeatureFlagBits {
1879 VK_SUBGROUP_FEATURE_BASIC_BIT = 1,
1880 VK_SUBGROUP_FEATURE_VOTE_BIT = 2,
1881 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 4,
1882 VK_SUBGROUP_FEATURE_BALLOT_BIT = 8,
1883 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 16,
1884 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 32,
1885 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 64,
1886 VK_SUBGROUP_FEATURE_QUAD_BIT = 128,
1887 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1888} VkSubgroupFeatureFlagBits;
1889typedef enum VkTessellationDomainOrigin {
1890 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1891 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1892 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
1893} VkTessellationDomainOrigin;
1894typedef enum VkSamplerYcbcrModelConversion {
1895 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1896 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1897 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1898 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1899 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1900 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
1901} VkSamplerYcbcrModelConversion;
1902typedef enum VkSamplerYcbcrRange {
1903 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1904 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1905 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
1906} VkSamplerYcbcrRange;
1907typedef enum VkChromaLocation {
1908 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1909 VK_CHROMA_LOCATION_MIDPOINT = 1,
1910 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
1911} VkChromaLocation;
1912typedef enum VkSamplerReductionMode {
1913 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
1914 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
1915 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
1916 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
1917} VkSamplerReductionMode;
1918typedef enum VkShaderFloatControlsIndependence {
1919 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
1920 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
1921 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
1922 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
1923} VkShaderFloatControlsIndependence;
1924typedef enum VkSubmitFlagBits {
1925 VK_SUBMIT_PROTECTED_BIT = 1,
1926 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
1927 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1928} VkSubmitFlagBits;
1929typedef enum VkVendorId {
1930 VK_VENDOR_ID_VIV = 0x10001,
1931 VK_VENDOR_ID_VSI = 0x10002,
1932 VK_VENDOR_ID_KAZAN = 0x10003,
1933 VK_VENDOR_ID_CODEPLAY = 0x10004,
1934 VK_VENDOR_ID_MESA = 0x10005,
1935 VK_VENDOR_ID_POCL = 0x10006,
1936 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1937} VkVendorId;
1938typedef enum VkDriverId {
1939 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
1940 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
1941 VK_DRIVER_ID_MESA_RADV = 3,
1942 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
1943 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
1944 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
1945 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
1946 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
1947 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
1948 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
1949 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
1950 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
1951 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
1952 VK_DRIVER_ID_MOLTENVK = 14,
1953 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
1954 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
1955 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
1956 VK_DRIVER_ID_MESA_TURNIP = 18,
1957 VK_DRIVER_ID_MESA_V3DV = 19,
1958 VK_DRIVER_ID_MESA_PANVK = 20,
1959 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
1960 VK_DRIVER_ID_MESA_VENUS = 22,
1961 VK_DRIVER_ID_MESA_DOZEN = 23,
1962 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
1963} VkDriverId;
1964typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
1965 void* pUserData,
1966 size_t size,
1967 VkInternalAllocationType allocationType,
1968 VkSystemAllocationScope allocationScope);
1969typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
1970 void* pUserData,
1971 size_t size,
1972 VkInternalAllocationType allocationType,
1973 VkSystemAllocationScope allocationScope);
1974typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
1975 void* pUserData,
1976 void* pOriginal,
1977 size_t size,
1978 size_t alignment,
1979 VkSystemAllocationScope allocationScope);
1980typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
1981 void* pUserData,
1982 size_t size,
1983 size_t alignment,
1984 VkSystemAllocationScope allocationScope);
1985typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
1986 void* pUserData,
1987 void* pMemory);
1988typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
1989typedef struct VkBaseOutStructure {
1990 VkStructureType sType;
1991 struct VkBaseOutStructure * pNext;
1992} VkBaseOutStructure;
1993
1994typedef struct VkBaseInStructure {
1995 VkStructureType sType;
1996 const struct VkBaseInStructure * pNext;
1997} VkBaseInStructure;
1998
1999typedef struct VkOffset2D {
2000 int32_t x;
2001 int32_t y;
2002} VkOffset2D;
2003
2004typedef struct VkOffset3D {
2005 int32_t x;
2006 int32_t y;
2007 int32_t z;
2008} VkOffset3D;
2009
2010typedef struct VkExtent2D {
2011 uint32_t width;
2012 uint32_t height;
2013} VkExtent2D;
2014
2015typedef struct VkExtent3D {
2016 uint32_t width;
2017 uint32_t height;
2018 uint32_t depth;
2019} VkExtent3D;
2020
2021typedef struct VkViewport {
2022 float x;
2023 float y;
2024 float width;
2025 float height;
2026 float minDepth;
2027 float maxDepth;
2028} VkViewport;
2029
2030typedef struct VkRect2D {
2031 VkOffset2D offset;
2032 VkExtent2D extent;
2033} VkRect2D;
2034
2035typedef struct VkClearRect {
2036 VkRect2D rect;
2037 uint32_t baseArrayLayer;
2038 uint32_t layerCount;
2039} VkClearRect;
2040
2041typedef struct VkComponentMapping {
2042 VkComponentSwizzle r;
2043 VkComponentSwizzle g;
2044 VkComponentSwizzle b;
2045 VkComponentSwizzle a;
2046} VkComponentMapping;
2047
2048typedef struct VkExtensionProperties {
2049 char extensionName [ VK_MAX_EXTENSION_NAME_SIZE ];
2050 uint32_t specVersion;
2051} VkExtensionProperties;
2052
2053typedef struct VkLayerProperties {
2054 char layerName [ VK_MAX_EXTENSION_NAME_SIZE ];
2055 uint32_t specVersion;
2056 uint32_t implementationVersion;
2057 char description [ VK_MAX_DESCRIPTION_SIZE ];
2058} VkLayerProperties;
2059
2060typedef struct VkApplicationInfo {
2061 VkStructureType sType;
2062 const void * pNext;
2063 const char * pApplicationName;
2064 uint32_t applicationVersion;
2065 const char * pEngineName;
2066 uint32_t engineVersion;
2067 uint32_t apiVersion;
2068} VkApplicationInfo;
2069
2070typedef struct VkAllocationCallbacks {
2071 void * pUserData;
2072 PFN_vkAllocationFunction pfnAllocation;
2073 PFN_vkReallocationFunction pfnReallocation;
2074 PFN_vkFreeFunction pfnFree;
2075 PFN_vkInternalAllocationNotification pfnInternalAllocation;
2076 PFN_vkInternalFreeNotification pfnInternalFree;
2077} VkAllocationCallbacks;
2078
2079typedef struct VkDescriptorImageInfo {
2080 VkSampler sampler;
2081 VkImageView imageView;
2082 VkImageLayout imageLayout;
2083} VkDescriptorImageInfo;
2084
2085typedef struct VkCopyDescriptorSet {
2086 VkStructureType sType;
2087 const void * pNext;
2088 VkDescriptorSet srcSet;
2089 uint32_t srcBinding;
2090 uint32_t srcArrayElement;
2091 VkDescriptorSet dstSet;
2092 uint32_t dstBinding;
2093 uint32_t dstArrayElement;
2094 uint32_t descriptorCount;
2095} VkCopyDescriptorSet;
2096
2097typedef struct VkDescriptorPoolSize {
2098 VkDescriptorType type;
2099 uint32_t descriptorCount;
2100} VkDescriptorPoolSize;
2101
2102typedef struct VkDescriptorSetAllocateInfo {
2103 VkStructureType sType;
2104 const void * pNext;
2105 VkDescriptorPool descriptorPool;
2106 uint32_t descriptorSetCount;
2107 const VkDescriptorSetLayout * pSetLayouts;
2108} VkDescriptorSetAllocateInfo;
2109
2110typedef struct VkSpecializationMapEntry {
2111 uint32_t constantID;
2112 uint32_t offset;
2113 size_t size;
2114} VkSpecializationMapEntry;
2115
2116typedef struct VkSpecializationInfo {
2117 uint32_t mapEntryCount;
2118 const VkSpecializationMapEntry * pMapEntries;
2119 size_t dataSize;
2120 const void * pData;
2121} VkSpecializationInfo;
2122
2123typedef struct VkVertexInputBindingDescription {
2124 uint32_t binding;
2125 uint32_t stride;
2126 VkVertexInputRate inputRate;
2127} VkVertexInputBindingDescription;
2128
2129typedef struct VkVertexInputAttributeDescription {
2130 uint32_t location;
2131 uint32_t binding;
2132 VkFormat format;
2133 uint32_t offset;
2134} VkVertexInputAttributeDescription;
2135
2136typedef struct VkStencilOpState {
2137 VkStencilOp failOp;
2138 VkStencilOp passOp;
2139 VkStencilOp depthFailOp;
2140 VkCompareOp compareOp;
2141 uint32_t compareMask;
2142 uint32_t writeMask;
2143 uint32_t reference;
2144} VkStencilOpState;
2145
2146typedef struct VkPipelineCacheHeaderVersionOne {
2147 uint32_t headerSize;
2148 VkPipelineCacheHeaderVersion headerVersion;
2149 uint32_t vendorID;
2150 uint32_t deviceID;
2151 uint8_t pipelineCacheUUID [ VK_UUID_SIZE ];
2152} VkPipelineCacheHeaderVersionOne;
2153
2154typedef struct VkCommandBufferAllocateInfo {
2155 VkStructureType sType;
2156 const void * pNext;
2157 VkCommandPool commandPool;
2158 VkCommandBufferLevel level;
2159 uint32_t commandBufferCount;
2160} VkCommandBufferAllocateInfo;
2161
2162typedef union VkClearColorValue {
2163 float float32 [4];
2164 int32_t int32 [4];
2165 uint32_t uint32 [4];
2166} VkClearColorValue;
2167
2168typedef struct VkClearDepthStencilValue {
2169 float depth;
2170 uint32_t stencil;
2171} VkClearDepthStencilValue;
2172
2173typedef union VkClearValue {
2174 VkClearColorValue color;
2175 VkClearDepthStencilValue depthStencil;
2176} VkClearValue;
2177
2178typedef struct VkAttachmentReference {
2179 uint32_t attachment;
2180 VkImageLayout layout;
2181} VkAttachmentReference;
2182
2183typedef struct VkDrawIndirectCommand {
2184 uint32_t vertexCount;
2185 uint32_t instanceCount;
2186 uint32_t firstVertex;
2187 uint32_t firstInstance;
2188} VkDrawIndirectCommand;
2189
2190typedef struct VkDrawIndexedIndirectCommand {
2191 uint32_t indexCount;
2192 uint32_t instanceCount;
2193 uint32_t firstIndex;
2194 int32_t vertexOffset;
2195 uint32_t firstInstance;
2196} VkDrawIndexedIndirectCommand;
2197
2198typedef struct VkDispatchIndirectCommand {
2199 uint32_t x;
2200 uint32_t y;
2201 uint32_t z;
2202} VkDispatchIndirectCommand;
2203
2204typedef struct VkSurfaceFormatKHR {
2205 VkFormat format;
2206 VkColorSpaceKHR colorSpace;
2207} VkSurfaceFormatKHR;
2208
2209typedef struct VkPresentInfoKHR {
2210 VkStructureType sType;
2211 const void * pNext;
2212 uint32_t waitSemaphoreCount;
2213 const VkSemaphore * pWaitSemaphores;
2214 uint32_t swapchainCount;
2215 const VkSwapchainKHR * pSwapchains;
2216 const uint32_t * pImageIndices;
2217 VkResult * pResults;
2218} VkPresentInfoKHR;
2219
2220typedef struct VkDevicePrivateDataCreateInfo {
2221 VkStructureType sType;
2222 const void * pNext;
2223 uint32_t privateDataSlotRequestCount;
2224} VkDevicePrivateDataCreateInfo;
2225
2226typedef struct VkConformanceVersion {
2227 uint8_t major;
2228 uint8_t minor;
2229 uint8_t subminor;
2230 uint8_t patch;
2231} VkConformanceVersion;
2232
2233typedef struct VkPhysicalDeviceDriverProperties {
2234 VkStructureType sType;
2235 void * pNext;
2236 VkDriverId driverID;
2237 char driverName [ VK_MAX_DRIVER_NAME_SIZE ];
2238 char driverInfo [ VK_MAX_DRIVER_INFO_SIZE ];
2239 VkConformanceVersion conformanceVersion;
2240} VkPhysicalDeviceDriverProperties;
2241
2242typedef struct VkPhysicalDeviceExternalImageFormatInfo {
2243 VkStructureType sType;
2244 const void * pNext;
2245 VkExternalMemoryHandleTypeFlagBits handleType;
2246} VkPhysicalDeviceExternalImageFormatInfo;
2247
2248typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
2249 VkStructureType sType;
2250 const void * pNext;
2251 VkExternalSemaphoreHandleTypeFlagBits handleType;
2252} VkPhysicalDeviceExternalSemaphoreInfo;
2253
2254typedef struct VkPhysicalDeviceExternalFenceInfo {
2255 VkStructureType sType;
2256 const void * pNext;
2257 VkExternalFenceHandleTypeFlagBits handleType;
2258} VkPhysicalDeviceExternalFenceInfo;
2259
2260typedef struct VkPhysicalDeviceMultiviewProperties {
2261 VkStructureType sType;
2262 void * pNext;
2263 uint32_t maxMultiviewViewCount;
2264 uint32_t maxMultiviewInstanceIndex;
2265} VkPhysicalDeviceMultiviewProperties;
2266
2267typedef struct VkRenderPassMultiviewCreateInfo {
2268 VkStructureType sType;
2269 const void * pNext;
2270 uint32_t subpassCount;
2271 const uint32_t * pViewMasks;
2272 uint32_t dependencyCount;
2273 const int32_t * pViewOffsets;
2274 uint32_t correlationMaskCount;
2275 const uint32_t * pCorrelationMasks;
2276} VkRenderPassMultiviewCreateInfo;
2277
2278typedef struct VkBindBufferMemoryDeviceGroupInfo {
2279 VkStructureType sType;
2280 const void * pNext;
2281 uint32_t deviceIndexCount;
2282 const uint32_t * pDeviceIndices;
2283} VkBindBufferMemoryDeviceGroupInfo;
2284
2285typedef struct VkBindImageMemoryDeviceGroupInfo {
2286 VkStructureType sType;
2287 const void * pNext;
2288 uint32_t deviceIndexCount;
2289 const uint32_t * pDeviceIndices;
2290 uint32_t splitInstanceBindRegionCount;
2291 const VkRect2D * pSplitInstanceBindRegions;
2292} VkBindImageMemoryDeviceGroupInfo;
2293
2294typedef struct VkDeviceGroupRenderPassBeginInfo {
2295 VkStructureType sType;
2296 const void * pNext;
2297 uint32_t deviceMask;
2298 uint32_t deviceRenderAreaCount;
2299 const VkRect2D * pDeviceRenderAreas;
2300} VkDeviceGroupRenderPassBeginInfo;
2301
2302typedef struct VkDeviceGroupCommandBufferBeginInfo {
2303 VkStructureType sType;
2304 const void * pNext;
2305 uint32_t deviceMask;
2306} VkDeviceGroupCommandBufferBeginInfo;
2307
2308typedef struct VkDeviceGroupSubmitInfo {
2309 VkStructureType sType;
2310 const void * pNext;
2311 uint32_t waitSemaphoreCount;
2312 const uint32_t * pWaitSemaphoreDeviceIndices;
2313 uint32_t commandBufferCount;
2314 const uint32_t * pCommandBufferDeviceMasks;
2315 uint32_t signalSemaphoreCount;
2316 const uint32_t * pSignalSemaphoreDeviceIndices;
2317} VkDeviceGroupSubmitInfo;
2318
2319typedef struct VkDeviceGroupBindSparseInfo {
2320 VkStructureType sType;
2321 const void * pNext;
2322 uint32_t resourceDeviceIndex;
2323 uint32_t memoryDeviceIndex;
2324} VkDeviceGroupBindSparseInfo;
2325
2326typedef struct VkImageSwapchainCreateInfoKHR {
2327 VkStructureType sType;
2328 const void * pNext;
2329 VkSwapchainKHR swapchain;
2330} VkImageSwapchainCreateInfoKHR;
2331
2332typedef struct VkBindImageMemorySwapchainInfoKHR {
2333 VkStructureType sType;
2334 const void * pNext;
2335 VkSwapchainKHR swapchain;
2336 uint32_t imageIndex;
2337} VkBindImageMemorySwapchainInfoKHR;
2338
2339typedef struct VkAcquireNextImageInfoKHR {
2340 VkStructureType sType;
2341 const void * pNext;
2342 VkSwapchainKHR swapchain;
2343 uint64_t timeout;
2344 VkSemaphore semaphore;
2345 VkFence fence;
2346 uint32_t deviceMask;
2347} VkAcquireNextImageInfoKHR;
2348
2349typedef struct VkDeviceGroupPresentInfoKHR {
2350 VkStructureType sType;
2351 const void * pNext;
2352 uint32_t swapchainCount;
2353 const uint32_t * pDeviceMasks;
2354 VkDeviceGroupPresentModeFlagBitsKHR mode;
2355} VkDeviceGroupPresentInfoKHR;
2356
2357typedef struct VkDeviceGroupDeviceCreateInfo {
2358 VkStructureType sType;
2359 const void * pNext;
2360 uint32_t physicalDeviceCount;
2361 const VkPhysicalDevice * pPhysicalDevices;
2362} VkDeviceGroupDeviceCreateInfo;
2363
2364typedef struct VkDescriptorUpdateTemplateEntry {
2365 uint32_t dstBinding;
2366 uint32_t dstArrayElement;
2367 uint32_t descriptorCount;
2368 VkDescriptorType descriptorType;
2369 size_t offset;
2370 size_t stride;
2371} VkDescriptorUpdateTemplateEntry;
2372
2373typedef struct VkBufferMemoryRequirementsInfo2 {
2374 VkStructureType sType;
2375 const void * pNext;
2376 VkBuffer buffer;
2377} VkBufferMemoryRequirementsInfo2;
2378
2379typedef struct VkImageMemoryRequirementsInfo2 {
2380 VkStructureType sType;
2381 const void * pNext;
2382 VkImage image;
2383} VkImageMemoryRequirementsInfo2;
2384
2385typedef struct VkImageSparseMemoryRequirementsInfo2 {
2386 VkStructureType sType;
2387 const void * pNext;
2388 VkImage image;
2389} VkImageSparseMemoryRequirementsInfo2;
2390
2391typedef struct VkPhysicalDevicePointClippingProperties {
2392 VkStructureType sType;
2393 void * pNext;
2394 VkPointClippingBehavior pointClippingBehavior;
2395} VkPhysicalDevicePointClippingProperties;
2396
2397typedef struct VkMemoryDedicatedAllocateInfo {
2398 VkStructureType sType;
2399 const void * pNext;
2400 VkImage image;
2401 VkBuffer buffer;
2402} VkMemoryDedicatedAllocateInfo;
2403
2404typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
2405 VkStructureType sType;
2406 const void * pNext;
2407 VkTessellationDomainOrigin domainOrigin;
2408} VkPipelineTessellationDomainOriginStateCreateInfo;
2409
2410typedef struct VkSamplerYcbcrConversionInfo {
2411 VkStructureType sType;
2412 const void * pNext;
2413 VkSamplerYcbcrConversion conversion;
2414} VkSamplerYcbcrConversionInfo;
2415
2416typedef struct VkBindImagePlaneMemoryInfo {
2417 VkStructureType sType;
2418 const void * pNext;
2419 VkImageAspectFlagBits planeAspect;
2420} VkBindImagePlaneMemoryInfo;
2421
2422typedef struct VkImagePlaneMemoryRequirementsInfo {
2423 VkStructureType sType;
2424 const void * pNext;
2425 VkImageAspectFlagBits planeAspect;
2426} VkImagePlaneMemoryRequirementsInfo;
2427
2428typedef struct VkSamplerYcbcrConversionImageFormatProperties {
2429 VkStructureType sType;
2430 void * pNext;
2431 uint32_t combinedImageSamplerDescriptorCount;
2432} VkSamplerYcbcrConversionImageFormatProperties;
2433
2434typedef struct VkSamplerReductionModeCreateInfo {
2435 VkStructureType sType;
2436 const void * pNext;
2437 VkSamplerReductionMode reductionMode;
2438} VkSamplerReductionModeCreateInfo;
2439
2440typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
2441 VkStructureType sType;
2442 void * pNext;
2443 uint32_t maxInlineUniformBlockSize;
2444 uint32_t maxPerStageDescriptorInlineUniformBlocks;
2445 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
2446 uint32_t maxDescriptorSetInlineUniformBlocks;
2447 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
2448} VkPhysicalDeviceInlineUniformBlockProperties;
2449
2450typedef struct VkWriteDescriptorSetInlineUniformBlock {
2451 VkStructureType sType;
2452 const void * pNext;
2453 uint32_t dataSize;
2454 const void * pData;
2455} VkWriteDescriptorSetInlineUniformBlock;
2456
2457typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
2458 VkStructureType sType;
2459 const void * pNext;
2460 uint32_t maxInlineUniformBlockBindings;
2461} VkDescriptorPoolInlineUniformBlockCreateInfo;
2462
2463typedef struct VkImageFormatListCreateInfo {
2464 VkStructureType sType;
2465 const void * pNext;
2466 uint32_t viewFormatCount;
2467 const VkFormat * pViewFormats;
2468} VkImageFormatListCreateInfo;
2469
2470typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
2471 VkStructureType sType;
2472 const void * pNext;
2473 uint32_t descriptorSetCount;
2474 const uint32_t * pDescriptorCounts;
2475} VkDescriptorSetVariableDescriptorCountAllocateInfo;
2476
2477typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
2478 VkStructureType sType;
2479 void * pNext;
2480 uint32_t maxVariableDescriptorCount;
2481} VkDescriptorSetVariableDescriptorCountLayoutSupport;
2482
2483typedef struct VkSubpassBeginInfo {
2484 VkStructureType sType;
2485 const void * pNext;
2486 VkSubpassContents contents;
2487} VkSubpassBeginInfo;
2488
2489typedef struct VkSubpassEndInfo {
2490 VkStructureType sType;
2491 const void * pNext;
2492} VkSubpassEndInfo;
2493
2494typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
2495 VkStructureType sType;
2496 void * pNext;
2497 uint64_t maxTimelineSemaphoreValueDifference;
2498} VkPhysicalDeviceTimelineSemaphoreProperties;
2499
2500typedef struct VkSemaphoreTypeCreateInfo {
2501 VkStructureType sType;
2502 const void * pNext;
2503 VkSemaphoreType semaphoreType;
2504 uint64_t initialValue;
2505} VkSemaphoreTypeCreateInfo;
2506
2507typedef struct VkTimelineSemaphoreSubmitInfo {
2508 VkStructureType sType;
2509 const void * pNext;
2510 uint32_t waitSemaphoreValueCount;
2511 const uint64_t * pWaitSemaphoreValues;
2512 uint32_t signalSemaphoreValueCount;
2513 const uint64_t * pSignalSemaphoreValues;
2514} VkTimelineSemaphoreSubmitInfo;
2515
2516typedef struct VkSemaphoreSignalInfo {
2517 VkStructureType sType;
2518 const void * pNext;
2519 VkSemaphore semaphore;
2520 uint64_t value;
2521} VkSemaphoreSignalInfo;
2522
2523typedef struct VkBufferDeviceAddressInfo {
2524 VkStructureType sType;
2525 const void * pNext;
2526 VkBuffer buffer;
2527} VkBufferDeviceAddressInfo;
2528
2529typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
2530 VkStructureType sType;
2531 const void * pNext;
2532 uint64_t opaqueCaptureAddress;
2533} VkBufferOpaqueCaptureAddressCreateInfo;
2534
2535typedef struct VkRenderPassAttachmentBeginInfo {
2536 VkStructureType sType;
2537 const void * pNext;
2538 uint32_t attachmentCount;
2539 const VkImageView * pAttachments;
2540} VkRenderPassAttachmentBeginInfo;
2541
2542typedef struct VkAttachmentReferenceStencilLayout {
2543 VkStructureType sType;
2544 void * pNext;
2545 VkImageLayout stencilLayout;
2546} VkAttachmentReferenceStencilLayout;
2547
2548typedef struct VkAttachmentDescriptionStencilLayout {
2549 VkStructureType sType;
2550 void * pNext;
2551 VkImageLayout stencilInitialLayout;
2552 VkImageLayout stencilFinalLayout;
2553} VkAttachmentDescriptionStencilLayout;
2554
2555typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
2556 VkStructureType sType;
2557 void * pNext;
2558 uint32_t requiredSubgroupSize;
2559} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
2560
2561typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
2562 VkStructureType sType;
2563 const void * pNext;
2564 uint64_t opaqueCaptureAddress;
2565} VkMemoryOpaqueCaptureAddressAllocateInfo;
2566
2567typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
2568 VkStructureType sType;
2569 const void * pNext;
2570 VkDeviceMemory memory;
2571} VkDeviceMemoryOpaqueCaptureAddressInfo;
2572
2573typedef struct VkCommandBufferSubmitInfo {
2574 VkStructureType sType;
2575 const void * pNext;
2576 VkCommandBuffer commandBuffer;
2577 uint32_t deviceMask;
2578} VkCommandBufferSubmitInfo;
2579
2580typedef struct VkPipelineRenderingCreateInfo {
2581 VkStructureType sType;
2582 const void * pNext;
2583 uint32_t viewMask;
2584 uint32_t colorAttachmentCount;
2585 const VkFormat * pColorAttachmentFormats;
2586 VkFormat depthAttachmentFormat;
2587 VkFormat stencilAttachmentFormat;
2588} VkPipelineRenderingCreateInfo;
2589
2590typedef struct VkRenderingAttachmentInfo {
2591 VkStructureType sType;
2592 const void * pNext;
2593 VkImageView imageView;
2594 VkImageLayout imageLayout;
2595 VkResolveModeFlagBits resolveMode;
2596 VkImageView resolveImageView;
2597 VkImageLayout resolveImageLayout;
2598 VkAttachmentLoadOp loadOp;
2599 VkAttachmentStoreOp storeOp;
2600 VkClearValue clearValue;
2601} VkRenderingAttachmentInfo;
2602
2603typedef uint32_t VkSampleMask;
2604typedef uint32_t VkBool32;
2605typedef uint32_t VkFlags;
2606typedef uint64_t VkFlags64;
2607typedef uint64_t VkDeviceSize;
2608typedef uint64_t VkDeviceAddress;
2609typedef VkFlags VkFramebufferCreateFlags;
2610typedef VkFlags VkQueryPoolCreateFlags;
2611typedef VkFlags VkRenderPassCreateFlags;
2612typedef VkFlags VkSamplerCreateFlags;
2613typedef VkFlags VkPipelineLayoutCreateFlags;
2614typedef VkFlags VkPipelineCacheCreateFlags;
2615typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2616typedef VkFlags VkPipelineDynamicStateCreateFlags;
2617typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2618typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2619typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2620typedef VkFlags VkPipelineViewportStateCreateFlags;
2621typedef VkFlags VkPipelineTessellationStateCreateFlags;
2622typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2623typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2624typedef VkFlags VkPipelineShaderStageCreateFlags;
2625typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2626typedef VkFlags VkBufferViewCreateFlags;
2627typedef VkFlags VkInstanceCreateFlags;
2628typedef VkFlags VkDeviceCreateFlags;
2629typedef VkFlags VkDeviceQueueCreateFlags;
2630typedef VkFlags VkQueueFlags;
2631typedef VkFlags VkMemoryPropertyFlags;
2632typedef VkFlags VkMemoryHeapFlags;
2633typedef VkFlags VkAccessFlags;
2634typedef VkFlags VkBufferUsageFlags;
2635typedef VkFlags VkBufferCreateFlags;
2636typedef VkFlags VkShaderStageFlags;
2637typedef VkFlags VkImageUsageFlags;
2638typedef VkFlags VkImageCreateFlags;
2639typedef VkFlags VkImageViewCreateFlags;
2640typedef VkFlags VkPipelineCreateFlags;
2641typedef VkFlags VkColorComponentFlags;
2642typedef VkFlags VkFenceCreateFlags;
2643typedef VkFlags VkSemaphoreCreateFlags;
2644typedef VkFlags VkFormatFeatureFlags;
2645typedef VkFlags VkQueryControlFlags;
2646typedef VkFlags VkQueryResultFlags;
2647typedef VkFlags VkShaderModuleCreateFlags;
2648typedef VkFlags VkEventCreateFlags;
2649typedef VkFlags VkCommandPoolCreateFlags;
2650typedef VkFlags VkCommandPoolResetFlags;
2651typedef VkFlags VkCommandBufferResetFlags;
2652typedef VkFlags VkCommandBufferUsageFlags;
2653typedef VkFlags VkQueryPipelineStatisticFlags;
2654typedef VkFlags VkMemoryMapFlags;
2655typedef VkFlags VkImageAspectFlags;
2656typedef VkFlags VkSparseMemoryBindFlags;
2657typedef VkFlags VkSparseImageFormatFlags;
2658typedef VkFlags VkSubpassDescriptionFlags;
2659typedef VkFlags VkPipelineStageFlags;
2660typedef VkFlags VkSampleCountFlags;
2661typedef VkFlags VkAttachmentDescriptionFlags;
2662typedef VkFlags VkStencilFaceFlags;
2663typedef VkFlags VkCullModeFlags;
2664typedef VkFlags VkDescriptorPoolCreateFlags;
2665typedef VkFlags VkDescriptorPoolResetFlags;
2666typedef VkFlags VkDependencyFlags;
2667typedef VkFlags VkSubgroupFeatureFlags;
2668typedef VkFlags VkPrivateDataSlotCreateFlags;
2669typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
2670typedef VkFlags VkPipelineCreationFeedbackFlags;
2671typedef VkFlags VkSemaphoreWaitFlags;
2672typedef VkFlags64 VkAccessFlags2;
2673typedef VkFlags64 VkPipelineStageFlags2;
2674typedef VkFlags64 VkFormatFeatureFlags2;
2675typedef VkFlags VkRenderingFlags;
2676typedef VkFlags VkCompositeAlphaFlagsKHR;
2677typedef VkFlags VkSurfaceTransformFlagsKHR;
2678typedef VkFlags VkSwapchainCreateFlagsKHR;
2679typedef VkFlags VkPeerMemoryFeatureFlags;
2680typedef VkFlags VkMemoryAllocateFlags;
2681typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
2682typedef VkFlags VkDebugReportFlagsEXT;
2683typedef VkFlags VkCommandPoolTrimFlags;
2684typedef VkFlags VkExternalMemoryHandleTypeFlags;
2685typedef VkFlags VkExternalMemoryFeatureFlags;
2686typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
2687typedef VkFlags VkExternalSemaphoreFeatureFlags;
2688typedef VkFlags VkSemaphoreImportFlags;
2689typedef VkFlags VkExternalFenceHandleTypeFlags;
2690typedef VkFlags VkExternalFenceFeatureFlags;
2691typedef VkFlags VkFenceImportFlags;
2692typedef VkFlags VkDescriptorBindingFlags;
2693typedef VkFlags VkResolveModeFlags;
2694typedef VkFlags VkToolPurposeFlags;
2695typedef VkFlags VkSubmitFlags;
2696typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
2697 VkDebugReportFlagsEXT flags,
2698 VkDebugReportObjectTypeEXT objectType,
2699 uint64_t object,
2700 size_t location,
2701 int32_t messageCode,
2702 const char* pLayerPrefix,
2703 const char* pMessage,
2704 void* pUserData);
2705typedef struct VkDeviceQueueCreateInfo {
2706 VkStructureType sType;
2707 const void * pNext;
2708 VkDeviceQueueCreateFlags flags;
2709 uint32_t queueFamilyIndex;
2710 uint32_t queueCount;
2711 const float * pQueuePriorities;
2712} VkDeviceQueueCreateInfo;
2713
2714typedef struct VkInstanceCreateInfo {
2715 VkStructureType sType;
2716 const void * pNext;
2717 VkInstanceCreateFlags flags;
2718 const VkApplicationInfo * pApplicationInfo;
2719 uint32_t enabledLayerCount;
2720 const char * const* ppEnabledLayerNames;
2721 uint32_t enabledExtensionCount;
2722 const char * const* ppEnabledExtensionNames;
2723} VkInstanceCreateInfo;
2724
2725typedef struct VkQueueFamilyProperties {
2726 VkQueueFlags queueFlags;
2727 uint32_t queueCount;
2728 uint32_t timestampValidBits;
2729 VkExtent3D minImageTransferGranularity;
2730} VkQueueFamilyProperties;
2731
2732typedef struct VkMemoryAllocateInfo {
2733 VkStructureType sType;
2734 const void * pNext;
2735 VkDeviceSize allocationSize;
2736 uint32_t memoryTypeIndex;
2737} VkMemoryAllocateInfo;
2738
2739typedef struct VkMemoryRequirements {
2740 VkDeviceSize size;
2741 VkDeviceSize alignment;
2742 uint32_t memoryTypeBits;
2743} VkMemoryRequirements;
2744
2745typedef struct VkSparseImageFormatProperties {
2746 VkImageAspectFlags aspectMask;
2747 VkExtent3D imageGranularity;
2748 VkSparseImageFormatFlags flags;
2749} VkSparseImageFormatProperties;
2750
2751typedef struct VkSparseImageMemoryRequirements {
2752 VkSparseImageFormatProperties formatProperties;
2753 uint32_t imageMipTailFirstLod;
2754 VkDeviceSize imageMipTailSize;
2755 VkDeviceSize imageMipTailOffset;
2756 VkDeviceSize imageMipTailStride;
2757} VkSparseImageMemoryRequirements;
2758
2759typedef struct VkMemoryType {
2760 VkMemoryPropertyFlags propertyFlags;
2761 uint32_t heapIndex;
2762} VkMemoryType;
2763
2764typedef struct VkMemoryHeap {
2765 VkDeviceSize size;
2766 VkMemoryHeapFlags flags;
2767} VkMemoryHeap;
2768
2769typedef struct VkMappedMemoryRange {
2770 VkStructureType sType;
2771 const void * pNext;
2772 VkDeviceMemory memory;
2773 VkDeviceSize offset;
2774 VkDeviceSize size;
2775} VkMappedMemoryRange;
2776
2777typedef struct VkFormatProperties {
2778 VkFormatFeatureFlags linearTilingFeatures;
2779 VkFormatFeatureFlags optimalTilingFeatures;
2780 VkFormatFeatureFlags bufferFeatures;
2781} VkFormatProperties;
2782
2783typedef struct VkImageFormatProperties {
2784 VkExtent3D maxExtent;
2785 uint32_t maxMipLevels;
2786 uint32_t maxArrayLayers;
2787 VkSampleCountFlags sampleCounts;
2788 VkDeviceSize maxResourceSize;
2789} VkImageFormatProperties;
2790
2791typedef struct VkDescriptorBufferInfo {
2792 VkBuffer buffer;
2793 VkDeviceSize offset;
2794 VkDeviceSize range;
2795} VkDescriptorBufferInfo;
2796
2797typedef struct VkWriteDescriptorSet {
2798 VkStructureType sType;
2799 const void * pNext;
2800 VkDescriptorSet dstSet;
2801 uint32_t dstBinding;
2802 uint32_t dstArrayElement;
2803 uint32_t descriptorCount;
2804 VkDescriptorType descriptorType;
2805 const VkDescriptorImageInfo * pImageInfo;
2806 const VkDescriptorBufferInfo * pBufferInfo;
2807 const VkBufferView * pTexelBufferView;
2808} VkWriteDescriptorSet;
2809
2810typedef struct VkBufferCreateInfo {
2811 VkStructureType sType;
2812 const void * pNext;
2813 VkBufferCreateFlags flags;
2814 VkDeviceSize size;
2815 VkBufferUsageFlags usage;
2816 VkSharingMode sharingMode;
2817 uint32_t queueFamilyIndexCount;
2818 const uint32_t * pQueueFamilyIndices;
2819} VkBufferCreateInfo;
2820
2821typedef struct VkBufferViewCreateInfo {
2822 VkStructureType sType;
2823 const void * pNext;
2824 VkBufferViewCreateFlags flags;
2825 VkBuffer buffer;
2826 VkFormat format;
2827 VkDeviceSize offset;
2828 VkDeviceSize range;
2829} VkBufferViewCreateInfo;
2830
2831typedef struct VkImageSubresource {
2832 VkImageAspectFlags aspectMask;
2833 uint32_t mipLevel;
2834 uint32_t arrayLayer;
2835} VkImageSubresource;
2836
2837typedef struct VkImageSubresourceLayers {
2838 VkImageAspectFlags aspectMask;
2839 uint32_t mipLevel;
2840 uint32_t baseArrayLayer;
2841 uint32_t layerCount;
2842} VkImageSubresourceLayers;
2843
2844typedef struct VkImageSubresourceRange {
2845 VkImageAspectFlags aspectMask;
2846 uint32_t baseMipLevel;
2847 uint32_t levelCount;
2848 uint32_t baseArrayLayer;
2849 uint32_t layerCount;
2850} VkImageSubresourceRange;
2851
2852typedef struct VkMemoryBarrier {
2853 VkStructureType sType;
2854 const void * pNext;
2855 VkAccessFlags srcAccessMask;
2856 VkAccessFlags dstAccessMask;
2857} VkMemoryBarrier;
2858
2859typedef struct VkBufferMemoryBarrier {
2860 VkStructureType sType;
2861 const void * pNext;
2862 VkAccessFlags srcAccessMask;
2863 VkAccessFlags dstAccessMask;
2864 uint32_t srcQueueFamilyIndex;
2865 uint32_t dstQueueFamilyIndex;
2866 VkBuffer buffer;
2867 VkDeviceSize offset;
2868 VkDeviceSize size;
2869} VkBufferMemoryBarrier;
2870
2871typedef struct VkImageMemoryBarrier {
2872 VkStructureType sType;
2873 const void * pNext;
2874 VkAccessFlags srcAccessMask;
2875 VkAccessFlags dstAccessMask;
2876 VkImageLayout oldLayout;
2877 VkImageLayout newLayout;
2878 uint32_t srcQueueFamilyIndex;
2879 uint32_t dstQueueFamilyIndex;
2880 VkImage image;
2881 VkImageSubresourceRange subresourceRange;
2882} VkImageMemoryBarrier;
2883
2884typedef struct VkImageCreateInfo {
2885 VkStructureType sType;
2886 const void * pNext;
2887 VkImageCreateFlags flags;
2888 VkImageType imageType;
2889 VkFormat format;
2890 VkExtent3D extent;
2891 uint32_t mipLevels;
2892 uint32_t arrayLayers;
2893 VkSampleCountFlagBits samples;
2894 VkImageTiling tiling;
2895 VkImageUsageFlags usage;
2896 VkSharingMode sharingMode;
2897 uint32_t queueFamilyIndexCount;
2898 const uint32_t * pQueueFamilyIndices;
2899 VkImageLayout initialLayout;
2900} VkImageCreateInfo;
2901
2902typedef struct VkSubresourceLayout {
2903 VkDeviceSize offset;
2904 VkDeviceSize size;
2905 VkDeviceSize rowPitch;
2906 VkDeviceSize arrayPitch;
2907 VkDeviceSize depthPitch;
2908} VkSubresourceLayout;
2909
2910typedef struct VkImageViewCreateInfo {
2911 VkStructureType sType;
2912 const void * pNext;
2913 VkImageViewCreateFlags flags;
2914 VkImage image;
2915 VkImageViewType viewType;
2916 VkFormat format;
2917 VkComponentMapping components;
2918 VkImageSubresourceRange subresourceRange;
2919} VkImageViewCreateInfo;
2920
2921typedef struct VkBufferCopy {
2922 VkDeviceSize srcOffset;
2923 VkDeviceSize dstOffset;
2924 VkDeviceSize size;
2925} VkBufferCopy;
2926
2927typedef struct VkSparseMemoryBind {
2928 VkDeviceSize resourceOffset;
2929 VkDeviceSize size;
2930 VkDeviceMemory memory;
2931 VkDeviceSize memoryOffset;
2932 VkSparseMemoryBindFlags flags;
2933} VkSparseMemoryBind;
2934
2935typedef struct VkSparseImageMemoryBind {
2936 VkImageSubresource subresource;
2937 VkOffset3D offset;
2938 VkExtent3D extent;
2939 VkDeviceMemory memory;
2940 VkDeviceSize memoryOffset;
2941 VkSparseMemoryBindFlags flags;
2942} VkSparseImageMemoryBind;
2943
2944typedef struct VkSparseBufferMemoryBindInfo {
2945 VkBuffer buffer;
2946 uint32_t bindCount;
2947 const VkSparseMemoryBind * pBinds;
2948} VkSparseBufferMemoryBindInfo;
2949
2950typedef struct VkSparseImageOpaqueMemoryBindInfo {
2951 VkImage image;
2952 uint32_t bindCount;
2953 const VkSparseMemoryBind * pBinds;
2954} VkSparseImageOpaqueMemoryBindInfo;
2955
2956typedef struct VkSparseImageMemoryBindInfo {
2957 VkImage image;
2958 uint32_t bindCount;
2959 const VkSparseImageMemoryBind * pBinds;
2960} VkSparseImageMemoryBindInfo;
2961
2962typedef struct VkBindSparseInfo {
2963 VkStructureType sType;
2964 const void * pNext;
2965 uint32_t waitSemaphoreCount;
2966 const VkSemaphore * pWaitSemaphores;
2967 uint32_t bufferBindCount;
2968 const VkSparseBufferMemoryBindInfo * pBufferBinds;
2969 uint32_t imageOpaqueBindCount;
2970 const VkSparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds;
2971 uint32_t imageBindCount;
2972 const VkSparseImageMemoryBindInfo * pImageBinds;
2973 uint32_t signalSemaphoreCount;
2974 const VkSemaphore * pSignalSemaphores;
2975} VkBindSparseInfo;
2976
2977typedef struct VkImageCopy {
2978 VkImageSubresourceLayers srcSubresource;
2979 VkOffset3D srcOffset;
2980 VkImageSubresourceLayers dstSubresource;
2981 VkOffset3D dstOffset;
2982 VkExtent3D extent;
2983} VkImageCopy;
2984
2985typedef struct VkImageBlit {
2986 VkImageSubresourceLayers srcSubresource;
2987 VkOffset3D srcOffsets [2];
2988 VkImageSubresourceLayers dstSubresource;
2989 VkOffset3D dstOffsets [2];
2990} VkImageBlit;
2991
2992typedef struct VkBufferImageCopy {
2993 VkDeviceSize bufferOffset;
2994 uint32_t bufferRowLength;
2995 uint32_t bufferImageHeight;
2996 VkImageSubresourceLayers imageSubresource;
2997 VkOffset3D imageOffset;
2998 VkExtent3D imageExtent;
2999} VkBufferImageCopy;
3000
3001typedef struct VkImageResolve {
3002 VkImageSubresourceLayers srcSubresource;
3003 VkOffset3D srcOffset;
3004 VkImageSubresourceLayers dstSubresource;
3005 VkOffset3D dstOffset;
3006 VkExtent3D extent;
3007} VkImageResolve;
3008
3009typedef struct VkShaderModuleCreateInfo {
3010 VkStructureType sType;
3011 const void * pNext;
3012 VkShaderModuleCreateFlags flags;
3013 size_t codeSize;
3014 const uint32_t * pCode;
3015} VkShaderModuleCreateInfo;
3016
3017typedef struct VkDescriptorSetLayoutBinding {
3018 uint32_t binding;
3019 VkDescriptorType descriptorType;
3020 uint32_t descriptorCount;
3021 VkShaderStageFlags stageFlags;
3022 const VkSampler * pImmutableSamplers;
3023} VkDescriptorSetLayoutBinding;
3024
3025typedef struct VkDescriptorSetLayoutCreateInfo {
3026 VkStructureType sType;
3027 const void * pNext;
3028 VkDescriptorSetLayoutCreateFlags flags;
3029 uint32_t bindingCount;
3030 const VkDescriptorSetLayoutBinding * pBindings;
3031} VkDescriptorSetLayoutCreateInfo;
3032
3033typedef struct VkDescriptorPoolCreateInfo {
3034 VkStructureType sType;
3035 const void * pNext;
3036 VkDescriptorPoolCreateFlags flags;
3037 uint32_t maxSets;
3038 uint32_t poolSizeCount;
3039 const VkDescriptorPoolSize * pPoolSizes;
3040} VkDescriptorPoolCreateInfo;
3041
3042typedef struct VkPipelineShaderStageCreateInfo {
3043 VkStructureType sType;
3044 const void * pNext;
3045 VkPipelineShaderStageCreateFlags flags;
3046 VkShaderStageFlagBits stage;
3047 VkShaderModule module;
3048 const char * pName;
3049 const VkSpecializationInfo * pSpecializationInfo;
3050} VkPipelineShaderStageCreateInfo;
3051
3052typedef struct VkComputePipelineCreateInfo {
3053 VkStructureType sType;
3054 const void * pNext;
3055 VkPipelineCreateFlags flags;
3056 VkPipelineShaderStageCreateInfo stage;
3057 VkPipelineLayout layout;
3058 VkPipeline basePipelineHandle;
3059 int32_t basePipelineIndex;
3060} VkComputePipelineCreateInfo;
3061
3062typedef struct VkPipelineVertexInputStateCreateInfo {
3063 VkStructureType sType;
3064 const void * pNext;
3065 VkPipelineVertexInputStateCreateFlags flags;
3066 uint32_t vertexBindingDescriptionCount;
3067 const VkVertexInputBindingDescription * pVertexBindingDescriptions;
3068 uint32_t vertexAttributeDescriptionCount;
3069 const VkVertexInputAttributeDescription * pVertexAttributeDescriptions;
3070} VkPipelineVertexInputStateCreateInfo;
3071
3072typedef struct VkPipelineInputAssemblyStateCreateInfo {
3073 VkStructureType sType;
3074 const void * pNext;
3075 VkPipelineInputAssemblyStateCreateFlags flags;
3076 VkPrimitiveTopology topology;
3077 VkBool32 primitiveRestartEnable;
3078} VkPipelineInputAssemblyStateCreateInfo;
3079
3080typedef struct VkPipelineTessellationStateCreateInfo {
3081 VkStructureType sType;
3082 const void * pNext;
3083 VkPipelineTessellationStateCreateFlags flags;
3084 uint32_t patchControlPoints;
3085} VkPipelineTessellationStateCreateInfo;
3086
3087typedef struct VkPipelineViewportStateCreateInfo {
3088 VkStructureType sType;
3089 const void * pNext;
3090 VkPipelineViewportStateCreateFlags flags;
3091 uint32_t viewportCount;
3092 const VkViewport * pViewports;
3093 uint32_t scissorCount;
3094 const VkRect2D * pScissors;
3095} VkPipelineViewportStateCreateInfo;
3096
3097typedef struct VkPipelineRasterizationStateCreateInfo {
3098 VkStructureType sType;
3099 const void * pNext;
3100 VkPipelineRasterizationStateCreateFlags flags;
3101 VkBool32 depthClampEnable;
3102 VkBool32 rasterizerDiscardEnable;
3103 VkPolygonMode polygonMode;
3104 VkCullModeFlags cullMode;
3105 VkFrontFace frontFace;
3106 VkBool32 depthBiasEnable;
3107 float depthBiasConstantFactor;
3108 float depthBiasClamp;
3109 float depthBiasSlopeFactor;
3110 float lineWidth;
3111} VkPipelineRasterizationStateCreateInfo;
3112
3113typedef struct VkPipelineMultisampleStateCreateInfo {
3114 VkStructureType sType;
3115 const void * pNext;
3116 VkPipelineMultisampleStateCreateFlags flags;
3117 VkSampleCountFlagBits rasterizationSamples;
3118 VkBool32 sampleShadingEnable;
3119 float minSampleShading;
3120 const VkSampleMask * pSampleMask;
3121 VkBool32 alphaToCoverageEnable;
3122 VkBool32 alphaToOneEnable;
3123} VkPipelineMultisampleStateCreateInfo;
3124
3125typedef struct VkPipelineColorBlendAttachmentState {
3126 VkBool32 blendEnable;
3127 VkBlendFactor srcColorBlendFactor;
3128 VkBlendFactor dstColorBlendFactor;
3129 VkBlendOp colorBlendOp;
3130 VkBlendFactor srcAlphaBlendFactor;
3131 VkBlendFactor dstAlphaBlendFactor;
3132 VkBlendOp alphaBlendOp;
3133 VkColorComponentFlags colorWriteMask;
3134} VkPipelineColorBlendAttachmentState;
3135
3136typedef struct VkPipelineColorBlendStateCreateInfo {
3137 VkStructureType sType;
3138 const void * pNext;
3139 VkPipelineColorBlendStateCreateFlags flags;
3140 VkBool32 logicOpEnable;
3141 VkLogicOp logicOp;
3142 uint32_t attachmentCount;
3143 const VkPipelineColorBlendAttachmentState * pAttachments;
3144 float blendConstants [4];
3145} VkPipelineColorBlendStateCreateInfo;
3146
3147typedef struct VkPipelineDynamicStateCreateInfo {
3148 VkStructureType sType;
3149 const void * pNext;
3150 VkPipelineDynamicStateCreateFlags flags;
3151 uint32_t dynamicStateCount;
3152 const VkDynamicState * pDynamicStates;
3153} VkPipelineDynamicStateCreateInfo;
3154
3155typedef struct VkPipelineDepthStencilStateCreateInfo {
3156 VkStructureType sType;
3157 const void * pNext;
3158 VkPipelineDepthStencilStateCreateFlags flags;
3159 VkBool32 depthTestEnable;
3160 VkBool32 depthWriteEnable;
3161 VkCompareOp depthCompareOp;
3162 VkBool32 depthBoundsTestEnable;
3163 VkBool32 stencilTestEnable;
3164 VkStencilOpState front;
3165 VkStencilOpState back;
3166 float minDepthBounds;
3167 float maxDepthBounds;
3168} VkPipelineDepthStencilStateCreateInfo;
3169
3170typedef struct VkGraphicsPipelineCreateInfo {
3171 VkStructureType sType;
3172 const void * pNext;
3173 VkPipelineCreateFlags flags;
3174 uint32_t stageCount;
3175 const VkPipelineShaderStageCreateInfo * pStages;
3176 const VkPipelineVertexInputStateCreateInfo * pVertexInputState;
3177 const VkPipelineInputAssemblyStateCreateInfo * pInputAssemblyState;
3178 const VkPipelineTessellationStateCreateInfo * pTessellationState;
3179 const VkPipelineViewportStateCreateInfo * pViewportState;
3180 const VkPipelineRasterizationStateCreateInfo * pRasterizationState;
3181 const VkPipelineMultisampleStateCreateInfo * pMultisampleState;
3182 const VkPipelineDepthStencilStateCreateInfo * pDepthStencilState;
3183 const VkPipelineColorBlendStateCreateInfo * pColorBlendState;
3184 const VkPipelineDynamicStateCreateInfo * pDynamicState;
3185 VkPipelineLayout layout;
3186 VkRenderPass renderPass;
3187 uint32_t subpass;
3188 VkPipeline basePipelineHandle;
3189 int32_t basePipelineIndex;
3190} VkGraphicsPipelineCreateInfo;
3191
3192typedef struct VkPipelineCacheCreateInfo {
3193 VkStructureType sType;
3194 const void * pNext;
3195 VkPipelineCacheCreateFlags flags;
3196 size_t initialDataSize;
3197 const void * pInitialData;
3198} VkPipelineCacheCreateInfo;
3199
3200typedef struct VkPushConstantRange {
3201 VkShaderStageFlags stageFlags;
3202 uint32_t offset;
3203 uint32_t size;
3204} VkPushConstantRange;
3205
3206typedef struct VkPipelineLayoutCreateInfo {
3207 VkStructureType sType;
3208 const void * pNext;
3209 VkPipelineLayoutCreateFlags flags;
3210 uint32_t setLayoutCount;
3211 const VkDescriptorSetLayout * pSetLayouts;
3212 uint32_t pushConstantRangeCount;
3213 const VkPushConstantRange * pPushConstantRanges;
3214} VkPipelineLayoutCreateInfo;
3215
3216typedef struct VkSamplerCreateInfo {
3217 VkStructureType sType;
3218 const void * pNext;
3219 VkSamplerCreateFlags flags;
3220 VkFilter magFilter;
3221 VkFilter minFilter;
3222 VkSamplerMipmapMode mipmapMode;
3223 VkSamplerAddressMode addressModeU;
3224 VkSamplerAddressMode addressModeV;
3225 VkSamplerAddressMode addressModeW;
3226 float mipLodBias;
3227 VkBool32 anisotropyEnable;
3228 float maxAnisotropy;
3229 VkBool32 compareEnable;
3230 VkCompareOp compareOp;
3231 float minLod;
3232 float maxLod;
3233 VkBorderColor borderColor;
3234 VkBool32 unnormalizedCoordinates;
3235} VkSamplerCreateInfo;
3236
3237typedef struct VkCommandPoolCreateInfo {
3238 VkStructureType sType;
3239 const void * pNext;
3240 VkCommandPoolCreateFlags flags;
3241 uint32_t queueFamilyIndex;
3242} VkCommandPoolCreateInfo;
3243
3244typedef struct VkCommandBufferInheritanceInfo {
3245 VkStructureType sType;
3246 const void * pNext;
3247 VkRenderPass renderPass;
3248 uint32_t subpass;
3249 VkFramebuffer framebuffer;
3250 VkBool32 occlusionQueryEnable;
3251 VkQueryControlFlags queryFlags;
3252 VkQueryPipelineStatisticFlags pipelineStatistics;
3253} VkCommandBufferInheritanceInfo;
3254
3255typedef struct VkCommandBufferBeginInfo {
3256 VkStructureType sType;
3257 const void * pNext;
3258 VkCommandBufferUsageFlags flags;
3259 const VkCommandBufferInheritanceInfo * pInheritanceInfo;
3260} VkCommandBufferBeginInfo;
3261
3262typedef struct VkRenderPassBeginInfo {
3263 VkStructureType sType;
3264 const void * pNext;
3265 VkRenderPass renderPass;
3266 VkFramebuffer framebuffer;
3267 VkRect2D renderArea;
3268 uint32_t clearValueCount;
3269 const VkClearValue * pClearValues;
3270} VkRenderPassBeginInfo;
3271
3272typedef struct VkClearAttachment {
3273 VkImageAspectFlags aspectMask;
3274 uint32_t colorAttachment;
3275 VkClearValue clearValue;
3276} VkClearAttachment;
3277
3278typedef struct VkAttachmentDescription {
3279 VkAttachmentDescriptionFlags flags;
3280 VkFormat format;
3281 VkSampleCountFlagBits samples;
3282 VkAttachmentLoadOp loadOp;
3283 VkAttachmentStoreOp storeOp;
3284 VkAttachmentLoadOp stencilLoadOp;
3285 VkAttachmentStoreOp stencilStoreOp;
3286 VkImageLayout initialLayout;
3287 VkImageLayout finalLayout;
3288} VkAttachmentDescription;
3289
3290typedef struct VkSubpassDescription {
3291 VkSubpassDescriptionFlags flags;
3292 VkPipelineBindPoint pipelineBindPoint;
3293 uint32_t inputAttachmentCount;
3294 const VkAttachmentReference * pInputAttachments;
3295 uint32_t colorAttachmentCount;
3296 const VkAttachmentReference * pColorAttachments;
3297 const VkAttachmentReference * pResolveAttachments;
3298 const VkAttachmentReference * pDepthStencilAttachment;
3299 uint32_t preserveAttachmentCount;
3300 const uint32_t * pPreserveAttachments;
3301} VkSubpassDescription;
3302
3303typedef struct VkSubpassDependency {
3304 uint32_t srcSubpass;
3305 uint32_t dstSubpass;
3306 VkPipelineStageFlags srcStageMask;
3307 VkPipelineStageFlags dstStageMask;
3308 VkAccessFlags srcAccessMask;
3309 VkAccessFlags dstAccessMask;
3310 VkDependencyFlags dependencyFlags;
3311} VkSubpassDependency;
3312
3313typedef struct VkRenderPassCreateInfo {
3314 VkStructureType sType;
3315 const void * pNext;
3316 VkRenderPassCreateFlags flags;
3317 uint32_t attachmentCount;
3318 const VkAttachmentDescription * pAttachments;
3319 uint32_t subpassCount;
3320 const VkSubpassDescription * pSubpasses;
3321 uint32_t dependencyCount;
3322 const VkSubpassDependency * pDependencies;
3323} VkRenderPassCreateInfo;
3324
3325typedef struct VkEventCreateInfo {
3326 VkStructureType sType;
3327 const void * pNext;
3328 VkEventCreateFlags flags;
3329} VkEventCreateInfo;
3330
3331typedef struct VkFenceCreateInfo {
3332 VkStructureType sType;
3333 const void * pNext;
3334 VkFenceCreateFlags flags;
3335} VkFenceCreateInfo;
3336
3337typedef struct VkPhysicalDeviceFeatures {
3338 VkBool32 robustBufferAccess;
3339 VkBool32 fullDrawIndexUint32;
3340 VkBool32 imageCubeArray;
3341 VkBool32 independentBlend;
3342 VkBool32 geometryShader;
3343 VkBool32 tessellationShader;
3344 VkBool32 sampleRateShading;
3345 VkBool32 dualSrcBlend;
3346 VkBool32 logicOp;
3347 VkBool32 multiDrawIndirect;
3348 VkBool32 drawIndirectFirstInstance;
3349 VkBool32 depthClamp;
3350 VkBool32 depthBiasClamp;
3351 VkBool32 fillModeNonSolid;
3352 VkBool32 depthBounds;
3353 VkBool32 wideLines;
3354 VkBool32 largePoints;
3355 VkBool32 alphaToOne;
3356 VkBool32 multiViewport;
3357 VkBool32 samplerAnisotropy;
3358 VkBool32 textureCompressionETC2;
3359 VkBool32 textureCompressionASTC_LDR;
3360 VkBool32 textureCompressionBC;
3361 VkBool32 occlusionQueryPrecise;
3362 VkBool32 pipelineStatisticsQuery;
3363 VkBool32 vertexPipelineStoresAndAtomics;
3364 VkBool32 fragmentStoresAndAtomics;
3365 VkBool32 shaderTessellationAndGeometryPointSize;
3366 VkBool32 shaderImageGatherExtended;
3367 VkBool32 shaderStorageImageExtendedFormats;
3368 VkBool32 shaderStorageImageMultisample;
3369 VkBool32 shaderStorageImageReadWithoutFormat;
3370 VkBool32 shaderStorageImageWriteWithoutFormat;
3371 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3372 VkBool32 shaderSampledImageArrayDynamicIndexing;
3373 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3374 VkBool32 shaderStorageImageArrayDynamicIndexing;
3375 VkBool32 shaderClipDistance;
3376 VkBool32 shaderCullDistance;
3377 VkBool32 shaderFloat64;
3378 VkBool32 shaderInt64;
3379 VkBool32 shaderInt16;
3380 VkBool32 shaderResourceResidency;
3381 VkBool32 shaderResourceMinLod;
3382 VkBool32 sparseBinding;
3383 VkBool32 sparseResidencyBuffer;
3384 VkBool32 sparseResidencyImage2D;
3385 VkBool32 sparseResidencyImage3D;
3386 VkBool32 sparseResidency2Samples;
3387 VkBool32 sparseResidency4Samples;
3388 VkBool32 sparseResidency8Samples;
3389 VkBool32 sparseResidency16Samples;
3390 VkBool32 sparseResidencyAliased;
3391 VkBool32 variableMultisampleRate;
3392 VkBool32 inheritedQueries;
3393} VkPhysicalDeviceFeatures;
3394
3395typedef struct VkPhysicalDeviceSparseProperties {
3396 VkBool32 residencyStandard2DBlockShape;
3397 VkBool32 residencyStandard2DMultisampleBlockShape;
3398 VkBool32 residencyStandard3DBlockShape;
3399 VkBool32 residencyAlignedMipSize;
3400 VkBool32 residencyNonResidentStrict;
3401} VkPhysicalDeviceSparseProperties;
3402
3403typedef struct VkPhysicalDeviceLimits {
3404 uint32_t maxImageDimension1D;
3405 uint32_t maxImageDimension2D;
3406 uint32_t maxImageDimension3D;
3407 uint32_t maxImageDimensionCube;
3408 uint32_t maxImageArrayLayers;
3409 uint32_t maxTexelBufferElements;
3410 uint32_t maxUniformBufferRange;
3411 uint32_t maxStorageBufferRange;
3412 uint32_t maxPushConstantsSize;
3413 uint32_t maxMemoryAllocationCount;
3414 uint32_t maxSamplerAllocationCount;
3415 VkDeviceSize bufferImageGranularity;
3416 VkDeviceSize sparseAddressSpaceSize;
3417 uint32_t maxBoundDescriptorSets;
3418 uint32_t maxPerStageDescriptorSamplers;
3419 uint32_t maxPerStageDescriptorUniformBuffers;
3420 uint32_t maxPerStageDescriptorStorageBuffers;
3421 uint32_t maxPerStageDescriptorSampledImages;
3422 uint32_t maxPerStageDescriptorStorageImages;
3423 uint32_t maxPerStageDescriptorInputAttachments;
3424 uint32_t maxPerStageResources;
3425 uint32_t maxDescriptorSetSamplers;
3426 uint32_t maxDescriptorSetUniformBuffers;
3427 uint32_t maxDescriptorSetUniformBuffersDynamic;
3428 uint32_t maxDescriptorSetStorageBuffers;
3429 uint32_t maxDescriptorSetStorageBuffersDynamic;
3430 uint32_t maxDescriptorSetSampledImages;
3431 uint32_t maxDescriptorSetStorageImages;
3432 uint32_t maxDescriptorSetInputAttachments;
3433 uint32_t maxVertexInputAttributes;
3434 uint32_t maxVertexInputBindings;
3435 uint32_t maxVertexInputAttributeOffset;
3436 uint32_t maxVertexInputBindingStride;
3437 uint32_t maxVertexOutputComponents;
3438 uint32_t maxTessellationGenerationLevel;
3439 uint32_t maxTessellationPatchSize;
3440 uint32_t maxTessellationControlPerVertexInputComponents;
3441 uint32_t maxTessellationControlPerVertexOutputComponents;
3442 uint32_t maxTessellationControlPerPatchOutputComponents;
3443 uint32_t maxTessellationControlTotalOutputComponents;
3444 uint32_t maxTessellationEvaluationInputComponents;
3445 uint32_t maxTessellationEvaluationOutputComponents;
3446 uint32_t maxGeometryShaderInvocations;
3447 uint32_t maxGeometryInputComponents;
3448 uint32_t maxGeometryOutputComponents;
3449 uint32_t maxGeometryOutputVertices;
3450 uint32_t maxGeometryTotalOutputComponents;
3451 uint32_t maxFragmentInputComponents;
3452 uint32_t maxFragmentOutputAttachments;
3453 uint32_t maxFragmentDualSrcAttachments;
3454 uint32_t maxFragmentCombinedOutputResources;
3455 uint32_t maxComputeSharedMemorySize;
3456 uint32_t maxComputeWorkGroupCount [3];
3457 uint32_t maxComputeWorkGroupInvocations;
3458 uint32_t maxComputeWorkGroupSize [3];
3459 uint32_t subPixelPrecisionBits;
3460 uint32_t subTexelPrecisionBits;
3461 uint32_t mipmapPrecisionBits;
3462 uint32_t maxDrawIndexedIndexValue;
3463 uint32_t maxDrawIndirectCount;
3464 float maxSamplerLodBias;
3465 float maxSamplerAnisotropy;
3466 uint32_t maxViewports;
3467 uint32_t maxViewportDimensions [2];
3468 float viewportBoundsRange [2];
3469 uint32_t viewportSubPixelBits;
3470 size_t minMemoryMapAlignment;
3471 VkDeviceSize minTexelBufferOffsetAlignment;
3472 VkDeviceSize minUniformBufferOffsetAlignment;
3473 VkDeviceSize minStorageBufferOffsetAlignment;
3474 int32_t minTexelOffset;
3475 uint32_t maxTexelOffset;
3476 int32_t minTexelGatherOffset;
3477 uint32_t maxTexelGatherOffset;
3478 float minInterpolationOffset;
3479 float maxInterpolationOffset;
3480 uint32_t subPixelInterpolationOffsetBits;
3481 uint32_t maxFramebufferWidth;
3482 uint32_t maxFramebufferHeight;
3483 uint32_t maxFramebufferLayers;
3484 VkSampleCountFlags framebufferColorSampleCounts;
3485 VkSampleCountFlags framebufferDepthSampleCounts;
3486 VkSampleCountFlags framebufferStencilSampleCounts;
3487 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3488 uint32_t maxColorAttachments;
3489 VkSampleCountFlags sampledImageColorSampleCounts;
3490 VkSampleCountFlags sampledImageIntegerSampleCounts;
3491 VkSampleCountFlags sampledImageDepthSampleCounts;
3492 VkSampleCountFlags sampledImageStencilSampleCounts;
3493 VkSampleCountFlags storageImageSampleCounts;
3494 uint32_t maxSampleMaskWords;
3495 VkBool32 timestampComputeAndGraphics;
3496 float timestampPeriod;
3497 uint32_t maxClipDistances;
3498 uint32_t maxCullDistances;
3499 uint32_t maxCombinedClipAndCullDistances;
3500 uint32_t discreteQueuePriorities;
3501 float pointSizeRange [2];
3502 float lineWidthRange [2];
3503 float pointSizeGranularity;
3504 float lineWidthGranularity;
3505 VkBool32 strictLines;
3506 VkBool32 standardSampleLocations;
3507 VkDeviceSize optimalBufferCopyOffsetAlignment;
3508 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3509 VkDeviceSize nonCoherentAtomSize;
3510} VkPhysicalDeviceLimits;
3511
3512typedef struct VkSemaphoreCreateInfo {
3513 VkStructureType sType;
3514 const void * pNext;
3515 VkSemaphoreCreateFlags flags;
3516} VkSemaphoreCreateInfo;
3517
3518typedef struct VkQueryPoolCreateInfo {
3519 VkStructureType sType;
3520 const void * pNext;
3521 VkQueryPoolCreateFlags flags;
3522 VkQueryType queryType;
3523 uint32_t queryCount;
3524 VkQueryPipelineStatisticFlags pipelineStatistics;
3525} VkQueryPoolCreateInfo;
3526
3527typedef struct VkFramebufferCreateInfo {
3528 VkStructureType sType;
3529 const void * pNext;
3530 VkFramebufferCreateFlags flags;
3531 VkRenderPass renderPass;
3532 uint32_t attachmentCount;
3533 const VkImageView * pAttachments;
3534 uint32_t width;
3535 uint32_t height;
3536 uint32_t layers;
3537} VkFramebufferCreateInfo;
3538
3539typedef struct VkSubmitInfo {
3540 VkStructureType sType;
3541 const void * pNext;
3542 uint32_t waitSemaphoreCount;
3543 const VkSemaphore * pWaitSemaphores;
3544 const VkPipelineStageFlags * pWaitDstStageMask;
3545 uint32_t commandBufferCount;
3546 const VkCommandBuffer * pCommandBuffers;
3547 uint32_t signalSemaphoreCount;
3548 const VkSemaphore * pSignalSemaphores;
3549} VkSubmitInfo;
3550
3551typedef struct VkSurfaceCapabilitiesKHR {
3552 uint32_t minImageCount;
3553 uint32_t maxImageCount;
3554 VkExtent2D currentExtent;
3555 VkExtent2D minImageExtent;
3556 VkExtent2D maxImageExtent;
3557 uint32_t maxImageArrayLayers;
3558 VkSurfaceTransformFlagsKHR supportedTransforms;
3559 VkSurfaceTransformFlagBitsKHR currentTransform;
3560 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
3561 VkImageUsageFlags supportedUsageFlags;
3562} VkSurfaceCapabilitiesKHR;
3563
3564typedef struct VkSwapchainCreateInfoKHR {
3565 VkStructureType sType;
3566 const void * pNext;
3567 VkSwapchainCreateFlagsKHR flags;
3568 VkSurfaceKHR surface;
3569 uint32_t minImageCount;
3570 VkFormat imageFormat;
3571 VkColorSpaceKHR imageColorSpace;
3572 VkExtent2D imageExtent;
3573 uint32_t imageArrayLayers;
3574 VkImageUsageFlags imageUsage;
3575 VkSharingMode imageSharingMode;
3576 uint32_t queueFamilyIndexCount;
3577 const uint32_t * pQueueFamilyIndices;
3578 VkSurfaceTransformFlagBitsKHR preTransform;
3579 VkCompositeAlphaFlagBitsKHR compositeAlpha;
3580 VkPresentModeKHR presentMode;
3581 VkBool32 clipped;
3582 VkSwapchainKHR oldSwapchain;
3583} VkSwapchainCreateInfoKHR;
3584
3585typedef struct VkDebugReportCallbackCreateInfoEXT {
3586 VkStructureType sType;
3587 const void * pNext;
3588 VkDebugReportFlagsEXT flags;
3589 PFN_vkDebugReportCallbackEXT pfnCallback;
3590 void * pUserData;
3591} VkDebugReportCallbackCreateInfoEXT;
3592
3593typedef struct VkPrivateDataSlotCreateInfo {
3594 VkStructureType sType;
3595 const void * pNext;
3596 VkPrivateDataSlotCreateFlags flags;
3597} VkPrivateDataSlotCreateInfo;
3598
3599typedef struct VkPhysicalDevicePrivateDataFeatures {
3600 VkStructureType sType;
3601 void * pNext;
3602 VkBool32 privateData;
3603} VkPhysicalDevicePrivateDataFeatures;
3604
3605typedef struct VkPhysicalDeviceFeatures2 {
3606 VkStructureType sType;
3607 void * pNext;
3608 VkPhysicalDeviceFeatures features;
3609} VkPhysicalDeviceFeatures2;
3610
3611typedef struct VkFormatProperties2 {
3612 VkStructureType sType;
3613 void * pNext;
3614 VkFormatProperties formatProperties;
3615} VkFormatProperties2;
3616
3617typedef struct VkImageFormatProperties2 {
3618 VkStructureType sType;
3619 void * pNext;
3620 VkImageFormatProperties imageFormatProperties;
3621} VkImageFormatProperties2;
3622
3623typedef struct VkPhysicalDeviceImageFormatInfo2 {
3624 VkStructureType sType;
3625 const void * pNext;
3626 VkFormat format;
3627 VkImageType type;
3628 VkImageTiling tiling;
3629 VkImageUsageFlags usage;
3630 VkImageCreateFlags flags;
3631} VkPhysicalDeviceImageFormatInfo2;
3632
3633typedef struct VkQueueFamilyProperties2 {
3634 VkStructureType sType;
3635 void * pNext;
3636 VkQueueFamilyProperties queueFamilyProperties;
3637} VkQueueFamilyProperties2;
3638
3639typedef struct VkSparseImageFormatProperties2 {
3640 VkStructureType sType;
3641 void * pNext;
3642 VkSparseImageFormatProperties properties;
3643} VkSparseImageFormatProperties2;
3644
3645typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
3646 VkStructureType sType;
3647 const void * pNext;
3648 VkFormat format;
3649 VkImageType type;
3650 VkSampleCountFlagBits samples;
3651 VkImageUsageFlags usage;
3652 VkImageTiling tiling;
3653} VkPhysicalDeviceSparseImageFormatInfo2;
3654
3655typedef struct VkPhysicalDeviceVariablePointersFeatures {
3656 VkStructureType sType;
3657 void * pNext;
3658 VkBool32 variablePointersStorageBuffer;
3659 VkBool32 variablePointers;
3660} VkPhysicalDeviceVariablePointersFeatures;
3661
3662typedef struct VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
3663
3664typedef struct VkExternalMemoryProperties {
3665 VkExternalMemoryFeatureFlags externalMemoryFeatures;
3666 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
3667 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
3668} VkExternalMemoryProperties;
3669
3670typedef struct VkExternalImageFormatProperties {
3671 VkStructureType sType;
3672 void * pNext;
3673 VkExternalMemoryProperties externalMemoryProperties;
3674} VkExternalImageFormatProperties;
3675
3676typedef struct VkPhysicalDeviceExternalBufferInfo {
3677 VkStructureType sType;
3678 const void * pNext;
3679 VkBufferCreateFlags flags;
3680 VkBufferUsageFlags usage;
3681 VkExternalMemoryHandleTypeFlagBits handleType;
3682} VkPhysicalDeviceExternalBufferInfo;
3683
3684typedef struct VkExternalBufferProperties {
3685 VkStructureType sType;
3686 void * pNext;
3687 VkExternalMemoryProperties externalMemoryProperties;
3688} VkExternalBufferProperties;
3689
3690typedef struct VkPhysicalDeviceIDProperties {
3691 VkStructureType sType;
3692 void * pNext;
3693 uint8_t deviceUUID [ VK_UUID_SIZE ];
3694 uint8_t driverUUID [ VK_UUID_SIZE ];
3695 uint8_t deviceLUID [ VK_LUID_SIZE ];
3696 uint32_t deviceNodeMask;
3697 VkBool32 deviceLUIDValid;
3698} VkPhysicalDeviceIDProperties;
3699
3700typedef struct VkExternalMemoryImageCreateInfo {
3701 VkStructureType sType;
3702 const void * pNext;
3703 VkExternalMemoryHandleTypeFlags handleTypes;
3704} VkExternalMemoryImageCreateInfo;
3705
3706typedef struct VkExternalMemoryBufferCreateInfo {
3707 VkStructureType sType;
3708 const void * pNext;
3709 VkExternalMemoryHandleTypeFlags handleTypes;
3710} VkExternalMemoryBufferCreateInfo;
3711
3712typedef struct VkExportMemoryAllocateInfo {
3713 VkStructureType sType;
3714 const void * pNext;
3715 VkExternalMemoryHandleTypeFlags handleTypes;
3716} VkExportMemoryAllocateInfo;
3717
3718typedef struct VkExternalSemaphoreProperties {
3719 VkStructureType sType;
3720 void * pNext;
3721 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
3722 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
3723 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
3724} VkExternalSemaphoreProperties;
3725
3726typedef struct VkExportSemaphoreCreateInfo {
3727 VkStructureType sType;
3728 const void * pNext;
3729 VkExternalSemaphoreHandleTypeFlags handleTypes;
3730} VkExportSemaphoreCreateInfo;
3731
3732typedef struct VkExternalFenceProperties {
3733 VkStructureType sType;
3734 void * pNext;
3735 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
3736 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
3737 VkExternalFenceFeatureFlags externalFenceFeatures;
3738} VkExternalFenceProperties;
3739
3740typedef struct VkExportFenceCreateInfo {
3741 VkStructureType sType;
3742 const void * pNext;
3743 VkExternalFenceHandleTypeFlags handleTypes;
3744} VkExportFenceCreateInfo;
3745
3746typedef struct VkPhysicalDeviceMultiviewFeatures {
3747 VkStructureType sType;
3748 void * pNext;
3749 VkBool32 multiview;
3750 VkBool32 multiviewGeometryShader;
3751 VkBool32 multiviewTessellationShader;
3752} VkPhysicalDeviceMultiviewFeatures;
3753
3754typedef struct VkPhysicalDeviceGroupProperties {
3755 VkStructureType sType;
3756 void * pNext;
3757 uint32_t physicalDeviceCount;
3758 VkPhysicalDevice physicalDevices [ VK_MAX_DEVICE_GROUP_SIZE ];
3759 VkBool32 subsetAllocation;
3760} VkPhysicalDeviceGroupProperties;
3761
3762typedef struct VkMemoryAllocateFlagsInfo {
3763 VkStructureType sType;
3764 const void * pNext;
3765 VkMemoryAllocateFlags flags;
3766 uint32_t deviceMask;
3767} VkMemoryAllocateFlagsInfo;
3768
3769typedef struct VkBindBufferMemoryInfo {
3770 VkStructureType sType;
3771 const void * pNext;
3772 VkBuffer buffer;
3773 VkDeviceMemory memory;
3774 VkDeviceSize memoryOffset;
3775} VkBindBufferMemoryInfo;
3776
3777typedef struct VkBindImageMemoryInfo {
3778 VkStructureType sType;
3779 const void * pNext;
3780 VkImage image;
3781 VkDeviceMemory memory;
3782 VkDeviceSize memoryOffset;
3783} VkBindImageMemoryInfo;
3784
3785typedef struct VkDeviceGroupPresentCapabilitiesKHR {
3786 VkStructureType sType;
3787 void * pNext;
3788 uint32_t presentMask [ VK_MAX_DEVICE_GROUP_SIZE ];
3789 VkDeviceGroupPresentModeFlagsKHR modes;
3790} VkDeviceGroupPresentCapabilitiesKHR;
3791
3792typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
3793 VkStructureType sType;
3794 const void * pNext;
3795 VkDeviceGroupPresentModeFlagsKHR modes;
3796} VkDeviceGroupSwapchainCreateInfoKHR;
3797
3798typedef struct VkDescriptorUpdateTemplateCreateInfo {
3799 VkStructureType sType;
3800 const void * pNext;
3801 VkDescriptorUpdateTemplateCreateFlags flags;
3802 uint32_t descriptorUpdateEntryCount;
3803 const VkDescriptorUpdateTemplateEntry * pDescriptorUpdateEntries;
3804 VkDescriptorUpdateTemplateType templateType;
3805 VkDescriptorSetLayout descriptorSetLayout;
3806 VkPipelineBindPoint pipelineBindPoint;
3807 VkPipelineLayout pipelineLayout;
3808 uint32_t set;
3809} VkDescriptorUpdateTemplateCreateInfo;
3810
3811typedef struct VkInputAttachmentAspectReference {
3812 uint32_t subpass;
3813 uint32_t inputAttachmentIndex;
3814 VkImageAspectFlags aspectMask;
3815} VkInputAttachmentAspectReference;
3816
3817typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
3818 VkStructureType sType;
3819 const void * pNext;
3820 uint32_t aspectReferenceCount;
3821 const VkInputAttachmentAspectReference * pAspectReferences;
3822} VkRenderPassInputAttachmentAspectCreateInfo;
3823
3824typedef struct VkPhysicalDevice16BitStorageFeatures {
3825 VkStructureType sType;
3826 void * pNext;
3827 VkBool32 storageBuffer16BitAccess;
3828 VkBool32 uniformAndStorageBuffer16BitAccess;
3829 VkBool32 storagePushConstant16;
3830 VkBool32 storageInputOutput16;
3831} VkPhysicalDevice16BitStorageFeatures;
3832
3833typedef struct VkPhysicalDeviceSubgroupProperties {
3834 VkStructureType sType;
3835 void * pNext;
3836 uint32_t subgroupSize;
3837 VkShaderStageFlags supportedStages;
3838 VkSubgroupFeatureFlags supportedOperations;
3839 VkBool32 quadOperationsInAllStages;
3840} VkPhysicalDeviceSubgroupProperties;
3841
3842typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
3843 VkStructureType sType;
3844 void * pNext;
3845 VkBool32 shaderSubgroupExtendedTypes;
3846} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
3847
3848typedef struct VkDeviceBufferMemoryRequirements {
3849 VkStructureType sType;
3850 const void * pNext;
3851 const VkBufferCreateInfo * pCreateInfo;
3852} VkDeviceBufferMemoryRequirements;
3853
3854typedef struct VkDeviceImageMemoryRequirements {
3855 VkStructureType sType;
3856 const void * pNext;
3857 const VkImageCreateInfo * pCreateInfo;
3858 VkImageAspectFlagBits planeAspect;
3859} VkDeviceImageMemoryRequirements;
3860
3861typedef struct VkMemoryRequirements2 {
3862 VkStructureType sType;
3863 void * pNext;
3864 VkMemoryRequirements memoryRequirements;
3865} VkMemoryRequirements2;
3866
3867typedef struct VkSparseImageMemoryRequirements2 {
3868 VkStructureType sType;
3869 void * pNext;
3870 VkSparseImageMemoryRequirements memoryRequirements;
3871} VkSparseImageMemoryRequirements2;
3872
3873typedef struct VkMemoryDedicatedRequirements {
3874 VkStructureType sType;
3875 void * pNext;
3876 VkBool32 prefersDedicatedAllocation;
3877 VkBool32 requiresDedicatedAllocation;
3878} VkMemoryDedicatedRequirements;
3879
3880typedef struct VkImageViewUsageCreateInfo {
3881 VkStructureType sType;
3882 const void * pNext;
3883 VkImageUsageFlags usage;
3884} VkImageViewUsageCreateInfo;
3885
3886typedef struct VkSamplerYcbcrConversionCreateInfo {
3887 VkStructureType sType;
3888 const void * pNext;
3889 VkFormat format;
3890 VkSamplerYcbcrModelConversion ycbcrModel;
3891 VkSamplerYcbcrRange ycbcrRange;
3892 VkComponentMapping components;
3893 VkChromaLocation xChromaOffset;
3894 VkChromaLocation yChromaOffset;
3895 VkFilter chromaFilter;
3896 VkBool32 forceExplicitReconstruction;
3897} VkSamplerYcbcrConversionCreateInfo;
3898
3899typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
3900 VkStructureType sType;
3901 void * pNext;
3902 VkBool32 samplerYcbcrConversion;
3903} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
3904
3905typedef struct VkProtectedSubmitInfo {
3906 VkStructureType sType;
3907 const void * pNext;
3908 VkBool32 protectedSubmit;
3909} VkProtectedSubmitInfo;
3910
3911typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
3912 VkStructureType sType;
3913 void * pNext;
3914 VkBool32 protectedMemory;
3915} VkPhysicalDeviceProtectedMemoryFeatures;
3916
3917typedef struct VkPhysicalDeviceProtectedMemoryProperties {
3918 VkStructureType sType;
3919 void * pNext;
3920 VkBool32 protectedNoFault;
3921} VkPhysicalDeviceProtectedMemoryProperties;
3922
3923typedef struct VkDeviceQueueInfo2 {
3924 VkStructureType sType;
3925 const void * pNext;
3926 VkDeviceQueueCreateFlags flags;
3927 uint32_t queueFamilyIndex;
3928 uint32_t queueIndex;
3929} VkDeviceQueueInfo2;
3930
3931typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
3932 VkStructureType sType;
3933 void * pNext;
3934 VkBool32 filterMinmaxSingleComponentFormats;
3935 VkBool32 filterMinmaxImageComponentMapping;
3936} VkPhysicalDeviceSamplerFilterMinmaxProperties;
3937
3938typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
3939 VkStructureType sType;
3940 void * pNext;
3941 VkBool32 inlineUniformBlock;
3942 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
3943} VkPhysicalDeviceInlineUniformBlockFeatures;
3944
3945typedef struct VkPhysicalDeviceMaintenance3Properties {
3946 VkStructureType sType;
3947 void * pNext;
3948 uint32_t maxPerSetDescriptors;
3949 VkDeviceSize maxMemoryAllocationSize;
3950} VkPhysicalDeviceMaintenance3Properties;
3951
3952typedef struct VkPhysicalDeviceMaintenance4Features {
3953 VkStructureType sType;
3954 void * pNext;
3955 VkBool32 maintenance4;
3956} VkPhysicalDeviceMaintenance4Features;
3957
3958typedef struct VkPhysicalDeviceMaintenance4Properties {
3959 VkStructureType sType;
3960 void * pNext;
3961 VkDeviceSize maxBufferSize;
3962} VkPhysicalDeviceMaintenance4Properties;
3963
3964typedef struct VkDescriptorSetLayoutSupport {
3965 VkStructureType sType;
3966 void * pNext;
3967 VkBool32 supported;
3968} VkDescriptorSetLayoutSupport;
3969
3970typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
3971 VkStructureType sType;
3972 void * pNext;
3973 VkBool32 shaderDrawParameters;
3974} VkPhysicalDeviceShaderDrawParametersFeatures;
3975
3976typedef struct VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
3977
3978typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
3979 VkStructureType sType;
3980 void * pNext;
3981 VkBool32 shaderFloat16;
3982 VkBool32 shaderInt8;
3983} VkPhysicalDeviceShaderFloat16Int8Features;
3984
3985typedef struct VkPhysicalDeviceFloatControlsProperties {
3986 VkStructureType sType;
3987 void * pNext;
3988 VkShaderFloatControlsIndependence denormBehaviorIndependence;
3989 VkShaderFloatControlsIndependence roundingModeIndependence;
3990 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
3991 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
3992 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
3993 VkBool32 shaderDenormPreserveFloat16;
3994 VkBool32 shaderDenormPreserveFloat32;
3995 VkBool32 shaderDenormPreserveFloat64;
3996 VkBool32 shaderDenormFlushToZeroFloat16;
3997 VkBool32 shaderDenormFlushToZeroFloat32;
3998 VkBool32 shaderDenormFlushToZeroFloat64;
3999 VkBool32 shaderRoundingModeRTEFloat16;
4000 VkBool32 shaderRoundingModeRTEFloat32;
4001 VkBool32 shaderRoundingModeRTEFloat64;
4002 VkBool32 shaderRoundingModeRTZFloat16;
4003 VkBool32 shaderRoundingModeRTZFloat32;
4004 VkBool32 shaderRoundingModeRTZFloat64;
4005} VkPhysicalDeviceFloatControlsProperties;
4006
4007typedef struct VkPhysicalDeviceHostQueryResetFeatures {
4008 VkStructureType sType;
4009 void * pNext;
4010 VkBool32 hostQueryReset;
4011} VkPhysicalDeviceHostQueryResetFeatures;
4012
4013typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
4014 VkStructureType sType;
4015 void * pNext;
4016 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
4017 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
4018 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
4019 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
4020 VkBool32 shaderSampledImageArrayNonUniformIndexing;
4021 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
4022 VkBool32 shaderStorageImageArrayNonUniformIndexing;
4023 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
4024 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
4025 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
4026 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
4027 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
4028 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
4029 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
4030 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
4031 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
4032 VkBool32 descriptorBindingUpdateUnusedWhilePending;
4033 VkBool32 descriptorBindingPartiallyBound;
4034 VkBool32 descriptorBindingVariableDescriptorCount;
4035 VkBool32 runtimeDescriptorArray;
4036} VkPhysicalDeviceDescriptorIndexingFeatures;
4037
4038typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
4039 VkStructureType sType;
4040 void * pNext;
4041 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
4042 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
4043 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
4044 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
4045 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
4046 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
4047 VkBool32 robustBufferAccessUpdateAfterBind;
4048 VkBool32 quadDivergentImplicitLod;
4049 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
4050 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
4051 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
4052 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
4053 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
4054 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
4055 uint32_t maxPerStageUpdateAfterBindResources;
4056 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
4057 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
4058 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
4059 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
4060 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
4061 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
4062 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
4063 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
4064} VkPhysicalDeviceDescriptorIndexingProperties;
4065
4066typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
4067 VkStructureType sType;
4068 const void * pNext;
4069 uint32_t bindingCount;
4070 const VkDescriptorBindingFlags * pBindingFlags;
4071} VkDescriptorSetLayoutBindingFlagsCreateInfo;
4072
4073typedef struct VkAttachmentDescription2 {
4074 VkStructureType sType;
4075 const void * pNext;
4076 VkAttachmentDescriptionFlags flags;
4077 VkFormat format;
4078 VkSampleCountFlagBits samples;
4079 VkAttachmentLoadOp loadOp;
4080 VkAttachmentStoreOp storeOp;
4081 VkAttachmentLoadOp stencilLoadOp;
4082 VkAttachmentStoreOp stencilStoreOp;
4083 VkImageLayout initialLayout;
4084 VkImageLayout finalLayout;
4085} VkAttachmentDescription2;
4086
4087typedef struct VkAttachmentReference2 {
4088 VkStructureType sType;
4089 const void * pNext;
4090 uint32_t attachment;
4091 VkImageLayout layout;
4092 VkImageAspectFlags aspectMask;
4093} VkAttachmentReference2;
4094
4095typedef struct VkSubpassDescription2 {
4096 VkStructureType sType;
4097 const void * pNext;
4098 VkSubpassDescriptionFlags flags;
4099 VkPipelineBindPoint pipelineBindPoint;
4100 uint32_t viewMask;
4101 uint32_t inputAttachmentCount;
4102 const VkAttachmentReference2 * pInputAttachments;
4103 uint32_t colorAttachmentCount;
4104 const VkAttachmentReference2 * pColorAttachments;
4105 const VkAttachmentReference2 * pResolveAttachments;
4106 const VkAttachmentReference2 * pDepthStencilAttachment;
4107 uint32_t preserveAttachmentCount;
4108 const uint32_t * pPreserveAttachments;
4109} VkSubpassDescription2;
4110
4111typedef struct VkSubpassDependency2 {
4112 VkStructureType sType;
4113 const void * pNext;
4114 uint32_t srcSubpass;
4115 uint32_t dstSubpass;
4116 VkPipelineStageFlags srcStageMask;
4117 VkPipelineStageFlags dstStageMask;
4118 VkAccessFlags srcAccessMask;
4119 VkAccessFlags dstAccessMask;
4120 VkDependencyFlags dependencyFlags;
4121 int32_t viewOffset;
4122} VkSubpassDependency2;
4123
4124typedef struct VkRenderPassCreateInfo2 {
4125 VkStructureType sType;
4126 const void * pNext;
4127 VkRenderPassCreateFlags flags;
4128 uint32_t attachmentCount;
4129 const VkAttachmentDescription2 * pAttachments;
4130 uint32_t subpassCount;
4131 const VkSubpassDescription2 * pSubpasses;
4132 uint32_t dependencyCount;
4133 const VkSubpassDependency2 * pDependencies;
4134 uint32_t correlatedViewMaskCount;
4135 const uint32_t * pCorrelatedViewMasks;
4136} VkRenderPassCreateInfo2;
4137
4138typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
4139 VkStructureType sType;
4140 void * pNext;
4141 VkBool32 timelineSemaphore;
4142} VkPhysicalDeviceTimelineSemaphoreFeatures;
4143
4144typedef struct VkSemaphoreWaitInfo {
4145 VkStructureType sType;
4146 const void * pNext;
4147 VkSemaphoreWaitFlags flags;
4148 uint32_t semaphoreCount;
4149 const VkSemaphore * pSemaphores;
4150 const uint64_t * pValues;
4151} VkSemaphoreWaitInfo;
4152
4153typedef struct VkPhysicalDevice8BitStorageFeatures {
4154 VkStructureType sType;
4155 void * pNext;
4156 VkBool32 storageBuffer8BitAccess;
4157 VkBool32 uniformAndStorageBuffer8BitAccess;
4158 VkBool32 storagePushConstant8;
4159} VkPhysicalDevice8BitStorageFeatures;
4160
4161typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
4162 VkStructureType sType;
4163 void * pNext;
4164 VkBool32 vulkanMemoryModel;
4165 VkBool32 vulkanMemoryModelDeviceScope;
4166 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
4167} VkPhysicalDeviceVulkanMemoryModelFeatures;
4168
4169typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
4170 VkStructureType sType;
4171 void * pNext;
4172 VkBool32 shaderBufferInt64Atomics;
4173 VkBool32 shaderSharedInt64Atomics;
4174} VkPhysicalDeviceShaderAtomicInt64Features;
4175
4176typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
4177 VkStructureType sType;
4178 void * pNext;
4179 VkResolveModeFlags supportedDepthResolveModes;
4180 VkResolveModeFlags supportedStencilResolveModes;
4181 VkBool32 independentResolveNone;
4182 VkBool32 independentResolve;
4183} VkPhysicalDeviceDepthStencilResolveProperties;
4184
4185typedef struct VkSubpassDescriptionDepthStencilResolve {
4186 VkStructureType sType;
4187 const void * pNext;
4188 VkResolveModeFlagBits depthResolveMode;
4189 VkResolveModeFlagBits stencilResolveMode;
4190 const VkAttachmentReference2 * pDepthStencilResolveAttachment;
4191} VkSubpassDescriptionDepthStencilResolve;
4192
4193typedef struct VkImageStencilUsageCreateInfo {
4194 VkStructureType sType;
4195 const void * pNext;
4196 VkImageUsageFlags stencilUsage;
4197} VkImageStencilUsageCreateInfo;
4198
4199typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
4200 VkStructureType sType;
4201 void * pNext;
4202 VkBool32 scalarBlockLayout;
4203} VkPhysicalDeviceScalarBlockLayoutFeatures;
4204
4205typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
4206 VkStructureType sType;
4207 void * pNext;
4208 VkBool32 uniformBufferStandardLayout;
4209} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
4210
4211typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
4212 VkStructureType sType;
4213 void * pNext;
4214 VkBool32 bufferDeviceAddress;
4215 VkBool32 bufferDeviceAddressCaptureReplay;
4216 VkBool32 bufferDeviceAddressMultiDevice;
4217} VkPhysicalDeviceBufferDeviceAddressFeatures;
4218
4219typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
4220 VkStructureType sType;
4221 void * pNext;
4222 VkBool32 imagelessFramebuffer;
4223} VkPhysicalDeviceImagelessFramebufferFeatures;
4224
4225typedef struct VkFramebufferAttachmentImageInfo {
4226 VkStructureType sType;
4227 const void * pNext;
4228 VkImageCreateFlags flags;
4229 VkImageUsageFlags usage;
4230 uint32_t width;
4231 uint32_t height;
4232 uint32_t layerCount;
4233 uint32_t viewFormatCount;
4234 const VkFormat * pViewFormats;
4235} VkFramebufferAttachmentImageInfo;
4236
4237typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
4238 VkStructureType sType;
4239 void * pNext;
4240 VkBool32 textureCompressionASTC_HDR;
4241} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
4242
4243typedef struct VkPipelineCreationFeedback {
4244 VkPipelineCreationFeedbackFlags flags;
4245 uint64_t duration;
4246} VkPipelineCreationFeedback;
4247
4248typedef struct VkPipelineCreationFeedbackCreateInfo {
4249 VkStructureType sType;
4250 const void * pNext;
4251 VkPipelineCreationFeedback * pPipelineCreationFeedback;
4252 uint32_t pipelineStageCreationFeedbackCount;
4253 VkPipelineCreationFeedback * pPipelineStageCreationFeedbacks;
4254} VkPipelineCreationFeedbackCreateInfo;
4255
4256typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
4257 VkStructureType sType;
4258 void * pNext;
4259 VkBool32 separateDepthStencilLayouts;
4260} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
4261
4262typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
4263 VkStructureType sType;
4264 void * pNext;
4265 VkBool32 shaderDemoteToHelperInvocation;
4266} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
4267
4268typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
4269 VkStructureType sType;
4270 void * pNext;
4271 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
4272 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
4273 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
4274 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
4275} VkPhysicalDeviceTexelBufferAlignmentProperties;
4276
4277typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
4278 VkStructureType sType;
4279 void * pNext;
4280 VkBool32 subgroupSizeControl;
4281 VkBool32 computeFullSubgroups;
4282} VkPhysicalDeviceSubgroupSizeControlFeatures;
4283
4284typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
4285 VkStructureType sType;
4286 void * pNext;
4287 uint32_t minSubgroupSize;
4288 uint32_t maxSubgroupSize;
4289 uint32_t maxComputeWorkgroupSubgroups;
4290 VkShaderStageFlags requiredSubgroupSizeStages;
4291} VkPhysicalDeviceSubgroupSizeControlProperties;
4292
4293typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
4294 VkStructureType sType;
4295 void * pNext;
4296 VkBool32 pipelineCreationCacheControl;
4297} VkPhysicalDevicePipelineCreationCacheControlFeatures;
4298
4299typedef struct VkPhysicalDeviceVulkan11Features {
4300 VkStructureType sType;
4301 void * pNext;
4302 VkBool32 storageBuffer16BitAccess;
4303 VkBool32 uniformAndStorageBuffer16BitAccess;
4304 VkBool32 storagePushConstant16;
4305 VkBool32 storageInputOutput16;
4306 VkBool32 multiview;
4307 VkBool32 multiviewGeometryShader;
4308 VkBool32 multiviewTessellationShader;
4309 VkBool32 variablePointersStorageBuffer;
4310 VkBool32 variablePointers;
4311 VkBool32 protectedMemory;
4312 VkBool32 samplerYcbcrConversion;
4313 VkBool32 shaderDrawParameters;
4314} VkPhysicalDeviceVulkan11Features;
4315
4316typedef struct VkPhysicalDeviceVulkan11Properties {
4317 VkStructureType sType;
4318 void * pNext;
4319 uint8_t deviceUUID [ VK_UUID_SIZE ];
4320 uint8_t driverUUID [ VK_UUID_SIZE ];
4321 uint8_t deviceLUID [ VK_LUID_SIZE ];
4322 uint32_t deviceNodeMask;
4323 VkBool32 deviceLUIDValid;
4324 uint32_t subgroupSize;
4325 VkShaderStageFlags subgroupSupportedStages;
4326 VkSubgroupFeatureFlags subgroupSupportedOperations;
4327 VkBool32 subgroupQuadOperationsInAllStages;
4328 VkPointClippingBehavior pointClippingBehavior;
4329 uint32_t maxMultiviewViewCount;
4330 uint32_t maxMultiviewInstanceIndex;
4331 VkBool32 protectedNoFault;
4332 uint32_t maxPerSetDescriptors;
4333 VkDeviceSize maxMemoryAllocationSize;
4334} VkPhysicalDeviceVulkan11Properties;
4335
4336typedef struct VkPhysicalDeviceVulkan12Features {
4337 VkStructureType sType;
4338 void * pNext;
4339 VkBool32 samplerMirrorClampToEdge;
4340 VkBool32 drawIndirectCount;
4341 VkBool32 storageBuffer8BitAccess;
4342 VkBool32 uniformAndStorageBuffer8BitAccess;
4343 VkBool32 storagePushConstant8;
4344 VkBool32 shaderBufferInt64Atomics;
4345 VkBool32 shaderSharedInt64Atomics;
4346 VkBool32 shaderFloat16;
4347 VkBool32 shaderInt8;
4348 VkBool32 descriptorIndexing;
4349 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
4350 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
4351 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
4352 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
4353 VkBool32 shaderSampledImageArrayNonUniformIndexing;
4354 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
4355 VkBool32 shaderStorageImageArrayNonUniformIndexing;
4356 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
4357 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
4358 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
4359 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
4360 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
4361 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
4362 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
4363 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
4364 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
4365 VkBool32 descriptorBindingUpdateUnusedWhilePending;
4366 VkBool32 descriptorBindingPartiallyBound;
4367 VkBool32 descriptorBindingVariableDescriptorCount;
4368 VkBool32 runtimeDescriptorArray;
4369 VkBool32 samplerFilterMinmax;
4370 VkBool32 scalarBlockLayout;
4371 VkBool32 imagelessFramebuffer;
4372 VkBool32 uniformBufferStandardLayout;
4373 VkBool32 shaderSubgroupExtendedTypes;
4374 VkBool32 separateDepthStencilLayouts;
4375 VkBool32 hostQueryReset;
4376 VkBool32 timelineSemaphore;
4377 VkBool32 bufferDeviceAddress;
4378 VkBool32 bufferDeviceAddressCaptureReplay;
4379 VkBool32 bufferDeviceAddressMultiDevice;
4380 VkBool32 vulkanMemoryModel;
4381 VkBool32 vulkanMemoryModelDeviceScope;
4382 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
4383 VkBool32 shaderOutputViewportIndex;
4384 VkBool32 shaderOutputLayer;
4385 VkBool32 subgroupBroadcastDynamicId;
4386} VkPhysicalDeviceVulkan12Features;
4387
4388typedef struct VkPhysicalDeviceVulkan12Properties {
4389 VkStructureType sType;
4390 void * pNext;
4391 VkDriverId driverID;
4392 char driverName [ VK_MAX_DRIVER_NAME_SIZE ];
4393 char driverInfo [ VK_MAX_DRIVER_INFO_SIZE ];
4394 VkConformanceVersion conformanceVersion;
4395 VkShaderFloatControlsIndependence denormBehaviorIndependence;
4396 VkShaderFloatControlsIndependence roundingModeIndependence;
4397 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
4398 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
4399 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
4400 VkBool32 shaderDenormPreserveFloat16;
4401 VkBool32 shaderDenormPreserveFloat32;
4402 VkBool32 shaderDenormPreserveFloat64;
4403 VkBool32 shaderDenormFlushToZeroFloat16;
4404 VkBool32 shaderDenormFlushToZeroFloat32;
4405 VkBool32 shaderDenormFlushToZeroFloat64;
4406 VkBool32 shaderRoundingModeRTEFloat16;
4407 VkBool32 shaderRoundingModeRTEFloat32;
4408 VkBool32 shaderRoundingModeRTEFloat64;
4409 VkBool32 shaderRoundingModeRTZFloat16;
4410 VkBool32 shaderRoundingModeRTZFloat32;
4411 VkBool32 shaderRoundingModeRTZFloat64;
4412 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
4413 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
4414 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
4415 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
4416 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
4417 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
4418 VkBool32 robustBufferAccessUpdateAfterBind;
4419 VkBool32 quadDivergentImplicitLod;
4420 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
4421 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
4422 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
4423 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
4424 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
4425 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
4426 uint32_t maxPerStageUpdateAfterBindResources;
4427 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
4428 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
4429 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
4430 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
4431 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
4432 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
4433 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
4434 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
4435 VkResolveModeFlags supportedDepthResolveModes;
4436 VkResolveModeFlags supportedStencilResolveModes;
4437 VkBool32 independentResolveNone;
4438 VkBool32 independentResolve;
4439 VkBool32 filterMinmaxSingleComponentFormats;
4440 VkBool32 filterMinmaxImageComponentMapping;
4441 uint64_t maxTimelineSemaphoreValueDifference;
4442 VkSampleCountFlags framebufferIntegerColorSampleCounts;
4443} VkPhysicalDeviceVulkan12Properties;
4444
4445typedef struct VkPhysicalDeviceVulkan13Features {
4446 VkStructureType sType;
4447 void * pNext;
4448 VkBool32 robustImageAccess;
4449 VkBool32 inlineUniformBlock;
4450 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
4451 VkBool32 pipelineCreationCacheControl;
4452 VkBool32 privateData;
4453 VkBool32 shaderDemoteToHelperInvocation;
4454 VkBool32 shaderTerminateInvocation;
4455 VkBool32 subgroupSizeControl;
4456 VkBool32 computeFullSubgroups;
4457 VkBool32 synchronization2;
4458 VkBool32 textureCompressionASTC_HDR;
4459 VkBool32 shaderZeroInitializeWorkgroupMemory;
4460 VkBool32 dynamicRendering;
4461 VkBool32 shaderIntegerDotProduct;
4462 VkBool32 maintenance4;
4463} VkPhysicalDeviceVulkan13Features;
4464
4465typedef struct VkPhysicalDeviceVulkan13Properties {
4466 VkStructureType sType;
4467 void * pNext;
4468 uint32_t minSubgroupSize;
4469 uint32_t maxSubgroupSize;
4470 uint32_t maxComputeWorkgroupSubgroups;
4471 VkShaderStageFlags requiredSubgroupSizeStages;
4472 uint32_t maxInlineUniformBlockSize;
4473 uint32_t maxPerStageDescriptorInlineUniformBlocks;
4474 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
4475 uint32_t maxDescriptorSetInlineUniformBlocks;
4476 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
4477 uint32_t maxInlineUniformTotalSize;
4478 VkBool32 integerDotProduct8BitUnsignedAccelerated;
4479 VkBool32 integerDotProduct8BitSignedAccelerated;
4480 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
4481 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
4482 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
4483 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
4484 VkBool32 integerDotProduct16BitUnsignedAccelerated;
4485 VkBool32 integerDotProduct16BitSignedAccelerated;
4486 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
4487 VkBool32 integerDotProduct32BitUnsignedAccelerated;
4488 VkBool32 integerDotProduct32BitSignedAccelerated;
4489 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
4490 VkBool32 integerDotProduct64BitUnsignedAccelerated;
4491 VkBool32 integerDotProduct64BitSignedAccelerated;
4492 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
4493 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
4494 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
4495 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
4496 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
4497 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
4498 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
4499 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
4500 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
4501 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
4502 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
4503 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
4504 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
4505 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
4506 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
4507 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
4508 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
4509 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
4510 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
4511 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
4512 VkDeviceSize maxBufferSize;
4513} VkPhysicalDeviceVulkan13Properties;
4514
4515typedef struct VkPhysicalDeviceToolProperties {
4516 VkStructureType sType;
4517 void * pNext;
4518 char name [ VK_MAX_EXTENSION_NAME_SIZE ];
4519 char version [ VK_MAX_EXTENSION_NAME_SIZE ];
4520 VkToolPurposeFlags purposes;
4521 char description [ VK_MAX_DESCRIPTION_SIZE ];
4522 char layer [ VK_MAX_EXTENSION_NAME_SIZE ];
4523} VkPhysicalDeviceToolProperties;
4524
4525typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
4526 VkStructureType sType;
4527 void * pNext;
4528 VkBool32 shaderZeroInitializeWorkgroupMemory;
4529} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
4530
4531typedef struct VkPhysicalDeviceImageRobustnessFeatures {
4532 VkStructureType sType;
4533 void * pNext;
4534 VkBool32 robustImageAccess;
4535} VkPhysicalDeviceImageRobustnessFeatures;
4536
4537typedef struct VkBufferCopy2 {
4538 VkStructureType sType;
4539 const void * pNext;
4540 VkDeviceSize srcOffset;
4541 VkDeviceSize dstOffset;
4542 VkDeviceSize size;
4543} VkBufferCopy2;
4544
4545typedef struct VkImageCopy2 {
4546 VkStructureType sType;
4547 const void * pNext;
4548 VkImageSubresourceLayers srcSubresource;
4549 VkOffset3D srcOffset;
4550 VkImageSubresourceLayers dstSubresource;
4551 VkOffset3D dstOffset;
4552 VkExtent3D extent;
4553} VkImageCopy2;
4554
4555typedef struct VkImageBlit2 {
4556 VkStructureType sType;
4557 const void * pNext;
4558 VkImageSubresourceLayers srcSubresource;
4559 VkOffset3D srcOffsets [2];
4560 VkImageSubresourceLayers dstSubresource;
4561 VkOffset3D dstOffsets [2];
4562} VkImageBlit2;
4563
4564typedef struct VkBufferImageCopy2 {
4565 VkStructureType sType;
4566 const void * pNext;
4567 VkDeviceSize bufferOffset;
4568 uint32_t bufferRowLength;
4569 uint32_t bufferImageHeight;
4570 VkImageSubresourceLayers imageSubresource;
4571 VkOffset3D imageOffset;
4572 VkExtent3D imageExtent;
4573} VkBufferImageCopy2;
4574
4575typedef struct VkImageResolve2 {
4576 VkStructureType sType;
4577 const void * pNext;
4578 VkImageSubresourceLayers srcSubresource;
4579 VkOffset3D srcOffset;
4580 VkImageSubresourceLayers dstSubresource;
4581 VkOffset3D dstOffset;
4582 VkExtent3D extent;
4583} VkImageResolve2;
4584
4585typedef struct VkCopyBufferInfo2 {
4586 VkStructureType sType;
4587 const void * pNext;
4588 VkBuffer srcBuffer;
4589 VkBuffer dstBuffer;
4590 uint32_t regionCount;
4591 const VkBufferCopy2 * pRegions;
4592} VkCopyBufferInfo2;
4593
4594typedef struct VkCopyImageInfo2 {
4595 VkStructureType sType;
4596 const void * pNext;
4597 VkImage srcImage;
4598 VkImageLayout srcImageLayout;
4599 VkImage dstImage;
4600 VkImageLayout dstImageLayout;
4601 uint32_t regionCount;
4602 const VkImageCopy2 * pRegions;
4603} VkCopyImageInfo2;
4604
4605typedef struct VkBlitImageInfo2 {
4606 VkStructureType sType;
4607 const void * pNext;
4608 VkImage srcImage;
4609 VkImageLayout srcImageLayout;
4610 VkImage dstImage;
4611 VkImageLayout dstImageLayout;
4612 uint32_t regionCount;
4613 const VkImageBlit2 * pRegions;
4614 VkFilter filter;
4615} VkBlitImageInfo2;
4616
4617typedef struct VkCopyBufferToImageInfo2 {
4618 VkStructureType sType;
4619 const void * pNext;
4620 VkBuffer srcBuffer;
4621 VkImage dstImage;
4622 VkImageLayout dstImageLayout;
4623 uint32_t regionCount;
4624 const VkBufferImageCopy2 * pRegions;
4625} VkCopyBufferToImageInfo2;
4626
4627typedef struct VkCopyImageToBufferInfo2 {
4628 VkStructureType sType;
4629 const void * pNext;
4630 VkImage srcImage;
4631 VkImageLayout srcImageLayout;
4632 VkBuffer dstBuffer;
4633 uint32_t regionCount;
4634 const VkBufferImageCopy2 * pRegions;
4635} VkCopyImageToBufferInfo2;
4636
4637typedef struct VkResolveImageInfo2 {
4638 VkStructureType sType;
4639 const void * pNext;
4640 VkImage srcImage;
4641 VkImageLayout srcImageLayout;
4642 VkImage dstImage;
4643 VkImageLayout dstImageLayout;
4644 uint32_t regionCount;
4645 const VkImageResolve2 * pRegions;
4646} VkResolveImageInfo2;
4647
4648typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
4649 VkStructureType sType;
4650 void * pNext;
4651 VkBool32 shaderTerminateInvocation;
4652} VkPhysicalDeviceShaderTerminateInvocationFeatures;
4653
4654typedef struct VkMemoryBarrier2 {
4655 VkStructureType sType;
4656 const void * pNext;
4657 VkPipelineStageFlags2 srcStageMask;
4658 VkAccessFlags2 srcAccessMask;
4659 VkPipelineStageFlags2 dstStageMask;
4660 VkAccessFlags2 dstAccessMask;
4661} VkMemoryBarrier2;
4662
4663typedef struct VkImageMemoryBarrier2 {
4664 VkStructureType sType;
4665 const void * pNext;
4666 VkPipelineStageFlags2 srcStageMask;
4667 VkAccessFlags2 srcAccessMask;
4668 VkPipelineStageFlags2 dstStageMask;
4669 VkAccessFlags2 dstAccessMask;
4670 VkImageLayout oldLayout;
4671 VkImageLayout newLayout;
4672 uint32_t srcQueueFamilyIndex;
4673 uint32_t dstQueueFamilyIndex;
4674 VkImage image;
4675 VkImageSubresourceRange subresourceRange;
4676} VkImageMemoryBarrier2;
4677
4678typedef struct VkBufferMemoryBarrier2 {
4679 VkStructureType sType;
4680 const void * pNext;
4681 VkPipelineStageFlags2 srcStageMask;
4682 VkAccessFlags2 srcAccessMask;
4683 VkPipelineStageFlags2 dstStageMask;
4684 VkAccessFlags2 dstAccessMask;
4685 uint32_t srcQueueFamilyIndex;
4686 uint32_t dstQueueFamilyIndex;
4687 VkBuffer buffer;
4688 VkDeviceSize offset;
4689 VkDeviceSize size;
4690} VkBufferMemoryBarrier2;
4691
4692typedef struct VkDependencyInfo {
4693 VkStructureType sType;
4694 const void * pNext;
4695 VkDependencyFlags dependencyFlags;
4696 uint32_t memoryBarrierCount;
4697 const VkMemoryBarrier2 * pMemoryBarriers;
4698 uint32_t bufferMemoryBarrierCount;
4699 const VkBufferMemoryBarrier2 * pBufferMemoryBarriers;
4700 uint32_t imageMemoryBarrierCount;
4701 const VkImageMemoryBarrier2 * pImageMemoryBarriers;
4702} VkDependencyInfo;
4703
4704typedef struct VkSemaphoreSubmitInfo {
4705 VkStructureType sType;
4706 const void * pNext;
4707 VkSemaphore semaphore;
4708 uint64_t value;
4709 VkPipelineStageFlags2 stageMask;
4710 uint32_t deviceIndex;
4711} VkSemaphoreSubmitInfo;
4712
4713typedef struct VkSubmitInfo2 {
4714 VkStructureType sType;
4715 const void * pNext;
4716 VkSubmitFlags flags;
4717 uint32_t waitSemaphoreInfoCount;
4718 const VkSemaphoreSubmitInfo * pWaitSemaphoreInfos;
4719 uint32_t commandBufferInfoCount;
4720 const VkCommandBufferSubmitInfo * pCommandBufferInfos;
4721 uint32_t signalSemaphoreInfoCount;
4722 const VkSemaphoreSubmitInfo * pSignalSemaphoreInfos;
4723} VkSubmitInfo2;
4724
4725typedef struct VkPhysicalDeviceSynchronization2Features {
4726 VkStructureType sType;
4727 void * pNext;
4728 VkBool32 synchronization2;
4729} VkPhysicalDeviceSynchronization2Features;
4730
4731typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
4732 VkStructureType sType;
4733 void * pNext;
4734 VkBool32 shaderIntegerDotProduct;
4735} VkPhysicalDeviceShaderIntegerDotProductFeatures;
4736
4737typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
4738 VkStructureType sType;
4739 void * pNext;
4740 VkBool32 integerDotProduct8BitUnsignedAccelerated;
4741 VkBool32 integerDotProduct8BitSignedAccelerated;
4742 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
4743 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
4744 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
4745 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
4746 VkBool32 integerDotProduct16BitUnsignedAccelerated;
4747 VkBool32 integerDotProduct16BitSignedAccelerated;
4748 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
4749 VkBool32 integerDotProduct32BitUnsignedAccelerated;
4750 VkBool32 integerDotProduct32BitSignedAccelerated;
4751 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
4752 VkBool32 integerDotProduct64BitUnsignedAccelerated;
4753 VkBool32 integerDotProduct64BitSignedAccelerated;
4754 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
4755 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
4756 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
4757 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
4758 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
4759 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
4760 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
4761 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
4762 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
4763 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
4764 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
4765 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
4766 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
4767 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
4768 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
4769 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
4770} VkPhysicalDeviceShaderIntegerDotProductProperties;
4771
4772typedef struct VkFormatProperties3 {
4773 VkStructureType sType;
4774 void * pNext;
4775 VkFormatFeatureFlags2 linearTilingFeatures;
4776 VkFormatFeatureFlags2 optimalTilingFeatures;
4777 VkFormatFeatureFlags2 bufferFeatures;
4778} VkFormatProperties3;
4779
4780typedef struct VkRenderingInfo {
4781 VkStructureType sType;
4782 const void * pNext;
4783 VkRenderingFlags flags;
4784 VkRect2D renderArea;
4785 uint32_t layerCount;
4786 uint32_t viewMask;
4787 uint32_t colorAttachmentCount;
4788 const VkRenderingAttachmentInfo * pColorAttachments;
4789 const VkRenderingAttachmentInfo * pDepthAttachment;
4790 const VkRenderingAttachmentInfo * pStencilAttachment;
4791} VkRenderingInfo;
4792
4793typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
4794 VkStructureType sType;
4795 void * pNext;
4796 VkBool32 dynamicRendering;
4797} VkPhysicalDeviceDynamicRenderingFeatures;
4798
4799typedef struct VkCommandBufferInheritanceRenderingInfo {
4800 VkStructureType sType;
4801 const void * pNext;
4802 VkRenderingFlags flags;
4803 uint32_t viewMask;
4804 uint32_t colorAttachmentCount;
4805 const VkFormat * pColorAttachmentFormats;
4806 VkFormat depthAttachmentFormat;
4807 VkFormat stencilAttachmentFormat;
4808 VkSampleCountFlagBits rasterizationSamples;
4809} VkCommandBufferInheritanceRenderingInfo;
4810
4811typedef struct VkPhysicalDeviceProperties {
4812 uint32_t apiVersion;
4813 uint32_t driverVersion;
4814 uint32_t vendorID;
4815 uint32_t deviceID;
4816 VkPhysicalDeviceType deviceType;
4817 char deviceName [ VK_MAX_PHYSICAL_DEVICE_NAME_SIZE ];
4818 uint8_t pipelineCacheUUID [ VK_UUID_SIZE ];
4819 VkPhysicalDeviceLimits limits;
4820 VkPhysicalDeviceSparseProperties sparseProperties;
4821} VkPhysicalDeviceProperties;
4822
4823typedef struct VkDeviceCreateInfo {
4824 VkStructureType sType;
4825 const void * pNext;
4826 VkDeviceCreateFlags flags;
4827 uint32_t queueCreateInfoCount;
4828 const VkDeviceQueueCreateInfo * pQueueCreateInfos;
4829 uint32_t enabledLayerCount;
4830 const char * const* ppEnabledLayerNames;
4831 uint32_t enabledExtensionCount;
4832 const char * const* ppEnabledExtensionNames;
4833 const VkPhysicalDeviceFeatures * pEnabledFeatures;
4834} VkDeviceCreateInfo;
4835
4836typedef struct VkPhysicalDeviceMemoryProperties {
4837 uint32_t memoryTypeCount;
4838 VkMemoryType memoryTypes [ VK_MAX_MEMORY_TYPES ];
4839 uint32_t memoryHeapCount;
4840 VkMemoryHeap memoryHeaps [ VK_MAX_MEMORY_HEAPS ];
4841} VkPhysicalDeviceMemoryProperties;
4842
4843typedef struct VkPhysicalDeviceProperties2 {
4844 VkStructureType sType;
4845 void * pNext;
4846 VkPhysicalDeviceProperties properties;
4847} VkPhysicalDeviceProperties2;
4848
4849typedef struct VkPhysicalDeviceMemoryProperties2 {
4850 VkStructureType sType;
4851 void * pNext;
4852 VkPhysicalDeviceMemoryProperties memoryProperties;
4853} VkPhysicalDeviceMemoryProperties2;
4854
4855typedef struct VkFramebufferAttachmentsCreateInfo {
4856 VkStructureType sType;
4857 const void * pNext;
4858 uint32_t attachmentImageInfoCount;
4859 const VkFramebufferAttachmentImageInfo * pAttachmentImageInfos;
4860} VkFramebufferAttachmentsCreateInfo;
4861
4862
4863
4864#define VK_VERSION_1_0 1
4865GLAD_API_CALL int GLAD_VK_VERSION_1_0;
4866#define VK_VERSION_1_1 1
4867GLAD_API_CALL int GLAD_VK_VERSION_1_1;
4868#define VK_VERSION_1_2 1
4869GLAD_API_CALL int GLAD_VK_VERSION_1_2;
4870#define VK_VERSION_1_3 1
4871GLAD_API_CALL int GLAD_VK_VERSION_1_3;
4872#define VK_EXT_debug_report 1
4873GLAD_API_CALL int GLAD_VK_EXT_debug_report;
4874#define VK_KHR_portability_enumeration 1
4875GLAD_API_CALL int GLAD_VK_KHR_portability_enumeration;
4876#define VK_KHR_surface 1
4877GLAD_API_CALL int GLAD_VK_KHR_surface;
4878#define VK_KHR_swapchain 1
4879GLAD_API_CALL int GLAD_VK_KHR_swapchain;
4880
4881
4882typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex);
4883typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex);
4884typedef VkResult (GLAD_API_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo * pAllocateInfo, VkCommandBuffer * pCommandBuffers);
4885typedef VkResult (GLAD_API_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo * pAllocateInfo, VkDescriptorSet * pDescriptorSets);
4886typedef VkResult (GLAD_API_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo * pAllocateInfo, const VkAllocationCallbacks * pAllocator, VkDeviceMemory * pMemory);
4887typedef VkResult (GLAD_API_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo);
4888typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4889typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos);
4890typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4891typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos);
4892typedef void (GLAD_API_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4893typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, VkSubpassContents contents);
4894typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, const VkSubpassBeginInfo * pSubpassBeginInfo);
4895typedef void (GLAD_API_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo);
4896typedef void (GLAD_API_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t * pDynamicOffsets);
4897typedef void (GLAD_API_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4898typedef void (GLAD_API_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4899typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets);
4900typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets, const VkDeviceSize * pSizes, const VkDeviceSize * pStrides);
4901typedef void (GLAD_API_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit * pRegions, VkFilter filter);
4902typedef void (GLAD_API_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo);
4903typedef void (GLAD_API_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment * pAttachments, uint32_t rectCount, const VkClearRect * pRects);
4904typedef void (GLAD_API_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue * pColor, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
4905typedef void (GLAD_API_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue * pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
4906typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions);
4907typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo);
4908typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy * pRegions);
4909typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo);
4910typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy * pRegions);
4911typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo);
4912typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy * pRegions);
4913typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo);
4914typedef void (GLAD_API_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4915typedef void (GLAD_API_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4916typedef void (GLAD_API_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4917typedef void (GLAD_API_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4918typedef void (GLAD_API_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4919typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4920typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4921typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4922typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4923typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4924typedef void (GLAD_API_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4925typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4926typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo);
4927typedef void (GLAD_API_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
4928typedef void (GLAD_API_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
4929typedef void (GLAD_API_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4930typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4931typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo * pSubpassBeginInfo, const VkSubpassEndInfo * pSubpassEndInfo);
4932typedef void (GLAD_API_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier * pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier * pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier * pImageMemoryBarriers);
4933typedef void (GLAD_API_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo);
4934typedef void (GLAD_API_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void * pValues);
4935typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4936typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
4937typedef void (GLAD_API_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4938typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve * pRegions);
4939typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo);
4940typedef void (GLAD_API_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants [4]);
4941typedef void (GLAD_API_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
4942typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4943typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
4944typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4945typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
4946typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
4947typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
4948typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
4949typedef void (GLAD_API_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
4950typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4951typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo);
4952typedef void (GLAD_API_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
4953typedef void (GLAD_API_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4954typedef void (GLAD_API_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
4955typedef void (GLAD_API_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
4956typedef void (GLAD_API_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
4957typedef void (GLAD_API_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors);
4958typedef void (GLAD_API_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors);
4959typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4960typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
4961typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4962typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
4963typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4964typedef void (GLAD_API_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports);
4965typedef void (GLAD_API_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports);
4966typedef void (GLAD_API_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData);
4967typedef void (GLAD_API_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent * pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier * pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier * pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier * pImageMemoryBarriers);
4968typedef void (GLAD_API_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent * pEvents, const VkDependencyInfo * pDependencyInfos);
4969typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4970typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
4971typedef VkResult (GLAD_API_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBuffer * pBuffer);
4972typedef VkResult (GLAD_API_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBufferView * pView);
4973typedef VkResult (GLAD_API_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkCommandPool * pCommandPool);
4974typedef VkResult (GLAD_API_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
4975typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDebugReportCallbackEXT * pCallback);
4976typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorPool * pDescriptorPool);
4977typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorSetLayout * pSetLayout);
4978typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate);
4979typedef VkResult (GLAD_API_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDevice * pDevice);
4980typedef VkResult (GLAD_API_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkEvent * pEvent);
4981typedef VkResult (GLAD_API_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFence * pFence);
4982typedef VkResult (GLAD_API_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFramebuffer * pFramebuffer);
4983typedef VkResult (GLAD_API_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
4984typedef VkResult (GLAD_API_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImage * pImage);
4985typedef VkResult (GLAD_API_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImageView * pView);
4986typedef VkResult (GLAD_API_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance);
4987typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineCache * pPipelineCache);
4988typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineLayout * pPipelineLayout);
4989typedef VkResult (GLAD_API_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPrivateDataSlot * pPrivateDataSlot);
4990typedef VkResult (GLAD_API_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkQueryPool * pQueryPool);
4991typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
4992typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2 * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
4993typedef VkResult (GLAD_API_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSampler * pSampler);
4994typedef VkResult (GLAD_API_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSamplerYcbcrConversion * pYcbcrConversion);
4995typedef VkResult (GLAD_API_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSemaphore * pSemaphore);
4996typedef VkResult (GLAD_API_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkShaderModule * pShaderModule);
4997typedef VkResult (GLAD_API_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSwapchainKHR * pSwapchain);
4998typedef void (GLAD_API_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char * pLayerPrefix, const char * pMessage);
4999typedef void (GLAD_API_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator);
5000typedef void (GLAD_API_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator);
5001typedef void (GLAD_API_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator);
5002typedef void (GLAD_API_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks * pAllocator);
5003typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator);
5004typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks * pAllocator);
5005typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks * pAllocator);
5006typedef void (GLAD_API_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks * pAllocator);
5007typedef void (GLAD_API_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator);
5008typedef void (GLAD_API_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator);
5009typedef void (GLAD_API_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator);
5010typedef void (GLAD_API_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator);
5011typedef void (GLAD_API_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator);
5012typedef void (GLAD_API_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks * pAllocator);
5013typedef void (GLAD_API_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator);
5014typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator);
5015typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator);
5016typedef void (GLAD_API_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator);
5017typedef void (GLAD_API_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator);
5018typedef void (GLAD_API_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator);
5019typedef void (GLAD_API_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator);
5020typedef void (GLAD_API_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks * pAllocator);
5021typedef void (GLAD_API_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator);
5022typedef void (GLAD_API_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator);
5023typedef void (GLAD_API_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator);
5024typedef void (GLAD_API_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator);
5025typedef VkResult (GLAD_API_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
5026typedef VkResult (GLAD_API_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
5027typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
5028typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties);
5029typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
5030typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t * pPropertyCount, VkLayerProperties * pProperties);
5031typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t * pApiVersion);
5032typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t * pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties);
5033typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices);
5034typedef VkResult (GLAD_API_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
5035typedef void (GLAD_API_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
5036typedef VkResult (GLAD_API_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets);
5037typedef void (GLAD_API_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator);
5038typedef VkDeviceAddress (GLAD_API_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
5039typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements);
5040typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
5041typedef uint64_t (GLAD_API_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
5042typedef void (GLAD_API_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, VkDescriptorSetLayoutSupport * pSupport);
5043typedef void (GLAD_API_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
5044typedef void (GLAD_API_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags * pPeerMemoryFeatures);
5045typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities);
5046typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes);
5047typedef void (GLAD_API_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
5048typedef void (GLAD_API_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements * pInfo, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements);
5049typedef void (GLAD_API_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes);
5050typedef uint64_t (GLAD_API_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo);
5051typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char * pName);
5052typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue);
5053typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2 * pQueueInfo, VkQueue * pQueue);
5054typedef VkResult (GLAD_API_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
5055typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
5056typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements);
5057typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
5058typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements * pSparseMemoryRequirements);
5059typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 * pInfo, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements);
5060typedef void (GLAD_API_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource * pSubresource, VkSubresourceLayout * pLayout);
5061typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char * pName);
5062typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, VkExternalBufferProperties * pExternalBufferProperties);
5063typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, VkExternalFenceProperties * pExternalFenceProperties);
5064typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, VkExternalSemaphoreProperties * pExternalSemaphoreProperties);
5065typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures);
5066typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures);
5067typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties);
5068typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 * pFormatProperties);
5069typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties * pImageFormatProperties);
5070typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, VkImageFormatProperties2 * pImageFormatProperties);
5071typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties);
5072typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties);
5073typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pRectCount, VkRect2D * pRects);
5074typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties);
5075typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties);
5076typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties * pQueueFamilyProperties);
5077typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties2 * pQueueFamilyProperties);
5078typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t * pPropertyCount, VkSparseImageFormatProperties * pProperties);
5079typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, uint32_t * pPropertyCount, VkSparseImageFormatProperties2 * pProperties);
5080typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR * pSurfaceCapabilities);
5081typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pSurfaceFormatCount, VkSurfaceFormatKHR * pSurfaceFormats);
5082typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pPresentModeCount, VkPresentModeKHR * pPresentModes);
5083typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32 * pSupported);
5084typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t * pToolCount, VkPhysicalDeviceToolProperties * pToolProperties);
5085typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData);
5086typedef void (GLAD_API_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData);
5087typedef VkResult (GLAD_API_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void * pData, VkDeviceSize stride, VkQueryResultFlags flags);
5088typedef void (GLAD_API_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity);
5089typedef VkResult (GLAD_API_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t * pValue);
5090typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t * pSwapchainImageCount, VkImage * pSwapchainImages);
5091typedef VkResult (GLAD_API_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
5092typedef VkResult (GLAD_API_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData);
5093typedef VkResult (GLAD_API_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches);
5094typedef VkResult (GLAD_API_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence);
5095typedef VkResult (GLAD_API_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR * pPresentInfo);
5096typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence);
5097typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence);
5098typedef VkResult (GLAD_API_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
5099typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
5100typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
5101typedef VkResult (GLAD_API_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
5102typedef VkResult (GLAD_API_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
5103typedef VkResult (GLAD_API_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences);
5104typedef void (GLAD_API_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
5105typedef VkResult (GLAD_API_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
5106typedef VkResult (GLAD_API_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
5107typedef VkResult (GLAD_API_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo);
5108typedef void (GLAD_API_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5109typedef void (GLAD_API_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
5110typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void * pData);
5111typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet * pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet * pDescriptorCopies);
5112typedef VkResult (GLAD_API_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout);
5113typedef VkResult (GLAD_API_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout);
5114
5115GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR;
5116#define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
5117GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR;
5118#define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
5119GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers;
5120#define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
5121GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets;
5122#define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
5123GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory;
5124#define vkAllocateMemory glad_vkAllocateMemory
5125GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer;
5126#define vkBeginCommandBuffer glad_vkBeginCommandBuffer
5127GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory;
5128#define vkBindBufferMemory glad_vkBindBufferMemory
5129GLAD_API_CALL PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2;
5130#define vkBindBufferMemory2 glad_vkBindBufferMemory2
5131GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory;
5132#define vkBindImageMemory glad_vkBindImageMemory
5133GLAD_API_CALL PFN_vkBindImageMemory2 glad_vkBindImageMemory2;
5134#define vkBindImageMemory2 glad_vkBindImageMemory2
5135GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery;
5136#define vkCmdBeginQuery glad_vkCmdBeginQuery
5137GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass;
5138#define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
5139GLAD_API_CALL PFN_vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2;
5140#define vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2
5141GLAD_API_CALL PFN_vkCmdBeginRendering glad_vkCmdBeginRendering;
5142#define vkCmdBeginRendering glad_vkCmdBeginRendering
5143GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets;
5144#define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
5145GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer;
5146#define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
5147GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline;
5148#define vkCmdBindPipeline glad_vkCmdBindPipeline
5149GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers;
5150#define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
5151GLAD_API_CALL PFN_vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2;
5152#define vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2
5153GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage;
5154#define vkCmdBlitImage glad_vkCmdBlitImage
5155GLAD_API_CALL PFN_vkCmdBlitImage2 glad_vkCmdBlitImage2;
5156#define vkCmdBlitImage2 glad_vkCmdBlitImage2
5157GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments;
5158#define vkCmdClearAttachments glad_vkCmdClearAttachments
5159GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage;
5160#define vkCmdClearColorImage glad_vkCmdClearColorImage
5161GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage;
5162#define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
5163GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer;
5164#define vkCmdCopyBuffer glad_vkCmdCopyBuffer
5165GLAD_API_CALL PFN_vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2;
5166#define vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2
5167GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage;
5168#define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
5169GLAD_API_CALL PFN_vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2;
5170#define vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2
5171GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage;
5172#define vkCmdCopyImage glad_vkCmdCopyImage
5173GLAD_API_CALL PFN_vkCmdCopyImage2 glad_vkCmdCopyImage2;
5174#define vkCmdCopyImage2 glad_vkCmdCopyImage2
5175GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer;
5176#define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
5177GLAD_API_CALL PFN_vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2;
5178#define vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2
5179GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults;
5180#define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
5181GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch;
5182#define vkCmdDispatch glad_vkCmdDispatch
5183GLAD_API_CALL PFN_vkCmdDispatchBase glad_vkCmdDispatchBase;
5184#define vkCmdDispatchBase glad_vkCmdDispatchBase
5185GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect;
5186#define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
5187GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw;
5188#define vkCmdDraw glad_vkCmdDraw
5189GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed;
5190#define vkCmdDrawIndexed glad_vkCmdDrawIndexed
5191GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect;
5192#define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
5193GLAD_API_CALL PFN_vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount;
5194#define vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount
5195GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect;
5196#define vkCmdDrawIndirect glad_vkCmdDrawIndirect
5197GLAD_API_CALL PFN_vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount;
5198#define vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount
5199GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery;
5200#define vkCmdEndQuery glad_vkCmdEndQuery
5201GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass;
5202#define vkCmdEndRenderPass glad_vkCmdEndRenderPass
5203GLAD_API_CALL PFN_vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2;
5204#define vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2
5205GLAD_API_CALL PFN_vkCmdEndRendering glad_vkCmdEndRendering;
5206#define vkCmdEndRendering glad_vkCmdEndRendering
5207GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands;
5208#define vkCmdExecuteCommands glad_vkCmdExecuteCommands
5209GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer;
5210#define vkCmdFillBuffer glad_vkCmdFillBuffer
5211GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass;
5212#define vkCmdNextSubpass glad_vkCmdNextSubpass
5213GLAD_API_CALL PFN_vkCmdNextSubpass2 glad_vkCmdNextSubpass2;
5214#define vkCmdNextSubpass2 glad_vkCmdNextSubpass2
5215GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier;
5216#define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
5217GLAD_API_CALL PFN_vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2;
5218#define vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2
5219GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants;
5220#define vkCmdPushConstants glad_vkCmdPushConstants
5221GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent;
5222#define vkCmdResetEvent glad_vkCmdResetEvent
5223GLAD_API_CALL PFN_vkCmdResetEvent2 glad_vkCmdResetEvent2;
5224#define vkCmdResetEvent2 glad_vkCmdResetEvent2
5225GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool;
5226#define vkCmdResetQueryPool glad_vkCmdResetQueryPool
5227GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage;
5228#define vkCmdResolveImage glad_vkCmdResolveImage
5229GLAD_API_CALL PFN_vkCmdResolveImage2 glad_vkCmdResolveImage2;
5230#define vkCmdResolveImage2 glad_vkCmdResolveImage2
5231GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants;
5232#define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
5233GLAD_API_CALL PFN_vkCmdSetCullMode glad_vkCmdSetCullMode;
5234#define vkCmdSetCullMode glad_vkCmdSetCullMode
5235GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias;
5236#define vkCmdSetDepthBias glad_vkCmdSetDepthBias
5237GLAD_API_CALL PFN_vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable;
5238#define vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable
5239GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds;
5240#define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
5241GLAD_API_CALL PFN_vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable;
5242#define vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable
5243GLAD_API_CALL PFN_vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp;
5244#define vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp
5245GLAD_API_CALL PFN_vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable;
5246#define vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable
5247GLAD_API_CALL PFN_vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable;
5248#define vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable
5249GLAD_API_CALL PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask;
5250#define vkCmdSetDeviceMask glad_vkCmdSetDeviceMask
5251GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent;
5252#define vkCmdSetEvent glad_vkCmdSetEvent
5253GLAD_API_CALL PFN_vkCmdSetEvent2 glad_vkCmdSetEvent2;
5254#define vkCmdSetEvent2 glad_vkCmdSetEvent2
5255GLAD_API_CALL PFN_vkCmdSetFrontFace glad_vkCmdSetFrontFace;
5256#define vkCmdSetFrontFace glad_vkCmdSetFrontFace
5257GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth;
5258#define vkCmdSetLineWidth glad_vkCmdSetLineWidth
5259GLAD_API_CALL PFN_vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable;
5260#define vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable
5261GLAD_API_CALL PFN_vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology;
5262#define vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology
5263GLAD_API_CALL PFN_vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable;
5264#define vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable
5265GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor;
5266#define vkCmdSetScissor glad_vkCmdSetScissor
5267GLAD_API_CALL PFN_vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount;
5268#define vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount
5269GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask;
5270#define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
5271GLAD_API_CALL PFN_vkCmdSetStencilOp glad_vkCmdSetStencilOp;
5272#define vkCmdSetStencilOp glad_vkCmdSetStencilOp
5273GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference;
5274#define vkCmdSetStencilReference glad_vkCmdSetStencilReference
5275GLAD_API_CALL PFN_vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable;
5276#define vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable
5277GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask;
5278#define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
5279GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport;
5280#define vkCmdSetViewport glad_vkCmdSetViewport
5281GLAD_API_CALL PFN_vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount;
5282#define vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount
5283GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer;
5284#define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
5285GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents;
5286#define vkCmdWaitEvents glad_vkCmdWaitEvents
5287GLAD_API_CALL PFN_vkCmdWaitEvents2 glad_vkCmdWaitEvents2;
5288#define vkCmdWaitEvents2 glad_vkCmdWaitEvents2
5289GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp;
5290#define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
5291GLAD_API_CALL PFN_vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2;
5292#define vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2
5293GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer;
5294#define vkCreateBuffer glad_vkCreateBuffer
5295GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView;
5296#define vkCreateBufferView glad_vkCreateBufferView
5297GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool;
5298#define vkCreateCommandPool glad_vkCreateCommandPool
5299GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines;
5300#define vkCreateComputePipelines glad_vkCreateComputePipelines
5301GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT;
5302#define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
5303GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool;
5304#define vkCreateDescriptorPool glad_vkCreateDescriptorPool
5305GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout;
5306#define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
5307GLAD_API_CALL PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate;
5308#define vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate
5309GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice;
5310#define vkCreateDevice glad_vkCreateDevice
5311GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent;
5312#define vkCreateEvent glad_vkCreateEvent
5313GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence;
5314#define vkCreateFence glad_vkCreateFence
5315GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer;
5316#define vkCreateFramebuffer glad_vkCreateFramebuffer
5317GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines;
5318#define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
5319GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage;
5320#define vkCreateImage glad_vkCreateImage
5321GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView;
5322#define vkCreateImageView glad_vkCreateImageView
5323GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance;
5324#define vkCreateInstance glad_vkCreateInstance
5325GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache;
5326#define vkCreatePipelineCache glad_vkCreatePipelineCache
5327GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout;
5328#define vkCreatePipelineLayout glad_vkCreatePipelineLayout
5329GLAD_API_CALL PFN_vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot;
5330#define vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot
5331GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool;
5332#define vkCreateQueryPool glad_vkCreateQueryPool
5333GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass;
5334#define vkCreateRenderPass glad_vkCreateRenderPass
5335GLAD_API_CALL PFN_vkCreateRenderPass2 glad_vkCreateRenderPass2;
5336#define vkCreateRenderPass2 glad_vkCreateRenderPass2
5337GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler;
5338#define vkCreateSampler glad_vkCreateSampler
5339GLAD_API_CALL PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion;
5340#define vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion
5341GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore;
5342#define vkCreateSemaphore glad_vkCreateSemaphore
5343GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule;
5344#define vkCreateShaderModule glad_vkCreateShaderModule
5345GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR;
5346#define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
5347GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT;
5348#define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
5349GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer;
5350#define vkDestroyBuffer glad_vkDestroyBuffer
5351GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView;
5352#define vkDestroyBufferView glad_vkDestroyBufferView
5353GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool;
5354#define vkDestroyCommandPool glad_vkDestroyCommandPool
5355GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT;
5356#define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
5357GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool;
5358#define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
5359GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout;
5360#define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
5361GLAD_API_CALL PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate;
5362#define vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate
5363GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice;
5364#define vkDestroyDevice glad_vkDestroyDevice
5365GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent;
5366#define vkDestroyEvent glad_vkDestroyEvent
5367GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence;
5368#define vkDestroyFence glad_vkDestroyFence
5369GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer;
5370#define vkDestroyFramebuffer glad_vkDestroyFramebuffer
5371GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage;
5372#define vkDestroyImage glad_vkDestroyImage
5373GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView;
5374#define vkDestroyImageView glad_vkDestroyImageView
5375GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance;
5376#define vkDestroyInstance glad_vkDestroyInstance
5377GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline;
5378#define vkDestroyPipeline glad_vkDestroyPipeline
5379GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache;
5380#define vkDestroyPipelineCache glad_vkDestroyPipelineCache
5381GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout;
5382#define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
5383GLAD_API_CALL PFN_vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot;
5384#define vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot
5385GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool;
5386#define vkDestroyQueryPool glad_vkDestroyQueryPool
5387GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass;
5388#define vkDestroyRenderPass glad_vkDestroyRenderPass
5389GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler;
5390#define vkDestroySampler glad_vkDestroySampler
5391GLAD_API_CALL PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion;
5392#define vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion
5393GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore;
5394#define vkDestroySemaphore glad_vkDestroySemaphore
5395GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule;
5396#define vkDestroyShaderModule glad_vkDestroyShaderModule
5397GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR;
5398#define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
5399GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR;
5400#define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
5401GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle;
5402#define vkDeviceWaitIdle glad_vkDeviceWaitIdle
5403GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer;
5404#define vkEndCommandBuffer glad_vkEndCommandBuffer
5405GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties;
5406#define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
5407GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties;
5408#define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
5409GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties;
5410#define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
5411GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties;
5412#define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
5413GLAD_API_CALL PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion;
5414#define vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion
5415GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups;
5416#define vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups
5417GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices;
5418#define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
5419GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges;
5420#define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
5421GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers;
5422#define vkFreeCommandBuffers glad_vkFreeCommandBuffers
5423GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets;
5424#define vkFreeDescriptorSets glad_vkFreeDescriptorSets
5425GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory;
5426#define vkFreeMemory glad_vkFreeMemory
5427GLAD_API_CALL PFN_vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress;
5428#define vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress
5429GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements;
5430#define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
5431GLAD_API_CALL PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2;
5432#define vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2
5433GLAD_API_CALL PFN_vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress;
5434#define vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress
5435GLAD_API_CALL PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport;
5436#define vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport
5437GLAD_API_CALL PFN_vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements;
5438#define vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements
5439GLAD_API_CALL PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures;
5440#define vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures
5441GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR;
5442#define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
5443GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR;
5444#define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
5445GLAD_API_CALL PFN_vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements;
5446#define vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements
5447GLAD_API_CALL PFN_vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements;
5448#define vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements
5449GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment;
5450#define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
5451GLAD_API_CALL PFN_vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress;
5452#define vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress
5453GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr;
5454#define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
5455GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue;
5456#define vkGetDeviceQueue glad_vkGetDeviceQueue
5457GLAD_API_CALL PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2;
5458#define vkGetDeviceQueue2 glad_vkGetDeviceQueue2
5459GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus;
5460#define vkGetEventStatus glad_vkGetEventStatus
5461GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus;
5462#define vkGetFenceStatus glad_vkGetFenceStatus
5463GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements;
5464#define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
5465GLAD_API_CALL PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2;
5466#define vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2
5467GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements;
5468#define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
5469GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2;
5470#define vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2
5471GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout;
5472#define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
5473GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr;
5474#define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
5475GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties;
5476#define vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties
5477GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties;
5478#define vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties
5479GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties;
5480#define vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties
5481GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures;
5482#define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
5483GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2;
5484#define vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2
5485GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties;
5486#define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
5487GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2;
5488#define vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2
5489GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties;
5490#define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
5491GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2;
5492#define vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2
5493GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties;
5494#define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
5495GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2;
5496#define vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2
5497GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR;
5498#define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
5499GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties;
5500#define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
5501GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2;
5502#define vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2
5503GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties;
5504#define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
5505GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2;
5506#define vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2
5507GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties;
5508#define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
5509GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2;
5510#define vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2
5511GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
5512#define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
5513GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR;
5514#define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
5515GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR;
5516#define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
5517GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR;
5518#define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
5519GLAD_API_CALL PFN_vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties;
5520#define vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties
5521GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData;
5522#define vkGetPipelineCacheData glad_vkGetPipelineCacheData
5523GLAD_API_CALL PFN_vkGetPrivateData glad_vkGetPrivateData;
5524#define vkGetPrivateData glad_vkGetPrivateData
5525GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults;
5526#define vkGetQueryPoolResults glad_vkGetQueryPoolResults
5527GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity;
5528#define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
5529GLAD_API_CALL PFN_vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue;
5530#define vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue
5531GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR;
5532#define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
5533GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges;
5534#define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
5535GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory;
5536#define vkMapMemory glad_vkMapMemory
5537GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches;
5538#define vkMergePipelineCaches glad_vkMergePipelineCaches
5539GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse;
5540#define vkQueueBindSparse glad_vkQueueBindSparse
5541GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR;
5542#define vkQueuePresentKHR glad_vkQueuePresentKHR
5543GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit;
5544#define vkQueueSubmit glad_vkQueueSubmit
5545GLAD_API_CALL PFN_vkQueueSubmit2 glad_vkQueueSubmit2;
5546#define vkQueueSubmit2 glad_vkQueueSubmit2
5547GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle;
5548#define vkQueueWaitIdle glad_vkQueueWaitIdle
5549GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer;
5550#define vkResetCommandBuffer glad_vkResetCommandBuffer
5551GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool;
5552#define vkResetCommandPool glad_vkResetCommandPool
5553GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool;
5554#define vkResetDescriptorPool glad_vkResetDescriptorPool
5555GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent;
5556#define vkResetEvent glad_vkResetEvent
5557GLAD_API_CALL PFN_vkResetFences glad_vkResetFences;
5558#define vkResetFences glad_vkResetFences
5559GLAD_API_CALL PFN_vkResetQueryPool glad_vkResetQueryPool;
5560#define vkResetQueryPool glad_vkResetQueryPool
5561GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent;
5562#define vkSetEvent glad_vkSetEvent
5563GLAD_API_CALL PFN_vkSetPrivateData glad_vkSetPrivateData;
5564#define vkSetPrivateData glad_vkSetPrivateData
5565GLAD_API_CALL PFN_vkSignalSemaphore glad_vkSignalSemaphore;
5566#define vkSignalSemaphore glad_vkSignalSemaphore
5567GLAD_API_CALL PFN_vkTrimCommandPool glad_vkTrimCommandPool;
5568#define vkTrimCommandPool glad_vkTrimCommandPool
5569GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory;
5570#define vkUnmapMemory glad_vkUnmapMemory
5571GLAD_API_CALL PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate;
5572#define vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate
5573GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets;
5574#define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
5575GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences;
5576#define vkWaitForFences glad_vkWaitForFences
5577GLAD_API_CALL PFN_vkWaitSemaphores glad_vkWaitSemaphores;
5578#define vkWaitSemaphores glad_vkWaitSemaphores
5579
5580
5581
5582
5583
5584GLAD_API_CALL int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr);
5585GLAD_API_CALL int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load);
5586
5587
5588
5589#ifdef __cplusplus
5590}
5591#endif
5592#endif
5593
5594/* Source */
5595#ifdef GLAD_VULKAN_IMPLEMENTATION
5596#include <stdio.h>
5597#include <stdlib.h>
5598#include <string.h>
5599
5600#ifndef GLAD_IMPL_UTIL_C_
5601#define GLAD_IMPL_UTIL_C_
5602
5603#ifdef _MSC_VER
5604#define GLAD_IMPL_UTIL_SSCANF sscanf_s
5605#else
5606#define GLAD_IMPL_UTIL_SSCANF sscanf
5607#endif
5608
5609#endif /* GLAD_IMPL_UTIL_C_ */
5610
5611#ifdef __cplusplus
5612extern "C" {
5613#endif
5614
5615
5616
5617int GLAD_VK_VERSION_1_0 = 0;
5618int GLAD_VK_VERSION_1_1 = 0;
5619int GLAD_VK_VERSION_1_2 = 0;
5620int GLAD_VK_VERSION_1_3 = 0;
5621int GLAD_VK_EXT_debug_report = 0;
5622int GLAD_VK_KHR_portability_enumeration = 0;
5623int GLAD_VK_KHR_surface = 0;
5624int GLAD_VK_KHR_swapchain = 0;
5625
5626
5627
5628PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR = NULL;
5629PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR = NULL;
5630PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers = NULL;
5631PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets = NULL;
5632PFN_vkAllocateMemory glad_vkAllocateMemory = NULL;
5633PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer = NULL;
5634PFN_vkBindBufferMemory glad_vkBindBufferMemory = NULL;
5635PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2 = NULL;
5636PFN_vkBindImageMemory glad_vkBindImageMemory = NULL;
5637PFN_vkBindImageMemory2 glad_vkBindImageMemory2 = NULL;
5638PFN_vkCmdBeginQuery glad_vkCmdBeginQuery = NULL;
5639PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass = NULL;
5640PFN_vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2 = NULL;
5641PFN_vkCmdBeginRendering glad_vkCmdBeginRendering = NULL;
5642PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets = NULL;
5643PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer = NULL;
5644PFN_vkCmdBindPipeline glad_vkCmdBindPipeline = NULL;
5645PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers = NULL;
5646PFN_vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2 = NULL;
5647PFN_vkCmdBlitImage glad_vkCmdBlitImage = NULL;
5648PFN_vkCmdBlitImage2 glad_vkCmdBlitImage2 = NULL;
5649PFN_vkCmdClearAttachments glad_vkCmdClearAttachments = NULL;
5650PFN_vkCmdClearColorImage glad_vkCmdClearColorImage = NULL;
5651PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage = NULL;
5652PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer = NULL;
5653PFN_vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2 = NULL;
5654PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage = NULL;
5655PFN_vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2 = NULL;
5656PFN_vkCmdCopyImage glad_vkCmdCopyImage = NULL;
5657PFN_vkCmdCopyImage2 glad_vkCmdCopyImage2 = NULL;
5658PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer = NULL;
5659PFN_vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2 = NULL;
5660PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults = NULL;
5661PFN_vkCmdDispatch glad_vkCmdDispatch = NULL;
5662PFN_vkCmdDispatchBase glad_vkCmdDispatchBase = NULL;
5663PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect = NULL;
5664PFN_vkCmdDraw glad_vkCmdDraw = NULL;
5665PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed = NULL;
5666PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect = NULL;
5667PFN_vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount = NULL;
5668PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect = NULL;
5669PFN_vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount = NULL;
5670PFN_vkCmdEndQuery glad_vkCmdEndQuery = NULL;
5671PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass = NULL;
5672PFN_vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2 = NULL;
5673PFN_vkCmdEndRendering glad_vkCmdEndRendering = NULL;
5674PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands = NULL;
5675PFN_vkCmdFillBuffer glad_vkCmdFillBuffer = NULL;
5676PFN_vkCmdNextSubpass glad_vkCmdNextSubpass = NULL;
5677PFN_vkCmdNextSubpass2 glad_vkCmdNextSubpass2 = NULL;
5678PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier = NULL;
5679PFN_vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2 = NULL;
5680PFN_vkCmdPushConstants glad_vkCmdPushConstants = NULL;
5681PFN_vkCmdResetEvent glad_vkCmdResetEvent = NULL;
5682PFN_vkCmdResetEvent2 glad_vkCmdResetEvent2 = NULL;
5683PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool = NULL;
5684PFN_vkCmdResolveImage glad_vkCmdResolveImage = NULL;
5685PFN_vkCmdResolveImage2 glad_vkCmdResolveImage2 = NULL;
5686PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants = NULL;
5687PFN_vkCmdSetCullMode glad_vkCmdSetCullMode = NULL;
5688PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias = NULL;
5689PFN_vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable = NULL;
5690PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds = NULL;
5691PFN_vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable = NULL;
5692PFN_vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp = NULL;
5693PFN_vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable = NULL;
5694PFN_vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable = NULL;
5695PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask = NULL;
5696PFN_vkCmdSetEvent glad_vkCmdSetEvent = NULL;
5697PFN_vkCmdSetEvent2 glad_vkCmdSetEvent2 = NULL;
5698PFN_vkCmdSetFrontFace glad_vkCmdSetFrontFace = NULL;
5699PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth = NULL;
5700PFN_vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable = NULL;
5701PFN_vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology = NULL;
5702PFN_vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable = NULL;
5703PFN_vkCmdSetScissor glad_vkCmdSetScissor = NULL;
5704PFN_vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount = NULL;
5705PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask = NULL;
5706PFN_vkCmdSetStencilOp glad_vkCmdSetStencilOp = NULL;
5707PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference = NULL;
5708PFN_vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable = NULL;
5709PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask = NULL;
5710PFN_vkCmdSetViewport glad_vkCmdSetViewport = NULL;
5711PFN_vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount = NULL;
5712PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer = NULL;
5713PFN_vkCmdWaitEvents glad_vkCmdWaitEvents = NULL;
5714PFN_vkCmdWaitEvents2 glad_vkCmdWaitEvents2 = NULL;
5715PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp = NULL;
5716PFN_vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2 = NULL;
5717PFN_vkCreateBuffer glad_vkCreateBuffer = NULL;
5718PFN_vkCreateBufferView glad_vkCreateBufferView = NULL;
5719PFN_vkCreateCommandPool glad_vkCreateCommandPool = NULL;
5720PFN_vkCreateComputePipelines glad_vkCreateComputePipelines = NULL;
5721PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT = NULL;
5722PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool = NULL;
5723PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout = NULL;
5724PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate = NULL;
5725PFN_vkCreateDevice glad_vkCreateDevice = NULL;
5726PFN_vkCreateEvent glad_vkCreateEvent = NULL;
5727PFN_vkCreateFence glad_vkCreateFence = NULL;
5728PFN_vkCreateFramebuffer glad_vkCreateFramebuffer = NULL;
5729PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines = NULL;
5730PFN_vkCreateImage glad_vkCreateImage = NULL;
5731PFN_vkCreateImageView glad_vkCreateImageView = NULL;
5732PFN_vkCreateInstance glad_vkCreateInstance = NULL;
5733PFN_vkCreatePipelineCache glad_vkCreatePipelineCache = NULL;
5734PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout = NULL;
5735PFN_vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot = NULL;
5736PFN_vkCreateQueryPool glad_vkCreateQueryPool = NULL;
5737PFN_vkCreateRenderPass glad_vkCreateRenderPass = NULL;
5738PFN_vkCreateRenderPass2 glad_vkCreateRenderPass2 = NULL;
5739PFN_vkCreateSampler glad_vkCreateSampler = NULL;
5740PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion = NULL;
5741PFN_vkCreateSemaphore glad_vkCreateSemaphore = NULL;
5742PFN_vkCreateShaderModule glad_vkCreateShaderModule = NULL;
5743PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR = NULL;
5744PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT = NULL;
5745PFN_vkDestroyBuffer glad_vkDestroyBuffer = NULL;
5746PFN_vkDestroyBufferView glad_vkDestroyBufferView = NULL;
5747PFN_vkDestroyCommandPool glad_vkDestroyCommandPool = NULL;
5748PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT = NULL;
5749PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool = NULL;
5750PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout = NULL;
5751PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate = NULL;
5752PFN_vkDestroyDevice glad_vkDestroyDevice = NULL;
5753PFN_vkDestroyEvent glad_vkDestroyEvent = NULL;
5754PFN_vkDestroyFence glad_vkDestroyFence = NULL;
5755PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer = NULL;
5756PFN_vkDestroyImage glad_vkDestroyImage = NULL;
5757PFN_vkDestroyImageView glad_vkDestroyImageView = NULL;
5758PFN_vkDestroyInstance glad_vkDestroyInstance = NULL;
5759PFN_vkDestroyPipeline glad_vkDestroyPipeline = NULL;
5760PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache = NULL;
5761PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout = NULL;
5762PFN_vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot = NULL;
5763PFN_vkDestroyQueryPool glad_vkDestroyQueryPool = NULL;
5764PFN_vkDestroyRenderPass glad_vkDestroyRenderPass = NULL;
5765PFN_vkDestroySampler glad_vkDestroySampler = NULL;
5766PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion = NULL;
5767PFN_vkDestroySemaphore glad_vkDestroySemaphore = NULL;
5768PFN_vkDestroyShaderModule glad_vkDestroyShaderModule = NULL;
5769PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR = NULL;
5770PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR = NULL;
5771PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle = NULL;
5772PFN_vkEndCommandBuffer glad_vkEndCommandBuffer = NULL;
5773PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties = NULL;
5774PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties = NULL;
5775PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties = NULL;
5776PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties = NULL;
5777PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion = NULL;
5778PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups = NULL;
5779PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices = NULL;
5780PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges = NULL;
5781PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers = NULL;
5782PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets = NULL;
5783PFN_vkFreeMemory glad_vkFreeMemory = NULL;
5784PFN_vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress = NULL;
5785PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements = NULL;
5786PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2 = NULL;
5787PFN_vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress = NULL;
5788PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport = NULL;
5789PFN_vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements = NULL;
5790PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures = NULL;
5791PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR = NULL;
5792PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR = NULL;
5793PFN_vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements = NULL;
5794PFN_vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements = NULL;
5795PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment = NULL;
5796PFN_vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress = NULL;
5797PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr = NULL;
5798PFN_vkGetDeviceQueue glad_vkGetDeviceQueue = NULL;
5799PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2 = NULL;
5800PFN_vkGetEventStatus glad_vkGetEventStatus = NULL;
5801PFN_vkGetFenceStatus glad_vkGetFenceStatus = NULL;
5802PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements = NULL;
5803PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2 = NULL;
5804PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements = NULL;
5805PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2 = NULL;
5806PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout = NULL;
5807PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr = NULL;
5808PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties = NULL;
5809PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties = NULL;
5810PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties = NULL;
5811PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures = NULL;
5812PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2 = NULL;
5813PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties = NULL;
5814PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2 = NULL;
5815PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties = NULL;
5816PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2 = NULL;
5817PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties = NULL;
5818PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2 = NULL;
5819PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR = NULL;
5820PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties = NULL;
5821PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2 = NULL;
5822PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties = NULL;
5823PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2 = NULL;
5824PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties = NULL;
5825PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = NULL;
5826PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = NULL;
5827PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR = NULL;
5828PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR = NULL;
5829PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR = NULL;
5830PFN_vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties = NULL;
5831PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData = NULL;
5832PFN_vkGetPrivateData glad_vkGetPrivateData = NULL;
5833PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults = NULL;
5834PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity = NULL;
5835PFN_vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue = NULL;
5836PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR = NULL;
5837PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges = NULL;
5838PFN_vkMapMemory glad_vkMapMemory = NULL;
5839PFN_vkMergePipelineCaches glad_vkMergePipelineCaches = NULL;
5840PFN_vkQueueBindSparse glad_vkQueueBindSparse = NULL;
5841PFN_vkQueuePresentKHR glad_vkQueuePresentKHR = NULL;
5842PFN_vkQueueSubmit glad_vkQueueSubmit = NULL;
5843PFN_vkQueueSubmit2 glad_vkQueueSubmit2 = NULL;
5844PFN_vkQueueWaitIdle glad_vkQueueWaitIdle = NULL;
5845PFN_vkResetCommandBuffer glad_vkResetCommandBuffer = NULL;
5846PFN_vkResetCommandPool glad_vkResetCommandPool = NULL;
5847PFN_vkResetDescriptorPool glad_vkResetDescriptorPool = NULL;
5848PFN_vkResetEvent glad_vkResetEvent = NULL;
5849PFN_vkResetFences glad_vkResetFences = NULL;
5850PFN_vkResetQueryPool glad_vkResetQueryPool = NULL;
5851PFN_vkSetEvent glad_vkSetEvent = NULL;
5852PFN_vkSetPrivateData glad_vkSetPrivateData = NULL;
5853PFN_vkSignalSemaphore glad_vkSignalSemaphore = NULL;
5854PFN_vkTrimCommandPool glad_vkTrimCommandPool = NULL;
5855PFN_vkUnmapMemory glad_vkUnmapMemory = NULL;
5856PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate = NULL;
5857PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets = NULL;
5858PFN_vkWaitForFences glad_vkWaitForFences = NULL;
5859PFN_vkWaitSemaphores glad_vkWaitSemaphores = NULL;
5860
5861
5862static void glad_vk_load_VK_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
5863 if(!GLAD_VK_VERSION_1_0) return;
5864 glad_vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers) load(userptr, "vkAllocateCommandBuffers");
5865 glad_vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets) load(userptr, "vkAllocateDescriptorSets");
5866 glad_vkAllocateMemory = (PFN_vkAllocateMemory) load(userptr, "vkAllocateMemory");
5867 glad_vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer) load(userptr, "vkBeginCommandBuffer");
5868 glad_vkBindBufferMemory = (PFN_vkBindBufferMemory) load(userptr, "vkBindBufferMemory");
5869 glad_vkBindImageMemory = (PFN_vkBindImageMemory) load(userptr, "vkBindImageMemory");
5870 glad_vkCmdBeginQuery = (PFN_vkCmdBeginQuery) load(userptr, "vkCmdBeginQuery");
5871 glad_vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass) load(userptr, "vkCmdBeginRenderPass");
5872 glad_vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) load(userptr, "vkCmdBindDescriptorSets");
5873 glad_vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) load(userptr, "vkCmdBindIndexBuffer");
5874 glad_vkCmdBindPipeline = (PFN_vkCmdBindPipeline) load(userptr, "vkCmdBindPipeline");
5875 glad_vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) load(userptr, "vkCmdBindVertexBuffers");
5876 glad_vkCmdBlitImage = (PFN_vkCmdBlitImage) load(userptr, "vkCmdBlitImage");
5877 glad_vkCmdClearAttachments = (PFN_vkCmdClearAttachments) load(userptr, "vkCmdClearAttachments");
5878 glad_vkCmdClearColorImage = (PFN_vkCmdClearColorImage) load(userptr, "vkCmdClearColorImage");
5879 glad_vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage) load(userptr, "vkCmdClearDepthStencilImage");
5880 glad_vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer) load(userptr, "vkCmdCopyBuffer");
5881 glad_vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage) load(userptr, "vkCmdCopyBufferToImage");
5882 glad_vkCmdCopyImage = (PFN_vkCmdCopyImage) load(userptr, "vkCmdCopyImage");
5883 glad_vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer) load(userptr, "vkCmdCopyImageToBuffer");
5884 glad_vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults) load(userptr, "vkCmdCopyQueryPoolResults");
5885 glad_vkCmdDispatch = (PFN_vkCmdDispatch) load(userptr, "vkCmdDispatch");
5886 glad_vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect) load(userptr, "vkCmdDispatchIndirect");
5887 glad_vkCmdDraw = (PFN_vkCmdDraw) load(userptr, "vkCmdDraw");
5888 glad_vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed) load(userptr, "vkCmdDrawIndexed");
5889 glad_vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect) load(userptr, "vkCmdDrawIndexedIndirect");
5890 glad_vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect) load(userptr, "vkCmdDrawIndirect");
5891 glad_vkCmdEndQuery = (PFN_vkCmdEndQuery) load(userptr, "vkCmdEndQuery");
5892 glad_vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass) load(userptr, "vkCmdEndRenderPass");
5893 glad_vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands) load(userptr, "vkCmdExecuteCommands");
5894 glad_vkCmdFillBuffer = (PFN_vkCmdFillBuffer) load(userptr, "vkCmdFillBuffer");
5895 glad_vkCmdNextSubpass = (PFN_vkCmdNextSubpass) load(userptr, "vkCmdNextSubpass");
5896 glad_vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier) load(userptr, "vkCmdPipelineBarrier");
5897 glad_vkCmdPushConstants = (PFN_vkCmdPushConstants) load(userptr, "vkCmdPushConstants");
5898 glad_vkCmdResetEvent = (PFN_vkCmdResetEvent) load(userptr, "vkCmdResetEvent");
5899 glad_vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool) load(userptr, "vkCmdResetQueryPool");
5900 glad_vkCmdResolveImage = (PFN_vkCmdResolveImage) load(userptr, "vkCmdResolveImage");
5901 glad_vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants) load(userptr, "vkCmdSetBlendConstants");
5902 glad_vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias) load(userptr, "vkCmdSetDepthBias");
5903 glad_vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds) load(userptr, "vkCmdSetDepthBounds");
5904 glad_vkCmdSetEvent = (PFN_vkCmdSetEvent) load(userptr, "vkCmdSetEvent");
5905 glad_vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth) load(userptr, "vkCmdSetLineWidth");
5906 glad_vkCmdSetScissor = (PFN_vkCmdSetScissor) load(userptr, "vkCmdSetScissor");
5907 glad_vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask) load(userptr, "vkCmdSetStencilCompareMask");
5908 glad_vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference) load(userptr, "vkCmdSetStencilReference");
5909 glad_vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask) load(userptr, "vkCmdSetStencilWriteMask");
5910 glad_vkCmdSetViewport = (PFN_vkCmdSetViewport) load(userptr, "vkCmdSetViewport");
5911 glad_vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer) load(userptr, "vkCmdUpdateBuffer");
5912 glad_vkCmdWaitEvents = (PFN_vkCmdWaitEvents) load(userptr, "vkCmdWaitEvents");
5913 glad_vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp) load(userptr, "vkCmdWriteTimestamp");
5914 glad_vkCreateBuffer = (PFN_vkCreateBuffer) load(userptr, "vkCreateBuffer");
5915 glad_vkCreateBufferView = (PFN_vkCreateBufferView) load(userptr, "vkCreateBufferView");
5916 glad_vkCreateCommandPool = (PFN_vkCreateCommandPool) load(userptr, "vkCreateCommandPool");
5917 glad_vkCreateComputePipelines = (PFN_vkCreateComputePipelines) load(userptr, "vkCreateComputePipelines");
5918 glad_vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool) load(userptr, "vkCreateDescriptorPool");
5919 glad_vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout) load(userptr, "vkCreateDescriptorSetLayout");
5920 glad_vkCreateDevice = (PFN_vkCreateDevice) load(userptr, "vkCreateDevice");
5921 glad_vkCreateEvent = (PFN_vkCreateEvent) load(userptr, "vkCreateEvent");
5922 glad_vkCreateFence = (PFN_vkCreateFence) load(userptr, "vkCreateFence");
5923 glad_vkCreateFramebuffer = (PFN_vkCreateFramebuffer) load(userptr, "vkCreateFramebuffer");
5924 glad_vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines) load(userptr, "vkCreateGraphicsPipelines");
5925 glad_vkCreateImage = (PFN_vkCreateImage) load(userptr, "vkCreateImage");
5926 glad_vkCreateImageView = (PFN_vkCreateImageView) load(userptr, "vkCreateImageView");
5927 glad_vkCreateInstance = (PFN_vkCreateInstance) load(userptr, "vkCreateInstance");
5928 glad_vkCreatePipelineCache = (PFN_vkCreatePipelineCache) load(userptr, "vkCreatePipelineCache");
5929 glad_vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout) load(userptr, "vkCreatePipelineLayout");
5930 glad_vkCreateQueryPool = (PFN_vkCreateQueryPool) load(userptr, "vkCreateQueryPool");
5931 glad_vkCreateRenderPass = (PFN_vkCreateRenderPass) load(userptr, "vkCreateRenderPass");
5932 glad_vkCreateSampler = (PFN_vkCreateSampler) load(userptr, "vkCreateSampler");
5933 glad_vkCreateSemaphore = (PFN_vkCreateSemaphore) load(userptr, "vkCreateSemaphore");
5934 glad_vkCreateShaderModule = (PFN_vkCreateShaderModule) load(userptr, "vkCreateShaderModule");
5935 glad_vkDestroyBuffer = (PFN_vkDestroyBuffer) load(userptr, "vkDestroyBuffer");
5936 glad_vkDestroyBufferView = (PFN_vkDestroyBufferView) load(userptr, "vkDestroyBufferView");
5937 glad_vkDestroyCommandPool = (PFN_vkDestroyCommandPool) load(userptr, "vkDestroyCommandPool");
5938 glad_vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool) load(userptr, "vkDestroyDescriptorPool");
5939 glad_vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout) load(userptr, "vkDestroyDescriptorSetLayout");
5940 glad_vkDestroyDevice = (PFN_vkDestroyDevice) load(userptr, "vkDestroyDevice");
5941 glad_vkDestroyEvent = (PFN_vkDestroyEvent) load(userptr, "vkDestroyEvent");
5942 glad_vkDestroyFence = (PFN_vkDestroyFence) load(userptr, "vkDestroyFence");
5943 glad_vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer) load(userptr, "vkDestroyFramebuffer");
5944 glad_vkDestroyImage = (PFN_vkDestroyImage) load(userptr, "vkDestroyImage");
5945 glad_vkDestroyImageView = (PFN_vkDestroyImageView) load(userptr, "vkDestroyImageView");
5946 glad_vkDestroyInstance = (PFN_vkDestroyInstance) load(userptr, "vkDestroyInstance");
5947 glad_vkDestroyPipeline = (PFN_vkDestroyPipeline) load(userptr, "vkDestroyPipeline");
5948 glad_vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache) load(userptr, "vkDestroyPipelineCache");
5949 glad_vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout) load(userptr, "vkDestroyPipelineLayout");
5950 glad_vkDestroyQueryPool = (PFN_vkDestroyQueryPool) load(userptr, "vkDestroyQueryPool");
5951 glad_vkDestroyRenderPass = (PFN_vkDestroyRenderPass) load(userptr, "vkDestroyRenderPass");
5952 glad_vkDestroySampler = (PFN_vkDestroySampler) load(userptr, "vkDestroySampler");
5953 glad_vkDestroySemaphore = (PFN_vkDestroySemaphore) load(userptr, "vkDestroySemaphore");
5954 glad_vkDestroyShaderModule = (PFN_vkDestroyShaderModule) load(userptr, "vkDestroyShaderModule");
5955 glad_vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle) load(userptr, "vkDeviceWaitIdle");
5956 glad_vkEndCommandBuffer = (PFN_vkEndCommandBuffer) load(userptr, "vkEndCommandBuffer");
5957 glad_vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties) load(userptr, "vkEnumerateDeviceExtensionProperties");
5958 glad_vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties) load(userptr, "vkEnumerateDeviceLayerProperties");
5959 glad_vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties) load(userptr, "vkEnumerateInstanceExtensionProperties");
5960 glad_vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties) load(userptr, "vkEnumerateInstanceLayerProperties");
5961 glad_vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices) load(userptr, "vkEnumeratePhysicalDevices");
5962 glad_vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges) load(userptr, "vkFlushMappedMemoryRanges");
5963 glad_vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers) load(userptr, "vkFreeCommandBuffers");
5964 glad_vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets) load(userptr, "vkFreeDescriptorSets");
5965 glad_vkFreeMemory = (PFN_vkFreeMemory) load(userptr, "vkFreeMemory");
5966 glad_vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements) load(userptr, "vkGetBufferMemoryRequirements");
5967 glad_vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment) load(userptr, "vkGetDeviceMemoryCommitment");
5968 glad_vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr) load(userptr, "vkGetDeviceProcAddr");
5969 glad_vkGetDeviceQueue = (PFN_vkGetDeviceQueue) load(userptr, "vkGetDeviceQueue");
5970 glad_vkGetEventStatus = (PFN_vkGetEventStatus) load(userptr, "vkGetEventStatus");
5971 glad_vkGetFenceStatus = (PFN_vkGetFenceStatus) load(userptr, "vkGetFenceStatus");
5972 glad_vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements) load(userptr, "vkGetImageMemoryRequirements");
5973 glad_vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements) load(userptr, "vkGetImageSparseMemoryRequirements");
5974 glad_vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout) load(userptr, "vkGetImageSubresourceLayout");
5975 glad_vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) load(userptr, "vkGetInstanceProcAddr");
5976 glad_vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures) load(userptr, "vkGetPhysicalDeviceFeatures");
5977 glad_vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties) load(userptr, "vkGetPhysicalDeviceFormatProperties");
5978 glad_vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties) load(userptr, "vkGetPhysicalDeviceImageFormatProperties");
5979 glad_vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties) load(userptr, "vkGetPhysicalDeviceMemoryProperties");
5980 glad_vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties) load(userptr, "vkGetPhysicalDeviceProperties");
5981 glad_vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties");
5982 glad_vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties");
5983 glad_vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData) load(userptr, "vkGetPipelineCacheData");
5984 glad_vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults) load(userptr, "vkGetQueryPoolResults");
5985 glad_vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity) load(userptr, "vkGetRenderAreaGranularity");
5986 glad_vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges) load(userptr, "vkInvalidateMappedMemoryRanges");
5987 glad_vkMapMemory = (PFN_vkMapMemory) load(userptr, "vkMapMemory");
5988 glad_vkMergePipelineCaches = (PFN_vkMergePipelineCaches) load(userptr, "vkMergePipelineCaches");
5989 glad_vkQueueBindSparse = (PFN_vkQueueBindSparse) load(userptr, "vkQueueBindSparse");
5990 glad_vkQueueSubmit = (PFN_vkQueueSubmit) load(userptr, "vkQueueSubmit");
5991 glad_vkQueueWaitIdle = (PFN_vkQueueWaitIdle) load(userptr, "vkQueueWaitIdle");
5992 glad_vkResetCommandBuffer = (PFN_vkResetCommandBuffer) load(userptr, "vkResetCommandBuffer");
5993 glad_vkResetCommandPool = (PFN_vkResetCommandPool) load(userptr, "vkResetCommandPool");
5994 glad_vkResetDescriptorPool = (PFN_vkResetDescriptorPool) load(userptr, "vkResetDescriptorPool");
5995 glad_vkResetEvent = (PFN_vkResetEvent) load(userptr, "vkResetEvent");
5996 glad_vkResetFences = (PFN_vkResetFences) load(userptr, "vkResetFences");
5997 glad_vkSetEvent = (PFN_vkSetEvent) load(userptr, "vkSetEvent");
5998 glad_vkUnmapMemory = (PFN_vkUnmapMemory) load(userptr, "vkUnmapMemory");
5999 glad_vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) load(userptr, "vkUpdateDescriptorSets");
6000 glad_vkWaitForFences = (PFN_vkWaitForFences) load(userptr, "vkWaitForFences");
6001}
6002static void glad_vk_load_VK_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
6003 if(!GLAD_VK_VERSION_1_1) return;
6004 glad_vkBindBufferMemory2 = (PFN_vkBindBufferMemory2) load(userptr, "vkBindBufferMemory2");
6005 glad_vkBindImageMemory2 = (PFN_vkBindImageMemory2) load(userptr, "vkBindImageMemory2");
6006 glad_vkCmdDispatchBase = (PFN_vkCmdDispatchBase) load(userptr, "vkCmdDispatchBase");
6007 glad_vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask) load(userptr, "vkCmdSetDeviceMask");
6008 glad_vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate) load(userptr, "vkCreateDescriptorUpdateTemplate");
6009 glad_vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion) load(userptr, "vkCreateSamplerYcbcrConversion");
6010 glad_vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate) load(userptr, "vkDestroyDescriptorUpdateTemplate");
6011 glad_vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion) load(userptr, "vkDestroySamplerYcbcrConversion");
6012 glad_vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
6013 glad_vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups) load(userptr, "vkEnumeratePhysicalDeviceGroups");
6014 glad_vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2) load(userptr, "vkGetBufferMemoryRequirements2");
6015 glad_vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport) load(userptr, "vkGetDescriptorSetLayoutSupport");
6016 glad_vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures) load(userptr, "vkGetDeviceGroupPeerMemoryFeatures");
6017 glad_vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2) load(userptr, "vkGetDeviceQueue2");
6018 glad_vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2) load(userptr, "vkGetImageMemoryRequirements2");
6019 glad_vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2) load(userptr, "vkGetImageSparseMemoryRequirements2");
6020 glad_vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties) load(userptr, "vkGetPhysicalDeviceExternalBufferProperties");
6021 glad_vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties) load(userptr, "vkGetPhysicalDeviceExternalFenceProperties");
6022 glad_vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties) load(userptr, "vkGetPhysicalDeviceExternalSemaphoreProperties");
6023 glad_vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2) load(userptr, "vkGetPhysicalDeviceFeatures2");
6024 glad_vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2) load(userptr, "vkGetPhysicalDeviceFormatProperties2");
6025 glad_vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2) load(userptr, "vkGetPhysicalDeviceImageFormatProperties2");
6026 glad_vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2) load(userptr, "vkGetPhysicalDeviceMemoryProperties2");
6027 glad_vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2) load(userptr, "vkGetPhysicalDeviceProperties2");
6028 glad_vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties2");
6029 glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties2");
6030 glad_vkTrimCommandPool = (PFN_vkTrimCommandPool) load(userptr, "vkTrimCommandPool");
6031 glad_vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate) load(userptr, "vkUpdateDescriptorSetWithTemplate");
6032}
6033static void glad_vk_load_VK_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
6034 if(!GLAD_VK_VERSION_1_2) return;
6035 glad_vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2) load(userptr, "vkCmdBeginRenderPass2");
6036 glad_vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount) load(userptr, "vkCmdDrawIndexedIndirectCount");
6037 glad_vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount) load(userptr, "vkCmdDrawIndirectCount");
6038 glad_vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2) load(userptr, "vkCmdEndRenderPass2");
6039 glad_vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2) load(userptr, "vkCmdNextSubpass2");
6040 glad_vkCreateRenderPass2 = (PFN_vkCreateRenderPass2) load(userptr, "vkCreateRenderPass2");
6041 glad_vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress) load(userptr, "vkGetBufferDeviceAddress");
6042 glad_vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress) load(userptr, "vkGetBufferOpaqueCaptureAddress");
6043 glad_vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress) load(userptr, "vkGetDeviceMemoryOpaqueCaptureAddress");
6044 glad_vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue) load(userptr, "vkGetSemaphoreCounterValue");
6045 glad_vkResetQueryPool = (PFN_vkResetQueryPool) load(userptr, "vkResetQueryPool");
6046 glad_vkSignalSemaphore = (PFN_vkSignalSemaphore) load(userptr, "vkSignalSemaphore");
6047 glad_vkWaitSemaphores = (PFN_vkWaitSemaphores) load(userptr, "vkWaitSemaphores");
6048}
6049static void glad_vk_load_VK_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) {
6050 if(!GLAD_VK_VERSION_1_3) return;
6051 glad_vkCmdBeginRendering = (PFN_vkCmdBeginRendering) load(userptr, "vkCmdBeginRendering");
6052 glad_vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2) load(userptr, "vkCmdBindVertexBuffers2");
6053 glad_vkCmdBlitImage2 = (PFN_vkCmdBlitImage2) load(userptr, "vkCmdBlitImage2");
6054 glad_vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2) load(userptr, "vkCmdCopyBuffer2");
6055 glad_vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2) load(userptr, "vkCmdCopyBufferToImage2");
6056 glad_vkCmdCopyImage2 = (PFN_vkCmdCopyImage2) load(userptr, "vkCmdCopyImage2");
6057 glad_vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2) load(userptr, "vkCmdCopyImageToBuffer2");
6058 glad_vkCmdEndRendering = (PFN_vkCmdEndRendering) load(userptr, "vkCmdEndRendering");
6059 glad_vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2) load(userptr, "vkCmdPipelineBarrier2");
6060 glad_vkCmdResetEvent2 = (PFN_vkCmdResetEvent2) load(userptr, "vkCmdResetEvent2");
6061 glad_vkCmdResolveImage2 = (PFN_vkCmdResolveImage2) load(userptr, "vkCmdResolveImage2");
6062 glad_vkCmdSetCullMode = (PFN_vkCmdSetCullMode) load(userptr, "vkCmdSetCullMode");
6063 glad_vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable) load(userptr, "vkCmdSetDepthBiasEnable");
6064 glad_vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable) load(userptr, "vkCmdSetDepthBoundsTestEnable");
6065 glad_vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp) load(userptr, "vkCmdSetDepthCompareOp");
6066 glad_vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable) load(userptr, "vkCmdSetDepthTestEnable");
6067 glad_vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable) load(userptr, "vkCmdSetDepthWriteEnable");
6068 glad_vkCmdSetEvent2 = (PFN_vkCmdSetEvent2) load(userptr, "vkCmdSetEvent2");
6069 glad_vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace) load(userptr, "vkCmdSetFrontFace");
6070 glad_vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable) load(userptr, "vkCmdSetPrimitiveRestartEnable");
6071 glad_vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology) load(userptr, "vkCmdSetPrimitiveTopology");
6072 glad_vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable) load(userptr, "vkCmdSetRasterizerDiscardEnable");
6073 glad_vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount) load(userptr, "vkCmdSetScissorWithCount");
6074 glad_vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp) load(userptr, "vkCmdSetStencilOp");
6075 glad_vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable) load(userptr, "vkCmdSetStencilTestEnable");
6076 glad_vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount) load(userptr, "vkCmdSetViewportWithCount");
6077 glad_vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2) load(userptr, "vkCmdWaitEvents2");
6078 glad_vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2) load(userptr, "vkCmdWriteTimestamp2");
6079 glad_vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot) load(userptr, "vkCreatePrivateDataSlot");
6080 glad_vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot) load(userptr, "vkDestroyPrivateDataSlot");
6081 glad_vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements) load(userptr, "vkGetDeviceBufferMemoryRequirements");
6082 glad_vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements) load(userptr, "vkGetDeviceImageMemoryRequirements");
6083 glad_vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements) load(userptr, "vkGetDeviceImageSparseMemoryRequirements");
6084 glad_vkGetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties) load(userptr, "vkGetPhysicalDeviceToolProperties");
6085 glad_vkGetPrivateData = (PFN_vkGetPrivateData) load(userptr, "vkGetPrivateData");
6086 glad_vkQueueSubmit2 = (PFN_vkQueueSubmit2) load(userptr, "vkQueueSubmit2");
6087 glad_vkSetPrivateData = (PFN_vkSetPrivateData) load(userptr, "vkSetPrivateData");
6088}
6089static void glad_vk_load_VK_EXT_debug_report( GLADuserptrloadfunc load, void* userptr) {
6090 if(!GLAD_VK_EXT_debug_report) return;
6091 glad_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) load(userptr, "vkCreateDebugReportCallbackEXT");
6092 glad_vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT) load(userptr, "vkDebugReportMessageEXT");
6093 glad_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT) load(userptr, "vkDestroyDebugReportCallbackEXT");
6094}
6095static void glad_vk_load_VK_KHR_surface( GLADuserptrloadfunc load, void* userptr) {
6096 if(!GLAD_VK_KHR_surface) return;
6097 glad_vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR) load(userptr, "vkDestroySurfaceKHR");
6098 glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR) load(userptr, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
6099 glad_vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) load(userptr, "vkGetPhysicalDeviceSurfaceFormatsKHR");
6100 glad_vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR) load(userptr, "vkGetPhysicalDeviceSurfacePresentModesKHR");
6101 glad_vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR) load(userptr, "vkGetPhysicalDeviceSurfaceSupportKHR");
6102}
6103static void glad_vk_load_VK_KHR_swapchain( GLADuserptrloadfunc load, void* userptr) {
6104 if(!GLAD_VK_KHR_swapchain) return;
6105 glad_vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR) load(userptr, "vkAcquireNextImage2KHR");
6106 glad_vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) load(userptr, "vkAcquireNextImageKHR");
6107 glad_vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR) load(userptr, "vkCreateSwapchainKHR");
6108 glad_vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR) load(userptr, "vkDestroySwapchainKHR");
6109 glad_vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR) load(userptr, "vkGetDeviceGroupPresentCapabilitiesKHR");
6110 glad_vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR) load(userptr, "vkGetDeviceGroupSurfacePresentModesKHR");
6111 glad_vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR) load(userptr, "vkGetPhysicalDevicePresentRectanglesKHR");
6112 glad_vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR) load(userptr, "vkGetSwapchainImagesKHR");
6113 glad_vkQueuePresentKHR = (PFN_vkQueuePresentKHR) load(userptr, "vkQueuePresentKHR");
6114}
6115
6116
6117
6118static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *out_extension_count, char ***out_extensions) {
6119 uint32_t i;
6120 uint32_t instance_extension_count = 0;
6121 uint32_t device_extension_count = 0;
6122 uint32_t max_extension_count = 0;
6123 uint32_t total_extension_count = 0;
6124 char **extensions = NULL;
6125 VkExtensionProperties *ext_properties = NULL;
6126 VkResult result;
6127
6128 if (glad_vkEnumerateInstanceExtensionProperties == NULL || (physical_device != NULL && glad_vkEnumerateDeviceExtensionProperties == NULL)) {
6129 return 0;
6130 }
6131
6132 result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, NULL);
6133 if (result != VK_SUCCESS) {
6134 return 0;
6135 }
6136
6137 if (physical_device != NULL) {
6138 result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, NULL);
6139 if (result != VK_SUCCESS) {
6140 return 0;
6141 }
6142 }
6143
6144 total_extension_count = instance_extension_count + device_extension_count;
6145 if (total_extension_count <= 0) {
6146 return 0;
6147 }
6148
6149 max_extension_count = instance_extension_count > device_extension_count
6150 ? instance_extension_count : device_extension_count;
6151
6152 ext_properties = (VkExtensionProperties*) malloc(max_extension_count * sizeof(VkExtensionProperties));
6153 if (ext_properties == NULL) {
6154 goto glad_vk_get_extensions_error;
6155 }
6156
6157 result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, ext_properties);
6158 if (result != VK_SUCCESS) {
6159 goto glad_vk_get_extensions_error;
6160 }
6161
6162 extensions = (char**) calloc(total_extension_count, sizeof(char*));
6163 if (extensions == NULL) {
6164 goto glad_vk_get_extensions_error;
6165 }
6166
6167 for (i = 0; i < instance_extension_count; ++i) {
6168 VkExtensionProperties ext = ext_properties[i];
6169
6170 size_t extension_name_length = strlen(ext.extensionName) + 1;
6171 extensions[i] = (char*) malloc(extension_name_length * sizeof(char));
6172 if (extensions[i] == NULL) {
6173 goto glad_vk_get_extensions_error;
6174 }
6175 memcpy(extensions[i], ext.extensionName, extension_name_length * sizeof(char));
6176 }
6177
6178 if (physical_device != NULL) {
6179 result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, ext_properties);
6180 if (result != VK_SUCCESS) {
6181 goto glad_vk_get_extensions_error;
6182 }
6183
6184 for (i = 0; i < device_extension_count; ++i) {
6185 VkExtensionProperties ext = ext_properties[i];
6186
6187 size_t extension_name_length = strlen(ext.extensionName) + 1;
6188 extensions[instance_extension_count + i] = (char*) malloc(extension_name_length * sizeof(char));
6189 if (extensions[instance_extension_count + i] == NULL) {
6190 goto glad_vk_get_extensions_error;
6191 }
6192 memcpy(extensions[instance_extension_count + i], ext.extensionName, extension_name_length * sizeof(char));
6193 }
6194 }
6195
6196 free((void*) ext_properties);
6197
6198 *out_extension_count = total_extension_count;
6199 *out_extensions = extensions;
6200
6201 return 1;
6202
6203glad_vk_get_extensions_error:
6204 free((void*) ext_properties);
6205 if (extensions != NULL) {
6206 for (i = 0; i < total_extension_count; ++i) {
6207 free((void*) extensions[i]);
6208 }
6209 free(extensions);
6210 }
6211 return 0;
6212}
6213
6214static void glad_vk_free_extensions(uint32_t extension_count, char **extensions) {
6215 uint32_t i;
6216
6217 for(i = 0; i < extension_count ; ++i) {
6218 free((void*) (extensions[i]));
6219 }
6220
6221 free((void*) extensions);
6222}
6223
6224static int glad_vk_has_extension(const char *name, uint32_t extension_count, char **extensions) {
6225 uint32_t i;
6226
6227 for (i = 0; i < extension_count; ++i) {
6228 if(extensions[i] != NULL && strcmp(name, extensions[i]) == 0) {
6229 return 1;
6230 }
6231 }
6232
6233 return 0;
6234}
6235
6236static GLADapiproc glad_vk_get_proc_from_userptr(void *userptr, const char* name) {
6237 return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
6238}
6239
6240static int glad_vk_find_extensions_vulkan( VkPhysicalDevice physical_device) {
6241 uint32_t extension_count = 0;
6242 char **extensions = NULL;
6243 if (!glad_vk_get_extensions(physical_device, &extension_count, &extensions)) return 0;
6244
6245 GLAD_VK_EXT_debug_report = glad_vk_has_extension("VK_EXT_debug_report", extension_count, extensions);
6246 GLAD_VK_KHR_portability_enumeration = glad_vk_has_extension("VK_KHR_portability_enumeration", extension_count, extensions);
6247 GLAD_VK_KHR_surface = glad_vk_has_extension("VK_KHR_surface", extension_count, extensions);
6248 GLAD_VK_KHR_swapchain = glad_vk_has_extension("VK_KHR_swapchain", extension_count, extensions);
6249
6250 (void) glad_vk_has_extension;
6251
6252 glad_vk_free_extensions(extension_count, extensions);
6253
6254 return 1;
6255}
6256
6257static int glad_vk_find_core_vulkan( VkPhysicalDevice physical_device) {
6258 int major = 1;
6259 int minor = 0;
6260
6261#ifdef VK_VERSION_1_1
6262 if (glad_vkEnumerateInstanceVersion != NULL) {
6263 uint32_t version;
6264 VkResult result;
6265
6266 result = glad_vkEnumerateInstanceVersion(&version);
6267 if (result == VK_SUCCESS) {
6268 major = (int) VK_VERSION_MAJOR(version);
6269 minor = (int) VK_VERSION_MINOR(version);
6270 }
6271 }
6272#endif
6273
6274 if (physical_device != NULL && glad_vkGetPhysicalDeviceProperties != NULL) {
6275 VkPhysicalDeviceProperties properties;
6276 glad_vkGetPhysicalDeviceProperties(physical_device, &properties);
6277
6278 major = (int) VK_VERSION_MAJOR(properties.apiVersion);
6279 minor = (int) VK_VERSION_MINOR(properties.apiVersion);
6280 }
6281
6282 GLAD_VK_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
6283 GLAD_VK_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
6284 GLAD_VK_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
6285 GLAD_VK_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
6286
6287 return GLAD_MAKE_VERSION(major, minor);
6288}
6289
6290int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr) {
6291 int version;
6292
6293#ifdef VK_VERSION_1_1
6294 glad_vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
6295#endif
6296 version = glad_vk_find_core_vulkan( physical_device);
6297 if (!version) {
6298 return 0;
6299 }
6300
6301 glad_vk_load_VK_VERSION_1_0(load, userptr);
6302 glad_vk_load_VK_VERSION_1_1(load, userptr);
6303 glad_vk_load_VK_VERSION_1_2(load, userptr);
6304 glad_vk_load_VK_VERSION_1_3(load, userptr);
6305
6306 if (!glad_vk_find_extensions_vulkan( physical_device)) return 0;
6307 glad_vk_load_VK_EXT_debug_report(load, userptr);
6308 glad_vk_load_VK_KHR_surface(load, userptr);
6309 glad_vk_load_VK_KHR_swapchain(load, userptr);
6310
6311
6312 return version;
6313}
6314
6315
6316int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load) {
6317 return gladLoadVulkanUserPtr( physical_device, glad_vk_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
6318}
6319
6320
6321
6322
6323
6324
6325#ifdef __cplusplus
6326}
6327#endif
6328
6329#endif /* GLAD_VULKAN_IMPLEMENTATION */
6330
diff --git a/raylib/src/external/glfw/deps/mingw/_mingw_dxhelper.h b/raylib/src/external/glfw/deps/mingw/_mingw_dxhelper.h
new file mode 100644
index 0000000..849e291
--- /dev/null
+++ b/raylib/src/external/glfw/deps/mingw/_mingw_dxhelper.h
@@ -0,0 +1,117 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6
7#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
8#define NONAMELESSUNION 1
9#endif
10#if defined(NONAMELESSSTRUCT) && \
11 !defined(NONAMELESSUNION)
12#define NONAMELESSUNION 1
13#endif
14#if defined(NONAMELESSUNION) && \
15 !defined(NONAMELESSSTRUCT)
16#define NONAMELESSSTRUCT 1
17#endif
18#if !defined(__GNU_EXTENSION)
19#if defined(__GNUC__) || defined(__GNUG__)
20#define __GNU_EXTENSION __extension__
21#else
22#define __GNU_EXTENSION
23#endif
24#endif /* __extension__ */
25
26#ifndef __ANONYMOUS_DEFINED
27#define __ANONYMOUS_DEFINED
28#if defined(__GNUC__) || defined(__GNUG__)
29#define _ANONYMOUS_UNION __extension__
30#define _ANONYMOUS_STRUCT __extension__
31#else
32#define _ANONYMOUS_UNION
33#define _ANONYMOUS_STRUCT
34#endif
35#ifndef NONAMELESSUNION
36#define _UNION_NAME(x)
37#define _STRUCT_NAME(x)
38#else /* NONAMELESSUNION */
39#define _UNION_NAME(x) x
40#define _STRUCT_NAME(x) x
41#endif
42#endif /* __ANONYMOUS_DEFINED */
43
44#ifndef DUMMYUNIONNAME
45# ifdef NONAMELESSUNION
46# define DUMMYUNIONNAME u
47# define DUMMYUNIONNAME1 u1 /* Wine uses this variant */
48# define DUMMYUNIONNAME2 u2
49# define DUMMYUNIONNAME3 u3
50# define DUMMYUNIONNAME4 u4
51# define DUMMYUNIONNAME5 u5
52# define DUMMYUNIONNAME6 u6
53# define DUMMYUNIONNAME7 u7
54# define DUMMYUNIONNAME8 u8
55# define DUMMYUNIONNAME9 u9
56# else /* NONAMELESSUNION */
57# define DUMMYUNIONNAME
58# define DUMMYUNIONNAME1 /* Wine uses this variant */
59# define DUMMYUNIONNAME2
60# define DUMMYUNIONNAME3
61# define DUMMYUNIONNAME4
62# define DUMMYUNIONNAME5
63# define DUMMYUNIONNAME6
64# define DUMMYUNIONNAME7
65# define DUMMYUNIONNAME8
66# define DUMMYUNIONNAME9
67# endif
68#endif /* DUMMYUNIONNAME */
69
70#if !defined(DUMMYUNIONNAME1) /* MinGW does not define this one */
71# ifdef NONAMELESSUNION
72# define DUMMYUNIONNAME1 u1 /* Wine uses this variant */
73# else
74# define DUMMYUNIONNAME1 /* Wine uses this variant */
75# endif
76#endif /* DUMMYUNIONNAME1 */
77
78#ifndef DUMMYSTRUCTNAME
79# ifdef NONAMELESSUNION
80# define DUMMYSTRUCTNAME s
81# define DUMMYSTRUCTNAME1 s1 /* Wine uses this variant */
82# define DUMMYSTRUCTNAME2 s2
83# define DUMMYSTRUCTNAME3 s3
84# define DUMMYSTRUCTNAME4 s4
85# define DUMMYSTRUCTNAME5 s5
86# else
87# define DUMMYSTRUCTNAME
88# define DUMMYSTRUCTNAME1 /* Wine uses this variant */
89# define DUMMYSTRUCTNAME2
90# define DUMMYSTRUCTNAME3
91# define DUMMYSTRUCTNAME4
92# define DUMMYSTRUCTNAME5
93# endif
94#endif /* DUMMYSTRUCTNAME */
95
96/* These are for compatibility with the Wine source tree */
97
98#ifndef WINELIB_NAME_AW
99# ifdef __MINGW_NAME_AW
100# define WINELIB_NAME_AW __MINGW_NAME_AW
101# else
102# ifdef UNICODE
103# define WINELIB_NAME_AW(func) func##W
104# else
105# define WINELIB_NAME_AW(func) func##A
106# endif
107# endif
108#endif /* WINELIB_NAME_AW */
109
110#ifndef DECL_WINELIB_TYPE_AW
111# ifdef __MINGW_TYPEDEF_AW
112# define DECL_WINELIB_TYPE_AW __MINGW_TYPEDEF_AW
113# else
114# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
115# endif
116#endif /* DECL_WINELIB_TYPE_AW */
117
diff --git a/raylib/src/external/glfw/deps/mingw/dinput.h b/raylib/src/external/glfw/deps/mingw/dinput.h
new file mode 100644
index 0000000..b575480
--- /dev/null
+++ b/raylib/src/external/glfw/deps/mingw/dinput.h
@@ -0,0 +1,2467 @@
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __DINPUT_INCLUDED__
20#define __DINPUT_INCLUDED__
21
22#define COM_NO_WINDOWS_H
23#include <objbase.h>
24#include <_mingw_dxhelper.h>
25
26#ifndef DIRECTINPUT_VERSION
27#define DIRECTINPUT_VERSION 0x0800
28#endif
29
30/* Classes */
31DEFINE_GUID(CLSID_DirectInput, 0x25E609E0,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
32DEFINE_GUID(CLSID_DirectInputDevice, 0x25E609E1,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
33
34DEFINE_GUID(CLSID_DirectInput8, 0x25E609E4,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
35DEFINE_GUID(CLSID_DirectInputDevice8, 0x25E609E5,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
36
37/* Interfaces */
38DEFINE_GUID(IID_IDirectInputA, 0x89521360,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
39DEFINE_GUID(IID_IDirectInputW, 0x89521361,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
40DEFINE_GUID(IID_IDirectInput2A, 0x5944E662,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
41DEFINE_GUID(IID_IDirectInput2W, 0x5944E663,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
42DEFINE_GUID(IID_IDirectInput7A, 0x9A4CB684,0x236D,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
43DEFINE_GUID(IID_IDirectInput7W, 0x9A4CB685,0x236D,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
44DEFINE_GUID(IID_IDirectInput8A, 0xBF798030,0x483A,0x4DA2,0xAA,0x99,0x5D,0x64,0xED,0x36,0x97,0x00);
45DEFINE_GUID(IID_IDirectInput8W, 0xBF798031,0x483A,0x4DA2,0xAA,0x99,0x5D,0x64,0xED,0x36,0x97,0x00);
46DEFINE_GUID(IID_IDirectInputDeviceA, 0x5944E680,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
47DEFINE_GUID(IID_IDirectInputDeviceW, 0x5944E681,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
48DEFINE_GUID(IID_IDirectInputDevice2A, 0x5944E682,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
49DEFINE_GUID(IID_IDirectInputDevice2W, 0x5944E683,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
50DEFINE_GUID(IID_IDirectInputDevice7A, 0x57D7C6BC,0x2356,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
51DEFINE_GUID(IID_IDirectInputDevice7W, 0x57D7C6BD,0x2356,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
52DEFINE_GUID(IID_IDirectInputDevice8A, 0x54D41080,0xDC15,0x4833,0xA4,0x1B,0x74,0x8F,0x73,0xA3,0x81,0x79);
53DEFINE_GUID(IID_IDirectInputDevice8W, 0x54D41081,0xDC15,0x4833,0xA4,0x1B,0x74,0x8F,0x73,0xA3,0x81,0x79);
54DEFINE_GUID(IID_IDirectInputEffect, 0xE7E1F7C0,0x88D2,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
55
56/* Predefined object types */
57DEFINE_GUID(GUID_XAxis, 0xA36D02E0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
58DEFINE_GUID(GUID_YAxis, 0xA36D02E1,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
59DEFINE_GUID(GUID_ZAxis, 0xA36D02E2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
60DEFINE_GUID(GUID_RxAxis,0xA36D02F4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
61DEFINE_GUID(GUID_RyAxis,0xA36D02F5,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
62DEFINE_GUID(GUID_RzAxis,0xA36D02E3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
63DEFINE_GUID(GUID_Slider,0xA36D02E4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
64DEFINE_GUID(GUID_Button,0xA36D02F0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
65DEFINE_GUID(GUID_Key, 0x55728220,0xD33C,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
66DEFINE_GUID(GUID_POV, 0xA36D02F2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
67DEFINE_GUID(GUID_Unknown,0xA36D02F3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
68
69/* Predefined product GUIDs */
70DEFINE_GUID(GUID_SysMouse, 0x6F1D2B60,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
71DEFINE_GUID(GUID_SysKeyboard, 0x6F1D2B61,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
72DEFINE_GUID(GUID_Joystick, 0x6F1D2B70,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
73DEFINE_GUID(GUID_SysMouseEm, 0x6F1D2B80,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
74DEFINE_GUID(GUID_SysMouseEm2, 0x6F1D2B81,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
75DEFINE_GUID(GUID_SysKeyboardEm, 0x6F1D2B82,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
76DEFINE_GUID(GUID_SysKeyboardEm2,0x6F1D2B83,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
77
78/* predefined forcefeedback effects */
79DEFINE_GUID(GUID_ConstantForce, 0x13541C20,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
80DEFINE_GUID(GUID_RampForce, 0x13541C21,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
81DEFINE_GUID(GUID_Square, 0x13541C22,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
82DEFINE_GUID(GUID_Sine, 0x13541C23,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
83DEFINE_GUID(GUID_Triangle, 0x13541C24,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
84DEFINE_GUID(GUID_SawtoothUp, 0x13541C25,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
85DEFINE_GUID(GUID_SawtoothDown, 0x13541C26,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
86DEFINE_GUID(GUID_Spring, 0x13541C27,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
87DEFINE_GUID(GUID_Damper, 0x13541C28,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
88DEFINE_GUID(GUID_Inertia, 0x13541C29,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
89DEFINE_GUID(GUID_Friction, 0x13541C2A,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
90DEFINE_GUID(GUID_CustomForce, 0x13541C2B,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
91
92typedef struct IDirectInputA *LPDIRECTINPUTA;
93typedef struct IDirectInputW *LPDIRECTINPUTW;
94typedef struct IDirectInput2A *LPDIRECTINPUT2A;
95typedef struct IDirectInput2W *LPDIRECTINPUT2W;
96typedef struct IDirectInput7A *LPDIRECTINPUT7A;
97typedef struct IDirectInput7W *LPDIRECTINPUT7W;
98#if DIRECTINPUT_VERSION >= 0x0800
99typedef struct IDirectInput8A *LPDIRECTINPUT8A;
100typedef struct IDirectInput8W *LPDIRECTINPUT8W;
101#endif /* DI8 */
102typedef struct IDirectInputDeviceA *LPDIRECTINPUTDEVICEA;
103typedef struct IDirectInputDeviceW *LPDIRECTINPUTDEVICEW;
104#if DIRECTINPUT_VERSION >= 0x0500
105typedef struct IDirectInputDevice2A *LPDIRECTINPUTDEVICE2A;
106typedef struct IDirectInputDevice2W *LPDIRECTINPUTDEVICE2W;
107#endif /* DI5 */
108#if DIRECTINPUT_VERSION >= 0x0700
109typedef struct IDirectInputDevice7A *LPDIRECTINPUTDEVICE7A;
110typedef struct IDirectInputDevice7W *LPDIRECTINPUTDEVICE7W;
111#endif /* DI7 */
112#if DIRECTINPUT_VERSION >= 0x0800
113typedef struct IDirectInputDevice8A *LPDIRECTINPUTDEVICE8A;
114typedef struct IDirectInputDevice8W *LPDIRECTINPUTDEVICE8W;
115#endif /* DI8 */
116#if DIRECTINPUT_VERSION >= 0x0500
117typedef struct IDirectInputEffect *LPDIRECTINPUTEFFECT;
118#endif /* DI5 */
119typedef struct SysKeyboardA *LPSYSKEYBOARDA;
120typedef struct SysMouseA *LPSYSMOUSEA;
121
122#define IID_IDirectInput WINELIB_NAME_AW(IID_IDirectInput)
123#define IDirectInput WINELIB_NAME_AW(IDirectInput)
124DECL_WINELIB_TYPE_AW(LPDIRECTINPUT)
125#define IID_IDirectInput2 WINELIB_NAME_AW(IID_IDirectInput2)
126#define IDirectInput2 WINELIB_NAME_AW(IDirectInput2)
127DECL_WINELIB_TYPE_AW(LPDIRECTINPUT2)
128#define IID_IDirectInput7 WINELIB_NAME_AW(IID_IDirectInput7)
129#define IDirectInput7 WINELIB_NAME_AW(IDirectInput7)
130DECL_WINELIB_TYPE_AW(LPDIRECTINPUT7)
131#if DIRECTINPUT_VERSION >= 0x0800
132#define IID_IDirectInput8 WINELIB_NAME_AW(IID_IDirectInput8)
133#define IDirectInput8 WINELIB_NAME_AW(IDirectInput8)
134DECL_WINELIB_TYPE_AW(LPDIRECTINPUT8)
135#endif /* DI8 */
136#define IID_IDirectInputDevice WINELIB_NAME_AW(IID_IDirectInputDevice)
137#define IDirectInputDevice WINELIB_NAME_AW(IDirectInputDevice)
138DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE)
139#if DIRECTINPUT_VERSION >= 0x0500
140#define IID_IDirectInputDevice2 WINELIB_NAME_AW(IID_IDirectInputDevice2)
141#define IDirectInputDevice2 WINELIB_NAME_AW(IDirectInputDevice2)
142DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE2)
143#endif /* DI5 */
144#if DIRECTINPUT_VERSION >= 0x0700
145#define IID_IDirectInputDevice7 WINELIB_NAME_AW(IID_IDirectInputDevice7)
146#define IDirectInputDevice7 WINELIB_NAME_AW(IDirectInputDevice7)
147DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE7)
148#endif /* DI7 */
149#if DIRECTINPUT_VERSION >= 0x0800
150#define IID_IDirectInputDevice8 WINELIB_NAME_AW(IID_IDirectInputDevice8)
151#define IDirectInputDevice8 WINELIB_NAME_AW(IDirectInputDevice8)
152DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE8)
153#endif /* DI8 */
154
155#define DI_OK S_OK
156#define DI_NOTATTACHED S_FALSE
157#define DI_BUFFEROVERFLOW S_FALSE
158#define DI_PROPNOEFFECT S_FALSE
159#define DI_NOEFFECT S_FALSE
160#define DI_POLLEDDEVICE ((HRESULT)0x00000002L)
161#define DI_DOWNLOADSKIPPED ((HRESULT)0x00000003L)
162#define DI_EFFECTRESTARTED ((HRESULT)0x00000004L)
163#define DI_TRUNCATED ((HRESULT)0x00000008L)
164#define DI_SETTINGSNOTSAVED ((HRESULT)0x0000000BL)
165#define DI_TRUNCATEDANDRESTARTED ((HRESULT)0x0000000CL)
166#define DI_WRITEPROTECT ((HRESULT)0x00000013L)
167
168#define DIERR_OLDDIRECTINPUTVERSION \
169 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_OLD_WIN_VERSION)
170#define DIERR_BETADIRECTINPUTVERSION \
171 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_RMODE_APP)
172#define DIERR_BADDRIVERVER \
173 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_BAD_DRIVER_LEVEL)
174#define DIERR_DEVICENOTREG REGDB_E_CLASSNOTREG
175#define DIERR_NOTFOUND \
176 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND)
177#define DIERR_OBJECTNOTFOUND \
178 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND)
179#define DIERR_INVALIDPARAM E_INVALIDARG
180#define DIERR_NOINTERFACE E_NOINTERFACE
181#define DIERR_GENERIC E_FAIL
182#define DIERR_OUTOFMEMORY E_OUTOFMEMORY
183#define DIERR_UNSUPPORTED E_NOTIMPL
184#define DIERR_NOTINITIALIZED \
185 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_READY)
186#define DIERR_ALREADYINITIALIZED \
187 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_ALREADY_INITIALIZED)
188#define DIERR_NOAGGREGATION CLASS_E_NOAGGREGATION
189#define DIERR_OTHERAPPHASPRIO E_ACCESSDENIED
190#define DIERR_INPUTLOST \
191 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_READ_FAULT)
192#define DIERR_ACQUIRED \
193 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_BUSY)
194#define DIERR_NOTACQUIRED \
195 MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_INVALID_ACCESS)
196#define DIERR_READONLY E_ACCESSDENIED
197#define DIERR_HANDLEEXISTS E_ACCESSDENIED
198#ifndef E_PENDING
199#define E_PENDING 0x8000000AL
200#endif
201#define DIERR_INSUFFICIENTPRIVS 0x80040200L
202#define DIERR_DEVICEFULL 0x80040201L
203#define DIERR_MOREDATA 0x80040202L
204#define DIERR_NOTDOWNLOADED 0x80040203L
205#define DIERR_HASEFFECTS 0x80040204L
206#define DIERR_NOTEXCLUSIVEACQUIRED 0x80040205L
207#define DIERR_INCOMPLETEEFFECT 0x80040206L
208#define DIERR_NOTBUFFERED 0x80040207L
209#define DIERR_EFFECTPLAYING 0x80040208L
210#define DIERR_UNPLUGGED 0x80040209L
211#define DIERR_REPORTFULL 0x8004020AL
212#define DIERR_MAPFILEFAIL 0x8004020BL
213
214#define DIENUM_STOP 0
215#define DIENUM_CONTINUE 1
216
217#define DIEDFL_ALLDEVICES 0x00000000
218#define DIEDFL_ATTACHEDONLY 0x00000001
219#define DIEDFL_FORCEFEEDBACK 0x00000100
220#define DIEDFL_INCLUDEALIASES 0x00010000
221#define DIEDFL_INCLUDEPHANTOMS 0x00020000
222#define DIEDFL_INCLUDEHIDDEN 0x00040000
223
224#define DIDEVTYPE_DEVICE 1
225#define DIDEVTYPE_MOUSE 2
226#define DIDEVTYPE_KEYBOARD 3
227#define DIDEVTYPE_JOYSTICK 4
228#define DIDEVTYPE_HID 0x00010000
229
230#define DI8DEVCLASS_ALL 0
231#define DI8DEVCLASS_DEVICE 1
232#define DI8DEVCLASS_POINTER 2
233#define DI8DEVCLASS_KEYBOARD 3
234#define DI8DEVCLASS_GAMECTRL 4
235
236#define DI8DEVTYPE_DEVICE 0x11
237#define DI8DEVTYPE_MOUSE 0x12
238#define DI8DEVTYPE_KEYBOARD 0x13
239#define DI8DEVTYPE_JOYSTICK 0x14
240#define DI8DEVTYPE_GAMEPAD 0x15
241#define DI8DEVTYPE_DRIVING 0x16
242#define DI8DEVTYPE_FLIGHT 0x17
243#define DI8DEVTYPE_1STPERSON 0x18
244#define DI8DEVTYPE_DEVICECTRL 0x19
245#define DI8DEVTYPE_SCREENPOINTER 0x1A
246#define DI8DEVTYPE_REMOTE 0x1B
247#define DI8DEVTYPE_SUPPLEMENTAL 0x1C
248
249#define DIDEVTYPEMOUSE_UNKNOWN 1
250#define DIDEVTYPEMOUSE_TRADITIONAL 2
251#define DIDEVTYPEMOUSE_FINGERSTICK 3
252#define DIDEVTYPEMOUSE_TOUCHPAD 4
253#define DIDEVTYPEMOUSE_TRACKBALL 5
254
255#define DIDEVTYPEKEYBOARD_UNKNOWN 0
256#define DIDEVTYPEKEYBOARD_PCXT 1
257#define DIDEVTYPEKEYBOARD_OLIVETTI 2
258#define DIDEVTYPEKEYBOARD_PCAT 3
259#define DIDEVTYPEKEYBOARD_PCENH 4
260#define DIDEVTYPEKEYBOARD_NOKIA1050 5
261#define DIDEVTYPEKEYBOARD_NOKIA9140 6
262#define DIDEVTYPEKEYBOARD_NEC98 7
263#define DIDEVTYPEKEYBOARD_NEC98LAPTOP 8
264#define DIDEVTYPEKEYBOARD_NEC98106 9
265#define DIDEVTYPEKEYBOARD_JAPAN106 10
266#define DIDEVTYPEKEYBOARD_JAPANAX 11
267#define DIDEVTYPEKEYBOARD_J3100 12
268
269#define DIDEVTYPEJOYSTICK_UNKNOWN 1
270#define DIDEVTYPEJOYSTICK_TRADITIONAL 2
271#define DIDEVTYPEJOYSTICK_FLIGHTSTICK 3
272#define DIDEVTYPEJOYSTICK_GAMEPAD 4
273#define DIDEVTYPEJOYSTICK_RUDDER 5
274#define DIDEVTYPEJOYSTICK_WHEEL 6
275#define DIDEVTYPEJOYSTICK_HEADTRACKER 7
276
277#define DI8DEVTYPEMOUSE_UNKNOWN 1
278#define DI8DEVTYPEMOUSE_TRADITIONAL 2
279#define DI8DEVTYPEMOUSE_FINGERSTICK 3
280#define DI8DEVTYPEMOUSE_TOUCHPAD 4
281#define DI8DEVTYPEMOUSE_TRACKBALL 5
282#define DI8DEVTYPEMOUSE_ABSOLUTE 6
283
284#define DI8DEVTYPEKEYBOARD_UNKNOWN 0
285#define DI8DEVTYPEKEYBOARD_PCXT 1
286#define DI8DEVTYPEKEYBOARD_OLIVETTI 2
287#define DI8DEVTYPEKEYBOARD_PCAT 3
288#define DI8DEVTYPEKEYBOARD_PCENH 4
289#define DI8DEVTYPEKEYBOARD_NOKIA1050 5
290#define DI8DEVTYPEKEYBOARD_NOKIA9140 6
291#define DI8DEVTYPEKEYBOARD_NEC98 7
292#define DI8DEVTYPEKEYBOARD_NEC98LAPTOP 8
293#define DI8DEVTYPEKEYBOARD_NEC98106 9
294#define DI8DEVTYPEKEYBOARD_JAPAN106 10
295#define DI8DEVTYPEKEYBOARD_JAPANAX 11
296#define DI8DEVTYPEKEYBOARD_J3100 12
297
298#define DI8DEVTYPE_LIMITEDGAMESUBTYPE 1
299
300#define DI8DEVTYPEJOYSTICK_LIMITED DI8DEVTYPE_LIMITEDGAMESUBTYPE
301#define DI8DEVTYPEJOYSTICK_STANDARD 2
302
303#define DI8DEVTYPEGAMEPAD_LIMITED DI8DEVTYPE_LIMITEDGAMESUBTYPE
304#define DI8DEVTYPEGAMEPAD_STANDARD 2
305#define DI8DEVTYPEGAMEPAD_TILT 3
306
307#define DI8DEVTYPEDRIVING_LIMITED DI8DEVTYPE_LIMITEDGAMESUBTYPE
308#define DI8DEVTYPEDRIVING_COMBINEDPEDALS 2
309#define DI8DEVTYPEDRIVING_DUALPEDALS 3
310#define DI8DEVTYPEDRIVING_THREEPEDALS 4
311#define DI8DEVTYPEDRIVING_HANDHELD 5
312
313#define DI8DEVTYPEFLIGHT_LIMITED DI8DEVTYPE_LIMITEDGAMESUBTYPE
314#define DI8DEVTYPEFLIGHT_STICK 2
315#define DI8DEVTYPEFLIGHT_YOKE 3
316#define DI8DEVTYPEFLIGHT_RC 4
317
318#define DI8DEVTYPE1STPERSON_LIMITED DI8DEVTYPE_LIMITEDGAMESUBTYPE
319#define DI8DEVTYPE1STPERSON_UNKNOWN 2
320#define DI8DEVTYPE1STPERSON_SIXDOF 3
321#define DI8DEVTYPE1STPERSON_SHOOTER 4
322
323#define DI8DEVTYPESCREENPTR_UNKNOWN 2
324#define DI8DEVTYPESCREENPTR_LIGHTGUN 3
325#define DI8DEVTYPESCREENPTR_LIGHTPEN 4
326#define DI8DEVTYPESCREENPTR_TOUCH 5
327
328#define DI8DEVTYPEREMOTE_UNKNOWN 2
329
330#define DI8DEVTYPEDEVICECTRL_UNKNOWN 2
331#define DI8DEVTYPEDEVICECTRL_COMMSSELECTION 3
332#define DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED 4
333
334#define DI8DEVTYPESUPPLEMENTAL_UNKNOWN 2
335#define DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER 3
336#define DI8DEVTYPESUPPLEMENTAL_HEADTRACKER 4
337#define DI8DEVTYPESUPPLEMENTAL_HANDTRACKER 5
338#define DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE 6
339#define DI8DEVTYPESUPPLEMENTAL_SHIFTER 7
340#define DI8DEVTYPESUPPLEMENTAL_THROTTLE 8
341#define DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE 9
342#define DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS 10
343#define DI8DEVTYPESUPPLEMENTAL_DUALPEDALS 11
344#define DI8DEVTYPESUPPLEMENTAL_THREEPEDALS 12
345#define DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS 13
346
347#define GET_DIDEVICE_TYPE(dwDevType) LOBYTE(dwDevType)
348#define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)
349
350typedef struct DIDEVICEOBJECTINSTANCE_DX3A {
351 DWORD dwSize;
352 GUID guidType;
353 DWORD dwOfs;
354 DWORD dwType;
355 DWORD dwFlags;
356 CHAR tszName[MAX_PATH];
357} DIDEVICEOBJECTINSTANCE_DX3A, *LPDIDEVICEOBJECTINSTANCE_DX3A;
358typedef const DIDEVICEOBJECTINSTANCE_DX3A *LPCDIDEVICEOBJECTINSTANCE_DX3A;
359typedef struct DIDEVICEOBJECTINSTANCE_DX3W {
360 DWORD dwSize;
361 GUID guidType;
362 DWORD dwOfs;
363 DWORD dwType;
364 DWORD dwFlags;
365 WCHAR tszName[MAX_PATH];
366} DIDEVICEOBJECTINSTANCE_DX3W, *LPDIDEVICEOBJECTINSTANCE_DX3W;
367typedef const DIDEVICEOBJECTINSTANCE_DX3W *LPCDIDEVICEOBJECTINSTANCE_DX3W;
368
369DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE_DX3)
370DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE_DX3)
371DECL_WINELIB_TYPE_AW(LPCDIDEVICEOBJECTINSTANCE_DX3)
372
373typedef struct DIDEVICEOBJECTINSTANCEA {
374 DWORD dwSize;
375 GUID guidType;
376 DWORD dwOfs;
377 DWORD dwType;
378 DWORD dwFlags;
379 CHAR tszName[MAX_PATH];
380#if(DIRECTINPUT_VERSION >= 0x0500)
381 DWORD dwFFMaxForce;
382 DWORD dwFFForceResolution;
383 WORD wCollectionNumber;
384 WORD wDesignatorIndex;
385 WORD wUsagePage;
386 WORD wUsage;
387 DWORD dwDimension;
388 WORD wExponent;
389 WORD wReserved;
390#endif /* DIRECTINPUT_VERSION >= 0x0500 */
391} DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA;
392typedef const DIDEVICEOBJECTINSTANCEA *LPCDIDEVICEOBJECTINSTANCEA;
393
394typedef struct DIDEVICEOBJECTINSTANCEW {
395 DWORD dwSize;
396 GUID guidType;
397 DWORD dwOfs;
398 DWORD dwType;
399 DWORD dwFlags;
400 WCHAR tszName[MAX_PATH];
401#if(DIRECTINPUT_VERSION >= 0x0500)
402 DWORD dwFFMaxForce;
403 DWORD dwFFForceResolution;
404 WORD wCollectionNumber;
405 WORD wDesignatorIndex;
406 WORD wUsagePage;
407 WORD wUsage;
408 DWORD dwDimension;
409 WORD wExponent;
410 WORD wReserved;
411#endif /* DIRECTINPUT_VERSION >= 0x0500 */
412} DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW;
413typedef const DIDEVICEOBJECTINSTANCEW *LPCDIDEVICEOBJECTINSTANCEW;
414
415DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE)
416DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE)
417DECL_WINELIB_TYPE_AW(LPCDIDEVICEOBJECTINSTANCE)
418
419typedef struct DIDEVICEINSTANCE_DX3A {
420 DWORD dwSize;
421 GUID guidInstance;
422 GUID guidProduct;
423 DWORD dwDevType;
424 CHAR tszInstanceName[MAX_PATH];
425 CHAR tszProductName[MAX_PATH];
426} DIDEVICEINSTANCE_DX3A, *LPDIDEVICEINSTANCE_DX3A;
427typedef const DIDEVICEINSTANCE_DX3A *LPCDIDEVICEINSTANCE_DX3A;
428typedef struct DIDEVICEINSTANCE_DX3W {
429 DWORD dwSize;
430 GUID guidInstance;
431 GUID guidProduct;
432 DWORD dwDevType;
433 WCHAR tszInstanceName[MAX_PATH];
434 WCHAR tszProductName[MAX_PATH];
435} DIDEVICEINSTANCE_DX3W, *LPDIDEVICEINSTANCE_DX3W;
436typedef const DIDEVICEINSTANCE_DX3W *LPCDIDEVICEINSTANCE_DX3W;
437
438DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE_DX3)
439DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE_DX3)
440DECL_WINELIB_TYPE_AW(LPCDIDEVICEINSTANCE_DX3)
441
442typedef struct DIDEVICEINSTANCEA {
443 DWORD dwSize;
444 GUID guidInstance;
445 GUID guidProduct;
446 DWORD dwDevType;
447 CHAR tszInstanceName[MAX_PATH];
448 CHAR tszProductName[MAX_PATH];
449#if(DIRECTINPUT_VERSION >= 0x0500)
450 GUID guidFFDriver;
451 WORD wUsagePage;
452 WORD wUsage;
453#endif /* DIRECTINPUT_VERSION >= 0x0500 */
454} DIDEVICEINSTANCEA, *LPDIDEVICEINSTANCEA;
455typedef const DIDEVICEINSTANCEA *LPCDIDEVICEINSTANCEA;
456
457typedef struct DIDEVICEINSTANCEW {
458 DWORD dwSize;
459 GUID guidInstance;
460 GUID guidProduct;
461 DWORD dwDevType;
462 WCHAR tszInstanceName[MAX_PATH];
463 WCHAR tszProductName[MAX_PATH];
464#if(DIRECTINPUT_VERSION >= 0x0500)
465 GUID guidFFDriver;
466 WORD wUsagePage;
467 WORD wUsage;
468#endif /* DIRECTINPUT_VERSION >= 0x0500 */
469} DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW;
470typedef const DIDEVICEINSTANCEW *LPCDIDEVICEINSTANCEW;
471
472DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE)
473DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE)
474DECL_WINELIB_TYPE_AW(LPCDIDEVICEINSTANCE)
475
476typedef BOOL (CALLBACK *LPDIENUMDEVICESCALLBACKA)(LPCDIDEVICEINSTANCEA,LPVOID);
477typedef BOOL (CALLBACK *LPDIENUMDEVICESCALLBACKW)(LPCDIDEVICEINSTANCEW,LPVOID);
478DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESCALLBACK)
479
480#define DIEDBS_MAPPEDPRI1 0x00000001
481#define DIEDBS_MAPPEDPRI2 0x00000002
482#define DIEDBS_RECENTDEVICE 0x00000010
483#define DIEDBS_NEWDEVICE 0x00000020
484
485#define DIEDBSFL_ATTACHEDONLY 0x00000000
486#define DIEDBSFL_THISUSER 0x00000010
487#define DIEDBSFL_FORCEFEEDBACK DIEDFL_FORCEFEEDBACK
488#define DIEDBSFL_AVAILABLEDEVICES 0x00001000
489#define DIEDBSFL_MULTIMICEKEYBOARDS 0x00002000
490#define DIEDBSFL_NONGAMINGDEVICES 0x00004000
491#define DIEDBSFL_VALID 0x00007110
492
493#if DIRECTINPUT_VERSION >= 0x0800
494typedef BOOL (CALLBACK *LPDIENUMDEVICESBYSEMANTICSCBA)(LPCDIDEVICEINSTANCEA,LPDIRECTINPUTDEVICE8A,DWORD,DWORD,LPVOID);
495typedef BOOL (CALLBACK *LPDIENUMDEVICESBYSEMANTICSCBW)(LPCDIDEVICEINSTANCEW,LPDIRECTINPUTDEVICE8W,DWORD,DWORD,LPVOID);
496DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESBYSEMANTICSCB)
497#endif
498
499typedef BOOL (CALLBACK *LPDICONFIGUREDEVICESCALLBACK)(LPUNKNOWN,LPVOID);
500
501typedef BOOL (CALLBACK *LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA,LPVOID);
502typedef BOOL (CALLBACK *LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW,LPVOID);
503DECL_WINELIB_TYPE_AW(LPDIENUMDEVICEOBJECTSCALLBACK)
504
505#if DIRECTINPUT_VERSION >= 0x0500
506typedef BOOL (CALLBACK *LPDIENUMCREATEDEFFECTOBJECTSCALLBACK)(LPDIRECTINPUTEFFECT, LPVOID);
507#endif
508
509#define DIK_ESCAPE 0x01
510#define DIK_1 0x02
511#define DIK_2 0x03
512#define DIK_3 0x04
513#define DIK_4 0x05
514#define DIK_5 0x06
515#define DIK_6 0x07
516#define DIK_7 0x08
517#define DIK_8 0x09
518#define DIK_9 0x0A
519#define DIK_0 0x0B
520#define DIK_MINUS 0x0C /* - on main keyboard */
521#define DIK_EQUALS 0x0D
522#define DIK_BACK 0x0E /* backspace */
523#define DIK_TAB 0x0F
524#define DIK_Q 0x10
525#define DIK_W 0x11
526#define DIK_E 0x12
527#define DIK_R 0x13
528#define DIK_T 0x14
529#define DIK_Y 0x15
530#define DIK_U 0x16
531#define DIK_I 0x17
532#define DIK_O 0x18
533#define DIK_P 0x19
534#define DIK_LBRACKET 0x1A
535#define DIK_RBRACKET 0x1B
536#define DIK_RETURN 0x1C /* Enter on main keyboard */
537#define DIK_LCONTROL 0x1D
538#define DIK_A 0x1E
539#define DIK_S 0x1F
540#define DIK_D 0x20
541#define DIK_F 0x21
542#define DIK_G 0x22
543#define DIK_H 0x23
544#define DIK_J 0x24
545#define DIK_K 0x25
546#define DIK_L 0x26
547#define DIK_SEMICOLON 0x27
548#define DIK_APOSTROPHE 0x28
549#define DIK_GRAVE 0x29 /* accent grave */
550#define DIK_LSHIFT 0x2A
551#define DIK_BACKSLASH 0x2B
552#define DIK_Z 0x2C
553#define DIK_X 0x2D
554#define DIK_C 0x2E
555#define DIK_V 0x2F
556#define DIK_B 0x30
557#define DIK_N 0x31
558#define DIK_M 0x32
559#define DIK_COMMA 0x33
560#define DIK_PERIOD 0x34 /* . on main keyboard */
561#define DIK_SLASH 0x35 /* / on main keyboard */
562#define DIK_RSHIFT 0x36
563#define DIK_MULTIPLY 0x37 /* * on numeric keypad */
564#define DIK_LMENU 0x38 /* left Alt */
565#define DIK_SPACE 0x39
566#define DIK_CAPITAL 0x3A
567#define DIK_F1 0x3B
568#define DIK_F2 0x3C
569#define DIK_F3 0x3D
570#define DIK_F4 0x3E
571#define DIK_F5 0x3F
572#define DIK_F6 0x40
573#define DIK_F7 0x41
574#define DIK_F8 0x42
575#define DIK_F9 0x43
576#define DIK_F10 0x44
577#define DIK_NUMLOCK 0x45
578#define DIK_SCROLL 0x46 /* Scroll Lock */
579#define DIK_NUMPAD7 0x47
580#define DIK_NUMPAD8 0x48
581#define DIK_NUMPAD9 0x49
582#define DIK_SUBTRACT 0x4A /* - on numeric keypad */
583#define DIK_NUMPAD4 0x4B
584#define DIK_NUMPAD5 0x4C
585#define DIK_NUMPAD6 0x4D
586#define DIK_ADD 0x4E /* + on numeric keypad */
587#define DIK_NUMPAD1 0x4F
588#define DIK_NUMPAD2 0x50
589#define DIK_NUMPAD3 0x51
590#define DIK_NUMPAD0 0x52
591#define DIK_DECIMAL 0x53 /* . on numeric keypad */
592#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */
593#define DIK_F11 0x57
594#define DIK_F12 0x58
595#define DIK_F13 0x64 /* (NEC PC98) */
596#define DIK_F14 0x65 /* (NEC PC98) */
597#define DIK_F15 0x66 /* (NEC PC98) */
598#define DIK_KANA 0x70 /* (Japanese keyboard) */
599#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */
600#define DIK_CONVERT 0x79 /* (Japanese keyboard) */
601#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */
602#define DIK_YEN 0x7D /* (Japanese keyboard) */
603#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */
604#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */
605#define DIK_CIRCUMFLEX 0x90 /* (Japanese keyboard) */
606#define DIK_AT 0x91 /* (NEC PC98) */
607#define DIK_COLON 0x92 /* (NEC PC98) */
608#define DIK_UNDERLINE 0x93 /* (NEC PC98) */
609#define DIK_KANJI 0x94 /* (Japanese keyboard) */
610#define DIK_STOP 0x95 /* (NEC PC98) */
611#define DIK_AX 0x96 /* (Japan AX) */
612#define DIK_UNLABELED 0x97 /* (J3100) */
613#define DIK_NEXTTRACK 0x99 /* Next Track */
614#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */
615#define DIK_RCONTROL 0x9D
616#define DIK_MUTE 0xA0 /* Mute */
617#define DIK_CALCULATOR 0xA1 /* Calculator */
618#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */
619#define DIK_MEDIASTOP 0xA4 /* Media Stop */
620#define DIK_VOLUMEDOWN 0xAE /* Volume - */
621#define DIK_VOLUMEUP 0xB0 /* Volume + */
622#define DIK_WEBHOME 0xB2 /* Web home */
623#define DIK_NUMPADCOMMA 0xB3 /* , on numeric keypad (NEC PC98) */
624#define DIK_DIVIDE 0xB5 /* / on numeric keypad */
625#define DIK_SYSRQ 0xB7
626#define DIK_RMENU 0xB8 /* right Alt */
627#define DIK_PAUSE 0xC5 /* Pause */
628#define DIK_HOME 0xC7 /* Home on arrow keypad */
629#define DIK_UP 0xC8 /* UpArrow on arrow keypad */
630#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */
631#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */
632#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */
633#define DIK_END 0xCF /* End on arrow keypad */
634#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */
635#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */
636#define DIK_INSERT 0xD2 /* Insert on arrow keypad */
637#define DIK_DELETE 0xD3 /* Delete on arrow keypad */
638#define DIK_LWIN 0xDB /* Left Windows key */
639#define DIK_RWIN 0xDC /* Right Windows key */
640#define DIK_APPS 0xDD /* AppMenu key */
641#define DIK_POWER 0xDE
642#define DIK_SLEEP 0xDF
643#define DIK_WAKE 0xE3 /* System Wake */
644#define DIK_WEBSEARCH 0xE5 /* Web Search */
645#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */
646#define DIK_WEBREFRESH 0xE7 /* Web Refresh */
647#define DIK_WEBSTOP 0xE8 /* Web Stop */
648#define DIK_WEBFORWARD 0xE9 /* Web Forward */
649#define DIK_WEBBACK 0xEA /* Web Back */
650#define DIK_MYCOMPUTER 0xEB /* My Computer */
651#define DIK_MAIL 0xEC /* Mail */
652#define DIK_MEDIASELECT 0xED /* Media Select */
653
654#define DIK_BACKSPACE DIK_BACK /* backspace */
655#define DIK_NUMPADSTAR DIK_MULTIPLY /* * on numeric keypad */
656#define DIK_LALT DIK_LMENU /* left Alt */
657#define DIK_CAPSLOCK DIK_CAPITAL /* CapsLock */
658#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */
659#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */
660#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */
661#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */
662#define DIK_RALT DIK_RMENU /* right Alt */
663#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */
664#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */
665#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */
666#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */
667#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */
668#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */
669
670#define DIDFT_ALL 0x00000000
671#define DIDFT_RELAXIS 0x00000001
672#define DIDFT_ABSAXIS 0x00000002
673#define DIDFT_AXIS 0x00000003
674#define DIDFT_PSHBUTTON 0x00000004
675#define DIDFT_TGLBUTTON 0x00000008
676#define DIDFT_BUTTON 0x0000000C
677#define DIDFT_POV 0x00000010
678#define DIDFT_COLLECTION 0x00000040
679#define DIDFT_NODATA 0x00000080
680#define DIDFT_ANYINSTANCE 0x00FFFF00
681#define DIDFT_INSTANCEMASK DIDFT_ANYINSTANCE
682#define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8)
683#define DIDFT_GETTYPE(n) LOBYTE(n)
684#define DIDFT_GETINSTANCE(n) LOWORD((n) >> 8)
685#define DIDFT_FFACTUATOR 0x01000000
686#define DIDFT_FFEFFECTTRIGGER 0x02000000
687#if DIRECTINPUT_VERSION >= 0x050a
688#define DIDFT_OUTPUT 0x10000000
689#define DIDFT_VENDORDEFINED 0x04000000
690#define DIDFT_ALIAS 0x08000000
691#endif /* DI5a */
692#ifndef DIDFT_OPTIONAL
693#define DIDFT_OPTIONAL 0x80000000
694#endif
695#define DIDFT_ENUMCOLLECTION(n) ((WORD)(n) << 8)
696#define DIDFT_NOCOLLECTION 0x00FFFF00
697
698#define DIDF_ABSAXIS 0x00000001
699#define DIDF_RELAXIS 0x00000002
700
701#define DIGDD_PEEK 0x00000001
702
703#define DISEQUENCE_COMPARE(dwSq1,cmp,dwSq2) ((int)((dwSq1) - (dwSq2)) cmp 0)
704
705typedef struct DIDEVICEOBJECTDATA_DX3 {
706 DWORD dwOfs;
707 DWORD dwData;
708 DWORD dwTimeStamp;
709 DWORD dwSequence;
710} DIDEVICEOBJECTDATA_DX3,*LPDIDEVICEOBJECTDATA_DX3;
711typedef const DIDEVICEOBJECTDATA_DX3 *LPCDIDEVICEOBJECTDATA_DX3;
712
713typedef struct DIDEVICEOBJECTDATA {
714 DWORD dwOfs;
715 DWORD dwData;
716 DWORD dwTimeStamp;
717 DWORD dwSequence;
718#if(DIRECTINPUT_VERSION >= 0x0800)
719 UINT_PTR uAppData;
720#endif /* DIRECTINPUT_VERSION >= 0x0800 */
721} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;
722typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
723
724typedef struct _DIOBJECTDATAFORMAT {
725 const GUID *pguid;
726 DWORD dwOfs;
727 DWORD dwType;
728 DWORD dwFlags;
729} DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT;
730typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;
731
732typedef struct _DIDATAFORMAT {
733 DWORD dwSize;
734 DWORD dwObjSize;
735 DWORD dwFlags;
736 DWORD dwDataSize;
737 DWORD dwNumObjs;
738 LPDIOBJECTDATAFORMAT rgodf;
739} DIDATAFORMAT, *LPDIDATAFORMAT;
740typedef const DIDATAFORMAT *LPCDIDATAFORMAT;
741
742#if DIRECTINPUT_VERSION >= 0x0500
743#define DIDOI_FFACTUATOR 0x00000001
744#define DIDOI_FFEFFECTTRIGGER 0x00000002
745#define DIDOI_POLLED 0x00008000
746#define DIDOI_ASPECTPOSITION 0x00000100
747#define DIDOI_ASPECTVELOCITY 0x00000200
748#define DIDOI_ASPECTACCEL 0x00000300
749#define DIDOI_ASPECTFORCE 0x00000400
750#define DIDOI_ASPECTMASK 0x00000F00
751#endif /* DI5 */
752#if DIRECTINPUT_VERSION >= 0x050a
753#define DIDOI_GUIDISUSAGE 0x00010000
754#endif /* DI5a */
755
756typedef struct DIPROPHEADER {
757 DWORD dwSize;
758 DWORD dwHeaderSize;
759 DWORD dwObj;
760 DWORD dwHow;
761} DIPROPHEADER,*LPDIPROPHEADER;
762typedef const DIPROPHEADER *LPCDIPROPHEADER;
763
764#define DIPH_DEVICE 0
765#define DIPH_BYOFFSET 1
766#define DIPH_BYID 2
767#if DIRECTINPUT_VERSION >= 0x050a
768#define DIPH_BYUSAGE 3
769
770#define DIMAKEUSAGEDWORD(UsagePage, Usage) (DWORD)MAKELONG(Usage, UsagePage)
771#endif /* DI5a */
772
773typedef struct DIPROPDWORD {
774 DIPROPHEADER diph;
775 DWORD dwData;
776} DIPROPDWORD, *LPDIPROPDWORD;
777typedef const DIPROPDWORD *LPCDIPROPDWORD;
778
779typedef struct DIPROPRANGE {
780 DIPROPHEADER diph;
781 LONG lMin;
782 LONG lMax;
783} DIPROPRANGE, *LPDIPROPRANGE;
784typedef const DIPROPRANGE *LPCDIPROPRANGE;
785
786#define DIPROPRANGE_NOMIN ((LONG)0x80000000)
787#define DIPROPRANGE_NOMAX ((LONG)0x7FFFFFFF)
788
789#if DIRECTINPUT_VERSION >= 0x050a
790typedef struct DIPROPCAL {
791 DIPROPHEADER diph;
792 LONG lMin;
793 LONG lCenter;
794 LONG lMax;
795} DIPROPCAL, *LPDIPROPCAL;
796typedef const DIPROPCAL *LPCDIPROPCAL;
797
798typedef struct DIPROPCALPOV {
799 DIPROPHEADER diph;
800 LONG lMin[5];
801 LONG lMax[5];
802} DIPROPCALPOV, *LPDIPROPCALPOV;
803typedef const DIPROPCALPOV *LPCDIPROPCALPOV;
804
805typedef struct DIPROPGUIDANDPATH {
806 DIPROPHEADER diph;
807 GUID guidClass;
808 WCHAR wszPath[MAX_PATH];
809} DIPROPGUIDANDPATH, *LPDIPROPGUIDANDPATH;
810typedef const DIPROPGUIDANDPATH *LPCDIPROPGUIDANDPATH;
811
812typedef struct DIPROPSTRING {
813 DIPROPHEADER diph;
814 WCHAR wsz[MAX_PATH];
815} DIPROPSTRING, *LPDIPROPSTRING;
816typedef const DIPROPSTRING *LPCDIPROPSTRING;
817#endif /* DI5a */
818
819#if DIRECTINPUT_VERSION >= 0x0800
820typedef struct DIPROPPOINTER {
821 DIPROPHEADER diph;
822 UINT_PTR uData;
823} DIPROPPOINTER, *LPDIPROPPOINTER;
824typedef const DIPROPPOINTER *LPCDIPROPPOINTER;
825#endif /* DI8 */
826
827/* special property GUIDs */
828#ifdef __cplusplus
829#define MAKEDIPROP(prop) (*(const GUID *)(prop))
830#else
831#define MAKEDIPROP(prop) ((REFGUID)(prop))
832#endif
833#define DIPROP_BUFFERSIZE MAKEDIPROP(1)
834#define DIPROP_AXISMODE MAKEDIPROP(2)
835
836#define DIPROPAXISMODE_ABS 0
837#define DIPROPAXISMODE_REL 1
838
839#define DIPROP_GRANULARITY MAKEDIPROP(3)
840#define DIPROP_RANGE MAKEDIPROP(4)
841#define DIPROP_DEADZONE MAKEDIPROP(5)
842#define DIPROP_SATURATION MAKEDIPROP(6)
843#define DIPROP_FFGAIN MAKEDIPROP(7)
844#define DIPROP_FFLOAD MAKEDIPROP(8)
845#define DIPROP_AUTOCENTER MAKEDIPROP(9)
846
847#define DIPROPAUTOCENTER_OFF 0
848#define DIPROPAUTOCENTER_ON 1
849
850#define DIPROP_CALIBRATIONMODE MAKEDIPROP(10)
851
852#define DIPROPCALIBRATIONMODE_COOKED 0
853#define DIPROPCALIBRATIONMODE_RAW 1
854
855#if DIRECTINPUT_VERSION >= 0x050a
856#define DIPROP_CALIBRATION MAKEDIPROP(11)
857#define DIPROP_GUIDANDPATH MAKEDIPROP(12)
858#define DIPROP_INSTANCENAME MAKEDIPROP(13)
859#define DIPROP_PRODUCTNAME MAKEDIPROP(14)
860#endif
861
862#if DIRECTINPUT_VERSION >= 0x5B2
863#define DIPROP_JOYSTICKID MAKEDIPROP(15)
864#define DIPROP_GETPORTDISPLAYNAME MAKEDIPROP(16)
865#endif
866
867#if DIRECTINPUT_VERSION >= 0x0700
868#define DIPROP_PHYSICALRANGE MAKEDIPROP(18)
869#define DIPROP_LOGICALRANGE MAKEDIPROP(19)
870#endif
871
872#if(DIRECTINPUT_VERSION >= 0x0800)
873#define DIPROP_KEYNAME MAKEDIPROP(20)
874#define DIPROP_CPOINTS MAKEDIPROP(21)
875#define DIPROP_APPDATA MAKEDIPROP(22)
876#define DIPROP_SCANCODE MAKEDIPROP(23)
877#define DIPROP_VIDPID MAKEDIPROP(24)
878#define DIPROP_USERNAME MAKEDIPROP(25)
879#define DIPROP_TYPENAME MAKEDIPROP(26)
880
881#define MAXCPOINTSNUM 8
882
883typedef struct _CPOINT {
884 LONG lP;
885 DWORD dwLog;
886} CPOINT, *PCPOINT;
887
888typedef struct DIPROPCPOINTS {
889 DIPROPHEADER diph;
890 DWORD dwCPointsNum;
891 CPOINT cp[MAXCPOINTSNUM];
892} DIPROPCPOINTS, *LPDIPROPCPOINTS;
893typedef const DIPROPCPOINTS *LPCDIPROPCPOINTS;
894#endif /* DI8 */
895
896
897typedef struct DIDEVCAPS_DX3 {
898 DWORD dwSize;
899 DWORD dwFlags;
900 DWORD dwDevType;
901 DWORD dwAxes;
902 DWORD dwButtons;
903 DWORD dwPOVs;
904} DIDEVCAPS_DX3, *LPDIDEVCAPS_DX3;
905
906typedef struct DIDEVCAPS {
907 DWORD dwSize;
908 DWORD dwFlags;
909 DWORD dwDevType;
910 DWORD dwAxes;
911 DWORD dwButtons;
912 DWORD dwPOVs;
913#if(DIRECTINPUT_VERSION >= 0x0500)
914 DWORD dwFFSamplePeriod;
915 DWORD dwFFMinTimeResolution;
916 DWORD dwFirmwareRevision;
917 DWORD dwHardwareRevision;
918 DWORD dwFFDriverVersion;
919#endif /* DIRECTINPUT_VERSION >= 0x0500 */
920} DIDEVCAPS,*LPDIDEVCAPS;
921
922#define DIDC_ATTACHED 0x00000001
923#define DIDC_POLLEDDEVICE 0x00000002
924#define DIDC_EMULATED 0x00000004
925#define DIDC_POLLEDDATAFORMAT 0x00000008
926#define DIDC_FORCEFEEDBACK 0x00000100
927#define DIDC_FFATTACK 0x00000200
928#define DIDC_FFFADE 0x00000400
929#define DIDC_SATURATION 0x00000800
930#define DIDC_POSNEGCOEFFICIENTS 0x00001000
931#define DIDC_POSNEGSATURATION 0x00002000
932#define DIDC_DEADBAND 0x00004000
933#define DIDC_STARTDELAY 0x00008000
934#define DIDC_ALIAS 0x00010000
935#define DIDC_PHANTOM 0x00020000
936#define DIDC_HIDDEN 0x00040000
937
938
939/* SetCooperativeLevel dwFlags */
940#define DISCL_EXCLUSIVE 0x00000001
941#define DISCL_NONEXCLUSIVE 0x00000002
942#define DISCL_FOREGROUND 0x00000004
943#define DISCL_BACKGROUND 0x00000008
944#define DISCL_NOWINKEY 0x00000010
945
946#if (DIRECTINPUT_VERSION >= 0x0500)
947/* Device FF flags */
948#define DISFFC_RESET 0x00000001
949#define DISFFC_STOPALL 0x00000002
950#define DISFFC_PAUSE 0x00000004
951#define DISFFC_CONTINUE 0x00000008
952#define DISFFC_SETACTUATORSON 0x00000010
953#define DISFFC_SETACTUATORSOFF 0x00000020
954
955#define DIGFFS_EMPTY 0x00000001
956#define DIGFFS_STOPPED 0x00000002
957#define DIGFFS_PAUSED 0x00000004
958#define DIGFFS_ACTUATORSON 0x00000010
959#define DIGFFS_ACTUATORSOFF 0x00000020
960#define DIGFFS_POWERON 0x00000040
961#define DIGFFS_POWEROFF 0x00000080
962#define DIGFFS_SAFETYSWITCHON 0x00000100
963#define DIGFFS_SAFETYSWITCHOFF 0x00000200
964#define DIGFFS_USERFFSWITCHON 0x00000400
965#define DIGFFS_USERFFSWITCHOFF 0x00000800
966#define DIGFFS_DEVICELOST 0x80000000
967
968/* Effect flags */
969#define DIEFT_ALL 0x00000000
970
971#define DIEFT_CONSTANTFORCE 0x00000001
972#define DIEFT_RAMPFORCE 0x00000002
973#define DIEFT_PERIODIC 0x00000003
974#define DIEFT_CONDITION 0x00000004
975#define DIEFT_CUSTOMFORCE 0x00000005
976#define DIEFT_HARDWARE 0x000000FF
977#define DIEFT_FFATTACK 0x00000200
978#define DIEFT_FFFADE 0x00000400
979#define DIEFT_SATURATION 0x00000800
980#define DIEFT_POSNEGCOEFFICIENTS 0x00001000
981#define DIEFT_POSNEGSATURATION 0x00002000
982#define DIEFT_DEADBAND 0x00004000
983#define DIEFT_STARTDELAY 0x00008000
984#define DIEFT_GETTYPE(n) LOBYTE(n)
985
986#define DIEFF_OBJECTIDS 0x00000001
987#define DIEFF_OBJECTOFFSETS 0x00000002
988#define DIEFF_CARTESIAN 0x00000010
989#define DIEFF_POLAR 0x00000020
990#define DIEFF_SPHERICAL 0x00000040
991
992#define DIEP_DURATION 0x00000001
993#define DIEP_SAMPLEPERIOD 0x00000002
994#define DIEP_GAIN 0x00000004
995#define DIEP_TRIGGERBUTTON 0x00000008
996#define DIEP_TRIGGERREPEATINTERVAL 0x00000010
997#define DIEP_AXES 0x00000020
998#define DIEP_DIRECTION 0x00000040
999#define DIEP_ENVELOPE 0x00000080
1000#define DIEP_TYPESPECIFICPARAMS 0x00000100
1001#if(DIRECTINPUT_VERSION >= 0x0600)
1002#define DIEP_STARTDELAY 0x00000200
1003#define DIEP_ALLPARAMS_DX5 0x000001FF
1004#define DIEP_ALLPARAMS 0x000003FF
1005#else
1006#define DIEP_ALLPARAMS 0x000001FF
1007#endif /* DIRECTINPUT_VERSION >= 0x0600 */
1008#define DIEP_START 0x20000000
1009#define DIEP_NORESTART 0x40000000
1010#define DIEP_NODOWNLOAD 0x80000000
1011#define DIEB_NOTRIGGER 0xFFFFFFFF
1012
1013#define DIES_SOLO 0x00000001
1014#define DIES_NODOWNLOAD 0x80000000
1015
1016#define DIEGES_PLAYING 0x00000001
1017#define DIEGES_EMULATED 0x00000002
1018
1019#define DI_DEGREES 100
1020#define DI_FFNOMINALMAX 10000
1021#define DI_SECONDS 1000000
1022
1023typedef struct DICONSTANTFORCE {
1024 LONG lMagnitude;
1025} DICONSTANTFORCE, *LPDICONSTANTFORCE;
1026typedef const DICONSTANTFORCE *LPCDICONSTANTFORCE;
1027
1028typedef struct DIRAMPFORCE {
1029 LONG lStart;
1030 LONG lEnd;
1031} DIRAMPFORCE, *LPDIRAMPFORCE;
1032typedef const DIRAMPFORCE *LPCDIRAMPFORCE;
1033
1034typedef struct DIPERIODIC {
1035 DWORD dwMagnitude;
1036 LONG lOffset;
1037 DWORD dwPhase;
1038 DWORD dwPeriod;
1039} DIPERIODIC, *LPDIPERIODIC;
1040typedef const DIPERIODIC *LPCDIPERIODIC;
1041
1042typedef struct DICONDITION {
1043 LONG lOffset;
1044 LONG lPositiveCoefficient;
1045 LONG lNegativeCoefficient;
1046 DWORD dwPositiveSaturation;
1047 DWORD dwNegativeSaturation;
1048 LONG lDeadBand;
1049} DICONDITION, *LPDICONDITION;
1050typedef const DICONDITION *LPCDICONDITION;
1051
1052typedef struct DICUSTOMFORCE {
1053 DWORD cChannels;
1054 DWORD dwSamplePeriod;
1055 DWORD cSamples;
1056 LPLONG rglForceData;
1057} DICUSTOMFORCE, *LPDICUSTOMFORCE;
1058typedef const DICUSTOMFORCE *LPCDICUSTOMFORCE;
1059
1060typedef struct DIENVELOPE {
1061 DWORD dwSize;
1062 DWORD dwAttackLevel;
1063 DWORD dwAttackTime;
1064 DWORD dwFadeLevel;
1065 DWORD dwFadeTime;
1066} DIENVELOPE, *LPDIENVELOPE;
1067typedef const DIENVELOPE *LPCDIENVELOPE;
1068
1069typedef struct DIEFFECT_DX5 {
1070 DWORD dwSize;
1071 DWORD dwFlags;
1072 DWORD dwDuration;
1073 DWORD dwSamplePeriod;
1074 DWORD dwGain;
1075 DWORD dwTriggerButton;
1076 DWORD dwTriggerRepeatInterval;
1077 DWORD cAxes;
1078 LPDWORD rgdwAxes;
1079 LPLONG rglDirection;
1080 LPDIENVELOPE lpEnvelope;
1081 DWORD cbTypeSpecificParams;
1082 LPVOID lpvTypeSpecificParams;
1083} DIEFFECT_DX5, *LPDIEFFECT_DX5;
1084typedef const DIEFFECT_DX5 *LPCDIEFFECT_DX5;
1085
1086typedef struct DIEFFECT {
1087 DWORD dwSize;
1088 DWORD dwFlags;
1089 DWORD dwDuration;
1090 DWORD dwSamplePeriod;
1091 DWORD dwGain;
1092 DWORD dwTriggerButton;
1093 DWORD dwTriggerRepeatInterval;
1094 DWORD cAxes;
1095 LPDWORD rgdwAxes;
1096 LPLONG rglDirection;
1097 LPDIENVELOPE lpEnvelope;
1098 DWORD cbTypeSpecificParams;
1099 LPVOID lpvTypeSpecificParams;
1100#if(DIRECTINPUT_VERSION >= 0x0600)
1101 DWORD dwStartDelay;
1102#endif /* DIRECTINPUT_VERSION >= 0x0600 */
1103} DIEFFECT, *LPDIEFFECT;
1104typedef const DIEFFECT *LPCDIEFFECT;
1105typedef DIEFFECT DIEFFECT_DX6;
1106typedef LPDIEFFECT LPDIEFFECT_DX6;
1107
1108typedef struct DIEFFECTINFOA {
1109 DWORD dwSize;
1110 GUID guid;
1111 DWORD dwEffType;
1112 DWORD dwStaticParams;
1113 DWORD dwDynamicParams;
1114 CHAR tszName[MAX_PATH];
1115} DIEFFECTINFOA, *LPDIEFFECTINFOA;
1116typedef const DIEFFECTINFOA *LPCDIEFFECTINFOA;
1117
1118typedef struct DIEFFECTINFOW {
1119 DWORD dwSize;
1120 GUID guid;
1121 DWORD dwEffType;
1122 DWORD dwStaticParams;
1123 DWORD dwDynamicParams;
1124 WCHAR tszName[MAX_PATH];
1125} DIEFFECTINFOW, *LPDIEFFECTINFOW;
1126typedef const DIEFFECTINFOW *LPCDIEFFECTINFOW;
1127
1128DECL_WINELIB_TYPE_AW(DIEFFECTINFO)
1129DECL_WINELIB_TYPE_AW(LPDIEFFECTINFO)
1130DECL_WINELIB_TYPE_AW(LPCDIEFFECTINFO)
1131
1132typedef BOOL (CALLBACK *LPDIENUMEFFECTSCALLBACKA)(LPCDIEFFECTINFOA, LPVOID);
1133typedef BOOL (CALLBACK *LPDIENUMEFFECTSCALLBACKW)(LPCDIEFFECTINFOW, LPVOID);
1134
1135typedef struct DIEFFESCAPE {
1136 DWORD dwSize;
1137 DWORD dwCommand;
1138 LPVOID lpvInBuffer;
1139 DWORD cbInBuffer;
1140 LPVOID lpvOutBuffer;
1141 DWORD cbOutBuffer;
1142} DIEFFESCAPE, *LPDIEFFESCAPE;
1143
1144typedef struct DIJOYSTATE {
1145 LONG lX;
1146 LONG lY;
1147 LONG lZ;
1148 LONG lRx;
1149 LONG lRy;
1150 LONG lRz;
1151 LONG rglSlider[2];
1152 DWORD rgdwPOV[4];
1153 BYTE rgbButtons[32];
1154} DIJOYSTATE, *LPDIJOYSTATE;
1155
1156typedef struct DIJOYSTATE2 {
1157 LONG lX;
1158 LONG lY;
1159 LONG lZ;
1160 LONG lRx;
1161 LONG lRy;
1162 LONG lRz;
1163 LONG rglSlider[2];
1164 DWORD rgdwPOV[4];
1165 BYTE rgbButtons[128];
1166 LONG lVX; /* 'v' as in velocity */
1167 LONG lVY;
1168 LONG lVZ;
1169 LONG lVRx;
1170 LONG lVRy;
1171 LONG lVRz;
1172 LONG rglVSlider[2];
1173 LONG lAX; /* 'a' as in acceleration */
1174 LONG lAY;
1175 LONG lAZ;
1176 LONG lARx;
1177 LONG lARy;
1178 LONG lARz;
1179 LONG rglASlider[2];
1180 LONG lFX; /* 'f' as in force */
1181 LONG lFY;
1182 LONG lFZ;
1183 LONG lFRx; /* 'fr' as in rotational force aka torque */
1184 LONG lFRy;
1185 LONG lFRz;
1186 LONG rglFSlider[2];
1187} DIJOYSTATE2, *LPDIJOYSTATE2;
1188
1189#define DIJOFS_X FIELD_OFFSET(DIJOYSTATE, lX)
1190#define DIJOFS_Y FIELD_OFFSET(DIJOYSTATE, lY)
1191#define DIJOFS_Z FIELD_OFFSET(DIJOYSTATE, lZ)
1192#define DIJOFS_RX FIELD_OFFSET(DIJOYSTATE, lRx)
1193#define DIJOFS_RY FIELD_OFFSET(DIJOYSTATE, lRy)
1194#define DIJOFS_RZ FIELD_OFFSET(DIJOYSTATE, lRz)
1195#define DIJOFS_SLIDER(n) (FIELD_OFFSET(DIJOYSTATE, rglSlider) + \
1196 (n) * sizeof(LONG))
1197#define DIJOFS_POV(n) (FIELD_OFFSET(DIJOYSTATE, rgdwPOV) + \
1198 (n) * sizeof(DWORD))
1199#define DIJOFS_BUTTON(n) (FIELD_OFFSET(DIJOYSTATE, rgbButtons) + (n))
1200#define DIJOFS_BUTTON0 DIJOFS_BUTTON(0)
1201#define DIJOFS_BUTTON1 DIJOFS_BUTTON(1)
1202#define DIJOFS_BUTTON2 DIJOFS_BUTTON(2)
1203#define DIJOFS_BUTTON3 DIJOFS_BUTTON(3)
1204#define DIJOFS_BUTTON4 DIJOFS_BUTTON(4)
1205#define DIJOFS_BUTTON5 DIJOFS_BUTTON(5)
1206#define DIJOFS_BUTTON6 DIJOFS_BUTTON(6)
1207#define DIJOFS_BUTTON7 DIJOFS_BUTTON(7)
1208#define DIJOFS_BUTTON8 DIJOFS_BUTTON(8)
1209#define DIJOFS_BUTTON9 DIJOFS_BUTTON(9)
1210#define DIJOFS_BUTTON10 DIJOFS_BUTTON(10)
1211#define DIJOFS_BUTTON11 DIJOFS_BUTTON(11)
1212#define DIJOFS_BUTTON12 DIJOFS_BUTTON(12)
1213#define DIJOFS_BUTTON13 DIJOFS_BUTTON(13)
1214#define DIJOFS_BUTTON14 DIJOFS_BUTTON(14)
1215#define DIJOFS_BUTTON15 DIJOFS_BUTTON(15)
1216#define DIJOFS_BUTTON16 DIJOFS_BUTTON(16)
1217#define DIJOFS_BUTTON17 DIJOFS_BUTTON(17)
1218#define DIJOFS_BUTTON18 DIJOFS_BUTTON(18)
1219#define DIJOFS_BUTTON19 DIJOFS_BUTTON(19)
1220#define DIJOFS_BUTTON20 DIJOFS_BUTTON(20)
1221#define DIJOFS_BUTTON21 DIJOFS_BUTTON(21)
1222#define DIJOFS_BUTTON22 DIJOFS_BUTTON(22)
1223#define DIJOFS_BUTTON23 DIJOFS_BUTTON(23)
1224#define DIJOFS_BUTTON24 DIJOFS_BUTTON(24)
1225#define DIJOFS_BUTTON25 DIJOFS_BUTTON(25)
1226#define DIJOFS_BUTTON26 DIJOFS_BUTTON(26)
1227#define DIJOFS_BUTTON27 DIJOFS_BUTTON(27)
1228#define DIJOFS_BUTTON28 DIJOFS_BUTTON(28)
1229#define DIJOFS_BUTTON29 DIJOFS_BUTTON(29)
1230#define DIJOFS_BUTTON30 DIJOFS_BUTTON(30)
1231#define DIJOFS_BUTTON31 DIJOFS_BUTTON(31)
1232#endif /* DIRECTINPUT_VERSION >= 0x0500 */
1233
1234/* DInput 7 structures, types */
1235#if(DIRECTINPUT_VERSION >= 0x0700)
1236typedef struct DIFILEEFFECT {
1237 DWORD dwSize;
1238 GUID GuidEffect;
1239 LPCDIEFFECT lpDiEffect;
1240 CHAR szFriendlyName[MAX_PATH];
1241} DIFILEEFFECT, *LPDIFILEEFFECT;
1242
1243typedef const DIFILEEFFECT *LPCDIFILEEFFECT;
1244typedef BOOL (CALLBACK *LPDIENUMEFFECTSINFILECALLBACK)(LPCDIFILEEFFECT , LPVOID);
1245#endif /* DIRECTINPUT_VERSION >= 0x0700 */
1246
1247/* DInput 8 structures and types */
1248#if DIRECTINPUT_VERSION >= 0x0800
1249typedef struct _DIACTIONA {
1250 UINT_PTR uAppData;
1251 DWORD dwSemantic;
1252 DWORD dwFlags;
1253 __GNU_EXTENSION union {
1254 LPCSTR lptszActionName;
1255 UINT uResIdString;
1256 } DUMMYUNIONNAME;
1257 GUID guidInstance;
1258 DWORD dwObjID;
1259 DWORD dwHow;
1260} DIACTIONA, *LPDIACTIONA;
1261typedef const DIACTIONA *LPCDIACTIONA;
1262
1263typedef struct _DIACTIONW {
1264 UINT_PTR uAppData;
1265 DWORD dwSemantic;
1266 DWORD dwFlags;
1267 __GNU_EXTENSION union {
1268 LPCWSTR lptszActionName;
1269 UINT uResIdString;
1270 } DUMMYUNIONNAME;
1271 GUID guidInstance;
1272 DWORD dwObjID;
1273 DWORD dwHow;
1274} DIACTIONW, *LPDIACTIONW;
1275typedef const DIACTIONW *LPCDIACTIONW;
1276
1277DECL_WINELIB_TYPE_AW(DIACTION)
1278DECL_WINELIB_TYPE_AW(LPDIACTION)
1279DECL_WINELIB_TYPE_AW(LPCDIACTION)
1280
1281#define DIA_FORCEFEEDBACK 0x00000001
1282#define DIA_APPMAPPED 0x00000002
1283#define DIA_APPNOMAP 0x00000004
1284#define DIA_NORANGE 0x00000008
1285#define DIA_APPFIXED 0x00000010
1286
1287#define DIAH_UNMAPPED 0x00000000
1288#define DIAH_USERCONFIG 0x00000001
1289#define DIAH_APPREQUESTED 0x00000002
1290#define DIAH_HWAPP 0x00000004
1291#define DIAH_HWDEFAULT 0x00000008
1292#define DIAH_DEFAULT 0x00000020
1293#define DIAH_ERROR 0x80000000
1294
1295typedef struct _DIACTIONFORMATA {
1296 DWORD dwSize;
1297 DWORD dwActionSize;
1298 DWORD dwDataSize;
1299 DWORD dwNumActions;
1300 LPDIACTIONA rgoAction;
1301 GUID guidActionMap;
1302 DWORD dwGenre;
1303 DWORD dwBufferSize;
1304 LONG lAxisMin;
1305 LONG lAxisMax;
1306 HINSTANCE hInstString;
1307 FILETIME ftTimeStamp;
1308 DWORD dwCRC;
1309 CHAR tszActionMap[MAX_PATH];
1310} DIACTIONFORMATA, *LPDIACTIONFORMATA;
1311typedef const DIACTIONFORMATA *LPCDIACTIONFORMATA;
1312
1313typedef struct _DIACTIONFORMATW {
1314 DWORD dwSize;
1315 DWORD dwActionSize;
1316 DWORD dwDataSize;
1317 DWORD dwNumActions;
1318 LPDIACTIONW rgoAction;
1319 GUID guidActionMap;
1320 DWORD dwGenre;
1321 DWORD dwBufferSize;
1322 LONG lAxisMin;
1323 LONG lAxisMax;
1324 HINSTANCE hInstString;
1325 FILETIME ftTimeStamp;
1326 DWORD dwCRC;
1327 WCHAR tszActionMap[MAX_PATH];
1328} DIACTIONFORMATW, *LPDIACTIONFORMATW;
1329typedef const DIACTIONFORMATW *LPCDIACTIONFORMATW;
1330
1331DECL_WINELIB_TYPE_AW(DIACTIONFORMAT)
1332DECL_WINELIB_TYPE_AW(LPDIACTIONFORMAT)
1333DECL_WINELIB_TYPE_AW(LPCDIACTIONFORMAT)
1334
1335#define DIAFTS_NEWDEVICELOW 0xFFFFFFFF
1336#define DIAFTS_NEWDEVICEHIGH 0xFFFFFFFF
1337#define DIAFTS_UNUSEDDEVICELOW 0x00000000
1338#define DIAFTS_UNUSEDDEVICEHIGH 0x00000000
1339
1340#define DIDBAM_DEFAULT 0x00000000
1341#define DIDBAM_PRESERVE 0x00000001
1342#define DIDBAM_INITIALIZE 0x00000002
1343#define DIDBAM_HWDEFAULTS 0x00000004
1344
1345#define DIDSAM_DEFAULT 0x00000000
1346#define DIDSAM_NOUSER 0x00000001
1347#define DIDSAM_FORCESAVE 0x00000002
1348
1349#define DICD_DEFAULT 0x00000000
1350#define DICD_EDIT 0x00000001
1351
1352#ifndef D3DCOLOR_DEFINED
1353typedef DWORD D3DCOLOR;
1354#define D3DCOLOR_DEFINED
1355#endif
1356
1357typedef struct _DICOLORSET {
1358 DWORD dwSize;
1359 D3DCOLOR cTextFore;
1360 D3DCOLOR cTextHighlight;
1361 D3DCOLOR cCalloutLine;
1362 D3DCOLOR cCalloutHighlight;
1363 D3DCOLOR cBorder;
1364 D3DCOLOR cControlFill;
1365 D3DCOLOR cHighlightFill;
1366 D3DCOLOR cAreaFill;
1367} DICOLORSET, *LPDICOLORSET;
1368typedef const DICOLORSET *LPCDICOLORSET;
1369
1370typedef struct _DICONFIGUREDEVICESPARAMSA {
1371 DWORD dwSize;
1372 DWORD dwcUsers;
1373 LPSTR lptszUserNames;
1374 DWORD dwcFormats;
1375 LPDIACTIONFORMATA lprgFormats;
1376 HWND hwnd;
1377 DICOLORSET dics;
1378 LPUNKNOWN lpUnkDDSTarget;
1379} DICONFIGUREDEVICESPARAMSA, *LPDICONFIGUREDEVICESPARAMSA;
1380typedef const DICONFIGUREDEVICESPARAMSA *LPCDICONFIGUREDEVICESPARAMSA;
1381
1382typedef struct _DICONFIGUREDEVICESPARAMSW {
1383 DWORD dwSize;
1384 DWORD dwcUsers;
1385 LPWSTR lptszUserNames;
1386 DWORD dwcFormats;
1387 LPDIACTIONFORMATW lprgFormats;
1388 HWND hwnd;
1389 DICOLORSET dics;
1390 LPUNKNOWN lpUnkDDSTarget;
1391} DICONFIGUREDEVICESPARAMSW, *LPDICONFIGUREDEVICESPARAMSW;
1392typedef const DICONFIGUREDEVICESPARAMSW *LPCDICONFIGUREDEVICESPARAMSW;
1393
1394DECL_WINELIB_TYPE_AW(DICONFIGUREDEVICESPARAMS)
1395DECL_WINELIB_TYPE_AW(LPDICONFIGUREDEVICESPARAMS)
1396DECL_WINELIB_TYPE_AW(LPCDICONFIGUREDEVICESPARAMS)
1397
1398#define DIDIFT_CONFIGURATION 0x00000001
1399#define DIDIFT_OVERLAY 0x00000002
1400
1401#define DIDAL_CENTERED 0x00000000
1402#define DIDAL_LEFTALIGNED 0x00000001
1403#define DIDAL_RIGHTALIGNED 0x00000002
1404#define DIDAL_MIDDLE 0x00000000
1405#define DIDAL_TOPALIGNED 0x00000004
1406#define DIDAL_BOTTOMALIGNED 0x00000008
1407
1408typedef struct _DIDEVICEIMAGEINFOA {
1409 CHAR tszImagePath[MAX_PATH];
1410 DWORD dwFlags;
1411 DWORD dwViewID;
1412 RECT rcOverlay;
1413 DWORD dwObjID;
1414 DWORD dwcValidPts;
1415 POINT rgptCalloutLine[5];
1416 RECT rcCalloutRect;
1417 DWORD dwTextAlign;
1418} DIDEVICEIMAGEINFOA, *LPDIDEVICEIMAGEINFOA;
1419typedef const DIDEVICEIMAGEINFOA *LPCDIDEVICEIMAGEINFOA;
1420
1421typedef struct _DIDEVICEIMAGEINFOW {
1422 WCHAR tszImagePath[MAX_PATH];
1423 DWORD dwFlags;
1424 DWORD dwViewID;
1425 RECT rcOverlay;
1426 DWORD dwObjID;
1427 DWORD dwcValidPts;
1428 POINT rgptCalloutLine[5];
1429 RECT rcCalloutRect;
1430 DWORD dwTextAlign;
1431} DIDEVICEIMAGEINFOW, *LPDIDEVICEIMAGEINFOW;
1432typedef const DIDEVICEIMAGEINFOW *LPCDIDEVICEIMAGEINFOW;
1433
1434DECL_WINELIB_TYPE_AW(DIDEVICEIMAGEINFO)
1435DECL_WINELIB_TYPE_AW(LPDIDEVICEIMAGEINFO)
1436DECL_WINELIB_TYPE_AW(LPCDIDEVICEIMAGEINFO)
1437
1438typedef struct _DIDEVICEIMAGEINFOHEADERA {
1439 DWORD dwSize;
1440 DWORD dwSizeImageInfo;
1441 DWORD dwcViews;
1442 DWORD dwcButtons;
1443 DWORD dwcAxes;
1444 DWORD dwcPOVs;
1445 DWORD dwBufferSize;
1446 DWORD dwBufferUsed;
1447 LPDIDEVICEIMAGEINFOA lprgImageInfoArray;
1448} DIDEVICEIMAGEINFOHEADERA, *LPDIDEVICEIMAGEINFOHEADERA;
1449typedef const DIDEVICEIMAGEINFOHEADERA *LPCDIDEVICEIMAGEINFOHEADERA;
1450
1451typedef struct _DIDEVICEIMAGEINFOHEADERW {
1452 DWORD dwSize;
1453 DWORD dwSizeImageInfo;
1454 DWORD dwcViews;
1455 DWORD dwcButtons;
1456 DWORD dwcAxes;
1457 DWORD dwcPOVs;
1458 DWORD dwBufferSize;
1459 DWORD dwBufferUsed;
1460 LPDIDEVICEIMAGEINFOW lprgImageInfoArray;
1461} DIDEVICEIMAGEINFOHEADERW, *LPDIDEVICEIMAGEINFOHEADERW;
1462typedef const DIDEVICEIMAGEINFOHEADERW *LPCDIDEVICEIMAGEINFOHEADERW;
1463
1464DECL_WINELIB_TYPE_AW(DIDEVICEIMAGEINFOHEADER)
1465DECL_WINELIB_TYPE_AW(LPDIDEVICEIMAGEINFOHEADER)
1466DECL_WINELIB_TYPE_AW(LPCDIDEVICEIMAGEINFOHEADER)
1467
1468#endif /* DI8 */
1469
1470
1471/*****************************************************************************
1472 * IDirectInputEffect interface
1473 */
1474#if (DIRECTINPUT_VERSION >= 0x0500)
1475#undef INTERFACE
1476#define INTERFACE IDirectInputEffect
1477DECLARE_INTERFACE_(IDirectInputEffect,IUnknown)
1478{
1479 /*** IUnknown methods ***/
1480 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1481 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1482 STDMETHOD_(ULONG,Release)(THIS) PURE;
1483 /*** IDirectInputEffect methods ***/
1484 STDMETHOD(Initialize)(THIS_ HINSTANCE, DWORD, REFGUID) PURE;
1485 STDMETHOD(GetEffectGuid)(THIS_ LPGUID) PURE;
1486 STDMETHOD(GetParameters)(THIS_ LPDIEFFECT, DWORD) PURE;
1487 STDMETHOD(SetParameters)(THIS_ LPCDIEFFECT, DWORD) PURE;
1488 STDMETHOD(Start)(THIS_ DWORD, DWORD) PURE;
1489 STDMETHOD(Stop)(THIS) PURE;
1490 STDMETHOD(GetEffectStatus)(THIS_ LPDWORD) PURE;
1491 STDMETHOD(Download)(THIS) PURE;
1492 STDMETHOD(Unload)(THIS) PURE;
1493 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
1494};
1495
1496#if !defined(__cplusplus) || defined(CINTERFACE)
1497/*** IUnknown methods ***/
1498#define IDirectInputEffect_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1499#define IDirectInputEffect_AddRef(p) (p)->lpVtbl->AddRef(p)
1500#define IDirectInputEffect_Release(p) (p)->lpVtbl->Release(p)
1501/*** IDirectInputEffect methods ***/
1502#define IDirectInputEffect_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
1503#define IDirectInputEffect_GetEffectGuid(p,a) (p)->lpVtbl->GetEffectGuid(p,a)
1504#define IDirectInputEffect_GetParameters(p,a,b) (p)->lpVtbl->GetParameters(p,a,b)
1505#define IDirectInputEffect_SetParameters(p,a,b) (p)->lpVtbl->SetParameters(p,a,b)
1506#define IDirectInputEffect_Start(p,a,b) (p)->lpVtbl->Start(p,a,b)
1507#define IDirectInputEffect_Stop(p) (p)->lpVtbl->Stop(p)
1508#define IDirectInputEffect_GetEffectStatus(p,a) (p)->lpVtbl->GetEffectStatus(p,a)
1509#define IDirectInputEffect_Download(p) (p)->lpVtbl->Download(p)
1510#define IDirectInputEffect_Unload(p) (p)->lpVtbl->Unload(p)
1511#define IDirectInputEffect_Escape(p,a) (p)->lpVtbl->Escape(p,a)
1512#else
1513/*** IUnknown methods ***/
1514#define IDirectInputEffect_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1515#define IDirectInputEffect_AddRef(p) (p)->AddRef()
1516#define IDirectInputEffect_Release(p) (p)->Release()
1517/*** IDirectInputEffect methods ***/
1518#define IDirectInputEffect_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
1519#define IDirectInputEffect_GetEffectGuid(p,a) (p)->GetEffectGuid(a)
1520#define IDirectInputEffect_GetParameters(p,a,b) (p)->GetParameters(a,b)
1521#define IDirectInputEffect_SetParameters(p,a,b) (p)->SetParameters(a,b)
1522#define IDirectInputEffect_Start(p,a,b) (p)->Start(a,b)
1523#define IDirectInputEffect_Stop(p) (p)->Stop()
1524#define IDirectInputEffect_GetEffectStatus(p,a) (p)->GetEffectStatus(a)
1525#define IDirectInputEffect_Download(p) (p)->Download()
1526#define IDirectInputEffect_Unload(p) (p)->Unload()
1527#define IDirectInputEffect_Escape(p,a) (p)->Escape(a)
1528#endif
1529
1530#endif /* DI5 */
1531
1532
1533/*****************************************************************************
1534 * IDirectInputDeviceA interface
1535 */
1536#undef INTERFACE
1537#define INTERFACE IDirectInputDeviceA
1538DECLARE_INTERFACE_(IDirectInputDeviceA,IUnknown)
1539{
1540 /*** IUnknown methods ***/
1541 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1542 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1543 STDMETHOD_(ULONG,Release)(THIS) PURE;
1544 /*** IDirectInputDeviceA methods ***/
1545 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1546 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1547 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1548 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1549 STDMETHOD(Acquire)(THIS) PURE;
1550 STDMETHOD(Unacquire)(THIS) PURE;
1551 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1552 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1553 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1554 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1555 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1556 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1557 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA pdidi) PURE;
1558 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1559 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1560};
1561
1562/*****************************************************************************
1563 * IDirectInputDeviceW interface
1564 */
1565#undef INTERFACE
1566#define INTERFACE IDirectInputDeviceW
1567DECLARE_INTERFACE_(IDirectInputDeviceW,IUnknown)
1568{
1569 /*** IUnknown methods ***/
1570 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1571 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1572 STDMETHOD_(ULONG,Release)(THIS) PURE;
1573 /*** IDirectInputDeviceW methods ***/
1574 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1575 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1576 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1577 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1578 STDMETHOD(Acquire)(THIS) PURE;
1579 STDMETHOD(Unacquire)(THIS) PURE;
1580 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1581 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1582 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1583 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1584 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1585 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1586 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW pdidi) PURE;
1587 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1588 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1589};
1590
1591#if !defined(__cplusplus) || defined(CINTERFACE)
1592/*** IUnknown methods ***/
1593#define IDirectInputDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1594#define IDirectInputDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
1595#define IDirectInputDevice_Release(p) (p)->lpVtbl->Release(p)
1596/*** IDirectInputDevice methods ***/
1597#define IDirectInputDevice_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
1598#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1599#define IDirectInputDevice_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
1600#define IDirectInputDevice_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
1601#define IDirectInputDevice_Acquire(p) (p)->lpVtbl->Acquire(p)
1602#define IDirectInputDevice_Unacquire(p) (p)->lpVtbl->Unacquire(p)
1603#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
1604#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
1605#define IDirectInputDevice_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
1606#define IDirectInputDevice_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
1607#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
1608#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
1609#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
1610#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
1611#define IDirectInputDevice_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
1612#else
1613/*** IUnknown methods ***/
1614#define IDirectInputDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1615#define IDirectInputDevice_AddRef(p) (p)->AddRef()
1616#define IDirectInputDevice_Release(p) (p)->Release()
1617/*** IDirectInputDevice methods ***/
1618#define IDirectInputDevice_GetCapabilities(p,a) (p)->GetCapabilities(a)
1619#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
1620#define IDirectInputDevice_GetProperty(p,a,b) (p)->GetProperty(a,b)
1621#define IDirectInputDevice_SetProperty(p,a,b) (p)->SetProperty(a,b)
1622#define IDirectInputDevice_Acquire(p) (p)->Acquire()
1623#define IDirectInputDevice_Unacquire(p) (p)->Unacquire()
1624#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
1625#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
1626#define IDirectInputDevice_SetDataFormat(p,a) (p)->SetDataFormat(a)
1627#define IDirectInputDevice_SetEventNotification(p,a) (p)->SetEventNotification(a)
1628#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
1629#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
1630#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
1631#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
1632#define IDirectInputDevice_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
1633#endif
1634
1635
1636#if (DIRECTINPUT_VERSION >= 0x0500)
1637/*****************************************************************************
1638 * IDirectInputDevice2A interface
1639 */
1640#undef INTERFACE
1641#define INTERFACE IDirectInputDevice2A
1642DECLARE_INTERFACE_(IDirectInputDevice2A,IDirectInputDeviceA)
1643{
1644 /*** IUnknown methods ***/
1645 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1646 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1647 STDMETHOD_(ULONG,Release)(THIS) PURE;
1648 /*** IDirectInputDeviceA methods ***/
1649 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1650 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1651 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1652 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1653 STDMETHOD(Acquire)(THIS) PURE;
1654 STDMETHOD(Unacquire)(THIS) PURE;
1655 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1656 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1657 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1658 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1659 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1660 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1661 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA pdidi) PURE;
1662 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1663 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1664 /*** IDirectInputDevice2A methods ***/
1665 STDMETHOD(CreateEffect)(THIS_ REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT *ppdeff, LPUNKNOWN punkOuter) PURE;
1666 STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwEffType) PURE;
1667 STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOA pdei, REFGUID rguid) PURE;
1668 STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD pdwOut) PURE;
1669 STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD dwFlags) PURE;
1670 STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl) PURE;
1671 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE pesc) PURE;
1672 STDMETHOD(Poll)(THIS) PURE;
1673 STDMETHOD(SendDeviceData)(THIS_ DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl) PURE;
1674};
1675
1676/*****************************************************************************
1677 * IDirectInputDevice2W interface
1678 */
1679#undef INTERFACE
1680#define INTERFACE IDirectInputDevice2W
1681DECLARE_INTERFACE_(IDirectInputDevice2W,IDirectInputDeviceW)
1682{
1683 /*** IUnknown methods ***/
1684 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1685 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1686 STDMETHOD_(ULONG,Release)(THIS) PURE;
1687 /*** IDirectInputDeviceW methods ***/
1688 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1689 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1690 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1691 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1692 STDMETHOD(Acquire)(THIS) PURE;
1693 STDMETHOD(Unacquire)(THIS) PURE;
1694 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1695 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1696 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1697 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1698 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1699 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1700 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW pdidi) PURE;
1701 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1702 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1703 /*** IDirectInputDevice2W methods ***/
1704 STDMETHOD(CreateEffect)(THIS_ REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT *ppdeff, LPUNKNOWN punkOuter) PURE;
1705 STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwEffType) PURE;
1706 STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOW pdei, REFGUID rguid) PURE;
1707 STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD pdwOut) PURE;
1708 STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD dwFlags) PURE;
1709 STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl) PURE;
1710 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE pesc) PURE;
1711 STDMETHOD(Poll)(THIS) PURE;
1712 STDMETHOD(SendDeviceData)(THIS_ DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl) PURE;
1713};
1714
1715#if !defined(__cplusplus) || defined(CINTERFACE)
1716/*** IUnknown methods ***/
1717#define IDirectInputDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1718#define IDirectInputDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
1719#define IDirectInputDevice2_Release(p) (p)->lpVtbl->Release(p)
1720/*** IDirectInputDevice methods ***/
1721#define IDirectInputDevice2_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
1722#define IDirectInputDevice2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1723#define IDirectInputDevice2_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
1724#define IDirectInputDevice2_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
1725#define IDirectInputDevice2_Acquire(p) (p)->lpVtbl->Acquire(p)
1726#define IDirectInputDevice2_Unacquire(p) (p)->lpVtbl->Unacquire(p)
1727#define IDirectInputDevice2_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
1728#define IDirectInputDevice2_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
1729#define IDirectInputDevice2_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
1730#define IDirectInputDevice2_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
1731#define IDirectInputDevice2_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
1732#define IDirectInputDevice2_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
1733#define IDirectInputDevice2_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
1734#define IDirectInputDevice2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
1735#define IDirectInputDevice2_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
1736/*** IDirectInputDevice2 methods ***/
1737#define IDirectInputDevice2_CreateEffect(p,a,b,c,d) (p)->lpVtbl->CreateEffect(p,a,b,c,d)
1738#define IDirectInputDevice2_EnumEffects(p,a,b,c) (p)->lpVtbl->EnumEffects(p,a,b,c)
1739#define IDirectInputDevice2_GetEffectInfo(p,a,b) (p)->lpVtbl->GetEffectInfo(p,a,b)
1740#define IDirectInputDevice2_GetForceFeedbackState(p,a) (p)->lpVtbl->GetForceFeedbackState(p,a)
1741#define IDirectInputDevice2_SendForceFeedbackCommand(p,a) (p)->lpVtbl->SendForceFeedbackCommand(p,a)
1742#define IDirectInputDevice2_EnumCreatedEffectObjects(p,a,b,c) (p)->lpVtbl->EnumCreatedEffectObjects(p,a,b,c)
1743#define IDirectInputDevice2_Escape(p,a) (p)->lpVtbl->Escape(p,a)
1744#define IDirectInputDevice2_Poll(p) (p)->lpVtbl->Poll(p)
1745#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d) (p)->lpVtbl->SendDeviceData(p,a,b,c,d)
1746#else
1747/*** IUnknown methods ***/
1748#define IDirectInputDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1749#define IDirectInputDevice2_AddRef(p) (p)->AddRef()
1750#define IDirectInputDevice2_Release(p) (p)->Release()
1751/*** IDirectInputDevice methods ***/
1752#define IDirectInputDevice2_GetCapabilities(p,a) (p)->GetCapabilities(a)
1753#define IDirectInputDevice2_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
1754#define IDirectInputDevice2_GetProperty(p,a,b) (p)->GetProperty(a,b)
1755#define IDirectInputDevice2_SetProperty(p,a,b) (p)->SetProperty(a,b)
1756#define IDirectInputDevice2_Acquire(p) (p)->Acquire()
1757#define IDirectInputDevice2_Unacquire(p) (p)->Unacquire()
1758#define IDirectInputDevice2_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
1759#define IDirectInputDevice2_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
1760#define IDirectInputDevice2_SetDataFormat(p,a) (p)->SetDataFormat(a)
1761#define IDirectInputDevice2_SetEventNotification(p,a) (p)->SetEventNotification(a)
1762#define IDirectInputDevice2_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
1763#define IDirectInputDevice2_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
1764#define IDirectInputDevice2_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
1765#define IDirectInputDevice2_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
1766#define IDirectInputDevice2_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
1767/*** IDirectInputDevice2 methods ***/
1768#define IDirectInputDevice2_CreateEffect(p,a,b,c,d) (p)->CreateEffect(a,b,c,d)
1769#define IDirectInputDevice2_EnumEffects(p,a,b,c) (p)->EnumEffects(a,b,c)
1770#define IDirectInputDevice2_GetEffectInfo(p,a,b) (p)->GetEffectInfo(a,b)
1771#define IDirectInputDevice2_GetForceFeedbackState(p,a) (p)->GetForceFeedbackState(a)
1772#define IDirectInputDevice2_SendForceFeedbackCommand(p,a) (p)->SendForceFeedbackCommand(a)
1773#define IDirectInputDevice2_EnumCreatedEffectObjects(p,a,b,c) (p)->EnumCreatedEffectObjects(a,b,c)
1774#define IDirectInputDevice2_Escape(p,a) (p)->Escape(a)
1775#define IDirectInputDevice2_Poll(p) (p)->Poll()
1776#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d) (p)->SendDeviceData(a,b,c,d)
1777#endif
1778#endif /* DI5 */
1779
1780#if DIRECTINPUT_VERSION >= 0x0700
1781/*****************************************************************************
1782 * IDirectInputDevice7A interface
1783 */
1784#undef INTERFACE
1785#define INTERFACE IDirectInputDevice7A
1786DECLARE_INTERFACE_(IDirectInputDevice7A,IDirectInputDevice2A)
1787{
1788 /*** IUnknown methods ***/
1789 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1790 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1791 STDMETHOD_(ULONG,Release)(THIS) PURE;
1792 /*** IDirectInputDeviceA methods ***/
1793 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1794 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1795 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1796 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1797 STDMETHOD(Acquire)(THIS) PURE;
1798 STDMETHOD(Unacquire)(THIS) PURE;
1799 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1800 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1801 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1802 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1803 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1804 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1805 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA pdidi) PURE;
1806 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1807 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1808 /*** IDirectInputDevice2A methods ***/
1809 STDMETHOD(CreateEffect)(THIS_ REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT *ppdeff, LPUNKNOWN punkOuter) PURE;
1810 STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwEffType) PURE;
1811 STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOA pdei, REFGUID rguid) PURE;
1812 STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD pdwOut) PURE;
1813 STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD dwFlags) PURE;
1814 STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl) PURE;
1815 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE pesc) PURE;
1816 STDMETHOD(Poll)(THIS) PURE;
1817 STDMETHOD(SendDeviceData)(THIS_ DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl) PURE;
1818 /*** IDirectInputDevice7A methods ***/
1819 STDMETHOD(EnumEffectsInFile)(THIS_ LPCSTR lpszFileName,LPDIENUMEFFECTSINFILECALLBACK pec,LPVOID pvRef,DWORD dwFlags) PURE;
1820 STDMETHOD(WriteEffectToFile)(THIS_ LPCSTR lpszFileName,DWORD dwEntries,LPDIFILEEFFECT rgDiFileEft,DWORD dwFlags) PURE;
1821};
1822
1823/*****************************************************************************
1824 * IDirectInputDevice7W interface
1825 */
1826#undef INTERFACE
1827#define INTERFACE IDirectInputDevice7W
1828DECLARE_INTERFACE_(IDirectInputDevice7W,IDirectInputDevice2W)
1829{
1830 /*** IUnknown methods ***/
1831 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1832 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1833 STDMETHOD_(ULONG,Release)(THIS) PURE;
1834 /*** IDirectInputDeviceW methods ***/
1835 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1836 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1837 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1838 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1839 STDMETHOD(Acquire)(THIS) PURE;
1840 STDMETHOD(Unacquire)(THIS) PURE;
1841 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1842 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1843 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1844 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1845 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1846 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1847 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW pdidi) PURE;
1848 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1849 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1850 /*** IDirectInputDevice2W methods ***/
1851 STDMETHOD(CreateEffect)(THIS_ REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT *ppdeff, LPUNKNOWN punkOuter) PURE;
1852 STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwEffType) PURE;
1853 STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOW pdei, REFGUID rguid) PURE;
1854 STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD pdwOut) PURE;
1855 STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD dwFlags) PURE;
1856 STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl) PURE;
1857 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE pesc) PURE;
1858 STDMETHOD(Poll)(THIS) PURE;
1859 STDMETHOD(SendDeviceData)(THIS_ DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl) PURE;
1860 /*** IDirectInputDevice7W methods ***/
1861 STDMETHOD(EnumEffectsInFile)(THIS_ LPCWSTR lpszFileName,LPDIENUMEFFECTSINFILECALLBACK pec,LPVOID pvRef,DWORD dwFlags) PURE;
1862 STDMETHOD(WriteEffectToFile)(THIS_ LPCWSTR lpszFileName,DWORD dwEntries,LPDIFILEEFFECT rgDiFileEft,DWORD dwFlags) PURE;
1863};
1864
1865#if !defined(__cplusplus) || defined(CINTERFACE)
1866/*** IUnknown methods ***/
1867#define IDirectInputDevice7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1868#define IDirectInputDevice7_AddRef(p) (p)->lpVtbl->AddRef(p)
1869#define IDirectInputDevice7_Release(p) (p)->lpVtbl->Release(p)
1870/*** IDirectInputDevice methods ***/
1871#define IDirectInputDevice7_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
1872#define IDirectInputDevice7_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
1873#define IDirectInputDevice7_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
1874#define IDirectInputDevice7_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
1875#define IDirectInputDevice7_Acquire(p) (p)->lpVtbl->Acquire(p)
1876#define IDirectInputDevice7_Unacquire(p) (p)->lpVtbl->Unacquire(p)
1877#define IDirectInputDevice7_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
1878#define IDirectInputDevice7_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
1879#define IDirectInputDevice7_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
1880#define IDirectInputDevice7_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
1881#define IDirectInputDevice7_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
1882#define IDirectInputDevice7_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
1883#define IDirectInputDevice7_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
1884#define IDirectInputDevice7_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
1885#define IDirectInputDevice7_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
1886/*** IDirectInputDevice2 methods ***/
1887#define IDirectInputDevice7_CreateEffect(p,a,b,c,d) (p)->lpVtbl->CreateEffect(p,a,b,c,d)
1888#define IDirectInputDevice7_EnumEffects(p,a,b,c) (p)->lpVtbl->EnumEffects(p,a,b,c)
1889#define IDirectInputDevice7_GetEffectInfo(p,a,b) (p)->lpVtbl->GetEffectInfo(p,a,b)
1890#define IDirectInputDevice7_GetForceFeedbackState(p,a) (p)->lpVtbl->GetForceFeedbackState(p,a)
1891#define IDirectInputDevice7_SendForceFeedbackCommand(p,a) (p)->lpVtbl->SendForceFeedbackCommand(p,a)
1892#define IDirectInputDevice7_EnumCreatedEffectObjects(p,a,b,c) (p)->lpVtbl->EnumCreatedEffectObjects(p,a,b,c)
1893#define IDirectInputDevice7_Escape(p,a) (p)->lpVtbl->Escape(p,a)
1894#define IDirectInputDevice7_Poll(p) (p)->lpVtbl->Poll(p)
1895#define IDirectInputDevice7_SendDeviceData(p,a,b,c,d) (p)->lpVtbl->SendDeviceData(p,a,b,c,d)
1896/*** IDirectInputDevice7 methods ***/
1897#define IDirectInputDevice7_EnumEffectsInFile(p,a,b,c,d) (p)->lpVtbl->EnumEffectsInFile(p,a,b,c,d)
1898#define IDirectInputDevice7_WriteEffectToFile(p,a,b,c,d) (p)->lpVtbl->WriteEffectToFile(p,a,b,c,d)
1899#else
1900/*** IUnknown methods ***/
1901#define IDirectInputDevice7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1902#define IDirectInputDevice7_AddRef(p) (p)->AddRef()
1903#define IDirectInputDevice7_Release(p) (p)->Release()
1904/*** IDirectInputDevice methods ***/
1905#define IDirectInputDevice7_GetCapabilities(p,a) (p)->GetCapabilities(a)
1906#define IDirectInputDevice7_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
1907#define IDirectInputDevice7_GetProperty(p,a,b) (p)->GetProperty(a,b)
1908#define IDirectInputDevice7_SetProperty(p,a,b) (p)->SetProperty(a,b)
1909#define IDirectInputDevice7_Acquire(p) (p)->Acquire()
1910#define IDirectInputDevice7_Unacquire(p) (p)->Unacquire()
1911#define IDirectInputDevice7_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
1912#define IDirectInputDevice7_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
1913#define IDirectInputDevice7_SetDataFormat(p,a) (p)->SetDataFormat(a)
1914#define IDirectInputDevice7_SetEventNotification(p,a) (p)->SetEventNotification(a)
1915#define IDirectInputDevice7_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
1916#define IDirectInputDevice7_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
1917#define IDirectInputDevice7_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
1918#define IDirectInputDevice7_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
1919#define IDirectInputDevice7_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
1920/*** IDirectInputDevice2 methods ***/
1921#define IDirectInputDevice7_CreateEffect(p,a,b,c,d) (p)->CreateEffect(a,b,c,d)
1922#define IDirectInputDevice7_EnumEffects(p,a,b,c) (p)->EnumEffects(a,b,c)
1923#define IDirectInputDevice7_GetEffectInfo(p,a,b) (p)->GetEffectInfo(a,b)
1924#define IDirectInputDevice7_GetForceFeedbackState(p,a) (p)->GetForceFeedbackState(a)
1925#define IDirectInputDevice7_SendForceFeedbackCommand(p,a) (p)->SendForceFeedbackCommand(a)
1926#define IDirectInputDevice7_EnumCreatedEffectObjects(p,a,b,c) (p)->EnumCreatedEffectObjects(a,b,c)
1927#define IDirectInputDevice7_Escape(p,a) (p)->Escape(a)
1928#define IDirectInputDevice7_Poll(p) (p)->Poll()
1929#define IDirectInputDevice7_SendDeviceData(p,a,b,c,d) (p)->SendDeviceData(a,b,c,d)
1930/*** IDirectInputDevice7 methods ***/
1931#define IDirectInputDevice7_EnumEffectsInFile(p,a,b,c,d) (p)->EnumEffectsInFile(a,b,c,d)
1932#define IDirectInputDevice7_WriteEffectToFile(p,a,b,c,d) (p)->WriteEffectToFile(a,b,c,d)
1933#endif
1934
1935#endif /* DI7 */
1936
1937#if DIRECTINPUT_VERSION >= 0x0800
1938/*****************************************************************************
1939 * IDirectInputDevice8A interface
1940 */
1941#undef INTERFACE
1942#define INTERFACE IDirectInputDevice8A
1943DECLARE_INTERFACE_(IDirectInputDevice8A,IDirectInputDevice7A)
1944{
1945 /*** IUnknown methods ***/
1946 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1947 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1948 STDMETHOD_(ULONG,Release)(THIS) PURE;
1949 /*** IDirectInputDeviceA methods ***/
1950 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1951 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1952 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1953 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
1954 STDMETHOD(Acquire)(THIS) PURE;
1955 STDMETHOD(Unacquire)(THIS) PURE;
1956 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
1957 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
1958 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
1959 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
1960 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
1961 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA pdidoi, DWORD dwObj, DWORD dwHow) PURE;
1962 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA pdidi) PURE;
1963 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
1964 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
1965 /*** IDirectInputDevice2A methods ***/
1966 STDMETHOD(CreateEffect)(THIS_ REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT *ppdeff, LPUNKNOWN punkOuter) PURE;
1967 STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwEffType) PURE;
1968 STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOA pdei, REFGUID rguid) PURE;
1969 STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD pdwOut) PURE;
1970 STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD dwFlags) PURE;
1971 STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl) PURE;
1972 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE pesc) PURE;
1973 STDMETHOD(Poll)(THIS) PURE;
1974 STDMETHOD(SendDeviceData)(THIS_ DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl) PURE;
1975 /*** IDirectInputDevice7A methods ***/
1976 STDMETHOD(EnumEffectsInFile)(THIS_ LPCSTR lpszFileName,LPDIENUMEFFECTSINFILECALLBACK pec,LPVOID pvRef,DWORD dwFlags) PURE;
1977 STDMETHOD(WriteEffectToFile)(THIS_ LPCSTR lpszFileName,DWORD dwEntries,LPDIFILEEFFECT rgDiFileEft,DWORD dwFlags) PURE;
1978 /*** IDirectInputDevice8A methods ***/
1979 STDMETHOD(BuildActionMap)(THIS_ LPDIACTIONFORMATA lpdiaf, LPCSTR lpszUserName, DWORD dwFlags) PURE;
1980 STDMETHOD(SetActionMap)(THIS_ LPDIACTIONFORMATA lpdiaf, LPCSTR lpszUserName, DWORD dwFlags) PURE;
1981 STDMETHOD(GetImageInfo)(THIS_ LPDIDEVICEIMAGEINFOHEADERA lpdiDevImageInfoHeader) PURE;
1982};
1983
1984/*****************************************************************************
1985 * IDirectInputDevice8W interface
1986 */
1987#undef INTERFACE
1988#define INTERFACE IDirectInputDevice8W
1989DECLARE_INTERFACE_(IDirectInputDevice8W,IDirectInputDevice7W)
1990{
1991 /*** IUnknown methods ***/
1992 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
1993 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1994 STDMETHOD_(ULONG,Release)(THIS) PURE;
1995 /*** IDirectInputDeviceW methods ***/
1996 STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS lpDIDevCaps) PURE;
1997 STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
1998 STDMETHOD(GetProperty)(THIS_ REFGUID rguidProp, LPDIPROPHEADER pdiph) PURE;
1999 STDMETHOD(SetProperty)(THIS_ REFGUID rguidProp, LPCDIPROPHEADER pdiph) PURE;
2000 STDMETHOD(Acquire)(THIS) PURE;
2001 STDMETHOD(Unacquire)(THIS) PURE;
2002 STDMETHOD(GetDeviceState)(THIS_ DWORD cbData, LPVOID lpvData) PURE;
2003 STDMETHOD(GetDeviceData)(THIS_ DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags) PURE;
2004 STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT lpdf) PURE;
2005 STDMETHOD(SetEventNotification)(THIS_ HANDLE hEvent) PURE;
2006 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwFlags) PURE;
2007 STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW pdidoi, DWORD dwObj, DWORD dwHow) PURE;
2008 STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW pdidi) PURE;
2009 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2010 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion, REFGUID rguid) PURE;
2011 /*** IDirectInputDevice2W methods ***/
2012 STDMETHOD(CreateEffect)(THIS_ REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT *ppdeff, LPUNKNOWN punkOuter) PURE;
2013 STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwEffType) PURE;
2014 STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOW pdei, REFGUID rguid) PURE;
2015 STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD pdwOut) PURE;
2016 STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD dwFlags) PURE;
2017 STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl) PURE;
2018 STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE pesc) PURE;
2019 STDMETHOD(Poll)(THIS) PURE;
2020 STDMETHOD(SendDeviceData)(THIS_ DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl) PURE;
2021 /*** IDirectInputDevice7W methods ***/
2022 STDMETHOD(EnumEffectsInFile)(THIS_ LPCWSTR lpszFileName,LPDIENUMEFFECTSINFILECALLBACK pec,LPVOID pvRef,DWORD dwFlags) PURE;
2023 STDMETHOD(WriteEffectToFile)(THIS_ LPCWSTR lpszFileName,DWORD dwEntries,LPDIFILEEFFECT rgDiFileEft,DWORD dwFlags) PURE;
2024 /*** IDirectInputDevice8W methods ***/
2025 STDMETHOD(BuildActionMap)(THIS_ LPDIACTIONFORMATW lpdiaf, LPCWSTR lpszUserName, DWORD dwFlags) PURE;
2026 STDMETHOD(SetActionMap)(THIS_ LPDIACTIONFORMATW lpdiaf, LPCWSTR lpszUserName, DWORD dwFlags) PURE;
2027 STDMETHOD(GetImageInfo)(THIS_ LPDIDEVICEIMAGEINFOHEADERW lpdiDevImageInfoHeader) PURE;
2028};
2029
2030#if !defined(__cplusplus) || defined(CINTERFACE)
2031/*** IUnknown methods ***/
2032#define IDirectInputDevice8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2033#define IDirectInputDevice8_AddRef(p) (p)->lpVtbl->AddRef(p)
2034#define IDirectInputDevice8_Release(p) (p)->lpVtbl->Release(p)
2035/*** IDirectInputDevice methods ***/
2036#define IDirectInputDevice8_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
2037#define IDirectInputDevice8_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
2038#define IDirectInputDevice8_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
2039#define IDirectInputDevice8_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
2040#define IDirectInputDevice8_Acquire(p) (p)->lpVtbl->Acquire(p)
2041#define IDirectInputDevice8_Unacquire(p) (p)->lpVtbl->Unacquire(p)
2042#define IDirectInputDevice8_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
2043#define IDirectInputDevice8_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
2044#define IDirectInputDevice8_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
2045#define IDirectInputDevice8_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
2046#define IDirectInputDevice8_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
2047#define IDirectInputDevice8_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
2048#define IDirectInputDevice8_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
2049#define IDirectInputDevice8_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
2050#define IDirectInputDevice8_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
2051/*** IDirectInputDevice2 methods ***/
2052#define IDirectInputDevice8_CreateEffect(p,a,b,c,d) (p)->lpVtbl->CreateEffect(p,a,b,c,d)
2053#define IDirectInputDevice8_EnumEffects(p,a,b,c) (p)->lpVtbl->EnumEffects(p,a,b,c)
2054#define IDirectInputDevice8_GetEffectInfo(p,a,b) (p)->lpVtbl->GetEffectInfo(p,a,b)
2055#define IDirectInputDevice8_GetForceFeedbackState(p,a) (p)->lpVtbl->GetForceFeedbackState(p,a)
2056#define IDirectInputDevice8_SendForceFeedbackCommand(p,a) (p)->lpVtbl->SendForceFeedbackCommand(p,a)
2057#define IDirectInputDevice8_EnumCreatedEffectObjects(p,a,b,c) (p)->lpVtbl->EnumCreatedEffectObjects(p,a,b,c)
2058#define IDirectInputDevice8_Escape(p,a) (p)->lpVtbl->Escape(p,a)
2059#define IDirectInputDevice8_Poll(p) (p)->lpVtbl->Poll(p)
2060#define IDirectInputDevice8_SendDeviceData(p,a,b,c,d) (p)->lpVtbl->SendDeviceData(p,a,b,c,d)
2061/*** IDirectInputDevice7 methods ***/
2062#define IDirectInputDevice8_EnumEffectsInFile(p,a,b,c,d) (p)->lpVtbl->EnumEffectsInFile(p,a,b,c,d)
2063#define IDirectInputDevice8_WriteEffectToFile(p,a,b,c,d) (p)->lpVtbl->WriteEffectToFile(p,a,b,c,d)
2064/*** IDirectInputDevice8 methods ***/
2065#define IDirectInputDevice8_BuildActionMap(p,a,b,c) (p)->lpVtbl->BuildActionMap(p,a,b,c)
2066#define IDirectInputDevice8_SetActionMap(p,a,b,c) (p)->lpVtbl->SetActionMap(p,a,b,c)
2067#define IDirectInputDevice8_GetImageInfo(p,a) (p)->lpVtbl->GetImageInfo(p,a)
2068#else
2069/*** IUnknown methods ***/
2070#define IDirectInputDevice8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2071#define IDirectInputDevice8_AddRef(p) (p)->AddRef()
2072#define IDirectInputDevice8_Release(p) (p)->Release()
2073/*** IDirectInputDevice methods ***/
2074#define IDirectInputDevice8_GetCapabilities(p,a) (p)->GetCapabilities(a)
2075#define IDirectInputDevice8_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
2076#define IDirectInputDevice8_GetProperty(p,a,b) (p)->GetProperty(a,b)
2077#define IDirectInputDevice8_SetProperty(p,a,b) (p)->SetProperty(a,b)
2078#define IDirectInputDevice8_Acquire(p) (p)->Acquire()
2079#define IDirectInputDevice8_Unacquire(p) (p)->Unacquire()
2080#define IDirectInputDevice8_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
2081#define IDirectInputDevice8_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
2082#define IDirectInputDevice8_SetDataFormat(p,a) (p)->SetDataFormat(a)
2083#define IDirectInputDevice8_SetEventNotification(p,a) (p)->SetEventNotification(a)
2084#define IDirectInputDevice8_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
2085#define IDirectInputDevice8_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
2086#define IDirectInputDevice8_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
2087#define IDirectInputDevice8_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
2088#define IDirectInputDevice8_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
2089/*** IDirectInputDevice2 methods ***/
2090#define IDirectInputDevice8_CreateEffect(p,a,b,c,d) (p)->CreateEffect(a,b,c,d)
2091#define IDirectInputDevice8_EnumEffects(p,a,b,c) (p)->EnumEffects(a,b,c)
2092#define IDirectInputDevice8_GetEffectInfo(p,a,b) (p)->GetEffectInfo(a,b)
2093#define IDirectInputDevice8_GetForceFeedbackState(p,a) (p)->GetForceFeedbackState(a)
2094#define IDirectInputDevice8_SendForceFeedbackCommand(p,a) (p)->SendForceFeedbackCommand(a)
2095#define IDirectInputDevice8_EnumCreatedEffectObjects(p,a,b,c) (p)->EnumCreatedEffectObjects(a,b,c)
2096#define IDirectInputDevice8_Escape(p,a) (p)->Escape(a)
2097#define IDirectInputDevice8_Poll(p) (p)->Poll()
2098#define IDirectInputDevice8_SendDeviceData(p,a,b,c,d) (p)->SendDeviceData(a,b,c,d)
2099/*** IDirectInputDevice7 methods ***/
2100#define IDirectInputDevice8_EnumEffectsInFile(p,a,b,c,d) (p)->EnumEffectsInFile(a,b,c,d)
2101#define IDirectInputDevice8_WriteEffectToFile(p,a,b,c,d) (p)->WriteEffectToFile(a,b,c,d)
2102/*** IDirectInputDevice8 methods ***/
2103#define IDirectInputDevice8_BuildActionMap(p,a,b,c) (p)->BuildActionMap(a,b,c)
2104#define IDirectInputDevice8_SetActionMap(p,a,b,c) (p)->SetActionMap(a,b,c)
2105#define IDirectInputDevice8_GetImageInfo(p,a) (p)->GetImageInfo(a)
2106#endif
2107
2108#endif /* DI8 */
2109
2110/* "Standard" Mouse report... */
2111typedef struct DIMOUSESTATE {
2112 LONG lX;
2113 LONG lY;
2114 LONG lZ;
2115 BYTE rgbButtons[4];
2116} DIMOUSESTATE;
2117
2118#if DIRECTINPUT_VERSION >= 0x0700
2119/* "Standard" Mouse report for DInput 7... */
2120typedef struct DIMOUSESTATE2 {
2121 LONG lX;
2122 LONG lY;
2123 LONG lZ;
2124 BYTE rgbButtons[8];
2125} DIMOUSESTATE2;
2126#endif /* DI7 */
2127
2128#define DIMOFS_X FIELD_OFFSET(DIMOUSESTATE, lX)
2129#define DIMOFS_Y FIELD_OFFSET(DIMOUSESTATE, lY)
2130#define DIMOFS_Z FIELD_OFFSET(DIMOUSESTATE, lZ)
2131#define DIMOFS_BUTTON0 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 0)
2132#define DIMOFS_BUTTON1 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 1)
2133#define DIMOFS_BUTTON2 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 2)
2134#define DIMOFS_BUTTON3 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 3)
2135#if DIRECTINPUT_VERSION >= 0x0700
2136#define DIMOFS_BUTTON4 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 4)
2137#define DIMOFS_BUTTON5 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 5)
2138#define DIMOFS_BUTTON6 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 6)
2139#define DIMOFS_BUTTON7 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 7)
2140#endif /* DI7 */
2141
2142#ifdef __cplusplus
2143extern "C" {
2144#endif
2145extern const DIDATAFORMAT c_dfDIMouse;
2146#if DIRECTINPUT_VERSION >= 0x0700
2147extern const DIDATAFORMAT c_dfDIMouse2; /* DX 7 */
2148#endif /* DI7 */
2149extern const DIDATAFORMAT c_dfDIKeyboard;
2150#if DIRECTINPUT_VERSION >= 0x0500
2151extern const DIDATAFORMAT c_dfDIJoystick;
2152extern const DIDATAFORMAT c_dfDIJoystick2;
2153#endif /* DI5 */
2154#ifdef __cplusplus
2155};
2156#endif
2157
2158/*****************************************************************************
2159 * IDirectInputA interface
2160 */
2161#undef INTERFACE
2162#define INTERFACE IDirectInputA
2163DECLARE_INTERFACE_(IDirectInputA,IUnknown)
2164{
2165 /*** IUnknown methods ***/
2166 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2167 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2168 STDMETHOD_(ULONG,Release)(THIS) PURE;
2169 /*** IDirectInputA methods ***/
2170 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICEA *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2171 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2172 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2173 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2174 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2175};
2176
2177/*****************************************************************************
2178 * IDirectInputW interface
2179 */
2180#undef INTERFACE
2181#define INTERFACE IDirectInputW
2182DECLARE_INTERFACE_(IDirectInputW,IUnknown)
2183{
2184 /*** IUnknown methods ***/
2185 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2186 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2187 STDMETHOD_(ULONG,Release)(THIS) PURE;
2188 /*** IDirectInputW methods ***/
2189 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICEW *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2190 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2191 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2192 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2193 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2194};
2195
2196#if !defined(__cplusplus) || defined(CINTERFACE)
2197/*** IUnknown methods ***/
2198#define IDirectInput_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2199#define IDirectInput_AddRef(p) (p)->lpVtbl->AddRef(p)
2200#define IDirectInput_Release(p) (p)->lpVtbl->Release(p)
2201/*** IDirectInput methods ***/
2202#define IDirectInput_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
2203#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
2204#define IDirectInput_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
2205#define IDirectInput_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
2206#define IDirectInput_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
2207#else
2208/*** IUnknown methods ***/
2209#define IDirectInput_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2210#define IDirectInput_AddRef(p) (p)->AddRef()
2211#define IDirectInput_Release(p) (p)->Release()
2212/*** IDirectInput methods ***/
2213#define IDirectInput_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
2214#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
2215#define IDirectInput_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
2216#define IDirectInput_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
2217#define IDirectInput_Initialize(p,a,b) (p)->Initialize(a,b)
2218#endif
2219
2220/*****************************************************************************
2221 * IDirectInput2A interface
2222 */
2223#undef INTERFACE
2224#define INTERFACE IDirectInput2A
2225DECLARE_INTERFACE_(IDirectInput2A,IDirectInputA)
2226{
2227 /*** IUnknown methods ***/
2228 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2229 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2230 STDMETHOD_(ULONG,Release)(THIS) PURE;
2231 /*** IDirectInputA methods ***/
2232 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICEA *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2233 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2234 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2235 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2236 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2237 /*** IDirectInput2A methods ***/
2238 STDMETHOD(FindDevice)(THIS_ REFGUID rguid, LPCSTR pszName, LPGUID pguidInstance) PURE;
2239};
2240
2241/*****************************************************************************
2242 * IDirectInput2W interface
2243 */
2244#undef INTERFACE
2245#define INTERFACE IDirectInput2W
2246DECLARE_INTERFACE_(IDirectInput2W,IDirectInputW)
2247{
2248 /*** IUnknown methods ***/
2249 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2250 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2251 STDMETHOD_(ULONG,Release)(THIS) PURE;
2252 /*** IDirectInputW methods ***/
2253 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICEW *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2254 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2255 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2256 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2257 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2258 /*** IDirectInput2W methods ***/
2259 STDMETHOD(FindDevice)(THIS_ REFGUID rguid, LPCWSTR pszName, LPGUID pguidInstance) PURE;
2260};
2261
2262#if !defined(__cplusplus) || defined(CINTERFACE)
2263/*** IUnknown methods ***/
2264#define IDirectInput2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2265#define IDirectInput2_AddRef(p) (p)->lpVtbl->AddRef(p)
2266#define IDirectInput2_Release(p) (p)->lpVtbl->Release(p)
2267/*** IDirectInput methods ***/
2268#define IDirectInput2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
2269#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
2270#define IDirectInput2_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
2271#define IDirectInput2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
2272#define IDirectInput2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
2273/*** IDirectInput2 methods ***/
2274#define IDirectInput2_FindDevice(p,a,b,c) (p)->lpVtbl->FindDevice(p,a,b,c)
2275#else
2276/*** IUnknown methods ***/
2277#define IDirectInput2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2278#define IDirectInput2_AddRef(p) (p)->AddRef()
2279#define IDirectInput2_Release(p) (p)->Release()
2280/*** IDirectInput methods ***/
2281#define IDirectInput2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
2282#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
2283#define IDirectInput2_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
2284#define IDirectInput2_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
2285#define IDirectInput2_Initialize(p,a,b) (p)->Initialize(a,b)
2286/*** IDirectInput2 methods ***/
2287#define IDirectInput2_FindDevice(p,a,b,c) (p)->FindDevice(a,b,c)
2288#endif
2289
2290/*****************************************************************************
2291 * IDirectInput7A interface
2292 */
2293#undef INTERFACE
2294#define INTERFACE IDirectInput7A
2295DECLARE_INTERFACE_(IDirectInput7A,IDirectInput2A)
2296{
2297 /*** IUnknown methods ***/
2298 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2299 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2300 STDMETHOD_(ULONG,Release)(THIS) PURE;
2301 /*** IDirectInputA methods ***/
2302 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICEA *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2303 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2304 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2305 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2306 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2307 /*** IDirectInput2A methods ***/
2308 STDMETHOD(FindDevice)(THIS_ REFGUID rguid, LPCSTR pszName, LPGUID pguidInstance) PURE;
2309 /*** IDirectInput7A methods ***/
2310 STDMETHOD(CreateDeviceEx)(THIS_ REFGUID rguid, REFIID riid, LPVOID *pvOut, LPUNKNOWN lpUnknownOuter) PURE;
2311};
2312
2313/*****************************************************************************
2314 * IDirectInput7W interface
2315 */
2316#undef INTERFACE
2317#define INTERFACE IDirectInput7W
2318DECLARE_INTERFACE_(IDirectInput7W,IDirectInput2W)
2319{
2320 /*** IUnknown methods ***/
2321 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2322 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2323 STDMETHOD_(ULONG,Release)(THIS) PURE;
2324 /*** IDirectInputW methods ***/
2325 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICEW *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2326 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2327 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2328 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2329 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2330 /*** IDirectInput2W methods ***/
2331 STDMETHOD(FindDevice)(THIS_ REFGUID rguid, LPCWSTR pszName, LPGUID pguidInstance) PURE;
2332 /*** IDirectInput7W methods ***/
2333 STDMETHOD(CreateDeviceEx)(THIS_ REFGUID rguid, REFIID riid, LPVOID *pvOut, LPUNKNOWN lpUnknownOuter) PURE;
2334};
2335
2336#if !defined(__cplusplus) || defined(CINTERFACE)
2337/*** IUnknown methods ***/
2338#define IDirectInput7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2339#define IDirectInput7_AddRef(p) (p)->lpVtbl->AddRef(p)
2340#define IDirectInput7_Release(p) (p)->lpVtbl->Release(p)
2341/*** IDirectInput methods ***/
2342#define IDirectInput7_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
2343#define IDirectInput7_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
2344#define IDirectInput7_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
2345#define IDirectInput7_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
2346#define IDirectInput7_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
2347/*** IDirectInput2 methods ***/
2348#define IDirectInput7_FindDevice(p,a,b,c) (p)->lpVtbl->FindDevice(p,a,b,c)
2349/*** IDirectInput7 methods ***/
2350#define IDirectInput7_CreateDeviceEx(p,a,b,c,d) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d)
2351#else
2352/*** IUnknown methods ***/
2353#define IDirectInput7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2354#define IDirectInput7_AddRef(p) (p)->AddRef()
2355#define IDirectInput7_Release(p) (p)->Release()
2356/*** IDirectInput methods ***/
2357#define IDirectInput7_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
2358#define IDirectInput7_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
2359#define IDirectInput7_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
2360#define IDirectInput7_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
2361#define IDirectInput7_Initialize(p,a,b) (p)->Initialize(a,b)
2362/*** IDirectInput2 methods ***/
2363#define IDirectInput7_FindDevice(p,a,b,c) (p)->FindDevice(a,b,c)
2364/*** IDirectInput7 methods ***/
2365#define IDirectInput7_CreateDeviceEx(p,a,b,c,d) (p)->CreateDeviceEx(a,b,c,d)
2366#endif
2367
2368
2369#if DIRECTINPUT_VERSION >= 0x0800
2370/*****************************************************************************
2371 * IDirectInput8A interface
2372 */
2373#undef INTERFACE
2374#define INTERFACE IDirectInput8A
2375DECLARE_INTERFACE_(IDirectInput8A,IUnknown)
2376{
2377 /*** IUnknown methods ***/
2378 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2379 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2380 STDMETHOD_(ULONG,Release)(THIS) PURE;
2381 /*** IDirectInput8A methods ***/
2382 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICE8A *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2383 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2384 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2385 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2386 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2387 STDMETHOD(FindDevice)(THIS_ REFGUID rguid, LPCSTR pszName, LPGUID pguidInstance) PURE;
2388 STDMETHOD(EnumDevicesBySemantics)(THIS_ LPCSTR ptszUserName, LPDIACTIONFORMATA lpdiActionFormat, LPDIENUMDEVICESBYSEMANTICSCBA lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2389 STDMETHOD(ConfigureDevices)(THIS_ LPDICONFIGUREDEVICESCALLBACK lpdiCallback, LPDICONFIGUREDEVICESPARAMSA lpdiCDParams, DWORD dwFlags, LPVOID pvRefData) PURE;
2390};
2391
2392/*****************************************************************************
2393 * IDirectInput8W interface
2394 */
2395#undef INTERFACE
2396#define INTERFACE IDirectInput8W
2397DECLARE_INTERFACE_(IDirectInput8W,IUnknown)
2398{
2399 /*** IUnknown methods ***/
2400 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
2401 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2402 STDMETHOD_(ULONG,Release)(THIS) PURE;
2403 /*** IDirectInput8W methods ***/
2404 STDMETHOD(CreateDevice)(THIS_ REFGUID rguid, LPDIRECTINPUTDEVICE8W *lplpDirectInputDevice, LPUNKNOWN pUnkOuter) PURE;
2405 STDMETHOD(EnumDevices)(THIS_ DWORD dwDevType, LPDIENUMDEVICESCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2406 STDMETHOD(GetDeviceStatus)(THIS_ REFGUID rguidInstance) PURE;
2407 STDMETHOD(RunControlPanel)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE;
2408 STDMETHOD(Initialize)(THIS_ HINSTANCE hinst, DWORD dwVersion) PURE;
2409 STDMETHOD(FindDevice)(THIS_ REFGUID rguid, LPCWSTR pszName, LPGUID pguidInstance) PURE;
2410 STDMETHOD(EnumDevicesBySemantics)(THIS_ LPCWSTR ptszUserName, LPDIACTIONFORMATW lpdiActionFormat, LPDIENUMDEVICESBYSEMANTICSCBW lpCallback, LPVOID pvRef, DWORD dwFlags) PURE;
2411 STDMETHOD(ConfigureDevices)(THIS_ LPDICONFIGUREDEVICESCALLBACK lpdiCallback, LPDICONFIGUREDEVICESPARAMSW lpdiCDParams, DWORD dwFlags, LPVOID pvRefData) PURE;
2412};
2413#undef INTERFACE
2414
2415#if !defined(__cplusplus) || defined(CINTERFACE)
2416/*** IUnknown methods ***/
2417#define IDirectInput8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2418#define IDirectInput8_AddRef(p) (p)->lpVtbl->AddRef(p)
2419#define IDirectInput8_Release(p) (p)->lpVtbl->Release(p)
2420/*** IDirectInput8 methods ***/
2421#define IDirectInput8_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
2422#define IDirectInput8_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
2423#define IDirectInput8_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
2424#define IDirectInput8_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
2425#define IDirectInput8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
2426#define IDirectInput8_FindDevice(p,a,b,c) (p)->lpVtbl->FindDevice(p,a,b,c)
2427#define IDirectInput8_EnumDevicesBySemantics(p,a,b,c,d,e) (p)->lpVtbl->EnumDevicesBySemantics(p,a,b,c,d,e)
2428#define IDirectInput8_ConfigureDevices(p,a,b,c,d) (p)->lpVtbl->ConfigureDevices(p,a,b,c,d)
2429#else
2430/*** IUnknown methods ***/
2431#define IDirectInput8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
2432#define IDirectInput8_AddRef(p) (p)->AddRef()
2433#define IDirectInput8_Release(p) (p)->Release()
2434/*** IDirectInput8 methods ***/
2435#define IDirectInput8_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
2436#define IDirectInput8_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
2437#define IDirectInput8_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
2438#define IDirectInput8_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
2439#define IDirectInput8_Initialize(p,a,b) (p)->Initialize(a,b)
2440#define IDirectInput8_FindDevice(p,a,b,c) (p)->FindDevice(a,b,c)
2441#define IDirectInput8_EnumDevicesBySemantics(p,a,b,c,d,e) (p)->EnumDevicesBySemantics(a,b,c,d,e)
2442#define IDirectInput8_ConfigureDevices(p,a,b,c,d) (p)->ConfigureDevices(a,b,c,d)
2443#endif
2444
2445#endif /* DI8 */
2446
2447/* Export functions */
2448
2449#ifdef __cplusplus
2450extern "C" {
2451#endif
2452
2453#if DIRECTINPUT_VERSION >= 0x0800
2454HRESULT WINAPI DirectInput8Create(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN);
2455#else /* DI < 8 */
2456HRESULT WINAPI DirectInputCreateA(HINSTANCE,DWORD,LPDIRECTINPUTA *,LPUNKNOWN);
2457HRESULT WINAPI DirectInputCreateW(HINSTANCE,DWORD,LPDIRECTINPUTW *,LPUNKNOWN);
2458#define DirectInputCreate WINELIB_NAME_AW(DirectInputCreate)
2459
2460HRESULT WINAPI DirectInputCreateEx(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN);
2461#endif /* DI8 */
2462
2463#ifdef __cplusplus
2464};
2465#endif
2466
2467#endif /* __DINPUT_INCLUDED__ */
diff --git a/raylib/src/external/glfw/deps/mingw/xinput.h b/raylib/src/external/glfw/deps/mingw/xinput.h
new file mode 100644
index 0000000..d3ca726
--- /dev/null
+++ b/raylib/src/external/glfw/deps/mingw/xinput.h
@@ -0,0 +1,239 @@
1/*
2 * The Wine project - Xinput Joystick Library
3 * Copyright 2008 Andrew Fenn
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#ifndef __WINE_XINPUT_H
21#define __WINE_XINPUT_H
22
23#include <windef.h>
24
25/*
26 * Bitmasks for the joysticks buttons, determines what has
27 * been pressed on the joystick, these need to be mapped
28 * to whatever device you're using instead of an xbox 360
29 * joystick
30 */
31
32#define XINPUT_GAMEPAD_DPAD_UP 0x0001
33#define XINPUT_GAMEPAD_DPAD_DOWN 0x0002
34#define XINPUT_GAMEPAD_DPAD_LEFT 0x0004
35#define XINPUT_GAMEPAD_DPAD_RIGHT 0x0008
36#define XINPUT_GAMEPAD_START 0x0010
37#define XINPUT_GAMEPAD_BACK 0x0020
38#define XINPUT_GAMEPAD_LEFT_THUMB 0x0040
39#define XINPUT_GAMEPAD_RIGHT_THUMB 0x0080
40#define XINPUT_GAMEPAD_LEFT_SHOULDER 0x0100
41#define XINPUT_GAMEPAD_RIGHT_SHOULDER 0x0200
42#define XINPUT_GAMEPAD_A 0x1000
43#define XINPUT_GAMEPAD_B 0x2000
44#define XINPUT_GAMEPAD_X 0x4000
45#define XINPUT_GAMEPAD_Y 0x8000
46
47/*
48 * Defines the flags used to determine if the user is pushing
49 * down on a button, not holding a button, etc
50 */
51
52#define XINPUT_KEYSTROKE_KEYDOWN 0x0001
53#define XINPUT_KEYSTROKE_KEYUP 0x0002
54#define XINPUT_KEYSTROKE_REPEAT 0x0004
55
56/*
57 * Defines the codes which are returned by XInputGetKeystroke
58 */
59
60#define VK_PAD_A 0x5800
61#define VK_PAD_B 0x5801
62#define VK_PAD_X 0x5802
63#define VK_PAD_Y 0x5803
64#define VK_PAD_RSHOULDER 0x5804
65#define VK_PAD_LSHOULDER 0x5805
66#define VK_PAD_LTRIGGER 0x5806
67#define VK_PAD_RTRIGGER 0x5807
68#define VK_PAD_DPAD_UP 0x5810
69#define VK_PAD_DPAD_DOWN 0x5811
70#define VK_PAD_DPAD_LEFT 0x5812
71#define VK_PAD_DPAD_RIGHT 0x5813
72#define VK_PAD_START 0x5814
73#define VK_PAD_BACK 0x5815
74#define VK_PAD_LTHUMB_PRESS 0x5816
75#define VK_PAD_RTHUMB_PRESS 0x5817
76#define VK_PAD_LTHUMB_UP 0x5820
77#define VK_PAD_LTHUMB_DOWN 0x5821
78#define VK_PAD_LTHUMB_RIGHT 0x5822
79#define VK_PAD_LTHUMB_LEFT 0x5823
80#define VK_PAD_LTHUMB_UPLEFT 0x5824
81#define VK_PAD_LTHUMB_UPRIGHT 0x5825
82#define VK_PAD_LTHUMB_DOWNRIGHT 0x5826
83#define VK_PAD_LTHUMB_DOWNLEFT 0x5827
84#define VK_PAD_RTHUMB_UP 0x5830
85#define VK_PAD_RTHUMB_DOWN 0x5831
86#define VK_PAD_RTHUMB_RIGHT 0x5832
87#define VK_PAD_RTHUMB_LEFT 0x5833
88#define VK_PAD_RTHUMB_UPLEFT 0x5834
89#define VK_PAD_RTHUMB_UPRIGHT 0x5835
90#define VK_PAD_RTHUMB_DOWNRIGHT 0x5836
91#define VK_PAD_RTHUMB_DOWNLEFT 0x5837
92
93/*
94 * Deadzones are for analogue joystick controls on the joypad
95 * which determine when input should be assumed to be in the
96 * middle of the pad. This is a threshold to stop a joypad
97 * controlling the game when the player isn't touching the
98 * controls.
99 */
100
101#define XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE 7849
102#define XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE 8689
103#define XINPUT_GAMEPAD_TRIGGER_THRESHOLD 30
104
105
106/*
107 * Defines what type of abilities the type of joystick has
108 * DEVTYPE_GAMEPAD is available for all joysticks, however
109 * there may be more specific identifiers for other joysticks
110 * which are being used.
111 */
112
113#define XINPUT_DEVTYPE_GAMEPAD 0x01
114#define XINPUT_DEVSUBTYPE_GAMEPAD 0x01
115#define XINPUT_DEVSUBTYPE_WHEEL 0x02
116#define XINPUT_DEVSUBTYPE_ARCADE_STICK 0x03
117#define XINPUT_DEVSUBTYPE_FLIGHT_SICK 0x04
118#define XINPUT_DEVSUBTYPE_DANCE_PAD 0x05
119#define XINPUT_DEVSUBTYPE_GUITAR 0x06
120#define XINPUT_DEVSUBTYPE_DRUM_KIT 0x08
121
122/*
123 * These are used with the XInputGetCapabilities function to
124 * determine the abilities to the joystick which has been
125 * plugged in.
126 */
127
128#define XINPUT_CAPS_VOICE_SUPPORTED 0x0004
129#define XINPUT_FLAG_GAMEPAD 0x00000001
130
131/*
132 * Defines the status of the battery if one is used in the
133 * attached joystick. The first two define if the joystick
134 * supports a battery. Disconnected means that the joystick
135 * isn't connected. Wired shows that the joystick is a wired
136 * joystick.
137 */
138
139#define BATTERY_DEVTYPE_GAMEPAD 0x00
140#define BATTERY_DEVTYPE_HEADSET 0x01
141#define BATTERY_TYPE_DISCONNECTED 0x00
142#define BATTERY_TYPE_WIRED 0x01
143#define BATTERY_TYPE_ALKALINE 0x02
144#define BATTERY_TYPE_NIMH 0x03
145#define BATTERY_TYPE_UNKNOWN 0xFF
146#define BATTERY_LEVEL_EMPTY 0x00
147#define BATTERY_LEVEL_LOW 0x01
148#define BATTERY_LEVEL_MEDIUM 0x02
149#define BATTERY_LEVEL_FULL 0x03
150
151/*
152 * How many joysticks can be used with this library. Games that
153 * use the xinput library will not go over this number.
154 */
155
156#define XUSER_MAX_COUNT 4
157#define XUSER_INDEX_ANY 0x000000FF
158
159/*
160 * Defines the structure of an xbox 360 joystick.
161 */
162
163typedef struct _XINPUT_GAMEPAD {
164 WORD wButtons;
165 BYTE bLeftTrigger;
166 BYTE bRightTrigger;
167 SHORT sThumbLX;
168 SHORT sThumbLY;
169 SHORT sThumbRX;
170 SHORT sThumbRY;
171} XINPUT_GAMEPAD, *PXINPUT_GAMEPAD;
172
173typedef struct _XINPUT_STATE {
174 DWORD dwPacketNumber;
175 XINPUT_GAMEPAD Gamepad;
176} XINPUT_STATE, *PXINPUT_STATE;
177
178/*
179 * Defines the structure of how much vibration is set on both the
180 * right and left motors in a joystick. If you're not using a 360
181 * joystick you will have to map these to your device.
182 */
183
184typedef struct _XINPUT_VIBRATION {
185 WORD wLeftMotorSpeed;
186 WORD wRightMotorSpeed;
187} XINPUT_VIBRATION, *PXINPUT_VIBRATION;
188
189/*
190 * Defines the structure for what kind of abilities the joystick has
191 * such abilities are things such as if the joystick has the ability
192 * to send and receive audio, if the joystick is in fact a driving
193 * wheel or perhaps if the joystick is some kind of dance pad or
194 * guitar.
195 */
196
197typedef struct _XINPUT_CAPABILITIES {
198 BYTE Type;
199 BYTE SubType;
200 WORD Flags;
201 XINPUT_GAMEPAD Gamepad;
202 XINPUT_VIBRATION Vibration;
203} XINPUT_CAPABILITIES, *PXINPUT_CAPABILITIES;
204
205/*
206 * Defines the structure for a joystick input event which is
207 * retrieved using the function XInputGetKeystroke
208 */
209typedef struct _XINPUT_KEYSTROKE {
210 WORD VirtualKey;
211 WCHAR Unicode;
212 WORD Flags;
213 BYTE UserIndex;
214 BYTE HidCode;
215} XINPUT_KEYSTROKE, *PXINPUT_KEYSTROKE;
216
217typedef struct _XINPUT_BATTERY_INFORMATION
218{
219 BYTE BatteryType;
220 BYTE BatteryLevel;
221} XINPUT_BATTERY_INFORMATION, *PXINPUT_BATTERY_INFORMATION;
222
223#ifdef __cplusplus
224extern "C" {
225#endif
226
227void WINAPI XInputEnable(WINBOOL);
228DWORD WINAPI XInputSetState(DWORD, XINPUT_VIBRATION*);
229DWORD WINAPI XInputGetState(DWORD, XINPUT_STATE*);
230DWORD WINAPI XInputGetKeystroke(DWORD, DWORD, PXINPUT_KEYSTROKE);
231DWORD WINAPI XInputGetCapabilities(DWORD, DWORD, XINPUT_CAPABILITIES*);
232DWORD WINAPI XInputGetDSoundAudioDeviceGuids(DWORD, GUID*, GUID*);
233DWORD WINAPI XInputGetBatteryInformation(DWORD, BYTE, XINPUT_BATTERY_INFORMATION*);
234
235#ifdef __cplusplus
236}
237#endif
238
239#endif /* __WINE_XINPUT_H */
diff --git a/raylib/src/external/glfw/deps/wayland/fractional-scale-v1.xml b/raylib/src/external/glfw/deps/wayland/fractional-scale-v1.xml
new file mode 100644
index 0000000..350bfc0
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/fractional-scale-v1.xml
@@ -0,0 +1,102 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="fractional_scale_v1">
3 <copyright>
4 Copyright © 2022 Kenny Levinsen
5
6 Permission is hereby granted, free of charge, to any person obtaining a
7 copy of this software and associated documentation files (the "Software"),
8 to deal in the Software without restriction, including without limitation
9 the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 and/or sell copies of the Software, and to permit persons to whom the
11 Software is furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice (including the next
14 paragraph) shall be included in all copies or substantial portions of the
15 Software.
16
17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 DEALINGS IN THE SOFTWARE.
24 </copyright>
25
26 <description summary="Protocol for requesting fractional surface scales">
27 This protocol allows a compositor to suggest for surfaces to render at
28 fractional scales.
29
30 A client can submit scaled content by utilizing wp_viewport. This is done by
31 creating a wp_viewport object for the surface and setting the destination
32 rectangle to the surface size before the scale factor is applied.
33
34 The buffer size is calculated by multiplying the surface size by the
35 intended scale.
36
37 The wl_surface buffer scale should remain set to 1.
38
39 If a surface has a surface-local size of 100 px by 50 px and wishes to
40 submit buffers with a scale of 1.5, then a buffer of 150px by 75 px should
41 be used and the wp_viewport destination rectangle should be 100 px by 50 px.
42
43 For toplevel surfaces, the size is rounded halfway away from zero. The
44 rounding algorithm for subsurface position and size is not defined.
45 </description>
46
47 <interface name="wp_fractional_scale_manager_v1" version="1">
48 <description summary="fractional surface scale information">
49 A global interface for requesting surfaces to use fractional scales.
50 </description>
51
52 <request name="destroy" type="destructor">
53 <description summary="unbind the fractional surface scale interface">
54 Informs the server that the client will not be using this protocol
55 object anymore. This does not affect any other objects,
56 wp_fractional_scale_v1 objects included.
57 </description>
58 </request>
59
60 <enum name="error">
61 <entry name="fractional_scale_exists" value="0"
62 summary="the surface already has a fractional_scale object associated"/>
63 </enum>
64
65 <request name="get_fractional_scale">
66 <description summary="extend surface interface for scale information">
67 Create an add-on object for the the wl_surface to let the compositor
68 request fractional scales. If the given wl_surface already has a
69 wp_fractional_scale_v1 object associated, the fractional_scale_exists
70 protocol error is raised.
71 </description>
72 <arg name="id" type="new_id" interface="wp_fractional_scale_v1"
73 summary="the new surface scale info interface id"/>
74 <arg name="surface" type="object" interface="wl_surface"
75 summary="the surface"/>
76 </request>
77 </interface>
78
79 <interface name="wp_fractional_scale_v1" version="1">
80 <description summary="fractional scale interface to a wl_surface">
81 An additional interface to a wl_surface object which allows the compositor
82 to inform the client of the preferred scale.
83 </description>
84
85 <request name="destroy" type="destructor">
86 <description summary="remove surface scale information for surface">
87 Destroy the fractional scale object. When this object is destroyed,
88 preferred_scale events will no longer be sent.
89 </description>
90 </request>
91
92 <event name="preferred_scale">
93 <description summary="notify of new preferred scale">
94 Notification of a new preferred scale for this surface that the
95 compositor suggests that the client should use.
96
97 The sent scale is the numerator of a fraction with a denominator of 120.
98 </description>
99 <arg name="scale" type="uint" summary="the new preferred scale"/>
100 </event>
101 </interface>
102</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml b/raylib/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml
new file mode 100644
index 0000000..9c06cdc
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml
@@ -0,0 +1,83 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="idle_inhibit_unstable_v1">
3
4 <copyright>
5 Copyright © 2015 Samsung Electronics Co., Ltd
6
7 Permission is hereby granted, free of charge, to any person obtaining a
8 copy of this software and associated documentation files (the "Software"),
9 to deal in the Software without restriction, including without limitation
10 the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 and/or sell copies of the Software, and to permit persons to whom the
12 Software is furnished to do so, subject to the following conditions:
13
14 The above copyright notice and this permission notice (including the next
15 paragraph) shall be included in all copies or substantial portions of the
16 Software.
17
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 DEALINGS IN THE SOFTWARE.
25 </copyright>
26
27 <interface name="zwp_idle_inhibit_manager_v1" version="1">
28 <description summary="control behavior when display idles">
29 This interface permits inhibiting the idle behavior such as screen
30 blanking, locking, and screensaving. The client binds the idle manager
31 globally, then creates idle-inhibitor objects for each surface.
32
33 Warning! The protocol described in this file is experimental and
34 backward incompatible changes may be made. Backward compatible changes
35 may be added together with the corresponding interface version bump.
36 Backward incompatible changes are done by bumping the version number in
37 the protocol and interface names and resetting the interface version.
38 Once the protocol is to be declared stable, the 'z' prefix and the
39 version number in the protocol and interface names are removed and the
40 interface version number is reset.
41 </description>
42
43 <request name="destroy" type="destructor">
44 <description summary="destroy the idle inhibitor object">
45 Destroy the inhibit manager.
46 </description>
47 </request>
48
49 <request name="create_inhibitor">
50 <description summary="create a new inhibitor object">
51 Create a new inhibitor object associated with the given surface.
52 </description>
53 <arg name="id" type="new_id" interface="zwp_idle_inhibitor_v1"/>
54 <arg name="surface" type="object" interface="wl_surface"
55 summary="the surface that inhibits the idle behavior"/>
56 </request>
57
58 </interface>
59
60 <interface name="zwp_idle_inhibitor_v1" version="1">
61 <description summary="context object for inhibiting idle behavior">
62 An idle inhibitor prevents the output that the associated surface is
63 visible on from being set to a state where it is not visually usable due
64 to lack of user interaction (e.g. blanked, dimmed, locked, set to power
65 save, etc.) Any screensaver processes are also blocked from displaying.
66
67 If the surface is destroyed, unmapped, becomes occluded, loses
68 visibility, or otherwise becomes not visually relevant for the user, the
69 idle inhibitor will not be honored by the compositor; if the surface
70 subsequently regains visibility the inhibitor takes effect once again.
71 Likewise, the inhibitor isn't honored if the system was already idled at
72 the time the inhibitor was established, although if the system later
73 de-idles and re-idles the inhibitor will take effect.
74 </description>
75
76 <request name="destroy" type="destructor">
77 <description summary="destroy the idle inhibitor object">
78 Remove the inhibitor effect from the associated wl_surface.
79 </description>
80 </request>
81
82 </interface>
83</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml b/raylib/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml
new file mode 100644
index 0000000..efd64b6
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml
@@ -0,0 +1,339 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="pointer_constraints_unstable_v1">
3
4 <copyright>
5 Copyright © 2014 Jonas Ådahl
6 Copyright © 2015 Red Hat Inc.
7
8 Permission is hereby granted, free of charge, to any person obtaining a
9 copy of this software and associated documentation files (the "Software"),
10 to deal in the Software without restriction, including without limitation
11 the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 and/or sell copies of the Software, and to permit persons to whom the
13 Software is furnished to do so, subject to the following conditions:
14
15 The above copyright notice and this permission notice (including the next
16 paragraph) shall be included in all copies or substantial portions of the
17 Software.
18
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 </copyright>
27
28 <description summary="protocol for constraining pointer motions">
29 This protocol specifies a set of interfaces used for adding constraints to
30 the motion of a pointer. Possible constraints include confining pointer
31 motions to a given region, or locking it to its current position.
32
33 In order to constrain the pointer, a client must first bind the global
34 interface "wp_pointer_constraints" which, if a compositor supports pointer
35 constraints, is exposed by the registry. Using the bound global object, the
36 client uses the request that corresponds to the type of constraint it wants
37 to make. See wp_pointer_constraints for more details.
38
39 Warning! The protocol described in this file is experimental and backward
40 incompatible changes may be made. Backward compatible changes may be added
41 together with the corresponding interface version bump. Backward
42 incompatible changes are done by bumping the version number in the protocol
43 and interface names and resetting the interface version. Once the protocol
44 is to be declared stable, the 'z' prefix and the version number in the
45 protocol and interface names are removed and the interface version number is
46 reset.
47 </description>
48
49 <interface name="zwp_pointer_constraints_v1" version="1">
50 <description summary="constrain the movement of a pointer">
51 The global interface exposing pointer constraining functionality. It
52 exposes two requests: lock_pointer for locking the pointer to its
53 position, and confine_pointer for locking the pointer to a region.
54
55 The lock_pointer and confine_pointer requests create the objects
56 wp_locked_pointer and wp_confined_pointer respectively, and the client can
57 use these objects to interact with the lock.
58
59 For any surface, only one lock or confinement may be active across all
60 wl_pointer objects of the same seat. If a lock or confinement is requested
61 when another lock or confinement is active or requested on the same surface
62 and with any of the wl_pointer objects of the same seat, an
63 'already_constrained' error will be raised.
64 </description>
65
66 <enum name="error">
67 <description summary="wp_pointer_constraints error values">
68 These errors can be emitted in response to wp_pointer_constraints
69 requests.
70 </description>
71 <entry name="already_constrained" value="1"
72 summary="pointer constraint already requested on that surface"/>
73 </enum>
74
75 <enum name="lifetime">
76 <description summary="constraint lifetime">
77 These values represent different lifetime semantics. They are passed
78 as arguments to the factory requests to specify how the constraint
79 lifetimes should be managed.
80 </description>
81 <entry name="oneshot" value="1">
82 <description summary="the pointer constraint is defunct once deactivated">
83 A oneshot pointer constraint will never reactivate once it has been
84 deactivated. See the corresponding deactivation event
85 (wp_locked_pointer.unlocked and wp_confined_pointer.unconfined) for
86 details.
87 </description>
88 </entry>
89 <entry name="persistent" value="2">
90 <description summary="the pointer constraint may reactivate">
91 A persistent pointer constraint may again reactivate once it has
92 been deactivated. See the corresponding deactivation event
93 (wp_locked_pointer.unlocked and wp_confined_pointer.unconfined) for
94 details.
95 </description>
96 </entry>
97 </enum>
98
99 <request name="destroy" type="destructor">
100 <description summary="destroy the pointer constraints manager object">
101 Used by the client to notify the server that it will no longer use this
102 pointer constraints object.
103 </description>
104 </request>
105
106 <request name="lock_pointer">
107 <description summary="lock pointer to a position">
108 The lock_pointer request lets the client request to disable movements of
109 the virtual pointer (i.e. the cursor), effectively locking the pointer
110 to a position. This request may not take effect immediately; in the
111 future, when the compositor deems implementation-specific constraints
112 are satisfied, the pointer lock will be activated and the compositor
113 sends a locked event.
114
115 The protocol provides no guarantee that the constraints are ever
116 satisfied, and does not require the compositor to send an error if the
117 constraints cannot ever be satisfied. It is thus possible to request a
118 lock that will never activate.
119
120 There may not be another pointer constraint of any kind requested or
121 active on the surface for any of the wl_pointer objects of the seat of
122 the passed pointer when requesting a lock. If there is, an error will be
123 raised. See general pointer lock documentation for more details.
124
125 The intersection of the region passed with this request and the input
126 region of the surface is used to determine where the pointer must be
127 in order for the lock to activate. It is up to the compositor whether to
128 warp the pointer or require some kind of user interaction for the lock
129 to activate. If the region is null the surface input region is used.
130
131 A surface may receive pointer focus without the lock being activated.
132
133 The request creates a new object wp_locked_pointer which is used to
134 interact with the lock as well as receive updates about its state. See
135 the the description of wp_locked_pointer for further information.
136
137 Note that while a pointer is locked, the wl_pointer objects of the
138 corresponding seat will not emit any wl_pointer.motion events, but
139 relative motion events will still be emitted via wp_relative_pointer
140 objects of the same seat. wl_pointer.axis and wl_pointer.button events
141 are unaffected.
142 </description>
143 <arg name="id" type="new_id" interface="zwp_locked_pointer_v1"/>
144 <arg name="surface" type="object" interface="wl_surface"
145 summary="surface to lock pointer to"/>
146 <arg name="pointer" type="object" interface="wl_pointer"
147 summary="the pointer that should be locked"/>
148 <arg name="region" type="object" interface="wl_region" allow-null="true"
149 summary="region of surface"/>
150 <arg name="lifetime" type="uint" enum="lifetime" summary="lock lifetime"/>
151 </request>
152
153 <request name="confine_pointer">
154 <description summary="confine pointer to a region">
155 The confine_pointer request lets the client request to confine the
156 pointer cursor to a given region. This request may not take effect
157 immediately; in the future, when the compositor deems implementation-
158 specific constraints are satisfied, the pointer confinement will be
159 activated and the compositor sends a confined event.
160
161 The intersection of the region passed with this request and the input
162 region of the surface is used to determine where the pointer must be
163 in order for the confinement to activate. It is up to the compositor
164 whether to warp the pointer or require some kind of user interaction for
165 the confinement to activate. If the region is null the surface input
166 region is used.
167
168 The request will create a new object wp_confined_pointer which is used
169 to interact with the confinement as well as receive updates about its
170 state. See the the description of wp_confined_pointer for further
171 information.
172 </description>
173 <arg name="id" type="new_id" interface="zwp_confined_pointer_v1"/>
174 <arg name="surface" type="object" interface="wl_surface"
175 summary="surface to lock pointer to"/>
176 <arg name="pointer" type="object" interface="wl_pointer"
177 summary="the pointer that should be confined"/>
178 <arg name="region" type="object" interface="wl_region" allow-null="true"
179 summary="region of surface"/>
180 <arg name="lifetime" type="uint" enum="lifetime" summary="confinement lifetime"/>
181 </request>
182 </interface>
183
184 <interface name="zwp_locked_pointer_v1" version="1">
185 <description summary="receive relative pointer motion events">
186 The wp_locked_pointer interface represents a locked pointer state.
187
188 While the lock of this object is active, the wl_pointer objects of the
189 associated seat will not emit any wl_pointer.motion events.
190
191 This object will send the event 'locked' when the lock is activated.
192 Whenever the lock is activated, it is guaranteed that the locked surface
193 will already have received pointer focus and that the pointer will be
194 within the region passed to the request creating this object.
195
196 To unlock the pointer, send the destroy request. This will also destroy
197 the wp_locked_pointer object.
198
199 If the compositor decides to unlock the pointer the unlocked event is
200 sent. See wp_locked_pointer.unlock for details.
201
202 When unlocking, the compositor may warp the cursor position to the set
203 cursor position hint. If it does, it will not result in any relative
204 motion events emitted via wp_relative_pointer.
205
206 If the surface the lock was requested on is destroyed and the lock is not
207 yet activated, the wp_locked_pointer object is now defunct and must be
208 destroyed.
209 </description>
210
211 <request name="destroy" type="destructor">
212 <description summary="destroy the locked pointer object">
213 Destroy the locked pointer object. If applicable, the compositor will
214 unlock the pointer.
215 </description>
216 </request>
217
218 <request name="set_cursor_position_hint">
219 <description summary="set the pointer cursor position hint">
220 Set the cursor position hint relative to the top left corner of the
221 surface.
222
223 If the client is drawing its own cursor, it should update the position
224 hint to the position of its own cursor. A compositor may use this
225 information to warp the pointer upon unlock in order to avoid pointer
226 jumps.
227
228 The cursor position hint is double buffered. The new hint will only take
229 effect when the associated surface gets it pending state applied. See
230 wl_surface.commit for details.
231 </description>
232 <arg name="surface_x" type="fixed"
233 summary="surface-local x coordinate"/>
234 <arg name="surface_y" type="fixed"
235 summary="surface-local y coordinate"/>
236 </request>
237
238 <request name="set_region">
239 <description summary="set a new lock region">
240 Set a new region used to lock the pointer.
241
242 The new lock region is double-buffered. The new lock region will
243 only take effect when the associated surface gets its pending state
244 applied. See wl_surface.commit for details.
245
246 For details about the lock region, see wp_locked_pointer.
247 </description>
248 <arg name="region" type="object" interface="wl_region" allow-null="true"
249 summary="region of surface"/>
250 </request>
251
252 <event name="locked">
253 <description summary="lock activation event">
254 Notification that the pointer lock of the seat's pointer is activated.
255 </description>
256 </event>
257
258 <event name="unlocked">
259 <description summary="lock deactivation event">
260 Notification that the pointer lock of the seat's pointer is no longer
261 active. If this is a oneshot pointer lock (see
262 wp_pointer_constraints.lifetime) this object is now defunct and should
263 be destroyed. If this is a persistent pointer lock (see
264 wp_pointer_constraints.lifetime) this pointer lock may again
265 reactivate in the future.
266 </description>
267 </event>
268 </interface>
269
270 <interface name="zwp_confined_pointer_v1" version="1">
271 <description summary="confined pointer object">
272 The wp_confined_pointer interface represents a confined pointer state.
273
274 This object will send the event 'confined' when the confinement is
275 activated. Whenever the confinement is activated, it is guaranteed that
276 the surface the pointer is confined to will already have received pointer
277 focus and that the pointer will be within the region passed to the request
278 creating this object. It is up to the compositor to decide whether this
279 requires some user interaction and if the pointer will warp to within the
280 passed region if outside.
281
282 To unconfine the pointer, send the destroy request. This will also destroy
283 the wp_confined_pointer object.
284
285 If the compositor decides to unconfine the pointer the unconfined event is
286 sent. The wp_confined_pointer object is at this point defunct and should
287 be destroyed.
288 </description>
289
290 <request name="destroy" type="destructor">
291 <description summary="destroy the confined pointer object">
292 Destroy the confined pointer object. If applicable, the compositor will
293 unconfine the pointer.
294 </description>
295 </request>
296
297 <request name="set_region">
298 <description summary="set a new confine region">
299 Set a new region used to confine the pointer.
300
301 The new confine region is double-buffered. The new confine region will
302 only take effect when the associated surface gets its pending state
303 applied. See wl_surface.commit for details.
304
305 If the confinement is active when the new confinement region is applied
306 and the pointer ends up outside of newly applied region, the pointer may
307 warped to a position within the new confinement region. If warped, a
308 wl_pointer.motion event will be emitted, but no
309 wp_relative_pointer.relative_motion event.
310
311 The compositor may also, instead of using the new region, unconfine the
312 pointer.
313
314 For details about the confine region, see wp_confined_pointer.
315 </description>
316 <arg name="region" type="object" interface="wl_region" allow-null="true"
317 summary="region of surface"/>
318 </request>
319
320 <event name="confined">
321 <description summary="pointer confined">
322 Notification that the pointer confinement of the seat's pointer is
323 activated.
324 </description>
325 </event>
326
327 <event name="unconfined">
328 <description summary="pointer unconfined">
329 Notification that the pointer confinement of the seat's pointer is no
330 longer active. If this is a oneshot pointer confinement (see
331 wp_pointer_constraints.lifetime) this object is now defunct and should
332 be destroyed. If this is a persistent pointer confinement (see
333 wp_pointer_constraints.lifetime) this pointer confinement may again
334 reactivate in the future.
335 </description>
336 </event>
337 </interface>
338
339</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml b/raylib/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml
new file mode 100644
index 0000000..ca6f81d
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml
@@ -0,0 +1,136 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="relative_pointer_unstable_v1">
3
4 <copyright>
5 Copyright © 2014 Jonas Ådahl
6 Copyright © 2015 Red Hat Inc.
7
8 Permission is hereby granted, free of charge, to any person obtaining a
9 copy of this software and associated documentation files (the "Software"),
10 to deal in the Software without restriction, including without limitation
11 the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 and/or sell copies of the Software, and to permit persons to whom the
13 Software is furnished to do so, subject to the following conditions:
14
15 The above copyright notice and this permission notice (including the next
16 paragraph) shall be included in all copies or substantial portions of the
17 Software.
18
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 </copyright>
27
28 <description summary="protocol for relative pointer motion events">
29 This protocol specifies a set of interfaces used for making clients able to
30 receive relative pointer events not obstructed by barriers (such as the
31 monitor edge or other pointer barriers).
32
33 To start receiving relative pointer events, a client must first bind the
34 global interface "wp_relative_pointer_manager" which, if a compositor
35 supports relative pointer motion events, is exposed by the registry. After
36 having created the relative pointer manager proxy object, the client uses
37 it to create the actual relative pointer object using the
38 "get_relative_pointer" request given a wl_pointer. The relative pointer
39 motion events will then, when applicable, be transmitted via the proxy of
40 the newly created relative pointer object. See the documentation of the
41 relative pointer interface for more details.
42
43 Warning! The protocol described in this file is experimental and backward
44 incompatible changes may be made. Backward compatible changes may be added
45 together with the corresponding interface version bump. Backward
46 incompatible changes are done by bumping the version number in the protocol
47 and interface names and resetting the interface version. Once the protocol
48 is to be declared stable, the 'z' prefix and the version number in the
49 protocol and interface names are removed and the interface version number is
50 reset.
51 </description>
52
53 <interface name="zwp_relative_pointer_manager_v1" version="1">
54 <description summary="get relative pointer objects">
55 A global interface used for getting the relative pointer object for a
56 given pointer.
57 </description>
58
59 <request name="destroy" type="destructor">
60 <description summary="destroy the relative pointer manager object">
61 Used by the client to notify the server that it will no longer use this
62 relative pointer manager object.
63 </description>
64 </request>
65
66 <request name="get_relative_pointer">
67 <description summary="get a relative pointer object">
68 Create a relative pointer interface given a wl_pointer object. See the
69 wp_relative_pointer interface for more details.
70 </description>
71 <arg name="id" type="new_id" interface="zwp_relative_pointer_v1"/>
72 <arg name="pointer" type="object" interface="wl_pointer"/>
73 </request>
74 </interface>
75
76 <interface name="zwp_relative_pointer_v1" version="1">
77 <description summary="relative pointer object">
78 A wp_relative_pointer object is an extension to the wl_pointer interface
79 used for emitting relative pointer events. It shares the same focus as
80 wl_pointer objects of the same seat and will only emit events when it has
81 focus.
82 </description>
83
84 <request name="destroy" type="destructor">
85 <description summary="release the relative pointer object"/>
86 </request>
87
88 <event name="relative_motion">
89 <description summary="relative pointer motion">
90 Relative x/y pointer motion from the pointer of the seat associated with
91 this object.
92
93 A relative motion is in the same dimension as regular wl_pointer motion
94 events, except they do not represent an absolute position. For example,
95 moving a pointer from (x, y) to (x', y') would have the equivalent
96 relative motion (x' - x, y' - y). If a pointer motion caused the
97 absolute pointer position to be clipped by for example the edge of the
98 monitor, the relative motion is unaffected by the clipping and will
99 represent the unclipped motion.
100
101 This event also contains non-accelerated motion deltas. The
102 non-accelerated delta is, when applicable, the regular pointer motion
103 delta as it was before having applied motion acceleration and other
104 transformations such as normalization.
105
106 Note that the non-accelerated delta does not represent 'raw' events as
107 they were read from some device. Pointer motion acceleration is device-
108 and configuration-specific and non-accelerated deltas and accelerated
109 deltas may have the same value on some devices.
110
111 Relative motions are not coupled to wl_pointer.motion events, and can be
112 sent in combination with such events, but also independently. There may
113 also be scenarios where wl_pointer.motion is sent, but there is no
114 relative motion. The order of an absolute and relative motion event
115 originating from the same physical motion is not guaranteed.
116
117 If the client needs button events or focus state, it can receive them
118 from a wl_pointer object of the same seat that the wp_relative_pointer
119 object is associated with.
120 </description>
121 <arg name="utime_hi" type="uint"
122 summary="high 32 bits of a 64 bit timestamp with microsecond granularity"/>
123 <arg name="utime_lo" type="uint"
124 summary="low 32 bits of a 64 bit timestamp with microsecond granularity"/>
125 <arg name="dx" type="fixed"
126 summary="the x component of the motion vector"/>
127 <arg name="dy" type="fixed"
128 summary="the y component of the motion vector"/>
129 <arg name="dx_unaccel" type="fixed"
130 summary="the x component of the unaccelerated motion vector"/>
131 <arg name="dy_unaccel" type="fixed"
132 summary="the y component of the unaccelerated motion vector"/>
133 </event>
134 </interface>
135
136</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/viewporter.xml b/raylib/src/external/glfw/deps/wayland/viewporter.xml
new file mode 100644
index 0000000..d1048d1
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/viewporter.xml
@@ -0,0 +1,180 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="viewporter">
3
4 <copyright>
5 Copyright © 2013-2016 Collabora, Ltd.
6
7 Permission is hereby granted, free of charge, to any person obtaining a
8 copy of this software and associated documentation files (the "Software"),
9 to deal in the Software without restriction, including without limitation
10 the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 and/or sell copies of the Software, and to permit persons to whom the
12 Software is furnished to do so, subject to the following conditions:
13
14 The above copyright notice and this permission notice (including the next
15 paragraph) shall be included in all copies or substantial portions of the
16 Software.
17
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 DEALINGS IN THE SOFTWARE.
25 </copyright>
26
27 <interface name="wp_viewporter" version="1">
28 <description summary="surface cropping and scaling">
29 The global interface exposing surface cropping and scaling
30 capabilities is used to instantiate an interface extension for a
31 wl_surface object. This extended interface will then allow
32 cropping and scaling the surface contents, effectively
33 disconnecting the direct relationship between the buffer and the
34 surface size.
35 </description>
36
37 <request name="destroy" type="destructor">
38 <description summary="unbind from the cropping and scaling interface">
39 Informs the server that the client will not be using this
40 protocol object anymore. This does not affect any other objects,
41 wp_viewport objects included.
42 </description>
43 </request>
44
45 <enum name="error">
46 <entry name="viewport_exists" value="0"
47 summary="the surface already has a viewport object associated"/>
48 </enum>
49
50 <request name="get_viewport">
51 <description summary="extend surface interface for crop and scale">
52 Instantiate an interface extension for the given wl_surface to
53 crop and scale its content. If the given wl_surface already has
54 a wp_viewport object associated, the viewport_exists
55 protocol error is raised.
56 </description>
57 <arg name="id" type="new_id" interface="wp_viewport"
58 summary="the new viewport interface id"/>
59 <arg name="surface" type="object" interface="wl_surface"
60 summary="the surface"/>
61 </request>
62 </interface>
63
64 <interface name="wp_viewport" version="1">
65 <description summary="crop and scale interface to a wl_surface">
66 An additional interface to a wl_surface object, which allows the
67 client to specify the cropping and scaling of the surface
68 contents.
69
70 This interface works with two concepts: the source rectangle (src_x,
71 src_y, src_width, src_height), and the destination size (dst_width,
72 dst_height). The contents of the source rectangle are scaled to the
73 destination size, and content outside the source rectangle is ignored.
74 This state is double-buffered, and is applied on the next
75 wl_surface.commit.
76
77 The two parts of crop and scale state are independent: the source
78 rectangle, and the destination size. Initially both are unset, that
79 is, no scaling is applied. The whole of the current wl_buffer is
80 used as the source, and the surface size is as defined in
81 wl_surface.attach.
82
83 If the destination size is set, it causes the surface size to become
84 dst_width, dst_height. The source (rectangle) is scaled to exactly
85 this size. This overrides whatever the attached wl_buffer size is,
86 unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface
87 has no content and therefore no size. Otherwise, the size is always
88 at least 1x1 in surface local coordinates.
89
90 If the source rectangle is set, it defines what area of the wl_buffer is
91 taken as the source. If the source rectangle is set and the destination
92 size is not set, then src_width and src_height must be integers, and the
93 surface size becomes the source rectangle size. This results in cropping
94 without scaling. If src_width or src_height are not integers and
95 destination size is not set, the bad_size protocol error is raised when
96 the surface state is applied.
97
98 The coordinate transformations from buffer pixel coordinates up to
99 the surface-local coordinates happen in the following order:
100 1. buffer_transform (wl_surface.set_buffer_transform)
101 2. buffer_scale (wl_surface.set_buffer_scale)
102 3. crop and scale (wp_viewport.set*)
103 This means, that the source rectangle coordinates of crop and scale
104 are given in the coordinates after the buffer transform and scale,
105 i.e. in the coordinates that would be the surface-local coordinates
106 if the crop and scale was not applied.
107
108 If src_x or src_y are negative, the bad_value protocol error is raised.
109 Otherwise, if the source rectangle is partially or completely outside of
110 the non-NULL wl_buffer, then the out_of_buffer protocol error is raised
111 when the surface state is applied. A NULL wl_buffer does not raise the
112 out_of_buffer error.
113
114 If the wl_surface associated with the wp_viewport is destroyed,
115 all wp_viewport requests except 'destroy' raise the protocol error
116 no_surface.
117
118 If the wp_viewport object is destroyed, the crop and scale
119 state is removed from the wl_surface. The change will be applied
120 on the next wl_surface.commit.
121 </description>
122
123 <request name="destroy" type="destructor">
124 <description summary="remove scaling and cropping from the surface">
125 The associated wl_surface's crop and scale state is removed.
126 The change is applied on the next wl_surface.commit.
127 </description>
128 </request>
129
130 <enum name="error">
131 <entry name="bad_value" value="0"
132 summary="negative or zero values in width or height"/>
133 <entry name="bad_size" value="1"
134 summary="destination size is not integer"/>
135 <entry name="out_of_buffer" value="2"
136 summary="source rectangle extends outside of the content area"/>
137 <entry name="no_surface" value="3"
138 summary="the wl_surface was destroyed"/>
139 </enum>
140
141 <request name="set_source">
142 <description summary="set the source rectangle for cropping">
143 Set the source rectangle of the associated wl_surface. See
144 wp_viewport for the description, and relation to the wl_buffer
145 size.
146
147 If all of x, y, width and height are -1.0, the source rectangle is
148 unset instead. Any other set of values where width or height are zero
149 or negative, or x or y are negative, raise the bad_value protocol
150 error.
151
152 The crop and scale state is double-buffered state, and will be
153 applied on the next wl_surface.commit.
154 </description>
155 <arg name="x" type="fixed" summary="source rectangle x"/>
156 <arg name="y" type="fixed" summary="source rectangle y"/>
157 <arg name="width" type="fixed" summary="source rectangle width"/>
158 <arg name="height" type="fixed" summary="source rectangle height"/>
159 </request>
160
161 <request name="set_destination">
162 <description summary="set the surface size for scaling">
163 Set the destination size of the associated wl_surface. See
164 wp_viewport for the description, and relation to the wl_buffer
165 size.
166
167 If width is -1 and height is -1, the destination size is unset
168 instead. Any other pair of values for width and height that
169 contains zero or negative values raises the bad_value protocol
170 error.
171
172 The crop and scale state is double-buffered state, and will be
173 applied on the next wl_surface.commit.
174 </description>
175 <arg name="width" type="int" summary="surface width"/>
176 <arg name="height" type="int" summary="surface height"/>
177 </request>
178 </interface>
179
180</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/wayland.xml b/raylib/src/external/glfw/deps/wayland/wayland.xml
new file mode 100644
index 0000000..10e039d
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/wayland.xml
@@ -0,0 +1,3151 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="wayland">
3
4 <copyright>
5 Copyright © 2008-2011 Kristian Høgsberg
6 Copyright © 2010-2011 Intel Corporation
7 Copyright © 2012-2013 Collabora, Ltd.
8
9 Permission is hereby granted, free of charge, to any person
10 obtaining a copy of this software and associated documentation files
11 (the "Software"), to deal in the Software without restriction,
12 including without limitation the rights to use, copy, modify, merge,
13 publish, distribute, sublicense, and/or sell copies of the Software,
14 and to permit persons to whom the Software is furnished to do so,
15 subject to the following conditions:
16
17 The above copyright notice and this permission notice (including the
18 next paragraph) shall be included in all copies or substantial
19 portions of the Software.
20
21 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
25 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
26 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
27 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 SOFTWARE.
29 </copyright>
30
31 <interface name="wl_display" version="1">
32 <description summary="core global object">
33 The core global object. This is a special singleton object. It
34 is used for internal Wayland protocol features.
35 </description>
36
37 <request name="sync">
38 <description summary="asynchronous roundtrip">
39 The sync request asks the server to emit the 'done' event
40 on the returned wl_callback object. Since requests are
41 handled in-order and events are delivered in-order, this can
42 be used as a barrier to ensure all previous requests and the
43 resulting events have been handled.
44
45 The object returned by this request will be destroyed by the
46 compositor after the callback is fired and as such the client must not
47 attempt to use it after that point.
48
49 The callback_data passed in the callback is the event serial.
50 </description>
51 <arg name="callback" type="new_id" interface="wl_callback"
52 summary="callback object for the sync request"/>
53 </request>
54
55 <request name="get_registry">
56 <description summary="get global registry object">
57 This request creates a registry object that allows the client
58 to list and bind the global objects available from the
59 compositor.
60
61 It should be noted that the server side resources consumed in
62 response to a get_registry request can only be released when the
63 client disconnects, not when the client side proxy is destroyed.
64 Therefore, clients should invoke get_registry as infrequently as
65 possible to avoid wasting memory.
66 </description>
67 <arg name="registry" type="new_id" interface="wl_registry"
68 summary="global registry object"/>
69 </request>
70
71 <event name="error">
72 <description summary="fatal error event">
73 The error event is sent out when a fatal (non-recoverable)
74 error has occurred. The object_id argument is the object
75 where the error occurred, most often in response to a request
76 to that object. The code identifies the error and is defined
77 by the object interface. As such, each interface defines its
78 own set of error codes. The message is a brief description
79 of the error, for (debugging) convenience.
80 </description>
81 <arg name="object_id" type="object" summary="object where the error occurred"/>
82 <arg name="code" type="uint" summary="error code"/>
83 <arg name="message" type="string" summary="error description"/>
84 </event>
85
86 <enum name="error">
87 <description summary="global error values">
88 These errors are global and can be emitted in response to any
89 server request.
90 </description>
91 <entry name="invalid_object" value="0"
92 summary="server couldn't find object"/>
93 <entry name="invalid_method" value="1"
94 summary="method doesn't exist on the specified interface or malformed request"/>
95 <entry name="no_memory" value="2"
96 summary="server is out of memory"/>
97 <entry name="implementation" value="3"
98 summary="implementation error in compositor"/>
99 </enum>
100
101 <event name="delete_id">
102 <description summary="acknowledge object ID deletion">
103 This event is used internally by the object ID management
104 logic. When a client deletes an object that it had created,
105 the server will send this event to acknowledge that it has
106 seen the delete request. When the client receives this event,
107 it will know that it can safely reuse the object ID.
108 </description>
109 <arg name="id" type="uint" summary="deleted object ID"/>
110 </event>
111 </interface>
112
113 <interface name="wl_registry" version="1">
114 <description summary="global registry object">
115 The singleton global registry object. The server has a number of
116 global objects that are available to all clients. These objects
117 typically represent an actual object in the server (for example,
118 an input device) or they are singleton objects that provide
119 extension functionality.
120
121 When a client creates a registry object, the registry object
122 will emit a global event for each global currently in the
123 registry. Globals come and go as a result of device or
124 monitor hotplugs, reconfiguration or other events, and the
125 registry will send out global and global_remove events to
126 keep the client up to date with the changes. To mark the end
127 of the initial burst of events, the client can use the
128 wl_display.sync request immediately after calling
129 wl_display.get_registry.
130
131 A client can bind to a global object by using the bind
132 request. This creates a client-side handle that lets the object
133 emit events to the client and lets the client invoke requests on
134 the object.
135 </description>
136
137 <request name="bind">
138 <description summary="bind an object to the display">
139 Binds a new, client-created object to the server using the
140 specified name as the identifier.
141 </description>
142 <arg name="name" type="uint" summary="unique numeric name of the object"/>
143 <arg name="id" type="new_id" summary="bounded object"/>
144 </request>
145
146 <event name="global">
147 <description summary="announce global object">
148 Notify the client of global objects.
149
150 The event notifies the client that a global object with
151 the given name is now available, and it implements the
152 given version of the given interface.
153 </description>
154 <arg name="name" type="uint" summary="numeric name of the global object"/>
155 <arg name="interface" type="string" summary="interface implemented by the object"/>
156 <arg name="version" type="uint" summary="interface version"/>
157 </event>
158
159 <event name="global_remove">
160 <description summary="announce removal of global object">
161 Notify the client of removed global objects.
162
163 This event notifies the client that the global identified
164 by name is no longer available. If the client bound to
165 the global using the bind request, the client should now
166 destroy that object.
167
168 The object remains valid and requests to the object will be
169 ignored until the client destroys it, to avoid races between
170 the global going away and a client sending a request to it.
171 </description>
172 <arg name="name" type="uint" summary="numeric name of the global object"/>
173 </event>
174 </interface>
175
176 <interface name="wl_callback" version="1">
177 <description summary="callback object">
178 Clients can handle the 'done' event to get notified when
179 the related request is done.
180
181 Note, because wl_callback objects are created from multiple independent
182 factory interfaces, the wl_callback interface is frozen at version 1.
183 </description>
184
185 <event name="done" type="destructor">
186 <description summary="done event">
187 Notify the client when the related request is done.
188 </description>
189 <arg name="callback_data" type="uint" summary="request-specific data for the callback"/>
190 </event>
191 </interface>
192
193 <interface name="wl_compositor" version="6">
194 <description summary="the compositor singleton">
195 A compositor. This object is a singleton global. The
196 compositor is in charge of combining the contents of multiple
197 surfaces into one displayable output.
198 </description>
199
200 <request name="create_surface">
201 <description summary="create new surface">
202 Ask the compositor to create a new surface.
203 </description>
204 <arg name="id" type="new_id" interface="wl_surface" summary="the new surface"/>
205 </request>
206
207 <request name="create_region">
208 <description summary="create new region">
209 Ask the compositor to create a new region.
210 </description>
211 <arg name="id" type="new_id" interface="wl_region" summary="the new region"/>
212 </request>
213 </interface>
214
215 <interface name="wl_shm_pool" version="1">
216 <description summary="a shared memory pool">
217 The wl_shm_pool object encapsulates a piece of memory shared
218 between the compositor and client. Through the wl_shm_pool
219 object, the client can allocate shared memory wl_buffer objects.
220 All objects created through the same pool share the same
221 underlying mapped memory. Reusing the mapped memory avoids the
222 setup/teardown overhead and is useful when interactively resizing
223 a surface or for many small buffers.
224 </description>
225
226 <request name="create_buffer">
227 <description summary="create a buffer from the pool">
228 Create a wl_buffer object from the pool.
229
230 The buffer is created offset bytes into the pool and has
231 width and height as specified. The stride argument specifies
232 the number of bytes from the beginning of one row to the beginning
233 of the next. The format is the pixel format of the buffer and
234 must be one of those advertised through the wl_shm.format event.
235
236 A buffer will keep a reference to the pool it was created from
237 so it is valid to destroy the pool immediately after creating
238 a buffer from it.
239 </description>
240 <arg name="id" type="new_id" interface="wl_buffer" summary="buffer to create"/>
241 <arg name="offset" type="int" summary="buffer byte offset within the pool"/>
242 <arg name="width" type="int" summary="buffer width, in pixels"/>
243 <arg name="height" type="int" summary="buffer height, in pixels"/>
244 <arg name="stride" type="int" summary="number of bytes from the beginning of one row to the beginning of the next row"/>
245 <arg name="format" type="uint" enum="wl_shm.format" summary="buffer pixel format"/>
246 </request>
247
248 <request name="destroy" type="destructor">
249 <description summary="destroy the pool">
250 Destroy the shared memory pool.
251
252 The mmapped memory will be released when all
253 buffers that have been created from this pool
254 are gone.
255 </description>
256 </request>
257
258 <request name="resize">
259 <description summary="change the size of the pool mapping">
260 This request will cause the server to remap the backing memory
261 for the pool from the file descriptor passed when the pool was
262 created, but using the new size. This request can only be
263 used to make the pool bigger.
264
265 This request only changes the amount of bytes that are mmapped
266 by the server and does not touch the file corresponding to the
267 file descriptor passed at creation time. It is the client's
268 responsibility to ensure that the file is at least as big as
269 the new pool size.
270 </description>
271 <arg name="size" type="int" summary="new size of the pool, in bytes"/>
272 </request>
273 </interface>
274
275 <interface name="wl_shm" version="1">
276 <description summary="shared memory support">
277 A singleton global object that provides support for shared
278 memory.
279
280 Clients can create wl_shm_pool objects using the create_pool
281 request.
282
283 On binding the wl_shm object one or more format events
284 are emitted to inform clients about the valid pixel formats
285 that can be used for buffers.
286 </description>
287
288 <enum name="error">
289 <description summary="wl_shm error values">
290 These errors can be emitted in response to wl_shm requests.
291 </description>
292 <entry name="invalid_format" value="0" summary="buffer format is not known"/>
293 <entry name="invalid_stride" value="1" summary="invalid size or stride during pool or buffer creation"/>
294 <entry name="invalid_fd" value="2" summary="mmapping the file descriptor failed"/>
295 </enum>
296
297 <enum name="format">
298 <description summary="pixel formats">
299 This describes the memory layout of an individual pixel.
300
301 All renderers should support argb8888 and xrgb8888 but any other
302 formats are optional and may not be supported by the particular
303 renderer in use.
304
305 The drm format codes match the macros defined in drm_fourcc.h, except
306 argb8888 and xrgb8888. The formats actually supported by the compositor
307 will be reported by the format event.
308
309 For all wl_shm formats and unless specified in another protocol
310 extension, pre-multiplied alpha is used for pixel values.
311 </description>
312 <!-- Note to protocol writers: don't update this list manually, instead
313 run the automated script that keeps it in sync with drm_fourcc.h. -->
314 <entry name="argb8888" value="0" summary="32-bit ARGB format, [31:0] A:R:G:B 8:8:8:8 little endian"/>
315 <entry name="xrgb8888" value="1" summary="32-bit RGB format, [31:0] x:R:G:B 8:8:8:8 little endian"/>
316 <entry name="c8" value="0x20203843" summary="8-bit color index format, [7:0] C"/>
317 <entry name="rgb332" value="0x38424752" summary="8-bit RGB format, [7:0] R:G:B 3:3:2"/>
318 <entry name="bgr233" value="0x38524742" summary="8-bit BGR format, [7:0] B:G:R 2:3:3"/>
319 <entry name="xrgb4444" value="0x32315258" summary="16-bit xRGB format, [15:0] x:R:G:B 4:4:4:4 little endian"/>
320 <entry name="xbgr4444" value="0x32314258" summary="16-bit xBGR format, [15:0] x:B:G:R 4:4:4:4 little endian"/>
321 <entry name="rgbx4444" value="0x32315852" summary="16-bit RGBx format, [15:0] R:G:B:x 4:4:4:4 little endian"/>
322 <entry name="bgrx4444" value="0x32315842" summary="16-bit BGRx format, [15:0] B:G:R:x 4:4:4:4 little endian"/>
323 <entry name="argb4444" value="0x32315241" summary="16-bit ARGB format, [15:0] A:R:G:B 4:4:4:4 little endian"/>
324 <entry name="abgr4444" value="0x32314241" summary="16-bit ABGR format, [15:0] A:B:G:R 4:4:4:4 little endian"/>
325 <entry name="rgba4444" value="0x32314152" summary="16-bit RBGA format, [15:0] R:G:B:A 4:4:4:4 little endian"/>
326 <entry name="bgra4444" value="0x32314142" summary="16-bit BGRA format, [15:0] B:G:R:A 4:4:4:4 little endian"/>
327 <entry name="xrgb1555" value="0x35315258" summary="16-bit xRGB format, [15:0] x:R:G:B 1:5:5:5 little endian"/>
328 <entry name="xbgr1555" value="0x35314258" summary="16-bit xBGR 1555 format, [15:0] x:B:G:R 1:5:5:5 little endian"/>
329 <entry name="rgbx5551" value="0x35315852" summary="16-bit RGBx 5551 format, [15:0] R:G:B:x 5:5:5:1 little endian"/>
330 <entry name="bgrx5551" value="0x35315842" summary="16-bit BGRx 5551 format, [15:0] B:G:R:x 5:5:5:1 little endian"/>
331 <entry name="argb1555" value="0x35315241" summary="16-bit ARGB 1555 format, [15:0] A:R:G:B 1:5:5:5 little endian"/>
332 <entry name="abgr1555" value="0x35314241" summary="16-bit ABGR 1555 format, [15:0] A:B:G:R 1:5:5:5 little endian"/>
333 <entry name="rgba5551" value="0x35314152" summary="16-bit RGBA 5551 format, [15:0] R:G:B:A 5:5:5:1 little endian"/>
334 <entry name="bgra5551" value="0x35314142" summary="16-bit BGRA 5551 format, [15:0] B:G:R:A 5:5:5:1 little endian"/>
335 <entry name="rgb565" value="0x36314752" summary="16-bit RGB 565 format, [15:0] R:G:B 5:6:5 little endian"/>
336 <entry name="bgr565" value="0x36314742" summary="16-bit BGR 565 format, [15:0] B:G:R 5:6:5 little endian"/>
337 <entry name="rgb888" value="0x34324752" summary="24-bit RGB format, [23:0] R:G:B little endian"/>
338 <entry name="bgr888" value="0x34324742" summary="24-bit BGR format, [23:0] B:G:R little endian"/>
339 <entry name="xbgr8888" value="0x34324258" summary="32-bit xBGR format, [31:0] x:B:G:R 8:8:8:8 little endian"/>
340 <entry name="rgbx8888" value="0x34325852" summary="32-bit RGBx format, [31:0] R:G:B:x 8:8:8:8 little endian"/>
341 <entry name="bgrx8888" value="0x34325842" summary="32-bit BGRx format, [31:0] B:G:R:x 8:8:8:8 little endian"/>
342 <entry name="abgr8888" value="0x34324241" summary="32-bit ABGR format, [31:0] A:B:G:R 8:8:8:8 little endian"/>
343 <entry name="rgba8888" value="0x34324152" summary="32-bit RGBA format, [31:0] R:G:B:A 8:8:8:8 little endian"/>
344 <entry name="bgra8888" value="0x34324142" summary="32-bit BGRA format, [31:0] B:G:R:A 8:8:8:8 little endian"/>
345 <entry name="xrgb2101010" value="0x30335258" summary="32-bit xRGB format, [31:0] x:R:G:B 2:10:10:10 little endian"/>
346 <entry name="xbgr2101010" value="0x30334258" summary="32-bit xBGR format, [31:0] x:B:G:R 2:10:10:10 little endian"/>
347 <entry name="rgbx1010102" value="0x30335852" summary="32-bit RGBx format, [31:0] R:G:B:x 10:10:10:2 little endian"/>
348 <entry name="bgrx1010102" value="0x30335842" summary="32-bit BGRx format, [31:0] B:G:R:x 10:10:10:2 little endian"/>
349 <entry name="argb2101010" value="0x30335241" summary="32-bit ARGB format, [31:0] A:R:G:B 2:10:10:10 little endian"/>
350 <entry name="abgr2101010" value="0x30334241" summary="32-bit ABGR format, [31:0] A:B:G:R 2:10:10:10 little endian"/>
351 <entry name="rgba1010102" value="0x30334152" summary="32-bit RGBA format, [31:0] R:G:B:A 10:10:10:2 little endian"/>
352 <entry name="bgra1010102" value="0x30334142" summary="32-bit BGRA format, [31:0] B:G:R:A 10:10:10:2 little endian"/>
353 <entry name="yuyv" value="0x56595559" summary="packed YCbCr format, [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian"/>
354 <entry name="yvyu" value="0x55595659" summary="packed YCbCr format, [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian"/>
355 <entry name="uyvy" value="0x59565955" summary="packed YCbCr format, [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian"/>
356 <entry name="vyuy" value="0x59555956" summary="packed YCbCr format, [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian"/>
357 <entry name="ayuv" value="0x56555941" summary="packed AYCbCr format, [31:0] A:Y:Cb:Cr 8:8:8:8 little endian"/>
358 <entry name="nv12" value="0x3231564e" summary="2 plane YCbCr Cr:Cb format, 2x2 subsampled Cr:Cb plane"/>
359 <entry name="nv21" value="0x3132564e" summary="2 plane YCbCr Cb:Cr format, 2x2 subsampled Cb:Cr plane"/>
360 <entry name="nv16" value="0x3631564e" summary="2 plane YCbCr Cr:Cb format, 2x1 subsampled Cr:Cb plane"/>
361 <entry name="nv61" value="0x3136564e" summary="2 plane YCbCr Cb:Cr format, 2x1 subsampled Cb:Cr plane"/>
362 <entry name="yuv410" value="0x39565559" summary="3 plane YCbCr format, 4x4 subsampled Cb (1) and Cr (2) planes"/>
363 <entry name="yvu410" value="0x39555659" summary="3 plane YCbCr format, 4x4 subsampled Cr (1) and Cb (2) planes"/>
364 <entry name="yuv411" value="0x31315559" summary="3 plane YCbCr format, 4x1 subsampled Cb (1) and Cr (2) planes"/>
365 <entry name="yvu411" value="0x31315659" summary="3 plane YCbCr format, 4x1 subsampled Cr (1) and Cb (2) planes"/>
366 <entry name="yuv420" value="0x32315559" summary="3 plane YCbCr format, 2x2 subsampled Cb (1) and Cr (2) planes"/>
367 <entry name="yvu420" value="0x32315659" summary="3 plane YCbCr format, 2x2 subsampled Cr (1) and Cb (2) planes"/>
368 <entry name="yuv422" value="0x36315559" summary="3 plane YCbCr format, 2x1 subsampled Cb (1) and Cr (2) planes"/>
369 <entry name="yvu422" value="0x36315659" summary="3 plane YCbCr format, 2x1 subsampled Cr (1) and Cb (2) planes"/>
370 <entry name="yuv444" value="0x34325559" summary="3 plane YCbCr format, non-subsampled Cb (1) and Cr (2) planes"/>
371 <entry name="yvu444" value="0x34325659" summary="3 plane YCbCr format, non-subsampled Cr (1) and Cb (2) planes"/>
372 <entry name="r8" value="0x20203852" summary="[7:0] R"/>
373 <entry name="r16" value="0x20363152" summary="[15:0] R little endian"/>
374 <entry name="rg88" value="0x38384752" summary="[15:0] R:G 8:8 little endian"/>
375 <entry name="gr88" value="0x38385247" summary="[15:0] G:R 8:8 little endian"/>
376 <entry name="rg1616" value="0x32334752" summary="[31:0] R:G 16:16 little endian"/>
377 <entry name="gr1616" value="0x32335247" summary="[31:0] G:R 16:16 little endian"/>
378 <entry name="xrgb16161616f" value="0x48345258" summary="[63:0] x:R:G:B 16:16:16:16 little endian"/>
379 <entry name="xbgr16161616f" value="0x48344258" summary="[63:0] x:B:G:R 16:16:16:16 little endian"/>
380 <entry name="argb16161616f" value="0x48345241" summary="[63:0] A:R:G:B 16:16:16:16 little endian"/>
381 <entry name="abgr16161616f" value="0x48344241" summary="[63:0] A:B:G:R 16:16:16:16 little endian"/>
382 <entry name="xyuv8888" value="0x56555958" summary="[31:0] X:Y:Cb:Cr 8:8:8:8 little endian"/>
383 <entry name="vuy888" value="0x34325556" summary="[23:0] Cr:Cb:Y 8:8:8 little endian"/>
384 <entry name="vuy101010" value="0x30335556" summary="Y followed by U then V, 10:10:10. Non-linear modifier only"/>
385 <entry name="y210" value="0x30313259" summary="[63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 10:6:10:6:10:6:10:6 little endian per 2 Y pixels"/>
386 <entry name="y212" value="0x32313259" summary="[63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 12:4:12:4:12:4:12:4 little endian per 2 Y pixels"/>
387 <entry name="y216" value="0x36313259" summary="[63:0] Cr0:Y1:Cb0:Y0 16:16:16:16 little endian per 2 Y pixels"/>
388 <entry name="y410" value="0x30313459" summary="[31:0] A:Cr:Y:Cb 2:10:10:10 little endian"/>
389 <entry name="y412" value="0x32313459" summary="[63:0] A:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian"/>
390 <entry name="y416" value="0x36313459" summary="[63:0] A:Cr:Y:Cb 16:16:16:16 little endian"/>
391 <entry name="xvyu2101010" value="0x30335658" summary="[31:0] X:Cr:Y:Cb 2:10:10:10 little endian"/>
392 <entry name="xvyu12_16161616" value="0x36335658" summary="[63:0] X:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian"/>
393 <entry name="xvyu16161616" value="0x38345658" summary="[63:0] X:Cr:Y:Cb 16:16:16:16 little endian"/>
394 <entry name="y0l0" value="0x304c3059" summary="[63:0] A3:A2:Y3:0:Cr0:0:Y2:0:A1:A0:Y1:0:Cb0:0:Y0:0 1:1:8:2:8:2:8:2:1:1:8:2:8:2:8:2 little endian"/>
395 <entry name="x0l0" value="0x304c3058" summary="[63:0] X3:X2:Y3:0:Cr0:0:Y2:0:X1:X0:Y1:0:Cb0:0:Y0:0 1:1:8:2:8:2:8:2:1:1:8:2:8:2:8:2 little endian"/>
396 <entry name="y0l2" value="0x324c3059" summary="[63:0] A3:A2:Y3:Cr0:Y2:A1:A0:Y1:Cb0:Y0 1:1:10:10:10:1:1:10:10:10 little endian"/>
397 <entry name="x0l2" value="0x324c3058" summary="[63:0] X3:X2:Y3:Cr0:Y2:X1:X0:Y1:Cb0:Y0 1:1:10:10:10:1:1:10:10:10 little endian"/>
398 <entry name="yuv420_8bit" value="0x38305559"/>
399 <entry name="yuv420_10bit" value="0x30315559"/>
400 <entry name="xrgb8888_a8" value="0x38415258"/>
401 <entry name="xbgr8888_a8" value="0x38414258"/>
402 <entry name="rgbx8888_a8" value="0x38415852"/>
403 <entry name="bgrx8888_a8" value="0x38415842"/>
404 <entry name="rgb888_a8" value="0x38413852"/>
405 <entry name="bgr888_a8" value="0x38413842"/>
406 <entry name="rgb565_a8" value="0x38413552"/>
407 <entry name="bgr565_a8" value="0x38413542"/>
408 <entry name="nv24" value="0x3432564e" summary="non-subsampled Cr:Cb plane"/>
409 <entry name="nv42" value="0x3234564e" summary="non-subsampled Cb:Cr plane"/>
410 <entry name="p210" value="0x30313250" summary="2x1 subsampled Cr:Cb plane, 10 bit per channel"/>
411 <entry name="p010" value="0x30313050" summary="2x2 subsampled Cr:Cb plane 10 bits per channel"/>
412 <entry name="p012" value="0x32313050" summary="2x2 subsampled Cr:Cb plane 12 bits per channel"/>
413 <entry name="p016" value="0x36313050" summary="2x2 subsampled Cr:Cb plane 16 bits per channel"/>
414 <entry name="axbxgxrx106106106106" value="0x30314241" summary="[63:0] A:x:B:x:G:x:R:x 10:6:10:6:10:6:10:6 little endian"/>
415 <entry name="nv15" value="0x3531564e" summary="2x2 subsampled Cr:Cb plane"/>
416 <entry name="q410" value="0x30313451"/>
417 <entry name="q401" value="0x31303451"/>
418 <entry name="xrgb16161616" value="0x38345258" summary="[63:0] x:R:G:B 16:16:16:16 little endian"/>
419 <entry name="xbgr16161616" value="0x38344258" summary="[63:0] x:B:G:R 16:16:16:16 little endian"/>
420 <entry name="argb16161616" value="0x38345241" summary="[63:0] A:R:G:B 16:16:16:16 little endian"/>
421 <entry name="abgr16161616" value="0x38344241" summary="[63:0] A:B:G:R 16:16:16:16 little endian"/>
422 </enum>
423
424 <request name="create_pool">
425 <description summary="create a shm pool">
426 Create a new wl_shm_pool object.
427
428 The pool can be used to create shared memory based buffer
429 objects. The server will mmap size bytes of the passed file
430 descriptor, to use as backing memory for the pool.
431 </description>
432 <arg name="id" type="new_id" interface="wl_shm_pool" summary="pool to create"/>
433 <arg name="fd" type="fd" summary="file descriptor for the pool"/>
434 <arg name="size" type="int" summary="pool size, in bytes"/>
435 </request>
436
437 <event name="format">
438 <description summary="pixel format description">
439 Informs the client about a valid pixel format that
440 can be used for buffers. Known formats include
441 argb8888 and xrgb8888.
442 </description>
443 <arg name="format" type="uint" enum="format" summary="buffer pixel format"/>
444 </event>
445 </interface>
446
447 <interface name="wl_buffer" version="1">
448 <description summary="content for a wl_surface">
449 A buffer provides the content for a wl_surface. Buffers are
450 created through factory interfaces such as wl_shm, wp_linux_buffer_params
451 (from the linux-dmabuf protocol extension) or similar. It has a width and
452 a height and can be attached to a wl_surface, but the mechanism by which a
453 client provides and updates the contents is defined by the buffer factory
454 interface.
455
456 If the buffer uses a format that has an alpha channel, the alpha channel
457 is assumed to be premultiplied in the color channels unless otherwise
458 specified.
459
460 Note, because wl_buffer objects are created from multiple independent
461 factory interfaces, the wl_buffer interface is frozen at version 1.
462 </description>
463
464 <request name="destroy" type="destructor">
465 <description summary="destroy a buffer">
466 Destroy a buffer. If and how you need to release the backing
467 storage is defined by the buffer factory interface.
468
469 For possible side-effects to a surface, see wl_surface.attach.
470 </description>
471 </request>
472
473 <event name="release">
474 <description summary="compositor releases buffer">
475 Sent when this wl_buffer is no longer used by the compositor.
476 The client is now free to reuse or destroy this buffer and its
477 backing storage.
478
479 If a client receives a release event before the frame callback
480 requested in the same wl_surface.commit that attaches this
481 wl_buffer to a surface, then the client is immediately free to
482 reuse the buffer and its backing storage, and does not need a
483 second buffer for the next surface content update. Typically
484 this is possible, when the compositor maintains a copy of the
485 wl_surface contents, e.g. as a GL texture. This is an important
486 optimization for GL(ES) compositors with wl_shm clients.
487 </description>
488 </event>
489 </interface>
490
491 <interface name="wl_data_offer" version="3">
492 <description summary="offer to transfer data">
493 A wl_data_offer represents a piece of data offered for transfer
494 by another client (the source client). It is used by the
495 copy-and-paste and drag-and-drop mechanisms. The offer
496 describes the different mime types that the data can be
497 converted to and provides the mechanism for transferring the
498 data directly from the source client.
499 </description>
500
501 <enum name="error">
502 <entry name="invalid_finish" value="0"
503 summary="finish request was called untimely"/>
504 <entry name="invalid_action_mask" value="1"
505 summary="action mask contains invalid values"/>
506 <entry name="invalid_action" value="2"
507 summary="action argument has an invalid value"/>
508 <entry name="invalid_offer" value="3"
509 summary="offer doesn't accept this request"/>
510 </enum>
511
512 <request name="accept">
513 <description summary="accept one of the offered mime types">
514 Indicate that the client can accept the given mime type, or
515 NULL for not accepted.
516
517 For objects of version 2 or older, this request is used by the
518 client to give feedback whether the client can receive the given
519 mime type, or NULL if none is accepted; the feedback does not
520 determine whether the drag-and-drop operation succeeds or not.
521
522 For objects of version 3 or newer, this request determines the
523 final result of the drag-and-drop operation. If the end result
524 is that no mime types were accepted, the drag-and-drop operation
525 will be cancelled and the corresponding drag source will receive
526 wl_data_source.cancelled. Clients may still use this event in
527 conjunction with wl_data_source.action for feedback.
528 </description>
529 <arg name="serial" type="uint" summary="serial number of the accept request"/>
530 <arg name="mime_type" type="string" allow-null="true" summary="mime type accepted by the client"/>
531 </request>
532
533 <request name="receive">
534 <description summary="request that the data is transferred">
535 To transfer the offered data, the client issues this request
536 and indicates the mime type it wants to receive. The transfer
537 happens through the passed file descriptor (typically created
538 with the pipe system call). The source client writes the data
539 in the mime type representation requested and then closes the
540 file descriptor.
541
542 The receiving client reads from the read end of the pipe until
543 EOF and then closes its end, at which point the transfer is
544 complete.
545
546 This request may happen multiple times for different mime types,
547 both before and after wl_data_device.drop. Drag-and-drop destination
548 clients may preemptively fetch data or examine it more closely to
549 determine acceptance.
550 </description>
551 <arg name="mime_type" type="string" summary="mime type desired by receiver"/>
552 <arg name="fd" type="fd" summary="file descriptor for data transfer"/>
553 </request>
554
555 <request name="destroy" type="destructor">
556 <description summary="destroy data offer">
557 Destroy the data offer.
558 </description>
559 </request>
560
561 <event name="offer">
562 <description summary="advertise offered mime type">
563 Sent immediately after creating the wl_data_offer object. One
564 event per offered mime type.
565 </description>
566 <arg name="mime_type" type="string" summary="offered mime type"/>
567 </event>
568
569 <!-- Version 3 additions -->
570
571 <request name="finish" since="3">
572 <description summary="the offer will no longer be used">
573 Notifies the compositor that the drag destination successfully
574 finished the drag-and-drop operation.
575
576 Upon receiving this request, the compositor will emit
577 wl_data_source.dnd_finished on the drag source client.
578
579 It is a client error to perform other requests than
580 wl_data_offer.destroy after this one. It is also an error to perform
581 this request after a NULL mime type has been set in
582 wl_data_offer.accept or no action was received through
583 wl_data_offer.action.
584
585 If wl_data_offer.finish request is received for a non drag and drop
586 operation, the invalid_finish protocol error is raised.
587 </description>
588 </request>
589
590 <request name="set_actions" since="3">
591 <description summary="set the available/preferred drag-and-drop actions">
592 Sets the actions that the destination side client supports for
593 this operation. This request may trigger the emission of
594 wl_data_source.action and wl_data_offer.action events if the compositor
595 needs to change the selected action.
596
597 This request can be called multiple times throughout the
598 drag-and-drop operation, typically in response to wl_data_device.enter
599 or wl_data_device.motion events.
600
601 This request determines the final result of the drag-and-drop
602 operation. If the end result is that no action is accepted,
603 the drag source will receive wl_data_source.cancelled.
604
605 The dnd_actions argument must contain only values expressed in the
606 wl_data_device_manager.dnd_actions enum, and the preferred_action
607 argument must only contain one of those values set, otherwise it
608 will result in a protocol error.
609
610 While managing an "ask" action, the destination drag-and-drop client
611 may perform further wl_data_offer.receive requests, and is expected
612 to perform one last wl_data_offer.set_actions request with a preferred
613 action other than "ask" (and optionally wl_data_offer.accept) before
614 requesting wl_data_offer.finish, in order to convey the action selected
615 by the user. If the preferred action is not in the
616 wl_data_offer.source_actions mask, an error will be raised.
617
618 If the "ask" action is dismissed (e.g. user cancellation), the client
619 is expected to perform wl_data_offer.destroy right away.
620
621 This request can only be made on drag-and-drop offers, a protocol error
622 will be raised otherwise.
623 </description>
624 <arg name="dnd_actions" type="uint" summary="actions supported by the destination client"
625 enum="wl_data_device_manager.dnd_action"/>
626 <arg name="preferred_action" type="uint" summary="action preferred by the destination client"
627 enum="wl_data_device_manager.dnd_action"/>
628 </request>
629
630 <event name="source_actions" since="3">
631 <description summary="notify the source-side available actions">
632 This event indicates the actions offered by the data source. It
633 will be sent immediately after creating the wl_data_offer object,
634 or anytime the source side changes its offered actions through
635 wl_data_source.set_actions.
636 </description>
637 <arg name="source_actions" type="uint" summary="actions offered by the data source"
638 enum="wl_data_device_manager.dnd_action"/>
639 </event>
640
641 <event name="action" since="3">
642 <description summary="notify the selected action">
643 This event indicates the action selected by the compositor after
644 matching the source/destination side actions. Only one action (or
645 none) will be offered here.
646
647 This event can be emitted multiple times during the drag-and-drop
648 operation in response to destination side action changes through
649 wl_data_offer.set_actions.
650
651 This event will no longer be emitted after wl_data_device.drop
652 happened on the drag-and-drop destination, the client must
653 honor the last action received, or the last preferred one set
654 through wl_data_offer.set_actions when handling an "ask" action.
655
656 Compositors may also change the selected action on the fly, mainly
657 in response to keyboard modifier changes during the drag-and-drop
658 operation.
659
660 The most recent action received is always the valid one. Prior to
661 receiving wl_data_device.drop, the chosen action may change (e.g.
662 due to keyboard modifiers being pressed). At the time of receiving
663 wl_data_device.drop the drag-and-drop destination must honor the
664 last action received.
665
666 Action changes may still happen after wl_data_device.drop,
667 especially on "ask" actions, where the drag-and-drop destination
668 may choose another action afterwards. Action changes happening
669 at this stage are always the result of inter-client negotiation, the
670 compositor shall no longer be able to induce a different action.
671
672 Upon "ask" actions, it is expected that the drag-and-drop destination
673 may potentially choose a different action and/or mime type,
674 based on wl_data_offer.source_actions and finally chosen by the
675 user (e.g. popping up a menu with the available options). The
676 final wl_data_offer.set_actions and wl_data_offer.accept requests
677 must happen before the call to wl_data_offer.finish.
678 </description>
679 <arg name="dnd_action" type="uint" summary="action selected by the compositor"
680 enum="wl_data_device_manager.dnd_action"/>
681 </event>
682 </interface>
683
684 <interface name="wl_data_source" version="3">
685 <description summary="offer to transfer data">
686 The wl_data_source object is the source side of a wl_data_offer.
687 It is created by the source client in a data transfer and
688 provides a way to describe the offered data and a way to respond
689 to requests to transfer the data.
690 </description>
691
692 <enum name="error">
693 <entry name="invalid_action_mask" value="0"
694 summary="action mask contains invalid values"/>
695 <entry name="invalid_source" value="1"
696 summary="source doesn't accept this request"/>
697 </enum>
698
699 <request name="offer">
700 <description summary="add an offered mime type">
701 This request adds a mime type to the set of mime types
702 advertised to targets. Can be called several times to offer
703 multiple types.
704 </description>
705 <arg name="mime_type" type="string" summary="mime type offered by the data source"/>
706 </request>
707
708 <request name="destroy" type="destructor">
709 <description summary="destroy the data source">
710 Destroy the data source.
711 </description>
712 </request>
713
714 <event name="target">
715 <description summary="a target accepts an offered mime type">
716 Sent when a target accepts pointer_focus or motion events. If
717 a target does not accept any of the offered types, type is NULL.
718
719 Used for feedback during drag-and-drop.
720 </description>
721 <arg name="mime_type" type="string" allow-null="true" summary="mime type accepted by the target"/>
722 </event>
723
724 <event name="send">
725 <description summary="send the data">
726 Request for data from the client. Send the data as the
727 specified mime type over the passed file descriptor, then
728 close it.
729 </description>
730 <arg name="mime_type" type="string" summary="mime type for the data"/>
731 <arg name="fd" type="fd" summary="file descriptor for the data"/>
732 </event>
733
734 <event name="cancelled">
735 <description summary="selection was cancelled">
736 This data source is no longer valid. There are several reasons why
737 this could happen:
738
739 - The data source has been replaced by another data source.
740 - The drag-and-drop operation was performed, but the drop destination
741 did not accept any of the mime types offered through
742 wl_data_source.target.
743 - The drag-and-drop operation was performed, but the drop destination
744 did not select any of the actions present in the mask offered through
745 wl_data_source.action.
746 - The drag-and-drop operation was performed but didn't happen over a
747 surface.
748 - The compositor cancelled the drag-and-drop operation (e.g. compositor
749 dependent timeouts to avoid stale drag-and-drop transfers).
750
751 The client should clean up and destroy this data source.
752
753 For objects of version 2 or older, wl_data_source.cancelled will
754 only be emitted if the data source was replaced by another data
755 source.
756 </description>
757 </event>
758
759 <!-- Version 3 additions -->
760
761 <request name="set_actions" since="3">
762 <description summary="set the available drag-and-drop actions">
763 Sets the actions that the source side client supports for this
764 operation. This request may trigger wl_data_source.action and
765 wl_data_offer.action events if the compositor needs to change the
766 selected action.
767
768 The dnd_actions argument must contain only values expressed in the
769 wl_data_device_manager.dnd_actions enum, otherwise it will result
770 in a protocol error.
771
772 This request must be made once only, and can only be made on sources
773 used in drag-and-drop, so it must be performed before
774 wl_data_device.start_drag. Attempting to use the source other than
775 for drag-and-drop will raise a protocol error.
776 </description>
777 <arg name="dnd_actions" type="uint" summary="actions supported by the data source"
778 enum="wl_data_device_manager.dnd_action"/>
779 </request>
780
781 <event name="dnd_drop_performed" since="3">
782 <description summary="the drag-and-drop operation physically finished">
783 The user performed the drop action. This event does not indicate
784 acceptance, wl_data_source.cancelled may still be emitted afterwards
785 if the drop destination does not accept any mime type.
786
787 However, this event might however not be received if the compositor
788 cancelled the drag-and-drop operation before this event could happen.
789
790 Note that the data_source may still be used in the future and should
791 not be destroyed here.
792 </description>
793 </event>
794
795 <event name="dnd_finished" since="3">
796 <description summary="the drag-and-drop operation concluded">
797 The drop destination finished interoperating with this data
798 source, so the client is now free to destroy this data source and
799 free all associated data.
800
801 If the action used to perform the operation was "move", the
802 source can now delete the transferred data.
803 </description>
804 </event>
805
806 <event name="action" since="3">
807 <description summary="notify the selected action">
808 This event indicates the action selected by the compositor after
809 matching the source/destination side actions. Only one action (or
810 none) will be offered here.
811
812 This event can be emitted multiple times during the drag-and-drop
813 operation, mainly in response to destination side changes through
814 wl_data_offer.set_actions, and as the data device enters/leaves
815 surfaces.
816
817 It is only possible to receive this event after
818 wl_data_source.dnd_drop_performed if the drag-and-drop operation
819 ended in an "ask" action, in which case the final wl_data_source.action
820 event will happen immediately before wl_data_source.dnd_finished.
821
822 Compositors may also change the selected action on the fly, mainly
823 in response to keyboard modifier changes during the drag-and-drop
824 operation.
825
826 The most recent action received is always the valid one. The chosen
827 action may change alongside negotiation (e.g. an "ask" action can turn
828 into a "move" operation), so the effects of the final action must
829 always be applied in wl_data_offer.dnd_finished.
830
831 Clients can trigger cursor surface changes from this point, so
832 they reflect the current action.
833 </description>
834 <arg name="dnd_action" type="uint" summary="action selected by the compositor"
835 enum="wl_data_device_manager.dnd_action"/>
836 </event>
837 </interface>
838
839 <interface name="wl_data_device" version="3">
840 <description summary="data transfer device">
841 There is one wl_data_device per seat which can be obtained
842 from the global wl_data_device_manager singleton.
843
844 A wl_data_device provides access to inter-client data transfer
845 mechanisms such as copy-and-paste and drag-and-drop.
846 </description>
847
848 <enum name="error">
849 <entry name="role" value="0" summary="given wl_surface has another role"/>
850 </enum>
851
852 <request name="start_drag">
853 <description summary="start drag-and-drop operation">
854 This request asks the compositor to start a drag-and-drop
855 operation on behalf of the client.
856
857 The source argument is the data source that provides the data
858 for the eventual data transfer. If source is NULL, enter, leave
859 and motion events are sent only to the client that initiated the
860 drag and the client is expected to handle the data passing
861 internally. If source is destroyed, the drag-and-drop session will be
862 cancelled.
863
864 The origin surface is the surface where the drag originates and
865 the client must have an active implicit grab that matches the
866 serial.
867
868 The icon surface is an optional (can be NULL) surface that
869 provides an icon to be moved around with the cursor. Initially,
870 the top-left corner of the icon surface is placed at the cursor
871 hotspot, but subsequent wl_surface.attach request can move the
872 relative position. Attach requests must be confirmed with
873 wl_surface.commit as usual. The icon surface is given the role of
874 a drag-and-drop icon. If the icon surface already has another role,
875 it raises a protocol error.
876
877 The input region is ignored for wl_surfaces with the role of a
878 drag-and-drop icon.
879 </description>
880 <arg name="source" type="object" interface="wl_data_source" allow-null="true" summary="data source for the eventual transfer"/>
881 <arg name="origin" type="object" interface="wl_surface" summary="surface where the drag originates"/>
882 <arg name="icon" type="object" interface="wl_surface" allow-null="true" summary="drag-and-drop icon surface"/>
883 <arg name="serial" type="uint" summary="serial number of the implicit grab on the origin"/>
884 </request>
885
886 <request name="set_selection">
887 <description summary="copy data to the selection">
888 This request asks the compositor to set the selection
889 to the data from the source on behalf of the client.
890
891 To unset the selection, set the source to NULL.
892 </description>
893 <arg name="source" type="object" interface="wl_data_source" allow-null="true" summary="data source for the selection"/>
894 <arg name="serial" type="uint" summary="serial number of the event that triggered this request"/>
895 </request>
896
897 <event name="data_offer">
898 <description summary="introduce a new wl_data_offer">
899 The data_offer event introduces a new wl_data_offer object,
900 which will subsequently be used in either the
901 data_device.enter event (for drag-and-drop) or the
902 data_device.selection event (for selections). Immediately
903 following the data_device.data_offer event, the new data_offer
904 object will send out data_offer.offer events to describe the
905 mime types it offers.
906 </description>
907 <arg name="id" type="new_id" interface="wl_data_offer" summary="the new data_offer object"/>
908 </event>
909
910 <event name="enter">
911 <description summary="initiate drag-and-drop session">
912 This event is sent when an active drag-and-drop pointer enters
913 a surface owned by the client. The position of the pointer at
914 enter time is provided by the x and y arguments, in surface-local
915 coordinates.
916 </description>
917 <arg name="serial" type="uint" summary="serial number of the enter event"/>
918 <arg name="surface" type="object" interface="wl_surface" summary="client surface entered"/>
919 <arg name="x" type="fixed" summary="surface-local x coordinate"/>
920 <arg name="y" type="fixed" summary="surface-local y coordinate"/>
921 <arg name="id" type="object" interface="wl_data_offer" allow-null="true"
922 summary="source data_offer object"/>
923 </event>
924
925 <event name="leave">
926 <description summary="end drag-and-drop session">
927 This event is sent when the drag-and-drop pointer leaves the
928 surface and the session ends. The client must destroy the
929 wl_data_offer introduced at enter time at this point.
930 </description>
931 </event>
932
933 <event name="motion">
934 <description summary="drag-and-drop session motion">
935 This event is sent when the drag-and-drop pointer moves within
936 the currently focused surface. The new position of the pointer
937 is provided by the x and y arguments, in surface-local
938 coordinates.
939 </description>
940 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
941 <arg name="x" type="fixed" summary="surface-local x coordinate"/>
942 <arg name="y" type="fixed" summary="surface-local y coordinate"/>
943 </event>
944
945 <event name="drop">
946 <description summary="end drag-and-drop session successfully">
947 The event is sent when a drag-and-drop operation is ended
948 because the implicit grab is removed.
949
950 The drag-and-drop destination is expected to honor the last action
951 received through wl_data_offer.action, if the resulting action is
952 "copy" or "move", the destination can still perform
953 wl_data_offer.receive requests, and is expected to end all
954 transfers with a wl_data_offer.finish request.
955
956 If the resulting action is "ask", the action will not be considered
957 final. The drag-and-drop destination is expected to perform one last
958 wl_data_offer.set_actions request, or wl_data_offer.destroy in order
959 to cancel the operation.
960 </description>
961 </event>
962
963 <event name="selection">
964 <description summary="advertise new selection">
965 The selection event is sent out to notify the client of a new
966 wl_data_offer for the selection for this device. The
967 data_device.data_offer and the data_offer.offer events are
968 sent out immediately before this event to introduce the data
969 offer object. The selection event is sent to a client
970 immediately before receiving keyboard focus and when a new
971 selection is set while the client has keyboard focus. The
972 data_offer is valid until a new data_offer or NULL is received
973 or until the client loses keyboard focus. Switching surface with
974 keyboard focus within the same client doesn't mean a new selection
975 will be sent. The client must destroy the previous selection
976 data_offer, if any, upon receiving this event.
977 </description>
978 <arg name="id" type="object" interface="wl_data_offer" allow-null="true"
979 summary="selection data_offer object"/>
980 </event>
981
982 <!-- Version 2 additions -->
983
984 <request name="release" type="destructor" since="2">
985 <description summary="destroy data device">
986 This request destroys the data device.
987 </description>
988 </request>
989 </interface>
990
991 <interface name="wl_data_device_manager" version="3">
992 <description summary="data transfer interface">
993 The wl_data_device_manager is a singleton global object that
994 provides access to inter-client data transfer mechanisms such as
995 copy-and-paste and drag-and-drop. These mechanisms are tied to
996 a wl_seat and this interface lets a client get a wl_data_device
997 corresponding to a wl_seat.
998
999 Depending on the version bound, the objects created from the bound
1000 wl_data_device_manager object will have different requirements for
1001 functioning properly. See wl_data_source.set_actions,
1002 wl_data_offer.accept and wl_data_offer.finish for details.
1003 </description>
1004
1005 <request name="create_data_source">
1006 <description summary="create a new data source">
1007 Create a new data source.
1008 </description>
1009 <arg name="id" type="new_id" interface="wl_data_source" summary="data source to create"/>
1010 </request>
1011
1012 <request name="get_data_device">
1013 <description summary="create a new data device">
1014 Create a new data device for a given seat.
1015 </description>
1016 <arg name="id" type="new_id" interface="wl_data_device" summary="data device to create"/>
1017 <arg name="seat" type="object" interface="wl_seat" summary="seat associated with the data device"/>
1018 </request>
1019
1020 <!-- Version 3 additions -->
1021
1022 <enum name="dnd_action" bitfield="true" since="3">
1023 <description summary="drag and drop actions">
1024 This is a bitmask of the available/preferred actions in a
1025 drag-and-drop operation.
1026
1027 In the compositor, the selected action is a result of matching the
1028 actions offered by the source and destination sides. "action" events
1029 with a "none" action will be sent to both source and destination if
1030 there is no match. All further checks will effectively happen on
1031 (source actions ∩ destination actions).
1032
1033 In addition, compositors may also pick different actions in
1034 reaction to key modifiers being pressed. One common design that
1035 is used in major toolkits (and the behavior recommended for
1036 compositors) is:
1037
1038 - If no modifiers are pressed, the first match (in bit order)
1039 will be used.
1040 - Pressing Shift selects "move", if enabled in the mask.
1041 - Pressing Control selects "copy", if enabled in the mask.
1042
1043 Behavior beyond that is considered implementation-dependent.
1044 Compositors may for example bind other modifiers (like Alt/Meta)
1045 or drags initiated with other buttons than BTN_LEFT to specific
1046 actions (e.g. "ask").
1047 </description>
1048 <entry name="none" value="0" summary="no action"/>
1049 <entry name="copy" value="1" summary="copy action"/>
1050 <entry name="move" value="2" summary="move action"/>
1051 <entry name="ask" value="4" summary="ask action"/>
1052 </enum>
1053 </interface>
1054
1055 <interface name="wl_shell" version="1">
1056 <description summary="create desktop-style surfaces">
1057 This interface is implemented by servers that provide
1058 desktop-style user interfaces.
1059
1060 It allows clients to associate a wl_shell_surface with
1061 a basic surface.
1062
1063 Note! This protocol is deprecated and not intended for production use.
1064 For desktop-style user interfaces, use xdg_shell. Compositors and clients
1065 should not implement this interface.
1066 </description>
1067
1068 <enum name="error">
1069 <entry name="role" value="0" summary="given wl_surface has another role"/>
1070 </enum>
1071
1072 <request name="get_shell_surface">
1073 <description summary="create a shell surface from a surface">
1074 Create a shell surface for an existing surface. This gives
1075 the wl_surface the role of a shell surface. If the wl_surface
1076 already has another role, it raises a protocol error.
1077
1078 Only one shell surface can be associated with a given surface.
1079 </description>
1080 <arg name="id" type="new_id" interface="wl_shell_surface" summary="shell surface to create"/>
1081 <arg name="surface" type="object" interface="wl_surface" summary="surface to be given the shell surface role"/>
1082 </request>
1083 </interface>
1084
1085 <interface name="wl_shell_surface" version="1">
1086 <description summary="desktop-style metadata interface">
1087 An interface that may be implemented by a wl_surface, for
1088 implementations that provide a desktop-style user interface.
1089
1090 It provides requests to treat surfaces like toplevel, fullscreen
1091 or popup windows, move, resize or maximize them, associate
1092 metadata like title and class, etc.
1093
1094 On the server side the object is automatically destroyed when
1095 the related wl_surface is destroyed. On the client side,
1096 wl_shell_surface_destroy() must be called before destroying
1097 the wl_surface object.
1098 </description>
1099
1100 <request name="pong">
1101 <description summary="respond to a ping event">
1102 A client must respond to a ping event with a pong request or
1103 the client may be deemed unresponsive.
1104 </description>
1105 <arg name="serial" type="uint" summary="serial number of the ping event"/>
1106 </request>
1107
1108 <request name="move">
1109 <description summary="start an interactive move">
1110 Start a pointer-driven move of the surface.
1111
1112 This request must be used in response to a button press event.
1113 The server may ignore move requests depending on the state of
1114 the surface (e.g. fullscreen or maximized).
1115 </description>
1116 <arg name="seat" type="object" interface="wl_seat" summary="seat whose pointer is used"/>
1117 <arg name="serial" type="uint" summary="serial number of the implicit grab on the pointer"/>
1118 </request>
1119
1120 <enum name="resize" bitfield="true">
1121 <description summary="edge values for resizing">
1122 These values are used to indicate which edge of a surface
1123 is being dragged in a resize operation. The server may
1124 use this information to adapt its behavior, e.g. choose
1125 an appropriate cursor image.
1126 </description>
1127 <entry name="none" value="0" summary="no edge"/>
1128 <entry name="top" value="1" summary="top edge"/>
1129 <entry name="bottom" value="2" summary="bottom edge"/>
1130 <entry name="left" value="4" summary="left edge"/>
1131 <entry name="top_left" value="5" summary="top and left edges"/>
1132 <entry name="bottom_left" value="6" summary="bottom and left edges"/>
1133 <entry name="right" value="8" summary="right edge"/>
1134 <entry name="top_right" value="9" summary="top and right edges"/>
1135 <entry name="bottom_right" value="10" summary="bottom and right edges"/>
1136 </enum>
1137
1138 <request name="resize">
1139 <description summary="start an interactive resize">
1140 Start a pointer-driven resizing of the surface.
1141
1142 This request must be used in response to a button press event.
1143 The server may ignore resize requests depending on the state of
1144 the surface (e.g. fullscreen or maximized).
1145 </description>
1146 <arg name="seat" type="object" interface="wl_seat" summary="seat whose pointer is used"/>
1147 <arg name="serial" type="uint" summary="serial number of the implicit grab on the pointer"/>
1148 <arg name="edges" type="uint" enum="resize" summary="which edge or corner is being dragged"/>
1149 </request>
1150
1151 <request name="set_toplevel">
1152 <description summary="make the surface a toplevel surface">
1153 Map the surface as a toplevel surface.
1154
1155 A toplevel surface is not fullscreen, maximized or transient.
1156 </description>
1157 </request>
1158
1159 <enum name="transient" bitfield="true">
1160 <description summary="details of transient behaviour">
1161 These flags specify details of the expected behaviour
1162 of transient surfaces. Used in the set_transient request.
1163 </description>
1164 <entry name="inactive" value="0x1" summary="do not set keyboard focus"/>
1165 </enum>
1166
1167 <request name="set_transient">
1168 <description summary="make the surface a transient surface">
1169 Map the surface relative to an existing surface.
1170
1171 The x and y arguments specify the location of the upper left
1172 corner of the surface relative to the upper left corner of the
1173 parent surface, in surface-local coordinates.
1174
1175 The flags argument controls details of the transient behaviour.
1176 </description>
1177 <arg name="parent" type="object" interface="wl_surface" summary="parent surface"/>
1178 <arg name="x" type="int" summary="surface-local x coordinate"/>
1179 <arg name="y" type="int" summary="surface-local y coordinate"/>
1180 <arg name="flags" type="uint" enum="transient" summary="transient surface behavior"/>
1181 </request>
1182
1183 <enum name="fullscreen_method">
1184 <description summary="different method to set the surface fullscreen">
1185 Hints to indicate to the compositor how to deal with a conflict
1186 between the dimensions of the surface and the dimensions of the
1187 output. The compositor is free to ignore this parameter.
1188 </description>
1189 <entry name="default" value="0" summary="no preference, apply default policy"/>
1190 <entry name="scale" value="1" summary="scale, preserve the surface's aspect ratio and center on output"/>
1191 <entry name="driver" value="2" summary="switch output mode to the smallest mode that can fit the surface, add black borders to compensate size mismatch"/>
1192 <entry name="fill" value="3" summary="no upscaling, center on output and add black borders to compensate size mismatch"/>
1193 </enum>
1194
1195 <request name="set_fullscreen">
1196 <description summary="make the surface a fullscreen surface">
1197 Map the surface as a fullscreen surface.
1198
1199 If an output parameter is given then the surface will be made
1200 fullscreen on that output. If the client does not specify the
1201 output then the compositor will apply its policy - usually
1202 choosing the output on which the surface has the biggest surface
1203 area.
1204
1205 The client may specify a method to resolve a size conflict
1206 between the output size and the surface size - this is provided
1207 through the method parameter.
1208
1209 The framerate parameter is used only when the method is set
1210 to "driver", to indicate the preferred framerate. A value of 0
1211 indicates that the client does not care about framerate. The
1212 framerate is specified in mHz, that is framerate of 60000 is 60Hz.
1213
1214 A method of "scale" or "driver" implies a scaling operation of
1215 the surface, either via a direct scaling operation or a change of
1216 the output mode. This will override any kind of output scaling, so
1217 that mapping a surface with a buffer size equal to the mode can
1218 fill the screen independent of buffer_scale.
1219
1220 A method of "fill" means we don't scale up the buffer, however
1221 any output scale is applied. This means that you may run into
1222 an edge case where the application maps a buffer with the same
1223 size of the output mode but buffer_scale 1 (thus making a
1224 surface larger than the output). In this case it is allowed to
1225 downscale the results to fit the screen.
1226
1227 The compositor must reply to this request with a configure event
1228 with the dimensions for the output on which the surface will
1229 be made fullscreen.
1230 </description>
1231 <arg name="method" type="uint" enum="fullscreen_method" summary="method for resolving size conflict"/>
1232 <arg name="framerate" type="uint" summary="framerate in mHz"/>
1233 <arg name="output" type="object" interface="wl_output" allow-null="true"
1234 summary="output on which the surface is to be fullscreen"/>
1235 </request>
1236
1237 <request name="set_popup">
1238 <description summary="make the surface a popup surface">
1239 Map the surface as a popup.
1240
1241 A popup surface is a transient surface with an added pointer
1242 grab.
1243
1244 An existing implicit grab will be changed to owner-events mode,
1245 and the popup grab will continue after the implicit grab ends
1246 (i.e. releasing the mouse button does not cause the popup to
1247 be unmapped).
1248
1249 The popup grab continues until the window is destroyed or a
1250 mouse button is pressed in any other client's window. A click
1251 in any of the client's surfaces is reported as normal, however,
1252 clicks in other clients' surfaces will be discarded and trigger
1253 the callback.
1254
1255 The x and y arguments specify the location of the upper left
1256 corner of the surface relative to the upper left corner of the
1257 parent surface, in surface-local coordinates.
1258 </description>
1259 <arg name="seat" type="object" interface="wl_seat" summary="seat whose pointer is used"/>
1260 <arg name="serial" type="uint" summary="serial number of the implicit grab on the pointer"/>
1261 <arg name="parent" type="object" interface="wl_surface" summary="parent surface"/>
1262 <arg name="x" type="int" summary="surface-local x coordinate"/>
1263 <arg name="y" type="int" summary="surface-local y coordinate"/>
1264 <arg name="flags" type="uint" enum="transient" summary="transient surface behavior"/>
1265 </request>
1266
1267 <request name="set_maximized">
1268 <description summary="make the surface a maximized surface">
1269 Map the surface as a maximized surface.
1270
1271 If an output parameter is given then the surface will be
1272 maximized on that output. If the client does not specify the
1273 output then the compositor will apply its policy - usually
1274 choosing the output on which the surface has the biggest surface
1275 area.
1276
1277 The compositor will reply with a configure event telling
1278 the expected new surface size. The operation is completed
1279 on the next buffer attach to this surface.
1280
1281 A maximized surface typically fills the entire output it is
1282 bound to, except for desktop elements such as panels. This is
1283 the main difference between a maximized shell surface and a
1284 fullscreen shell surface.
1285
1286 The details depend on the compositor implementation.
1287 </description>
1288 <arg name="output" type="object" interface="wl_output" allow-null="true"
1289 summary="output on which the surface is to be maximized"/>
1290 </request>
1291
1292 <request name="set_title">
1293 <description summary="set surface title">
1294 Set a short title for the surface.
1295
1296 This string may be used to identify the surface in a task bar,
1297 window list, or other user interface elements provided by the
1298 compositor.
1299
1300 The string must be encoded in UTF-8.
1301 </description>
1302 <arg name="title" type="string" summary="surface title"/>
1303 </request>
1304
1305 <request name="set_class">
1306 <description summary="set surface class">
1307 Set a class for the surface.
1308
1309 The surface class identifies the general class of applications
1310 to which the surface belongs. A common convention is to use the
1311 file name (or the full path if it is a non-standard location) of
1312 the application's .desktop file as the class.
1313 </description>
1314 <arg name="class_" type="string" summary="surface class"/>
1315 </request>
1316
1317 <event name="ping">
1318 <description summary="ping client">
1319 Ping a client to check if it is receiving events and sending
1320 requests. A client is expected to reply with a pong request.
1321 </description>
1322 <arg name="serial" type="uint" summary="serial number of the ping"/>
1323 </event>
1324
1325 <event name="configure">
1326 <description summary="suggest resize">
1327 The configure event asks the client to resize its surface.
1328
1329 The size is a hint, in the sense that the client is free to
1330 ignore it if it doesn't resize, pick a smaller size (to
1331 satisfy aspect ratio or resize in steps of NxM pixels).
1332
1333 The edges parameter provides a hint about how the surface
1334 was resized. The client may use this information to decide
1335 how to adjust its content to the new size (e.g. a scrolling
1336 area might adjust its content position to leave the viewable
1337 content unmoved).
1338
1339 The client is free to dismiss all but the last configure
1340 event it received.
1341
1342 The width and height arguments specify the size of the window
1343 in surface-local coordinates.
1344 </description>
1345 <arg name="edges" type="uint" enum="resize" summary="how the surface was resized"/>
1346 <arg name="width" type="int" summary="new width of the surface"/>
1347 <arg name="height" type="int" summary="new height of the surface"/>
1348 </event>
1349
1350 <event name="popup_done">
1351 <description summary="popup interaction is done">
1352 The popup_done event is sent out when a popup grab is broken,
1353 that is, when the user clicks a surface that doesn't belong
1354 to the client owning the popup surface.
1355 </description>
1356 </event>
1357 </interface>
1358
1359 <interface name="wl_surface" version="6">
1360 <description summary="an onscreen surface">
1361 A surface is a rectangular area that may be displayed on zero
1362 or more outputs, and shown any number of times at the compositor's
1363 discretion. They can present wl_buffers, receive user input, and
1364 define a local coordinate system.
1365
1366 The size of a surface (and relative positions on it) is described
1367 in surface-local coordinates, which may differ from the buffer
1368 coordinates of the pixel content, in case a buffer_transform
1369 or a buffer_scale is used.
1370
1371 A surface without a "role" is fairly useless: a compositor does
1372 not know where, when or how to present it. The role is the
1373 purpose of a wl_surface. Examples of roles are a cursor for a
1374 pointer (as set by wl_pointer.set_cursor), a drag icon
1375 (wl_data_device.start_drag), a sub-surface
1376 (wl_subcompositor.get_subsurface), and a window as defined by a
1377 shell protocol (e.g. wl_shell.get_shell_surface).
1378
1379 A surface can have only one role at a time. Initially a
1380 wl_surface does not have a role. Once a wl_surface is given a
1381 role, it is set permanently for the whole lifetime of the
1382 wl_surface object. Giving the current role again is allowed,
1383 unless explicitly forbidden by the relevant interface
1384 specification.
1385
1386 Surface roles are given by requests in other interfaces such as
1387 wl_pointer.set_cursor. The request should explicitly mention
1388 that this request gives a role to a wl_surface. Often, this
1389 request also creates a new protocol object that represents the
1390 role and adds additional functionality to wl_surface. When a
1391 client wants to destroy a wl_surface, they must destroy this role
1392 object before the wl_surface, otherwise a defunct_role_object error is
1393 sent.
1394
1395 Destroying the role object does not remove the role from the
1396 wl_surface, but it may stop the wl_surface from "playing the role".
1397 For instance, if a wl_subsurface object is destroyed, the wl_surface
1398 it was created for will be unmapped and forget its position and
1399 z-order. It is allowed to create a wl_subsurface for the same
1400 wl_surface again, but it is not allowed to use the wl_surface as
1401 a cursor (cursor is a different role than sub-surface, and role
1402 switching is not allowed).
1403 </description>
1404
1405 <enum name="error">
1406 <description summary="wl_surface error values">
1407 These errors can be emitted in response to wl_surface requests.
1408 </description>
1409 <entry name="invalid_scale" value="0" summary="buffer scale value is invalid"/>
1410 <entry name="invalid_transform" value="1" summary="buffer transform value is invalid"/>
1411 <entry name="invalid_size" value="2" summary="buffer size is invalid"/>
1412 <entry name="invalid_offset" value="3" summary="buffer offset is invalid"/>
1413 <entry name="defunct_role_object" value="4"
1414 summary="surface was destroyed before its role object"/>
1415 </enum>
1416
1417 <request name="destroy" type="destructor">
1418 <description summary="delete surface">
1419 Deletes the surface and invalidates its object ID.
1420 </description>
1421 </request>
1422
1423 <request name="attach">
1424 <description summary="set the surface contents">
1425 Set a buffer as the content of this surface.
1426
1427 The new size of the surface is calculated based on the buffer
1428 size transformed by the inverse buffer_transform and the
1429 inverse buffer_scale. This means that at commit time the supplied
1430 buffer size must be an integer multiple of the buffer_scale. If
1431 that's not the case, an invalid_size error is sent.
1432
1433 The x and y arguments specify the location of the new pending
1434 buffer's upper left corner, relative to the current buffer's upper
1435 left corner, in surface-local coordinates. In other words, the
1436 x and y, combined with the new surface size define in which
1437 directions the surface's size changes. Setting anything other than 0
1438 as x and y arguments is discouraged, and should instead be replaced
1439 with using the separate wl_surface.offset request.
1440
1441 When the bound wl_surface version is 5 or higher, passing any
1442 non-zero x or y is a protocol violation, and will result in an
1443 'invalid_offset' error being raised. The x and y arguments are ignored
1444 and do not change the pending state. To achieve equivalent semantics,
1445 use wl_surface.offset.
1446
1447 Surface contents are double-buffered state, see wl_surface.commit.
1448
1449 The initial surface contents are void; there is no content.
1450 wl_surface.attach assigns the given wl_buffer as the pending
1451 wl_buffer. wl_surface.commit makes the pending wl_buffer the new
1452 surface contents, and the size of the surface becomes the size
1453 calculated from the wl_buffer, as described above. After commit,
1454 there is no pending buffer until the next attach.
1455
1456 Committing a pending wl_buffer allows the compositor to read the
1457 pixels in the wl_buffer. The compositor may access the pixels at
1458 any time after the wl_surface.commit request. When the compositor
1459 will not access the pixels anymore, it will send the
1460 wl_buffer.release event. Only after receiving wl_buffer.release,
1461 the client may reuse the wl_buffer. A wl_buffer that has been
1462 attached and then replaced by another attach instead of committed
1463 will not receive a release event, and is not used by the
1464 compositor.
1465
1466 If a pending wl_buffer has been committed to more than one wl_surface,
1467 the delivery of wl_buffer.release events becomes undefined. A well
1468 behaved client should not rely on wl_buffer.release events in this
1469 case. Alternatively, a client could create multiple wl_buffer objects
1470 from the same backing storage or use wp_linux_buffer_release.
1471
1472 Destroying the wl_buffer after wl_buffer.release does not change
1473 the surface contents. Destroying the wl_buffer before wl_buffer.release
1474 is allowed as long as the underlying buffer storage isn't re-used (this
1475 can happen e.g. on client process termination). However, if the client
1476 destroys the wl_buffer before receiving the wl_buffer.release event and
1477 mutates the underlying buffer storage, the surface contents become
1478 undefined immediately.
1479
1480 If wl_surface.attach is sent with a NULL wl_buffer, the
1481 following wl_surface.commit will remove the surface content.
1482 </description>
1483 <arg name="buffer" type="object" interface="wl_buffer" allow-null="true"
1484 summary="buffer of surface contents"/>
1485 <arg name="x" type="int" summary="surface-local x coordinate"/>
1486 <arg name="y" type="int" summary="surface-local y coordinate"/>
1487 </request>
1488
1489 <request name="damage">
1490 <description summary="mark part of the surface damaged">
1491 This request is used to describe the regions where the pending
1492 buffer is different from the current surface contents, and where
1493 the surface therefore needs to be repainted. The compositor
1494 ignores the parts of the damage that fall outside of the surface.
1495
1496 Damage is double-buffered state, see wl_surface.commit.
1497
1498 The damage rectangle is specified in surface-local coordinates,
1499 where x and y specify the upper left corner of the damage rectangle.
1500
1501 The initial value for pending damage is empty: no damage.
1502 wl_surface.damage adds pending damage: the new pending damage
1503 is the union of old pending damage and the given rectangle.
1504
1505 wl_surface.commit assigns pending damage as the current damage,
1506 and clears pending damage. The server will clear the current
1507 damage as it repaints the surface.
1508
1509 Note! New clients should not use this request. Instead damage can be
1510 posted with wl_surface.damage_buffer which uses buffer coordinates
1511 instead of surface coordinates.
1512 </description>
1513 <arg name="x" type="int" summary="surface-local x coordinate"/>
1514 <arg name="y" type="int" summary="surface-local y coordinate"/>
1515 <arg name="width" type="int" summary="width of damage rectangle"/>
1516 <arg name="height" type="int" summary="height of damage rectangle"/>
1517 </request>
1518
1519 <request name="frame">
1520 <description summary="request a frame throttling hint">
1521 Request a notification when it is a good time to start drawing a new
1522 frame, by creating a frame callback. This is useful for throttling
1523 redrawing operations, and driving animations.
1524
1525 When a client is animating on a wl_surface, it can use the 'frame'
1526 request to get notified when it is a good time to draw and commit the
1527 next frame of animation. If the client commits an update earlier than
1528 that, it is likely that some updates will not make it to the display,
1529 and the client is wasting resources by drawing too often.
1530
1531 The frame request will take effect on the next wl_surface.commit.
1532 The notification will only be posted for one frame unless
1533 requested again. For a wl_surface, the notifications are posted in
1534 the order the frame requests were committed.
1535
1536 The server must send the notifications so that a client
1537 will not send excessive updates, while still allowing
1538 the highest possible update rate for clients that wait for the reply
1539 before drawing again. The server should give some time for the client
1540 to draw and commit after sending the frame callback events to let it
1541 hit the next output refresh.
1542
1543 A server should avoid signaling the frame callbacks if the
1544 surface is not visible in any way, e.g. the surface is off-screen,
1545 or completely obscured by other opaque surfaces.
1546
1547 The object returned by this request will be destroyed by the
1548 compositor after the callback is fired and as such the client must not
1549 attempt to use it after that point.
1550
1551 The callback_data passed in the callback is the current time, in
1552 milliseconds, with an undefined base.
1553 </description>
1554 <arg name="callback" type="new_id" interface="wl_callback" summary="callback object for the frame request"/>
1555 </request>
1556
1557 <request name="set_opaque_region">
1558 <description summary="set opaque region">
1559 This request sets the region of the surface that contains
1560 opaque content.
1561
1562 The opaque region is an optimization hint for the compositor
1563 that lets it optimize the redrawing of content behind opaque
1564 regions. Setting an opaque region is not required for correct
1565 behaviour, but marking transparent content as opaque will result
1566 in repaint artifacts.
1567
1568 The opaque region is specified in surface-local coordinates.
1569
1570 The compositor ignores the parts of the opaque region that fall
1571 outside of the surface.
1572
1573 Opaque region is double-buffered state, see wl_surface.commit.
1574
1575 wl_surface.set_opaque_region changes the pending opaque region.
1576 wl_surface.commit copies the pending region to the current region.
1577 Otherwise, the pending and current regions are never changed.
1578
1579 The initial value for an opaque region is empty. Setting the pending
1580 opaque region has copy semantics, and the wl_region object can be
1581 destroyed immediately. A NULL wl_region causes the pending opaque
1582 region to be set to empty.
1583 </description>
1584 <arg name="region" type="object" interface="wl_region" allow-null="true"
1585 summary="opaque region of the surface"/>
1586 </request>
1587
1588 <request name="set_input_region">
1589 <description summary="set input region">
1590 This request sets the region of the surface that can receive
1591 pointer and touch events.
1592
1593 Input events happening outside of this region will try the next
1594 surface in the server surface stack. The compositor ignores the
1595 parts of the input region that fall outside of the surface.
1596
1597 The input region is specified in surface-local coordinates.
1598
1599 Input region is double-buffered state, see wl_surface.commit.
1600
1601 wl_surface.set_input_region changes the pending input region.
1602 wl_surface.commit copies the pending region to the current region.
1603 Otherwise the pending and current regions are never changed,
1604 except cursor and icon surfaces are special cases, see
1605 wl_pointer.set_cursor and wl_data_device.start_drag.
1606
1607 The initial value for an input region is infinite. That means the
1608 whole surface will accept input. Setting the pending input region
1609 has copy semantics, and the wl_region object can be destroyed
1610 immediately. A NULL wl_region causes the input region to be set
1611 to infinite.
1612 </description>
1613 <arg name="region" type="object" interface="wl_region" allow-null="true"
1614 summary="input region of the surface"/>
1615 </request>
1616
1617 <request name="commit">
1618 <description summary="commit pending surface state">
1619 Surface state (input, opaque, and damage regions, attached buffers,
1620 etc.) is double-buffered. Protocol requests modify the pending state,
1621 as opposed to the current state in use by the compositor. A commit
1622 request atomically applies all pending state, replacing the current
1623 state. After commit, the new pending state is as documented for each
1624 related request.
1625
1626 On commit, a pending wl_buffer is applied first, and all other state
1627 second. This means that all coordinates in double-buffered state are
1628 relative to the new wl_buffer coming into use, except for
1629 wl_surface.attach itself. If there is no pending wl_buffer, the
1630 coordinates are relative to the current surface contents.
1631
1632 All requests that need a commit to become effective are documented
1633 to affect double-buffered state.
1634
1635 Other interfaces may add further double-buffered surface state.
1636 </description>
1637 </request>
1638
1639 <event name="enter">
1640 <description summary="surface enters an output">
1641 This is emitted whenever a surface's creation, movement, or resizing
1642 results in some part of it being within the scanout region of an
1643 output.
1644
1645 Note that a surface may be overlapping with zero or more outputs.
1646 </description>
1647 <arg name="output" type="object" interface="wl_output" summary="output entered by the surface"/>
1648 </event>
1649
1650 <event name="leave">
1651 <description summary="surface leaves an output">
1652 This is emitted whenever a surface's creation, movement, or resizing
1653 results in it no longer having any part of it within the scanout region
1654 of an output.
1655
1656 Clients should not use the number of outputs the surface is on for frame
1657 throttling purposes. The surface might be hidden even if no leave event
1658 has been sent, and the compositor might expect new surface content
1659 updates even if no enter event has been sent. The frame event should be
1660 used instead.
1661 </description>
1662 <arg name="output" type="object" interface="wl_output" summary="output left by the surface"/>
1663 </event>
1664
1665 <!-- Version 2 additions -->
1666
1667 <request name="set_buffer_transform" since="2">
1668 <description summary="sets the buffer transformation">
1669 This request sets an optional transformation on how the compositor
1670 interprets the contents of the buffer attached to the surface. The
1671 accepted values for the transform parameter are the values for
1672 wl_output.transform.
1673
1674 Buffer transform is double-buffered state, see wl_surface.commit.
1675
1676 A newly created surface has its buffer transformation set to normal.
1677
1678 wl_surface.set_buffer_transform changes the pending buffer
1679 transformation. wl_surface.commit copies the pending buffer
1680 transformation to the current one. Otherwise, the pending and current
1681 values are never changed.
1682
1683 The purpose of this request is to allow clients to render content
1684 according to the output transform, thus permitting the compositor to
1685 use certain optimizations even if the display is rotated. Using
1686 hardware overlays and scanning out a client buffer for fullscreen
1687 surfaces are examples of such optimizations. Those optimizations are
1688 highly dependent on the compositor implementation, so the use of this
1689 request should be considered on a case-by-case basis.
1690
1691 Note that if the transform value includes 90 or 270 degree rotation,
1692 the width of the buffer will become the surface height and the height
1693 of the buffer will become the surface width.
1694
1695 If transform is not one of the values from the
1696 wl_output.transform enum the invalid_transform protocol error
1697 is raised.
1698 </description>
1699 <arg name="transform" type="int" enum="wl_output.transform"
1700 summary="transform for interpreting buffer contents"/>
1701 </request>
1702
1703 <!-- Version 3 additions -->
1704
1705 <request name="set_buffer_scale" since="3">
1706 <description summary="sets the buffer scaling factor">
1707 This request sets an optional scaling factor on how the compositor
1708 interprets the contents of the buffer attached to the window.
1709
1710 Buffer scale is double-buffered state, see wl_surface.commit.
1711
1712 A newly created surface has its buffer scale set to 1.
1713
1714 wl_surface.set_buffer_scale changes the pending buffer scale.
1715 wl_surface.commit copies the pending buffer scale to the current one.
1716 Otherwise, the pending and current values are never changed.
1717
1718 The purpose of this request is to allow clients to supply higher
1719 resolution buffer data for use on high resolution outputs. It is
1720 intended that you pick the same buffer scale as the scale of the
1721 output that the surface is displayed on. This means the compositor
1722 can avoid scaling when rendering the surface on that output.
1723
1724 Note that if the scale is larger than 1, then you have to attach
1725 a buffer that is larger (by a factor of scale in each dimension)
1726 than the desired surface size.
1727
1728 If scale is not positive the invalid_scale protocol error is
1729 raised.
1730 </description>
1731 <arg name="scale" type="int"
1732 summary="positive scale for interpreting buffer contents"/>
1733 </request>
1734
1735 <!-- Version 4 additions -->
1736 <request name="damage_buffer" since="4">
1737 <description summary="mark part of the surface damaged using buffer coordinates">
1738 This request is used to describe the regions where the pending
1739 buffer is different from the current surface contents, and where
1740 the surface therefore needs to be repainted. The compositor
1741 ignores the parts of the damage that fall outside of the surface.
1742
1743 Damage is double-buffered state, see wl_surface.commit.
1744
1745 The damage rectangle is specified in buffer coordinates,
1746 where x and y specify the upper left corner of the damage rectangle.
1747
1748 The initial value for pending damage is empty: no damage.
1749 wl_surface.damage_buffer adds pending damage: the new pending
1750 damage is the union of old pending damage and the given rectangle.
1751
1752 wl_surface.commit assigns pending damage as the current damage,
1753 and clears pending damage. The server will clear the current
1754 damage as it repaints the surface.
1755
1756 This request differs from wl_surface.damage in only one way - it
1757 takes damage in buffer coordinates instead of surface-local
1758 coordinates. While this generally is more intuitive than surface
1759 coordinates, it is especially desirable when using wp_viewport
1760 or when a drawing library (like EGL) is unaware of buffer scale
1761 and buffer transform.
1762
1763 Note: Because buffer transformation changes and damage requests may
1764 be interleaved in the protocol stream, it is impossible to determine
1765 the actual mapping between surface and buffer damage until
1766 wl_surface.commit time. Therefore, compositors wishing to take both
1767 kinds of damage into account will have to accumulate damage from the
1768 two requests separately and only transform from one to the other
1769 after receiving the wl_surface.commit.
1770 </description>
1771 <arg name="x" type="int" summary="buffer-local x coordinate"/>
1772 <arg name="y" type="int" summary="buffer-local y coordinate"/>
1773 <arg name="width" type="int" summary="width of damage rectangle"/>
1774 <arg name="height" type="int" summary="height of damage rectangle"/>
1775 </request>
1776
1777 <!-- Version 5 additions -->
1778
1779 <request name="offset" since="5">
1780 <description summary="set the surface contents offset">
1781 The x and y arguments specify the location of the new pending
1782 buffer's upper left corner, relative to the current buffer's upper
1783 left corner, in surface-local coordinates. In other words, the
1784 x and y, combined with the new surface size define in which
1785 directions the surface's size changes.
1786
1787 Surface location offset is double-buffered state, see
1788 wl_surface.commit.
1789
1790 This request is semantically equivalent to and the replaces the x and y
1791 arguments in the wl_surface.attach request in wl_surface versions prior
1792 to 5. See wl_surface.attach for details.
1793 </description>
1794 <arg name="x" type="int" summary="surface-local x coordinate"/>
1795 <arg name="y" type="int" summary="surface-local y coordinate"/>
1796 </request>
1797
1798 <!-- Version 6 additions -->
1799
1800 <event name="preferred_buffer_scale" since="6">
1801 <description summary="preferred buffer scale for the surface">
1802 This event indicates the preferred buffer scale for this surface. It is
1803 sent whenever the compositor's preference changes.
1804
1805 It is intended that scaling aware clients use this event to scale their
1806 content and use wl_surface.set_buffer_scale to indicate the scale they
1807 have rendered with. This allows clients to supply a higher detail
1808 buffer.
1809 </description>
1810 <arg name="factor" type="int" summary="preferred scaling factor"/>
1811 </event>
1812
1813 <event name="preferred_buffer_transform" since="6">
1814 <description summary="preferred buffer transform for the surface">
1815 This event indicates the preferred buffer transform for this surface.
1816 It is sent whenever the compositor's preference changes.
1817
1818 It is intended that transform aware clients use this event to apply the
1819 transform to their content and use wl_surface.set_buffer_transform to
1820 indicate the transform they have rendered with.
1821 </description>
1822 <arg name="transform" type="uint" enum="wl_output.transform"
1823 summary="preferred transform"/>
1824 </event>
1825 </interface>
1826
1827 <interface name="wl_seat" version="9">
1828 <description summary="group of input devices">
1829 A seat is a group of keyboards, pointer and touch devices. This
1830 object is published as a global during start up, or when such a
1831 device is hot plugged. A seat typically has a pointer and
1832 maintains a keyboard focus and a pointer focus.
1833 </description>
1834
1835 <enum name="capability" bitfield="true">
1836 <description summary="seat capability bitmask">
1837 This is a bitmask of capabilities this seat has; if a member is
1838 set, then it is present on the seat.
1839 </description>
1840 <entry name="pointer" value="1" summary="the seat has pointer devices"/>
1841 <entry name="keyboard" value="2" summary="the seat has one or more keyboards"/>
1842 <entry name="touch" value="4" summary="the seat has touch devices"/>
1843 </enum>
1844
1845 <enum name="error">
1846 <description summary="wl_seat error values">
1847 These errors can be emitted in response to wl_seat requests.
1848 </description>
1849 <entry name="missing_capability" value="0"
1850 summary="get_pointer, get_keyboard or get_touch called on seat without the matching capability"/>
1851 </enum>
1852
1853 <event name="capabilities">
1854 <description summary="seat capabilities changed">
1855 This is emitted whenever a seat gains or loses the pointer,
1856 keyboard or touch capabilities. The argument is a capability
1857 enum containing the complete set of capabilities this seat has.
1858
1859 When the pointer capability is added, a client may create a
1860 wl_pointer object using the wl_seat.get_pointer request. This object
1861 will receive pointer events until the capability is removed in the
1862 future.
1863
1864 When the pointer capability is removed, a client should destroy the
1865 wl_pointer objects associated with the seat where the capability was
1866 removed, using the wl_pointer.release request. No further pointer
1867 events will be received on these objects.
1868
1869 In some compositors, if a seat regains the pointer capability and a
1870 client has a previously obtained wl_pointer object of version 4 or
1871 less, that object may start sending pointer events again. This
1872 behavior is considered a misinterpretation of the intended behavior
1873 and must not be relied upon by the client. wl_pointer objects of
1874 version 5 or later must not send events if created before the most
1875 recent event notifying the client of an added pointer capability.
1876
1877 The above behavior also applies to wl_keyboard and wl_touch with the
1878 keyboard and touch capabilities, respectively.
1879 </description>
1880 <arg name="capabilities" type="uint" enum="capability" summary="capabilities of the seat"/>
1881 </event>
1882
1883 <request name="get_pointer">
1884 <description summary="return pointer object">
1885 The ID provided will be initialized to the wl_pointer interface
1886 for this seat.
1887
1888 This request only takes effect if the seat has the pointer
1889 capability, or has had the pointer capability in the past.
1890 It is a protocol violation to issue this request on a seat that has
1891 never had the pointer capability. The missing_capability error will
1892 be sent in this case.
1893 </description>
1894 <arg name="id" type="new_id" interface="wl_pointer" summary="seat pointer"/>
1895 </request>
1896
1897 <request name="get_keyboard">
1898 <description summary="return keyboard object">
1899 The ID provided will be initialized to the wl_keyboard interface
1900 for this seat.
1901
1902 This request only takes effect if the seat has the keyboard
1903 capability, or has had the keyboard capability in the past.
1904 It is a protocol violation to issue this request on a seat that has
1905 never had the keyboard capability. The missing_capability error will
1906 be sent in this case.
1907 </description>
1908 <arg name="id" type="new_id" interface="wl_keyboard" summary="seat keyboard"/>
1909 </request>
1910
1911 <request name="get_touch">
1912 <description summary="return touch object">
1913 The ID provided will be initialized to the wl_touch interface
1914 for this seat.
1915
1916 This request only takes effect if the seat has the touch
1917 capability, or has had the touch capability in the past.
1918 It is a protocol violation to issue this request on a seat that has
1919 never had the touch capability. The missing_capability error will
1920 be sent in this case.
1921 </description>
1922 <arg name="id" type="new_id" interface="wl_touch" summary="seat touch interface"/>
1923 </request>
1924
1925 <!-- Version 2 additions -->
1926
1927 <event name="name" since="2">
1928 <description summary="unique identifier for this seat">
1929 In a multi-seat configuration the seat name can be used by clients to
1930 help identify which physical devices the seat represents.
1931
1932 The seat name is a UTF-8 string with no convention defined for its
1933 contents. Each name is unique among all wl_seat globals. The name is
1934 only guaranteed to be unique for the current compositor instance.
1935
1936 The same seat names are used for all clients. Thus, the name can be
1937 shared across processes to refer to a specific wl_seat global.
1938
1939 The name event is sent after binding to the seat global. This event is
1940 only sent once per seat object, and the name does not change over the
1941 lifetime of the wl_seat global.
1942
1943 Compositors may re-use the same seat name if the wl_seat global is
1944 destroyed and re-created later.
1945 </description>
1946 <arg name="name" type="string" summary="seat identifier"/>
1947 </event>
1948
1949 <!-- Version 5 additions -->
1950
1951 <request name="release" type="destructor" since="5">
1952 <description summary="release the seat object">
1953 Using this request a client can tell the server that it is not going to
1954 use the seat object anymore.
1955 </description>
1956 </request>
1957
1958 </interface>
1959
1960 <interface name="wl_pointer" version="9">
1961 <description summary="pointer input device">
1962 The wl_pointer interface represents one or more input devices,
1963 such as mice, which control the pointer location and pointer_focus
1964 of a seat.
1965
1966 The wl_pointer interface generates motion, enter and leave
1967 events for the surfaces that the pointer is located over,
1968 and button and axis events for button presses, button releases
1969 and scrolling.
1970 </description>
1971
1972 <enum name="error">
1973 <entry name="role" value="0" summary="given wl_surface has another role"/>
1974 </enum>
1975
1976 <request name="set_cursor">
1977 <description summary="set the pointer surface">
1978 Set the pointer surface, i.e., the surface that contains the
1979 pointer image (cursor). This request gives the surface the role
1980 of a cursor. If the surface already has another role, it raises
1981 a protocol error.
1982
1983 The cursor actually changes only if the pointer
1984 focus for this device is one of the requesting client's surfaces
1985 or the surface parameter is the current pointer surface. If
1986 there was a previous surface set with this request it is
1987 replaced. If surface is NULL, the pointer image is hidden.
1988
1989 The parameters hotspot_x and hotspot_y define the position of
1990 the pointer surface relative to the pointer location. Its
1991 top-left corner is always at (x, y) - (hotspot_x, hotspot_y),
1992 where (x, y) are the coordinates of the pointer location, in
1993 surface-local coordinates.
1994
1995 On surface.attach requests to the pointer surface, hotspot_x
1996 and hotspot_y are decremented by the x and y parameters
1997 passed to the request. Attach must be confirmed by
1998 wl_surface.commit as usual.
1999
2000 The hotspot can also be updated by passing the currently set
2001 pointer surface to this request with new values for hotspot_x
2002 and hotspot_y.
2003
2004 The input region is ignored for wl_surfaces with the role of
2005 a cursor. When the use as a cursor ends, the wl_surface is
2006 unmapped.
2007
2008 The serial parameter must match the latest wl_pointer.enter
2009 serial number sent to the client. Otherwise the request will be
2010 ignored.
2011 </description>
2012 <arg name="serial" type="uint" summary="serial number of the enter event"/>
2013 <arg name="surface" type="object" interface="wl_surface" allow-null="true"
2014 summary="pointer surface"/>
2015 <arg name="hotspot_x" type="int" summary="surface-local x coordinate"/>
2016 <arg name="hotspot_y" type="int" summary="surface-local y coordinate"/>
2017 </request>
2018
2019 <event name="enter">
2020 <description summary="enter event">
2021 Notification that this seat's pointer is focused on a certain
2022 surface.
2023
2024 When a seat's focus enters a surface, the pointer image
2025 is undefined and a client should respond to this event by setting
2026 an appropriate pointer image with the set_cursor request.
2027 </description>
2028 <arg name="serial" type="uint" summary="serial number of the enter event"/>
2029 <arg name="surface" type="object" interface="wl_surface" summary="surface entered by the pointer"/>
2030 <arg name="surface_x" type="fixed" summary="surface-local x coordinate"/>
2031 <arg name="surface_y" type="fixed" summary="surface-local y coordinate"/>
2032 </event>
2033
2034 <event name="leave">
2035 <description summary="leave event">
2036 Notification that this seat's pointer is no longer focused on
2037 a certain surface.
2038
2039 The leave notification is sent before the enter notification
2040 for the new focus.
2041 </description>
2042 <arg name="serial" type="uint" summary="serial number of the leave event"/>
2043 <arg name="surface" type="object" interface="wl_surface" summary="surface left by the pointer"/>
2044 </event>
2045
2046 <event name="motion">
2047 <description summary="pointer motion event">
2048 Notification of pointer location change. The arguments
2049 surface_x and surface_y are the location relative to the
2050 focused surface.
2051 </description>
2052 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2053 <arg name="surface_x" type="fixed" summary="surface-local x coordinate"/>
2054 <arg name="surface_y" type="fixed" summary="surface-local y coordinate"/>
2055 </event>
2056
2057 <enum name="button_state">
2058 <description summary="physical button state">
2059 Describes the physical state of a button that produced the button
2060 event.
2061 </description>
2062 <entry name="released" value="0" summary="the button is not pressed"/>
2063 <entry name="pressed" value="1" summary="the button is pressed"/>
2064 </enum>
2065
2066 <event name="button">
2067 <description summary="pointer button event">
2068 Mouse button click and release notifications.
2069
2070 The location of the click is given by the last motion or
2071 enter event.
2072 The time argument is a timestamp with millisecond
2073 granularity, with an undefined base.
2074
2075 The button is a button code as defined in the Linux kernel's
2076 linux/input-event-codes.h header file, e.g. BTN_LEFT.
2077
2078 Any 16-bit button code value is reserved for future additions to the
2079 kernel's event code list. All other button codes above 0xFFFF are
2080 currently undefined but may be used in future versions of this
2081 protocol.
2082 </description>
2083 <arg name="serial" type="uint" summary="serial number of the button event"/>
2084 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2085 <arg name="button" type="uint" summary="button that produced the event"/>
2086 <arg name="state" type="uint" enum="button_state" summary="physical state of the button"/>
2087 </event>
2088
2089 <enum name="axis">
2090 <description summary="axis types">
2091 Describes the axis types of scroll events.
2092 </description>
2093 <entry name="vertical_scroll" value="0" summary="vertical axis"/>
2094 <entry name="horizontal_scroll" value="1" summary="horizontal axis"/>
2095 </enum>
2096
2097 <event name="axis">
2098 <description summary="axis event">
2099 Scroll and other axis notifications.
2100
2101 For scroll events (vertical and horizontal scroll axes), the
2102 value parameter is the length of a vector along the specified
2103 axis in a coordinate space identical to those of motion events,
2104 representing a relative movement along the specified axis.
2105
2106 For devices that support movements non-parallel to axes multiple
2107 axis events will be emitted.
2108
2109 When applicable, for example for touch pads, the server can
2110 choose to emit scroll events where the motion vector is
2111 equivalent to a motion event vector.
2112
2113 When applicable, a client can transform its content relative to the
2114 scroll distance.
2115 </description>
2116 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2117 <arg name="axis" type="uint" enum="axis" summary="axis type"/>
2118 <arg name="value" type="fixed" summary="length of vector in surface-local coordinate space"/>
2119 </event>
2120
2121 <!-- Version 3 additions -->
2122
2123 <request name="release" type="destructor" since="3">
2124 <description summary="release the pointer object">
2125 Using this request a client can tell the server that it is not going to
2126 use the pointer object anymore.
2127
2128 This request destroys the pointer proxy object, so clients must not call
2129 wl_pointer_destroy() after using this request.
2130 </description>
2131 </request>
2132
2133 <!-- Version 5 additions -->
2134
2135 <event name="frame" since="5">
2136 <description summary="end of a pointer event sequence">
2137 Indicates the end of a set of events that logically belong together.
2138 A client is expected to accumulate the data in all events within the
2139 frame before proceeding.
2140
2141 All wl_pointer events before a wl_pointer.frame event belong
2142 logically together. For example, in a diagonal scroll motion the
2143 compositor will send an optional wl_pointer.axis_source event, two
2144 wl_pointer.axis events (horizontal and vertical) and finally a
2145 wl_pointer.frame event. The client may use this information to
2146 calculate a diagonal vector for scrolling.
2147
2148 When multiple wl_pointer.axis events occur within the same frame,
2149 the motion vector is the combined motion of all events.
2150 When a wl_pointer.axis and a wl_pointer.axis_stop event occur within
2151 the same frame, this indicates that axis movement in one axis has
2152 stopped but continues in the other axis.
2153 When multiple wl_pointer.axis_stop events occur within the same
2154 frame, this indicates that these axes stopped in the same instance.
2155
2156 A wl_pointer.frame event is sent for every logical event group,
2157 even if the group only contains a single wl_pointer event.
2158 Specifically, a client may get a sequence: motion, frame, button,
2159 frame, axis, frame, axis_stop, frame.
2160
2161 The wl_pointer.enter and wl_pointer.leave events are logical events
2162 generated by the compositor and not the hardware. These events are
2163 also grouped by a wl_pointer.frame. When a pointer moves from one
2164 surface to another, a compositor should group the
2165 wl_pointer.leave event within the same wl_pointer.frame.
2166 However, a client must not rely on wl_pointer.leave and
2167 wl_pointer.enter being in the same wl_pointer.frame.
2168 Compositor-specific policies may require the wl_pointer.leave and
2169 wl_pointer.enter event being split across multiple wl_pointer.frame
2170 groups.
2171 </description>
2172 </event>
2173
2174 <enum name="axis_source">
2175 <description summary="axis source types">
2176 Describes the source types for axis events. This indicates to the
2177 client how an axis event was physically generated; a client may
2178 adjust the user interface accordingly. For example, scroll events
2179 from a "finger" source may be in a smooth coordinate space with
2180 kinetic scrolling whereas a "wheel" source may be in discrete steps
2181 of a number of lines.
2182
2183 The "continuous" axis source is a device generating events in a
2184 continuous coordinate space, but using something other than a
2185 finger. One example for this source is button-based scrolling where
2186 the vertical motion of a device is converted to scroll events while
2187 a button is held down.
2188
2189 The "wheel tilt" axis source indicates that the actual device is a
2190 wheel but the scroll event is not caused by a rotation but a
2191 (usually sideways) tilt of the wheel.
2192 </description>
2193 <entry name="wheel" value="0" summary="a physical wheel rotation" />
2194 <entry name="finger" value="1" summary="finger on a touch surface" />
2195 <entry name="continuous" value="2" summary="continuous coordinate space"/>
2196 <entry name="wheel_tilt" value="3" summary="a physical wheel tilt" since="6"/>
2197 </enum>
2198
2199 <event name="axis_source" since="5">
2200 <description summary="axis source event">
2201 Source information for scroll and other axes.
2202
2203 This event does not occur on its own. It is sent before a
2204 wl_pointer.frame event and carries the source information for
2205 all events within that frame.
2206
2207 The source specifies how this event was generated. If the source is
2208 wl_pointer.axis_source.finger, a wl_pointer.axis_stop event will be
2209 sent when the user lifts the finger off the device.
2210
2211 If the source is wl_pointer.axis_source.wheel,
2212 wl_pointer.axis_source.wheel_tilt or
2213 wl_pointer.axis_source.continuous, a wl_pointer.axis_stop event may
2214 or may not be sent. Whether a compositor sends an axis_stop event
2215 for these sources is hardware-specific and implementation-dependent;
2216 clients must not rely on receiving an axis_stop event for these
2217 scroll sources and should treat scroll sequences from these scroll
2218 sources as unterminated by default.
2219
2220 This event is optional. If the source is unknown for a particular
2221 axis event sequence, no event is sent.
2222 Only one wl_pointer.axis_source event is permitted per frame.
2223
2224 The order of wl_pointer.axis_discrete and wl_pointer.axis_source is
2225 not guaranteed.
2226 </description>
2227 <arg name="axis_source" type="uint" enum="axis_source" summary="source of the axis event"/>
2228 </event>
2229
2230 <event name="axis_stop" since="5">
2231 <description summary="axis stop event">
2232 Stop notification for scroll and other axes.
2233
2234 For some wl_pointer.axis_source types, a wl_pointer.axis_stop event
2235 is sent to notify a client that the axis sequence has terminated.
2236 This enables the client to implement kinetic scrolling.
2237 See the wl_pointer.axis_source documentation for information on when
2238 this event may be generated.
2239
2240 Any wl_pointer.axis events with the same axis_source after this
2241 event should be considered as the start of a new axis motion.
2242
2243 The timestamp is to be interpreted identical to the timestamp in the
2244 wl_pointer.axis event. The timestamp value may be the same as a
2245 preceding wl_pointer.axis event.
2246 </description>
2247 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2248 <arg name="axis" type="uint" enum="axis" summary="the axis stopped with this event"/>
2249 </event>
2250
2251 <event name="axis_discrete" since="5">
2252 <description summary="axis click event">
2253 Discrete step information for scroll and other axes.
2254
2255 This event carries the axis value of the wl_pointer.axis event in
2256 discrete steps (e.g. mouse wheel clicks).
2257
2258 This event is deprecated with wl_pointer version 8 - this event is not
2259 sent to clients supporting version 8 or later.
2260
2261 This event does not occur on its own, it is coupled with a
2262 wl_pointer.axis event that represents this axis value on a
2263 continuous scale. The protocol guarantees that each axis_discrete
2264 event is always followed by exactly one axis event with the same
2265 axis number within the same wl_pointer.frame. Note that the protocol
2266 allows for other events to occur between the axis_discrete and
2267 its coupled axis event, including other axis_discrete or axis
2268 events. A wl_pointer.frame must not contain more than one axis_discrete
2269 event per axis type.
2270
2271 This event is optional; continuous scrolling devices
2272 like two-finger scrolling on touchpads do not have discrete
2273 steps and do not generate this event.
2274
2275 The discrete value carries the directional information. e.g. a value
2276 of -2 is two steps towards the negative direction of this axis.
2277
2278 The axis number is identical to the axis number in the associated
2279 axis event.
2280
2281 The order of wl_pointer.axis_discrete and wl_pointer.axis_source is
2282 not guaranteed.
2283 </description>
2284 <arg name="axis" type="uint" enum="axis" summary="axis type"/>
2285 <arg name="discrete" type="int" summary="number of steps"/>
2286 </event>
2287
2288 <event name="axis_value120" since="8">
2289 <description summary="axis high-resolution scroll event">
2290 Discrete high-resolution scroll information.
2291
2292 This event carries high-resolution wheel scroll information,
2293 with each multiple of 120 representing one logical scroll step
2294 (a wheel detent). For example, an axis_value120 of 30 is one quarter of
2295 a logical scroll step in the positive direction, a value120 of
2296 -240 are two logical scroll steps in the negative direction within the
2297 same hardware event.
2298 Clients that rely on discrete scrolling should accumulate the
2299 value120 to multiples of 120 before processing the event.
2300
2301 The value120 must not be zero.
2302
2303 This event replaces the wl_pointer.axis_discrete event in clients
2304 supporting wl_pointer version 8 or later.
2305
2306 Where a wl_pointer.axis_source event occurs in the same
2307 wl_pointer.frame, the axis source applies to this event.
2308
2309 The order of wl_pointer.axis_value120 and wl_pointer.axis_source is
2310 not guaranteed.
2311 </description>
2312 <arg name="axis" type="uint" enum="axis" summary="axis type"/>
2313 <arg name="value120" type="int" summary="scroll distance as fraction of 120"/>
2314 </event>
2315
2316 <!-- Version 9 additions -->
2317
2318 <enum name="axis_relative_direction">
2319 <description summary="axis relative direction">
2320 This specifies the direction of the physical motion that caused a
2321 wl_pointer.axis event, relative to the wl_pointer.axis direction.
2322 </description>
2323 <entry name="identical" value="0"
2324 summary="physical motion matches axis direction"/>
2325 <entry name="inverted" value="1"
2326 summary="physical motion is the inverse of the axis direction"/>
2327 </enum>
2328
2329 <event name="axis_relative_direction" since="9">
2330 <description summary="axis relative physical direction event">
2331 Relative directional information of the entity causing the axis
2332 motion.
2333
2334 For a wl_pointer.axis event, the wl_pointer.axis_relative_direction
2335 event specifies the movement direction of the entity causing the
2336 wl_pointer.axis event. For example:
2337 - if a user's fingers on a touchpad move down and this
2338 causes a wl_pointer.axis vertical_scroll down event, the physical
2339 direction is 'identical'
2340 - if a user's fingers on a touchpad move down and this causes a
2341 wl_pointer.axis vertical_scroll up scroll up event ('natural
2342 scrolling'), the physical direction is 'inverted'.
2343
2344 A client may use this information to adjust scroll motion of
2345 components. Specifically, enabling natural scrolling causes the
2346 content to change direction compared to traditional scrolling.
2347 Some widgets like volume control sliders should usually match the
2348 physical direction regardless of whether natural scrolling is
2349 active. This event enables clients to match the scroll direction of
2350 a widget to the physical direction.
2351
2352 This event does not occur on its own, it is coupled with a
2353 wl_pointer.axis event that represents this axis value.
2354 The protocol guarantees that each axis_relative_direction event is
2355 always followed by exactly one axis event with the same
2356 axis number within the same wl_pointer.frame. Note that the protocol
2357 allows for other events to occur between the axis_relative_direction
2358 and its coupled axis event.
2359
2360 The axis number is identical to the axis number in the associated
2361 axis event.
2362
2363 The order of wl_pointer.axis_relative_direction,
2364 wl_pointer.axis_discrete and wl_pointer.axis_source is not
2365 guaranteed.
2366 </description>
2367 <arg name="axis" type="uint" enum="axis" summary="axis type"/>
2368 <arg name="direction" type="uint" enum="axis_relative_direction"
2369 summary="physical direction relative to axis motion"/>
2370 </event>
2371 </interface>
2372
2373 <interface name="wl_keyboard" version="9">
2374 <description summary="keyboard input device">
2375 The wl_keyboard interface represents one or more keyboards
2376 associated with a seat.
2377 </description>
2378
2379 <enum name="keymap_format">
2380 <description summary="keyboard mapping format">
2381 This specifies the format of the keymap provided to the
2382 client with the wl_keyboard.keymap event.
2383 </description>
2384 <entry name="no_keymap" value="0"
2385 summary="no keymap; client must understand how to interpret the raw keycode"/>
2386 <entry name="xkb_v1" value="1"
2387 summary="libxkbcommon compatible, null-terminated string; to determine the xkb keycode, clients must add 8 to the key event keycode"/>
2388 </enum>
2389
2390 <event name="keymap">
2391 <description summary="keyboard mapping">
2392 This event provides a file descriptor to the client which can be
2393 memory-mapped in read-only mode to provide a keyboard mapping
2394 description.
2395
2396 From version 7 onwards, the fd must be mapped with MAP_PRIVATE by
2397 the recipient, as MAP_SHARED may fail.
2398 </description>
2399 <arg name="format" type="uint" enum="keymap_format" summary="keymap format"/>
2400 <arg name="fd" type="fd" summary="keymap file descriptor"/>
2401 <arg name="size" type="uint" summary="keymap size, in bytes"/>
2402 </event>
2403
2404 <event name="enter">
2405 <description summary="enter event">
2406 Notification that this seat's keyboard focus is on a certain
2407 surface.
2408
2409 The compositor must send the wl_keyboard.modifiers event after this
2410 event.
2411 </description>
2412 <arg name="serial" type="uint" summary="serial number of the enter event"/>
2413 <arg name="surface" type="object" interface="wl_surface" summary="surface gaining keyboard focus"/>
2414 <arg name="keys" type="array" summary="the currently pressed keys"/>
2415 </event>
2416
2417 <event name="leave">
2418 <description summary="leave event">
2419 Notification that this seat's keyboard focus is no longer on
2420 a certain surface.
2421
2422 The leave notification is sent before the enter notification
2423 for the new focus.
2424
2425 After this event client must assume that all keys, including modifiers,
2426 are lifted and also it must stop key repeating if there's some going on.
2427 </description>
2428 <arg name="serial" type="uint" summary="serial number of the leave event"/>
2429 <arg name="surface" type="object" interface="wl_surface" summary="surface that lost keyboard focus"/>
2430 </event>
2431
2432 <enum name="key_state">
2433 <description summary="physical key state">
2434 Describes the physical state of a key that produced the key event.
2435 </description>
2436 <entry name="released" value="0" summary="key is not pressed"/>
2437 <entry name="pressed" value="1" summary="key is pressed"/>
2438 </enum>
2439
2440 <event name="key">
2441 <description summary="key event">
2442 A key was pressed or released.
2443 The time argument is a timestamp with millisecond
2444 granularity, with an undefined base.
2445
2446 The key is a platform-specific key code that can be interpreted
2447 by feeding it to the keyboard mapping (see the keymap event).
2448
2449 If this event produces a change in modifiers, then the resulting
2450 wl_keyboard.modifiers event must be sent after this event.
2451 </description>
2452 <arg name="serial" type="uint" summary="serial number of the key event"/>
2453 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2454 <arg name="key" type="uint" summary="key that produced the event"/>
2455 <arg name="state" type="uint" enum="key_state" summary="physical state of the key"/>
2456 </event>
2457
2458 <event name="modifiers">
2459 <description summary="modifier and group state">
2460 Notifies clients that the modifier and/or group state has
2461 changed, and it should update its local state.
2462 </description>
2463 <arg name="serial" type="uint" summary="serial number of the modifiers event"/>
2464 <arg name="mods_depressed" type="uint" summary="depressed modifiers"/>
2465 <arg name="mods_latched" type="uint" summary="latched modifiers"/>
2466 <arg name="mods_locked" type="uint" summary="locked modifiers"/>
2467 <arg name="group" type="uint" summary="keyboard layout"/>
2468 </event>
2469
2470 <!-- Version 3 additions -->
2471
2472 <request name="release" type="destructor" since="3">
2473 <description summary="release the keyboard object"/>
2474 </request>
2475
2476 <!-- Version 4 additions -->
2477
2478 <event name="repeat_info" since="4">
2479 <description summary="repeat rate and delay">
2480 Informs the client about the keyboard's repeat rate and delay.
2481
2482 This event is sent as soon as the wl_keyboard object has been created,
2483 and is guaranteed to be received by the client before any key press
2484 event.
2485
2486 Negative values for either rate or delay are illegal. A rate of zero
2487 will disable any repeating (regardless of the value of delay).
2488
2489 This event can be sent later on as well with a new value if necessary,
2490 so clients should continue listening for the event past the creation
2491 of wl_keyboard.
2492 </description>
2493 <arg name="rate" type="int"
2494 summary="the rate of repeating keys in characters per second"/>
2495 <arg name="delay" type="int"
2496 summary="delay in milliseconds since key down until repeating starts"/>
2497 </event>
2498 </interface>
2499
2500 <interface name="wl_touch" version="9">
2501 <description summary="touchscreen input device">
2502 The wl_touch interface represents a touchscreen
2503 associated with a seat.
2504
2505 Touch interactions can consist of one or more contacts.
2506 For each contact, a series of events is generated, starting
2507 with a down event, followed by zero or more motion events,
2508 and ending with an up event. Events relating to the same
2509 contact point can be identified by the ID of the sequence.
2510 </description>
2511
2512 <event name="down">
2513 <description summary="touch down event and beginning of a touch sequence">
2514 A new touch point has appeared on the surface. This touch point is
2515 assigned a unique ID. Future events from this touch point reference
2516 this ID. The ID ceases to be valid after a touch up event and may be
2517 reused in the future.
2518 </description>
2519 <arg name="serial" type="uint" summary="serial number of the touch down event"/>
2520 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2521 <arg name="surface" type="object" interface="wl_surface" summary="surface touched"/>
2522 <arg name="id" type="int" summary="the unique ID of this touch point"/>
2523 <arg name="x" type="fixed" summary="surface-local x coordinate"/>
2524 <arg name="y" type="fixed" summary="surface-local y coordinate"/>
2525 </event>
2526
2527 <event name="up">
2528 <description summary="end of a touch event sequence">
2529 The touch point has disappeared. No further events will be sent for
2530 this touch point and the touch point's ID is released and may be
2531 reused in a future touch down event.
2532 </description>
2533 <arg name="serial" type="uint" summary="serial number of the touch up event"/>
2534 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2535 <arg name="id" type="int" summary="the unique ID of this touch point"/>
2536 </event>
2537
2538 <event name="motion">
2539 <description summary="update of touch point coordinates">
2540 A touch point has changed coordinates.
2541 </description>
2542 <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
2543 <arg name="id" type="int" summary="the unique ID of this touch point"/>
2544 <arg name="x" type="fixed" summary="surface-local x coordinate"/>
2545 <arg name="y" type="fixed" summary="surface-local y coordinate"/>
2546 </event>
2547
2548 <event name="frame">
2549 <description summary="end of touch frame event">
2550 Indicates the end of a set of events that logically belong together.
2551 A client is expected to accumulate the data in all events within the
2552 frame before proceeding.
2553
2554 A wl_touch.frame terminates at least one event but otherwise no
2555 guarantee is provided about the set of events within a frame. A client
2556 must assume that any state not updated in a frame is unchanged from the
2557 previously known state.
2558 </description>
2559 </event>
2560
2561 <event name="cancel">
2562 <description summary="touch session cancelled">
2563 Sent if the compositor decides the touch stream is a global
2564 gesture. No further events are sent to the clients from that
2565 particular gesture. Touch cancellation applies to all touch points
2566 currently active on this client's surface. The client is
2567 responsible for finalizing the touch points, future touch points on
2568 this surface may reuse the touch point ID.
2569 </description>
2570 </event>
2571
2572 <!-- Version 3 additions -->
2573
2574 <request name="release" type="destructor" since="3">
2575 <description summary="release the touch object"/>
2576 </request>
2577
2578 <!-- Version 6 additions -->
2579
2580 <event name="shape" since="6">
2581 <description summary="update shape of touch point">
2582 Sent when a touchpoint has changed its shape.
2583
2584 This event does not occur on its own. It is sent before a
2585 wl_touch.frame event and carries the new shape information for
2586 any previously reported, or new touch points of that frame.
2587
2588 Other events describing the touch point such as wl_touch.down,
2589 wl_touch.motion or wl_touch.orientation may be sent within the
2590 same wl_touch.frame. A client should treat these events as a single
2591 logical touch point update. The order of wl_touch.shape,
2592 wl_touch.orientation and wl_touch.motion is not guaranteed.
2593 A wl_touch.down event is guaranteed to occur before the first
2594 wl_touch.shape event for this touch ID but both events may occur within
2595 the same wl_touch.frame.
2596
2597 A touchpoint shape is approximated by an ellipse through the major and
2598 minor axis length. The major axis length describes the longer diameter
2599 of the ellipse, while the minor axis length describes the shorter
2600 diameter. Major and minor are orthogonal and both are specified in
2601 surface-local coordinates. The center of the ellipse is always at the
2602 touchpoint location as reported by wl_touch.down or wl_touch.move.
2603
2604 This event is only sent by the compositor if the touch device supports
2605 shape reports. The client has to make reasonable assumptions about the
2606 shape if it did not receive this event.
2607 </description>
2608 <arg name="id" type="int" summary="the unique ID of this touch point"/>
2609 <arg name="major" type="fixed" summary="length of the major axis in surface-local coordinates"/>
2610 <arg name="minor" type="fixed" summary="length of the minor axis in surface-local coordinates"/>
2611 </event>
2612
2613 <event name="orientation" since="6">
2614 <description summary="update orientation of touch point">
2615 Sent when a touchpoint has changed its orientation.
2616
2617 This event does not occur on its own. It is sent before a
2618 wl_touch.frame event and carries the new shape information for
2619 any previously reported, or new touch points of that frame.
2620
2621 Other events describing the touch point such as wl_touch.down,
2622 wl_touch.motion or wl_touch.shape may be sent within the
2623 same wl_touch.frame. A client should treat these events as a single
2624 logical touch point update. The order of wl_touch.shape,
2625 wl_touch.orientation and wl_touch.motion is not guaranteed.
2626 A wl_touch.down event is guaranteed to occur before the first
2627 wl_touch.orientation event for this touch ID but both events may occur
2628 within the same wl_touch.frame.
2629
2630 The orientation describes the clockwise angle of a touchpoint's major
2631 axis to the positive surface y-axis and is normalized to the -180 to
2632 +180 degree range. The granularity of orientation depends on the touch
2633 device, some devices only support binary rotation values between 0 and
2634 90 degrees.
2635
2636 This event is only sent by the compositor if the touch device supports
2637 orientation reports.
2638 </description>
2639 <arg name="id" type="int" summary="the unique ID of this touch point"/>
2640 <arg name="orientation" type="fixed" summary="angle between major axis and positive surface y-axis in degrees"/>
2641 </event>
2642 </interface>
2643
2644 <interface name="wl_output" version="4">
2645 <description summary="compositor output region">
2646 An output describes part of the compositor geometry. The
2647 compositor works in the 'compositor coordinate system' and an
2648 output corresponds to a rectangular area in that space that is
2649 actually visible. This typically corresponds to a monitor that
2650 displays part of the compositor space. This object is published
2651 as global during start up, or when a monitor is hotplugged.
2652 </description>
2653
2654 <enum name="subpixel">
2655 <description summary="subpixel geometry information">
2656 This enumeration describes how the physical
2657 pixels on an output are laid out.
2658 </description>
2659 <entry name="unknown" value="0" summary="unknown geometry"/>
2660 <entry name="none" value="1" summary="no geometry"/>
2661 <entry name="horizontal_rgb" value="2" summary="horizontal RGB"/>
2662 <entry name="horizontal_bgr" value="3" summary="horizontal BGR"/>
2663 <entry name="vertical_rgb" value="4" summary="vertical RGB"/>
2664 <entry name="vertical_bgr" value="5" summary="vertical BGR"/>
2665 </enum>
2666
2667 <enum name="transform">
2668 <description summary="transform from framebuffer to output">
2669 This describes the transform that a compositor will apply to a
2670 surface to compensate for the rotation or mirroring of an
2671 output device.
2672
2673 The flipped values correspond to an initial flip around a
2674 vertical axis followed by rotation.
2675
2676 The purpose is mainly to allow clients to render accordingly and
2677 tell the compositor, so that for fullscreen surfaces, the
2678 compositor will still be able to scan out directly from client
2679 surfaces.
2680 </description>
2681 <entry name="normal" value="0" summary="no transform"/>
2682 <entry name="90" value="1" summary="90 degrees counter-clockwise"/>
2683 <entry name="180" value="2" summary="180 degrees counter-clockwise"/>
2684 <entry name="270" value="3" summary="270 degrees counter-clockwise"/>
2685 <entry name="flipped" value="4" summary="180 degree flip around a vertical axis"/>
2686 <entry name="flipped_90" value="5" summary="flip and rotate 90 degrees counter-clockwise"/>
2687 <entry name="flipped_180" value="6" summary="flip and rotate 180 degrees counter-clockwise"/>
2688 <entry name="flipped_270" value="7" summary="flip and rotate 270 degrees counter-clockwise"/>
2689 </enum>
2690
2691 <event name="geometry">
2692 <description summary="properties of the output">
2693 The geometry event describes geometric properties of the output.
2694 The event is sent when binding to the output object and whenever
2695 any of the properties change.
2696
2697 The physical size can be set to zero if it doesn't make sense for this
2698 output (e.g. for projectors or virtual outputs).
2699
2700 The geometry event will be followed by a done event (starting from
2701 version 2).
2702
2703 Note: wl_output only advertises partial information about the output
2704 position and identification. Some compositors, for instance those not
2705 implementing a desktop-style output layout or those exposing virtual
2706 outputs, might fake this information. Instead of using x and y, clients
2707 should use xdg_output.logical_position. Instead of using make and model,
2708 clients should use name and description.
2709 </description>
2710 <arg name="x" type="int"
2711 summary="x position within the global compositor space"/>
2712 <arg name="y" type="int"
2713 summary="y position within the global compositor space"/>
2714 <arg name="physical_width" type="int"
2715 summary="width in millimeters of the output"/>
2716 <arg name="physical_height" type="int"
2717 summary="height in millimeters of the output"/>
2718 <arg name="subpixel" type="int" enum="subpixel"
2719 summary="subpixel orientation of the output"/>
2720 <arg name="make" type="string"
2721 summary="textual description of the manufacturer"/>
2722 <arg name="model" type="string"
2723 summary="textual description of the model"/>
2724 <arg name="transform" type="int" enum="transform"
2725 summary="transform that maps framebuffer to output"/>
2726 </event>
2727
2728 <enum name="mode" bitfield="true">
2729 <description summary="mode information">
2730 These flags describe properties of an output mode.
2731 They are used in the flags bitfield of the mode event.
2732 </description>
2733 <entry name="current" value="0x1"
2734 summary="indicates this is the current mode"/>
2735 <entry name="preferred" value="0x2"
2736 summary="indicates this is the preferred mode"/>
2737 </enum>
2738
2739 <event name="mode">
2740 <description summary="advertise available modes for the output">
2741 The mode event describes an available mode for the output.
2742
2743 The event is sent when binding to the output object and there
2744 will always be one mode, the current mode. The event is sent
2745 again if an output changes mode, for the mode that is now
2746 current. In other words, the current mode is always the last
2747 mode that was received with the current flag set.
2748
2749 Non-current modes are deprecated. A compositor can decide to only
2750 advertise the current mode and never send other modes. Clients
2751 should not rely on non-current modes.
2752
2753 The size of a mode is given in physical hardware units of
2754 the output device. This is not necessarily the same as
2755 the output size in the global compositor space. For instance,
2756 the output may be scaled, as described in wl_output.scale,
2757 or transformed, as described in wl_output.transform. Clients
2758 willing to retrieve the output size in the global compositor
2759 space should use xdg_output.logical_size instead.
2760
2761 The vertical refresh rate can be set to zero if it doesn't make
2762 sense for this output (e.g. for virtual outputs).
2763
2764 The mode event will be followed by a done event (starting from
2765 version 2).
2766
2767 Clients should not use the refresh rate to schedule frames. Instead,
2768 they should use the wl_surface.frame event or the presentation-time
2769 protocol.
2770
2771 Note: this information is not always meaningful for all outputs. Some
2772 compositors, such as those exposing virtual outputs, might fake the
2773 refresh rate or the size.
2774 </description>
2775 <arg name="flags" type="uint" enum="mode" summary="bitfield of mode flags"/>
2776 <arg name="width" type="int" summary="width of the mode in hardware units"/>
2777 <arg name="height" type="int" summary="height of the mode in hardware units"/>
2778 <arg name="refresh" type="int" summary="vertical refresh rate in mHz"/>
2779 </event>
2780
2781 <!-- Version 2 additions -->
2782
2783 <event name="done" since="2">
2784 <description summary="sent all information about output">
2785 This event is sent after all other properties have been
2786 sent after binding to the output object and after any
2787 other property changes done after that. This allows
2788 changes to the output properties to be seen as
2789 atomic, even if they happen via multiple events.
2790 </description>
2791 </event>
2792
2793 <event name="scale" since="2">
2794 <description summary="output scaling properties">
2795 This event contains scaling geometry information
2796 that is not in the geometry event. It may be sent after
2797 binding the output object or if the output scale changes
2798 later. If it is not sent, the client should assume a
2799 scale of 1.
2800
2801 A scale larger than 1 means that the compositor will
2802 automatically scale surface buffers by this amount
2803 when rendering. This is used for very high resolution
2804 displays where applications rendering at the native
2805 resolution would be too small to be legible.
2806
2807 It is intended that scaling aware clients track the
2808 current output of a surface, and if it is on a scaled
2809 output it should use wl_surface.set_buffer_scale with
2810 the scale of the output. That way the compositor can
2811 avoid scaling the surface, and the client can supply
2812 a higher detail image.
2813
2814 The scale event will be followed by a done event.
2815 </description>
2816 <arg name="factor" type="int" summary="scaling factor of output"/>
2817 </event>
2818
2819 <!-- Version 3 additions -->
2820
2821 <request name="release" type="destructor" since="3">
2822 <description summary="release the output object">
2823 Using this request a client can tell the server that it is not going to
2824 use the output object anymore.
2825 </description>
2826 </request>
2827
2828 <!-- Version 4 additions -->
2829
2830 <event name="name" since="4">
2831 <description summary="name of this output">
2832 Many compositors will assign user-friendly names to their outputs, show
2833 them to the user, allow the user to refer to an output, etc. The client
2834 may wish to know this name as well to offer the user similar behaviors.
2835
2836 The name is a UTF-8 string with no convention defined for its contents.
2837 Each name is unique among all wl_output globals. The name is only
2838 guaranteed to be unique for the compositor instance.
2839
2840 The same output name is used for all clients for a given wl_output
2841 global. Thus, the name can be shared across processes to refer to a
2842 specific wl_output global.
2843
2844 The name is not guaranteed to be persistent across sessions, thus cannot
2845 be used to reliably identify an output in e.g. configuration files.
2846
2847 Examples of names include 'HDMI-A-1', 'WL-1', 'X11-1', etc. However, do
2848 not assume that the name is a reflection of an underlying DRM connector,
2849 X11 connection, etc.
2850
2851 The name event is sent after binding the output object. This event is
2852 only sent once per output object, and the name does not change over the
2853 lifetime of the wl_output global.
2854
2855 Compositors may re-use the same output name if the wl_output global is
2856 destroyed and re-created later. Compositors should avoid re-using the
2857 same name if possible.
2858
2859 The name event will be followed by a done event.
2860 </description>
2861 <arg name="name" type="string" summary="output name"/>
2862 </event>
2863
2864 <event name="description" since="4">
2865 <description summary="human-readable description of this output">
2866 Many compositors can produce human-readable descriptions of their
2867 outputs. The client may wish to know this description as well, e.g. for
2868 output selection purposes.
2869
2870 The description is a UTF-8 string with no convention defined for its
2871 contents. The description is not guaranteed to be unique among all
2872 wl_output globals. Examples might include 'Foocorp 11" Display' or
2873 'Virtual X11 output via :1'.
2874
2875 The description event is sent after binding the output object and
2876 whenever the description changes. The description is optional, and may
2877 not be sent at all.
2878
2879 The description event will be followed by a done event.
2880 </description>
2881 <arg name="description" type="string" summary="output description"/>
2882 </event>
2883 </interface>
2884
2885 <interface name="wl_region" version="1">
2886 <description summary="region interface">
2887 A region object describes an area.
2888
2889 Region objects are used to describe the opaque and input
2890 regions of a surface.
2891 </description>
2892
2893 <request name="destroy" type="destructor">
2894 <description summary="destroy region">
2895 Destroy the region. This will invalidate the object ID.
2896 </description>
2897 </request>
2898
2899 <request name="add">
2900 <description summary="add rectangle to region">
2901 Add the specified rectangle to the region.
2902 </description>
2903 <arg name="x" type="int" summary="region-local x coordinate"/>
2904 <arg name="y" type="int" summary="region-local y coordinate"/>
2905 <arg name="width" type="int" summary="rectangle width"/>
2906 <arg name="height" type="int" summary="rectangle height"/>
2907 </request>
2908
2909 <request name="subtract">
2910 <description summary="subtract rectangle from region">
2911 Subtract the specified rectangle from the region.
2912 </description>
2913 <arg name="x" type="int" summary="region-local x coordinate"/>
2914 <arg name="y" type="int" summary="region-local y coordinate"/>
2915 <arg name="width" type="int" summary="rectangle width"/>
2916 <arg name="height" type="int" summary="rectangle height"/>
2917 </request>
2918 </interface>
2919
2920 <interface name="wl_subcompositor" version="1">
2921 <description summary="sub-surface compositing">
2922 The global interface exposing sub-surface compositing capabilities.
2923 A wl_surface, that has sub-surfaces associated, is called the
2924 parent surface. Sub-surfaces can be arbitrarily nested and create
2925 a tree of sub-surfaces.
2926
2927 The root surface in a tree of sub-surfaces is the main
2928 surface. The main surface cannot be a sub-surface, because
2929 sub-surfaces must always have a parent.
2930
2931 A main surface with its sub-surfaces forms a (compound) window.
2932 For window management purposes, this set of wl_surface objects is
2933 to be considered as a single window, and it should also behave as
2934 such.
2935
2936 The aim of sub-surfaces is to offload some of the compositing work
2937 within a window from clients to the compositor. A prime example is
2938 a video player with decorations and video in separate wl_surface
2939 objects. This should allow the compositor to pass YUV video buffer
2940 processing to dedicated overlay hardware when possible.
2941 </description>
2942
2943 <request name="destroy" type="destructor">
2944 <description summary="unbind from the subcompositor interface">
2945 Informs the server that the client will not be using this
2946 protocol object anymore. This does not affect any other
2947 objects, wl_subsurface objects included.
2948 </description>
2949 </request>
2950
2951 <enum name="error">
2952 <entry name="bad_surface" value="0"
2953 summary="the to-be sub-surface is invalid"/>
2954 <entry name="bad_parent" value="1"
2955 summary="the to-be sub-surface parent is invalid"/>
2956 </enum>
2957
2958 <request name="get_subsurface">
2959 <description summary="give a surface the role sub-surface">
2960 Create a sub-surface interface for the given surface, and
2961 associate it with the given parent surface. This turns a
2962 plain wl_surface into a sub-surface.
2963
2964 The to-be sub-surface must not already have another role, and it
2965 must not have an existing wl_subsurface object. Otherwise the
2966 bad_surface protocol error is raised.
2967
2968 Adding sub-surfaces to a parent is a double-buffered operation on the
2969 parent (see wl_surface.commit). The effect of adding a sub-surface
2970 becomes visible on the next time the state of the parent surface is
2971 applied.
2972
2973 The parent surface must not be one of the child surface's descendants,
2974 and the parent must be different from the child surface, otherwise the
2975 bad_parent protocol error is raised.
2976
2977 This request modifies the behaviour of wl_surface.commit request on
2978 the sub-surface, see the documentation on wl_subsurface interface.
2979 </description>
2980 <arg name="id" type="new_id" interface="wl_subsurface"
2981 summary="the new sub-surface object ID"/>
2982 <arg name="surface" type="object" interface="wl_surface"
2983 summary="the surface to be turned into a sub-surface"/>
2984 <arg name="parent" type="object" interface="wl_surface"
2985 summary="the parent surface"/>
2986 </request>
2987 </interface>
2988
2989 <interface name="wl_subsurface" version="1">
2990 <description summary="sub-surface interface to a wl_surface">
2991 An additional interface to a wl_surface object, which has been
2992 made a sub-surface. A sub-surface has one parent surface. A
2993 sub-surface's size and position are not limited to that of the parent.
2994 Particularly, a sub-surface is not automatically clipped to its
2995 parent's area.
2996
2997 A sub-surface becomes mapped, when a non-NULL wl_buffer is applied
2998 and the parent surface is mapped. The order of which one happens
2999 first is irrelevant. A sub-surface is hidden if the parent becomes
3000 hidden, or if a NULL wl_buffer is applied. These rules apply
3001 recursively through the tree of surfaces.
3002
3003 The behaviour of a wl_surface.commit request on a sub-surface
3004 depends on the sub-surface's mode. The possible modes are
3005 synchronized and desynchronized, see methods
3006 wl_subsurface.set_sync and wl_subsurface.set_desync. Synchronized
3007 mode caches the wl_surface state to be applied when the parent's
3008 state gets applied, and desynchronized mode applies the pending
3009 wl_surface state directly. A sub-surface is initially in the
3010 synchronized mode.
3011
3012 Sub-surfaces also have another kind of state, which is managed by
3013 wl_subsurface requests, as opposed to wl_surface requests. This
3014 state includes the sub-surface position relative to the parent
3015 surface (wl_subsurface.set_position), and the stacking order of
3016 the parent and its sub-surfaces (wl_subsurface.place_above and
3017 .place_below). This state is applied when the parent surface's
3018 wl_surface state is applied, regardless of the sub-surface's mode.
3019 As the exception, set_sync and set_desync are effective immediately.
3020
3021 The main surface can be thought to be always in desynchronized mode,
3022 since it does not have a parent in the sub-surfaces sense.
3023
3024 Even if a sub-surface is in desynchronized mode, it will behave as
3025 in synchronized mode, if its parent surface behaves as in
3026 synchronized mode. This rule is applied recursively throughout the
3027 tree of surfaces. This means, that one can set a sub-surface into
3028 synchronized mode, and then assume that all its child and grand-child
3029 sub-surfaces are synchronized, too, without explicitly setting them.
3030
3031 Destroying a sub-surface takes effect immediately. If you need to
3032 synchronize the removal of a sub-surface to the parent surface update,
3033 unmap the sub-surface first by attaching a NULL wl_buffer, update parent,
3034 and then destroy the sub-surface.
3035
3036 If the parent wl_surface object is destroyed, the sub-surface is
3037 unmapped.
3038 </description>
3039
3040 <request name="destroy" type="destructor">
3041 <description summary="remove sub-surface interface">
3042 The sub-surface interface is removed from the wl_surface object
3043 that was turned into a sub-surface with a
3044 wl_subcompositor.get_subsurface request. The wl_surface's association
3045 to the parent is deleted. The wl_surface is unmapped immediately.
3046 </description>
3047 </request>
3048
3049 <enum name="error">
3050 <entry name="bad_surface" value="0"
3051 summary="wl_surface is not a sibling or the parent"/>
3052 </enum>
3053
3054 <request name="set_position">
3055 <description summary="reposition the sub-surface">
3056 This schedules a sub-surface position change.
3057 The sub-surface will be moved so that its origin (top left
3058 corner pixel) will be at the location x, y of the parent surface
3059 coordinate system. The coordinates are not restricted to the parent
3060 surface area. Negative values are allowed.
3061
3062 The scheduled coordinates will take effect whenever the state of the
3063 parent surface is applied. When this happens depends on whether the
3064 parent surface is in synchronized mode or not. See
3065 wl_subsurface.set_sync and wl_subsurface.set_desync for details.
3066
3067 If more than one set_position request is invoked by the client before
3068 the commit of the parent surface, the position of a new request always
3069 replaces the scheduled position from any previous request.
3070
3071 The initial position is 0, 0.
3072 </description>
3073 <arg name="x" type="int" summary="x coordinate in the parent surface"/>
3074 <arg name="y" type="int" summary="y coordinate in the parent surface"/>
3075 </request>
3076
3077 <request name="place_above">
3078 <description summary="restack the sub-surface">
3079 This sub-surface is taken from the stack, and put back just
3080 above the reference surface, changing the z-order of the sub-surfaces.
3081 The reference surface must be one of the sibling surfaces, or the
3082 parent surface. Using any other surface, including this sub-surface,
3083 will cause a protocol error.
3084
3085 The z-order is double-buffered. Requests are handled in order and
3086 applied immediately to a pending state. The final pending state is
3087 copied to the active state the next time the state of the parent
3088 surface is applied. When this happens depends on whether the parent
3089 surface is in synchronized mode or not. See wl_subsurface.set_sync and
3090 wl_subsurface.set_desync for details.
3091
3092 A new sub-surface is initially added as the top-most in the stack
3093 of its siblings and parent.
3094 </description>
3095 <arg name="sibling" type="object" interface="wl_surface"
3096 summary="the reference surface"/>
3097 </request>
3098
3099 <request name="place_below">
3100 <description summary="restack the sub-surface">
3101 The sub-surface is placed just below the reference surface.
3102 See wl_subsurface.place_above.
3103 </description>
3104 <arg name="sibling" type="object" interface="wl_surface"
3105 summary="the reference surface"/>
3106 </request>
3107
3108 <request name="set_sync">
3109 <description summary="set sub-surface to synchronized mode">
3110 Change the commit behaviour of the sub-surface to synchronized
3111 mode, also described as the parent dependent mode.
3112
3113 In synchronized mode, wl_surface.commit on a sub-surface will
3114 accumulate the committed state in a cache, but the state will
3115 not be applied and hence will not change the compositor output.
3116 The cached state is applied to the sub-surface immediately after
3117 the parent surface's state is applied. This ensures atomic
3118 updates of the parent and all its synchronized sub-surfaces.
3119 Applying the cached state will invalidate the cache, so further
3120 parent surface commits do not (re-)apply old state.
3121
3122 See wl_subsurface for the recursive effect of this mode.
3123 </description>
3124 </request>
3125
3126 <request name="set_desync">
3127 <description summary="set sub-surface to desynchronized mode">
3128 Change the commit behaviour of the sub-surface to desynchronized
3129 mode, also described as independent or freely running mode.
3130
3131 In desynchronized mode, wl_surface.commit on a sub-surface will
3132 apply the pending state directly, without caching, as happens
3133 normally with a wl_surface. Calling wl_surface.commit on the
3134 parent surface has no effect on the sub-surface's wl_surface
3135 state. This mode allows a sub-surface to be updated on its own.
3136
3137 If cached state exists when wl_surface.commit is called in
3138 desynchronized mode, the pending state is added to the cached
3139 state, and applied as a whole. This invalidates the cache.
3140
3141 Note: even if a sub-surface is set to desynchronized, a parent
3142 sub-surface may override it to behave as synchronized. For details,
3143 see wl_subsurface.
3144
3145 If a surface's parent surface behaves as desynchronized, then
3146 the cached state is applied on set_desync.
3147 </description>
3148 </request>
3149 </interface>
3150
3151</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/xdg-activation-v1.xml b/raylib/src/external/glfw/deps/wayland/xdg-activation-v1.xml
new file mode 100644
index 0000000..9adcc27
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/xdg-activation-v1.xml
@@ -0,0 +1,200 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="xdg_activation_v1">
3
4 <copyright>
5 Copyright © 2020 Aleix Pol Gonzalez &lt;aleixpol@kde.org&gt;
6 Copyright © 2020 Carlos Garnacho &lt;carlosg@gnome.org&gt;
7
8 Permission is hereby granted, free of charge, to any person obtaining a
9 copy of this software and associated documentation files (the "Software"),
10 to deal in the Software without restriction, including without limitation
11 the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 and/or sell copies of the Software, and to permit persons to whom the
13 Software is furnished to do so, subject to the following conditions:
14
15 The above copyright notice and this permission notice (including the next
16 paragraph) shall be included in all copies or substantial portions of the
17 Software.
18
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 </copyright>
27
28 <description summary="Protocol for requesting activation of surfaces">
29 The way for a client to pass focus to another toplevel is as follows.
30
31 The client that intends to activate another toplevel uses the
32 xdg_activation_v1.get_activation_token request to get an activation token.
33 This token is then forwarded to the client, which is supposed to activate
34 one of its surfaces, through a separate band of communication.
35
36 One established way of doing this is through the XDG_ACTIVATION_TOKEN
37 environment variable of a newly launched child process. The child process
38 should unset the environment variable again right after reading it out in
39 order to avoid propagating it to other child processes.
40
41 Another established way exists for Applications implementing the D-Bus
42 interface org.freedesktop.Application, which should get their token under
43 activation-token on their platform_data.
44
45 In general activation tokens may be transferred across clients through
46 means not described in this protocol.
47
48 The client to be activated will then pass the token
49 it received to the xdg_activation_v1.activate request. The compositor can
50 then use this token to decide how to react to the activation request.
51
52 The token the activating client gets may be ineffective either already at
53 the time it receives it, for example if it was not focused, for focus
54 stealing prevention. The activating client will have no way to discover
55 the validity of the token, and may still forward it to the to be activated
56 client.
57
58 The created activation token may optionally get information attached to it
59 that can be used by the compositor to identify the application that we
60 intend to activate. This can for example be used to display a visual hint
61 about what application is being started.
62
63 Warning! The protocol described in this file is currently in the testing
64 phase. Backward compatible changes may be added together with the
65 corresponding interface version bump. Backward incompatible changes can
66 only be done by creating a new major version of the extension.
67 </description>
68
69 <interface name="xdg_activation_v1" version="1">
70 <description summary="interface for activating surfaces">
71 A global interface used for informing the compositor about applications
72 being activated or started, or for applications to request to be
73 activated.
74 </description>
75
76 <request name="destroy" type="destructor">
77 <description summary="destroy the xdg_activation object">
78 Notify the compositor that the xdg_activation object will no longer be
79 used.
80
81 The child objects created via this interface are unaffected and should
82 be destroyed separately.
83 </description>
84 </request>
85
86 <request name="get_activation_token">
87 <description summary="requests a token">
88 Creates an xdg_activation_token_v1 object that will provide
89 the initiating client with a unique token for this activation. This
90 token should be offered to the clients to be activated.
91 </description>
92
93 <arg name="id" type="new_id" interface="xdg_activation_token_v1"/>
94 </request>
95
96 <request name="activate">
97 <description summary="notify new interaction being available">
98 Requests surface activation. It's up to the compositor to display
99 this information as desired, for example by placing the surface above
100 the rest.
101
102 The compositor may know who requested this by checking the activation
103 token and might decide not to follow through with the activation if it's
104 considered unwanted.
105
106 Compositors can ignore unknown activation tokens when an invalid
107 token is passed.
108 </description>
109 <arg name="token" type="string" summary="the activation token of the initiating client"/>
110 <arg name="surface" type="object" interface="wl_surface"
111 summary="the wl_surface to activate"/>
112 </request>
113 </interface>
114
115 <interface name="xdg_activation_token_v1" version="1">
116 <description summary="an exported activation handle">
117 An object for setting up a token and receiving a token handle that can
118 be passed as an activation token to another client.
119
120 The object is created using the xdg_activation_v1.get_activation_token
121 request. This object should then be populated with the app_id, surface
122 and serial information and committed. The compositor shall then issue a
123 done event with the token. In case the request's parameters are invalid,
124 the compositor will provide an invalid token.
125 </description>
126
127 <enum name="error">
128 <entry name="already_used" value="0"
129 summary="The token has already been used previously"/>
130 </enum>
131
132 <request name="set_serial">
133 <description summary="specifies the seat and serial of the activating event">
134 Provides information about the seat and serial event that requested the
135 token.
136
137 The serial can come from an input or focus event. For instance, if a
138 click triggers the launch of a third-party client, the launcher client
139 should send a set_serial request with the serial and seat from the
140 wl_pointer.button event.
141
142 Some compositors might refuse to activate toplevels when the token
143 doesn't have a valid and recent enough event serial.
144
145 Must be sent before commit. This information is optional.
146 </description>
147 <arg name="serial" type="uint"
148 summary="the serial of the event that triggered the activation"/>
149 <arg name="seat" type="object" interface="wl_seat"
150 summary="the wl_seat of the event"/>
151 </request>
152
153 <request name="set_app_id">
154 <description summary="specifies the application being activated">
155 The requesting client can specify an app_id to associate the token
156 being created with it.
157
158 Must be sent before commit. This information is optional.
159 </description>
160 <arg name="app_id" type="string"
161 summary="the application id of the client being activated."/>
162 </request>
163
164 <request name="set_surface">
165 <description summary="specifies the surface requesting activation">
166 This request sets the surface requesting the activation. Note, this is
167 different from the surface that will be activated.
168
169 Some compositors might refuse to activate toplevels when the token
170 doesn't have a requesting surface.
171
172 Must be sent before commit. This information is optional.
173 </description>
174 <arg name="surface" type="object" interface="wl_surface"
175 summary="the requesting surface"/>
176 </request>
177
178 <request name="commit">
179 <description summary="issues the token request">
180 Requests an activation token based on the different parameters that
181 have been offered through set_serial, set_surface and set_app_id.
182 </description>
183 </request>
184
185 <event name="done">
186 <description summary="the exported activation token">
187 The 'done' event contains the unique token of this activation request
188 and notifies that the provider is done.
189 </description>
190 <arg name="token" type="string" summary="the exported activation token"/>
191 </event>
192
193 <request name="destroy" type="destructor">
194 <description summary="destroy the xdg_activation_token_v1 object">
195 Notify the compositor that the xdg_activation_token_v1 object will no
196 longer be used. The received token stays valid.
197 </description>
198 </request>
199 </interface>
200</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml b/raylib/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml
new file mode 100644
index 0000000..e596775
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml
@@ -0,0 +1,156 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="xdg_decoration_unstable_v1">
3 <copyright>
4 Copyright © 2018 Simon Ser
5
6 Permission is hereby granted, free of charge, to any person obtaining a
7 copy of this software and associated documentation files (the "Software"),
8 to deal in the Software without restriction, including without limitation
9 the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 and/or sell copies of the Software, and to permit persons to whom the
11 Software is furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice (including the next
14 paragraph) shall be included in all copies or substantial portions of the
15 Software.
16
17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 DEALINGS IN THE SOFTWARE.
24 </copyright>
25
26 <interface name="zxdg_decoration_manager_v1" version="1">
27 <description summary="window decoration manager">
28 This interface allows a compositor to announce support for server-side
29 decorations.
30
31 A window decoration is a set of window controls as deemed appropriate by
32 the party managing them, such as user interface components used to move,
33 resize and change a window's state.
34
35 A client can use this protocol to request being decorated by a supporting
36 compositor.
37
38 If compositor and client do not negotiate the use of a server-side
39 decoration using this protocol, clients continue to self-decorate as they
40 see fit.
41
42 Warning! The protocol described in this file is experimental and
43 backward incompatible changes may be made. Backward compatible changes
44 may be added together with the corresponding interface version bump.
45 Backward incompatible changes are done by bumping the version number in
46 the protocol and interface names and resetting the interface version.
47 Once the protocol is to be declared stable, the 'z' prefix and the
48 version number in the protocol and interface names are removed and the
49 interface version number is reset.
50 </description>
51
52 <request name="destroy" type="destructor">
53 <description summary="destroy the decoration manager object">
54 Destroy the decoration manager. This doesn't destroy objects created
55 with the manager.
56 </description>
57 </request>
58
59 <request name="get_toplevel_decoration">
60 <description summary="create a new toplevel decoration object">
61 Create a new decoration object associated with the given toplevel.
62
63 Creating an xdg_toplevel_decoration from an xdg_toplevel which has a
64 buffer attached or committed is a client error, and any attempts by a
65 client to attach or manipulate a buffer prior to the first
66 xdg_toplevel_decoration.configure event must also be treated as
67 errors.
68 </description>
69 <arg name="id" type="new_id" interface="zxdg_toplevel_decoration_v1"/>
70 <arg name="toplevel" type="object" interface="xdg_toplevel"/>
71 </request>
72 </interface>
73
74 <interface name="zxdg_toplevel_decoration_v1" version="1">
75 <description summary="decoration object for a toplevel surface">
76 The decoration object allows the compositor to toggle server-side window
77 decorations for a toplevel surface. The client can request to switch to
78 another mode.
79
80 The xdg_toplevel_decoration object must be destroyed before its
81 xdg_toplevel.
82 </description>
83
84 <enum name="error">
85 <entry name="unconfigured_buffer" value="0"
86 summary="xdg_toplevel has a buffer attached before configure"/>
87 <entry name="already_constructed" value="1"
88 summary="xdg_toplevel already has a decoration object"/>
89 <entry name="orphaned" value="2"
90 summary="xdg_toplevel destroyed before the decoration object"/>
91 </enum>
92
93 <request name="destroy" type="destructor">
94 <description summary="destroy the decoration object">
95 Switch back to a mode without any server-side decorations at the next
96 commit.
97 </description>
98 </request>
99
100 <enum name="mode">
101 <description summary="window decoration modes">
102 These values describe window decoration modes.
103 </description>
104 <entry name="client_side" value="1"
105 summary="no server-side window decoration"/>
106 <entry name="server_side" value="2"
107 summary="server-side window decoration"/>
108 </enum>
109
110 <request name="set_mode">
111 <description summary="set the decoration mode">
112 Set the toplevel surface decoration mode. This informs the compositor
113 that the client prefers the provided decoration mode.
114
115 After requesting a decoration mode, the compositor will respond by
116 emitting an xdg_surface.configure event. The client should then update
117 its content, drawing it without decorations if the received mode is
118 server-side decorations. The client must also acknowledge the configure
119 when committing the new content (see xdg_surface.ack_configure).
120
121 The compositor can decide not to use the client's mode and enforce a
122 different mode instead.
123
124 Clients whose decoration mode depend on the xdg_toplevel state may send
125 a set_mode request in response to an xdg_surface.configure event and wait
126 for the next xdg_surface.configure event to prevent unwanted state.
127 Such clients are responsible for preventing configure loops and must
128 make sure not to send multiple successive set_mode requests with the
129 same decoration mode.
130 </description>
131 <arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
132 </request>
133
134 <request name="unset_mode">
135 <description summary="unset the decoration mode">
136 Unset the toplevel surface decoration mode. This informs the compositor
137 that the client doesn't prefer a particular decoration mode.
138
139 This request has the same semantics as set_mode.
140 </description>
141 </request>
142
143 <event name="configure">
144 <description summary="suggest a surface change">
145 The configure event asks the client to change its decoration mode. The
146 configured state should not be applied immediately. Clients must send an
147 ack_configure in response to this event. See xdg_surface.configure and
148 xdg_surface.ack_configure for details.
149
150 A configure event can be sent at any time. The specified mode must be
151 obeyed by the client.
152 </description>
153 <arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
154 </event>
155 </interface>
156</protocol>
diff --git a/raylib/src/external/glfw/deps/wayland/xdg-shell.xml b/raylib/src/external/glfw/deps/wayland/xdg-shell.xml
new file mode 100644
index 0000000..777eaa7
--- /dev/null
+++ b/raylib/src/external/glfw/deps/wayland/xdg-shell.xml
@@ -0,0 +1,1370 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="xdg_shell">
3
4 <copyright>
5 Copyright © 2008-2013 Kristian Høgsberg
6 Copyright © 2013 Rafael Antognolli
7 Copyright © 2013 Jasper St. Pierre
8 Copyright © 2010-2013 Intel Corporation
9 Copyright © 2015-2017 Samsung Electronics Co., Ltd
10 Copyright © 2015-2017 Red Hat Inc.
11
12 Permission is hereby granted, free of charge, to any person obtaining a
13 copy of this software and associated documentation files (the "Software"),
14 to deal in the Software without restriction, including without limitation
15 the rights to use, copy, modify, merge, publish, distribute, sublicense,
16 and/or sell copies of the Software, and to permit persons to whom the
17 Software is furnished to do so, subject to the following conditions:
18
19 The above copyright notice and this permission notice (including the next
20 paragraph) shall be included in all copies or substantial portions of the
21 Software.
22
23 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 DEALINGS IN THE SOFTWARE.
30 </copyright>
31
32 <interface name="xdg_wm_base" version="6">
33 <description summary="create desktop-style surfaces">
34 The xdg_wm_base interface is exposed as a global object enabling clients
35 to turn their wl_surfaces into windows in a desktop environment. It
36 defines the basic functionality needed for clients and the compositor to
37 create windows that can be dragged, resized, maximized, etc, as well as
38 creating transient windows such as popup menus.
39 </description>
40
41 <enum name="error">
42 <entry name="role" value="0" summary="given wl_surface has another role"/>
43 <entry name="defunct_surfaces" value="1"
44 summary="xdg_wm_base was destroyed before children"/>
45 <entry name="not_the_topmost_popup" value="2"
46 summary="the client tried to map or destroy a non-topmost popup"/>
47 <entry name="invalid_popup_parent" value="3"
48 summary="the client specified an invalid popup parent surface"/>
49 <entry name="invalid_surface_state" value="4"
50 summary="the client provided an invalid surface state"/>
51 <entry name="invalid_positioner" value="5"
52 summary="the client provided an invalid positioner"/>
53 <entry name="unresponsive" value="6"
54 summary="the client didn’t respond to a ping event in time"/>
55 </enum>
56
57 <request name="destroy" type="destructor">
58 <description summary="destroy xdg_wm_base">
59 Destroy this xdg_wm_base object.
60
61 Destroying a bound xdg_wm_base object while there are surfaces
62 still alive created by this xdg_wm_base object instance is illegal
63 and will result in a defunct_surfaces error.
64 </description>
65 </request>
66
67 <request name="create_positioner">
68 <description summary="create a positioner object">
69 Create a positioner object. A positioner object is used to position
70 surfaces relative to some parent surface. See the interface description
71 and xdg_surface.get_popup for details.
72 </description>
73 <arg name="id" type="new_id" interface="xdg_positioner"/>
74 </request>
75
76 <request name="get_xdg_surface">
77 <description summary="create a shell surface from a surface">
78 This creates an xdg_surface for the given surface. While xdg_surface
79 itself is not a role, the corresponding surface may only be assigned
80 a role extending xdg_surface, such as xdg_toplevel or xdg_popup. It is
81 illegal to create an xdg_surface for a wl_surface which already has an
82 assigned role and this will result in a role error.
83
84 This creates an xdg_surface for the given surface. An xdg_surface is
85 used as basis to define a role to a given surface, such as xdg_toplevel
86 or xdg_popup. It also manages functionality shared between xdg_surface
87 based surface roles.
88
89 See the documentation of xdg_surface for more details about what an
90 xdg_surface is and how it is used.
91 </description>
92 <arg name="id" type="new_id" interface="xdg_surface"/>
93 <arg name="surface" type="object" interface="wl_surface"/>
94 </request>
95
96 <request name="pong">
97 <description summary="respond to a ping event">
98 A client must respond to a ping event with a pong request or
99 the client may be deemed unresponsive. See xdg_wm_base.ping
100 and xdg_wm_base.error.unresponsive.
101 </description>
102 <arg name="serial" type="uint" summary="serial of the ping event"/>
103 </request>
104
105 <event name="ping">
106 <description summary="check if the client is alive">
107 The ping event asks the client if it's still alive. Pass the
108 serial specified in the event back to the compositor by sending
109 a "pong" request back with the specified serial. See xdg_wm_base.pong.
110
111 Compositors can use this to determine if the client is still
112 alive. It's unspecified what will happen if the client doesn't
113 respond to the ping request, or in what timeframe. Clients should
114 try to respond in a reasonable amount of time. The “unresponsive”
115 error is provided for compositors that wish to disconnect unresponsive
116 clients.
117
118 A compositor is free to ping in any way it wants, but a client must
119 always respond to any xdg_wm_base object it created.
120 </description>
121 <arg name="serial" type="uint" summary="pass this to the pong request"/>
122 </event>
123 </interface>
124
125 <interface name="xdg_positioner" version="6">
126 <description summary="child surface positioner">
127 The xdg_positioner provides a collection of rules for the placement of a
128 child surface relative to a parent surface. Rules can be defined to ensure
129 the child surface remains within the visible area's borders, and to
130 specify how the child surface changes its position, such as sliding along
131 an axis, or flipping around a rectangle. These positioner-created rules are
132 constrained by the requirement that a child surface must intersect with or
133 be at least partially adjacent to its parent surface.
134
135 See the various requests for details about possible rules.
136
137 At the time of the request, the compositor makes a copy of the rules
138 specified by the xdg_positioner. Thus, after the request is complete the
139 xdg_positioner object can be destroyed or reused; further changes to the
140 object will have no effect on previous usages.
141
142 For an xdg_positioner object to be considered complete, it must have a
143 non-zero size set by set_size, and a non-zero anchor rectangle set by
144 set_anchor_rect. Passing an incomplete xdg_positioner object when
145 positioning a surface raises an invalid_positioner error.
146 </description>
147
148 <enum name="error">
149 <entry name="invalid_input" value="0" summary="invalid input provided"/>
150 </enum>
151
152 <request name="destroy" type="destructor">
153 <description summary="destroy the xdg_positioner object">
154 Notify the compositor that the xdg_positioner will no longer be used.
155 </description>
156 </request>
157
158 <request name="set_size">
159 <description summary="set the size of the to-be positioned rectangle">
160 Set the size of the surface that is to be positioned with the positioner
161 object. The size is in surface-local coordinates and corresponds to the
162 window geometry. See xdg_surface.set_window_geometry.
163
164 If a zero or negative size is set the invalid_input error is raised.
165 </description>
166 <arg name="width" type="int" summary="width of positioned rectangle"/>
167 <arg name="height" type="int" summary="height of positioned rectangle"/>
168 </request>
169
170 <request name="set_anchor_rect">
171 <description summary="set the anchor rectangle within the parent surface">
172 Specify the anchor rectangle within the parent surface that the child
173 surface will be placed relative to. The rectangle is relative to the
174 window geometry as defined by xdg_surface.set_window_geometry of the
175 parent surface.
176
177 When the xdg_positioner object is used to position a child surface, the
178 anchor rectangle may not extend outside the window geometry of the
179 positioned child's parent surface.
180
181 If a negative size is set the invalid_input error is raised.
182 </description>
183 <arg name="x" type="int" summary="x position of anchor rectangle"/>
184 <arg name="y" type="int" summary="y position of anchor rectangle"/>
185 <arg name="width" type="int" summary="width of anchor rectangle"/>
186 <arg name="height" type="int" summary="height of anchor rectangle"/>
187 </request>
188
189 <enum name="anchor">
190 <entry name="none" value="0"/>
191 <entry name="top" value="1"/>
192 <entry name="bottom" value="2"/>
193 <entry name="left" value="3"/>
194 <entry name="right" value="4"/>
195 <entry name="top_left" value="5"/>
196 <entry name="bottom_left" value="6"/>
197 <entry name="top_right" value="7"/>
198 <entry name="bottom_right" value="8"/>
199 </enum>
200
201 <request name="set_anchor">
202 <description summary="set anchor rectangle anchor">
203 Defines the anchor point for the anchor rectangle. The specified anchor
204 is used derive an anchor point that the child surface will be
205 positioned relative to. If a corner anchor is set (e.g. 'top_left' or
206 'bottom_right'), the anchor point will be at the specified corner;
207 otherwise, the derived anchor point will be centered on the specified
208 edge, or in the center of the anchor rectangle if no edge is specified.
209 </description>
210 <arg name="anchor" type="uint" enum="anchor"
211 summary="anchor"/>
212 </request>
213
214 <enum name="gravity">
215 <entry name="none" value="0"/>
216 <entry name="top" value="1"/>
217 <entry name="bottom" value="2"/>
218 <entry name="left" value="3"/>
219 <entry name="right" value="4"/>
220 <entry name="top_left" value="5"/>
221 <entry name="bottom_left" value="6"/>
222 <entry name="top_right" value="7"/>
223 <entry name="bottom_right" value="8"/>
224 </enum>
225
226 <request name="set_gravity">
227 <description summary="set child surface gravity">
228 Defines in what direction a surface should be positioned, relative to
229 the anchor point of the parent surface. If a corner gravity is
230 specified (e.g. 'bottom_right' or 'top_left'), then the child surface
231 will be placed towards the specified gravity; otherwise, the child
232 surface will be centered over the anchor point on any axis that had no
233 gravity specified. If the gravity is not in the ‘gravity’ enum, an
234 invalid_input error is raised.
235 </description>
236 <arg name="gravity" type="uint" enum="gravity"
237 summary="gravity direction"/>
238 </request>
239
240 <enum name="constraint_adjustment" bitfield="true">
241 <description summary="constraint adjustments">
242 The constraint adjustment value define ways the compositor will adjust
243 the position of the surface, if the unadjusted position would result
244 in the surface being partly constrained.
245
246 Whether a surface is considered 'constrained' is left to the compositor
247 to determine. For example, the surface may be partly outside the
248 compositor's defined 'work area', thus necessitating the child surface's
249 position be adjusted until it is entirely inside the work area.
250
251 The adjustments can be combined, according to a defined precedence: 1)
252 Flip, 2) Slide, 3) Resize.
253 </description>
254 <entry name="none" value="0">
255 <description summary="don't move the child surface when constrained">
256 Don't alter the surface position even if it is constrained on some
257 axis, for example partially outside the edge of an output.
258 </description>
259 </entry>
260 <entry name="slide_x" value="1">
261 <description summary="move along the x axis until unconstrained">
262 Slide the surface along the x axis until it is no longer constrained.
263
264 First try to slide towards the direction of the gravity on the x axis
265 until either the edge in the opposite direction of the gravity is
266 unconstrained or the edge in the direction of the gravity is
267 constrained.
268
269 Then try to slide towards the opposite direction of the gravity on the
270 x axis until either the edge in the direction of the gravity is
271 unconstrained or the edge in the opposite direction of the gravity is
272 constrained.
273 </description>
274 </entry>
275 <entry name="slide_y" value="2">
276 <description summary="move along the y axis until unconstrained">
277 Slide the surface along the y axis until it is no longer constrained.
278
279 First try to slide towards the direction of the gravity on the y axis
280 until either the edge in the opposite direction of the gravity is
281 unconstrained or the edge in the direction of the gravity is
282 constrained.
283
284 Then try to slide towards the opposite direction of the gravity on the
285 y axis until either the edge in the direction of the gravity is
286 unconstrained or the edge in the opposite direction of the gravity is
287 constrained.
288 </description>
289 </entry>
290 <entry name="flip_x" value="4">
291 <description summary="invert the anchor and gravity on the x axis">
292 Invert the anchor and gravity on the x axis if the surface is
293 constrained on the x axis. For example, if the left edge of the
294 surface is constrained, the gravity is 'left' and the anchor is
295 'left', change the gravity to 'right' and the anchor to 'right'.
296
297 If the adjusted position also ends up being constrained, the resulting
298 position of the flip_x adjustment will be the one before the
299 adjustment.
300 </description>
301 </entry>
302 <entry name="flip_y" value="8">
303 <description summary="invert the anchor and gravity on the y axis">
304 Invert the anchor and gravity on the y axis if the surface is
305 constrained on the y axis. For example, if the bottom edge of the
306 surface is constrained, the gravity is 'bottom' and the anchor is
307 'bottom', change the gravity to 'top' and the anchor to 'top'.
308
309 The adjusted position is calculated given the original anchor
310 rectangle and offset, but with the new flipped anchor and gravity
311 values.
312
313 If the adjusted position also ends up being constrained, the resulting
314 position of the flip_y adjustment will be the one before the
315 adjustment.
316 </description>
317 </entry>
318 <entry name="resize_x" value="16">
319 <description summary="horizontally resize the surface">
320 Resize the surface horizontally so that it is completely
321 unconstrained.
322 </description>
323 </entry>
324 <entry name="resize_y" value="32">
325 <description summary="vertically resize the surface">
326 Resize the surface vertically so that it is completely unconstrained.
327 </description>
328 </entry>
329 </enum>
330
331 <request name="set_constraint_adjustment">
332 <description summary="set the adjustment to be done when constrained">
333 Specify how the window should be positioned if the originally intended
334 position caused the surface to be constrained, meaning at least
335 partially outside positioning boundaries set by the compositor. The
336 adjustment is set by constructing a bitmask describing the adjustment to
337 be made when the surface is constrained on that axis.
338
339 If no bit for one axis is set, the compositor will assume that the child
340 surface should not change its position on that axis when constrained.
341
342 If more than one bit for one axis is set, the order of how adjustments
343 are applied is specified in the corresponding adjustment descriptions.
344
345 The default adjustment is none.
346 </description>
347 <arg name="constraint_adjustment" type="uint"
348 summary="bit mask of constraint adjustments"/>
349 </request>
350
351 <request name="set_offset">
352 <description summary="set surface position offset">
353 Specify the surface position offset relative to the position of the
354 anchor on the anchor rectangle and the anchor on the surface. For
355 example if the anchor of the anchor rectangle is at (x, y), the surface
356 has the gravity bottom|right, and the offset is (ox, oy), the calculated
357 surface position will be (x + ox, y + oy). The offset position of the
358 surface is the one used for constraint testing. See
359 set_constraint_adjustment.
360
361 An example use case is placing a popup menu on top of a user interface
362 element, while aligning the user interface element of the parent surface
363 with some user interface element placed somewhere in the popup surface.
364 </description>
365 <arg name="x" type="int" summary="surface position x offset"/>
366 <arg name="y" type="int" summary="surface position y offset"/>
367 </request>
368
369 <!-- Version 3 additions -->
370
371 <request name="set_reactive" since="3">
372 <description summary="continuously reconstrain the surface">
373 When set reactive, the surface is reconstrained if the conditions used
374 for constraining changed, e.g. the parent window moved.
375
376 If the conditions changed and the popup was reconstrained, an
377 xdg_popup.configure event is sent with updated geometry, followed by an
378 xdg_surface.configure event.
379 </description>
380 </request>
381
382 <request name="set_parent_size" since="3">
383 <description summary="">
384 Set the parent window geometry the compositor should use when
385 positioning the popup. The compositor may use this information to
386 determine the future state the popup should be constrained using. If
387 this doesn't match the dimension of the parent the popup is eventually
388 positioned against, the behavior is undefined.
389
390 The arguments are given in the surface-local coordinate space.
391 </description>
392 <arg name="parent_width" type="int"
393 summary="future window geometry width of parent"/>
394 <arg name="parent_height" type="int"
395 summary="future window geometry height of parent"/>
396 </request>
397
398 <request name="set_parent_configure" since="3">
399 <description summary="set parent configure this is a response to">
400 Set the serial of an xdg_surface.configure event this positioner will be
401 used in response to. The compositor may use this information together
402 with set_parent_size to determine what future state the popup should be
403 constrained using.
404 </description>
405 <arg name="serial" type="uint"
406 summary="serial of parent configure event"/>
407 </request>
408 </interface>
409
410 <interface name="xdg_surface" version="6">
411 <description summary="desktop user interface surface base interface">
412 An interface that may be implemented by a wl_surface, for
413 implementations that provide a desktop-style user interface.
414
415 It provides a base set of functionality required to construct user
416 interface elements requiring management by the compositor, such as
417 toplevel windows, menus, etc. The types of functionality are split into
418 xdg_surface roles.
419
420 Creating an xdg_surface does not set the role for a wl_surface. In order
421 to map an xdg_surface, the client must create a role-specific object
422 using, e.g., get_toplevel, get_popup. The wl_surface for any given
423 xdg_surface can have at most one role, and may not be assigned any role
424 not based on xdg_surface.
425
426 A role must be assigned before any other requests are made to the
427 xdg_surface object.
428
429 The client must call wl_surface.commit on the corresponding wl_surface
430 for the xdg_surface state to take effect.
431
432 Creating an xdg_surface from a wl_surface which has a buffer attached or
433 committed is a client error, and any attempts by a client to attach or
434 manipulate a buffer prior to the first xdg_surface.configure call must
435 also be treated as errors.
436
437 After creating a role-specific object and setting it up, the client must
438 perform an initial commit without any buffer attached. The compositor
439 will reply with initial wl_surface state such as
440 wl_surface.preferred_buffer_scale followed by an xdg_surface.configure
441 event. The client must acknowledge it and is then allowed to attach a
442 buffer to map the surface.
443
444 Mapping an xdg_surface-based role surface is defined as making it
445 possible for the surface to be shown by the compositor. Note that
446 a mapped surface is not guaranteed to be visible once it is mapped.
447
448 For an xdg_surface to be mapped by the compositor, the following
449 conditions must be met:
450 (1) the client has assigned an xdg_surface-based role to the surface
451 (2) the client has set and committed the xdg_surface state and the
452 role-dependent state to the surface
453 (3) the client has committed a buffer to the surface
454
455 A newly-unmapped surface is considered to have met condition (1) out
456 of the 3 required conditions for mapping a surface if its role surface
457 has not been destroyed, i.e. the client must perform the initial commit
458 again before attaching a buffer.
459 </description>
460
461 <enum name="error">
462 <entry name="not_constructed" value="1"
463 summary="Surface was not fully constructed"/>
464 <entry name="already_constructed" value="2"
465 summary="Surface was already constructed"/>
466 <entry name="unconfigured_buffer" value="3"
467 summary="Attaching a buffer to an unconfigured surface"/>
468 <entry name="invalid_serial" value="4"
469 summary="Invalid serial number when acking a configure event"/>
470 <entry name="invalid_size" value="5"
471 summary="Width or height was zero or negative"/>
472 <entry name="defunct_role_object" value="6"
473 summary="Surface was destroyed before its role object"/>
474 </enum>
475
476 <request name="destroy" type="destructor">
477 <description summary="destroy the xdg_surface">
478 Destroy the xdg_surface object. An xdg_surface must only be destroyed
479 after its role object has been destroyed, otherwise
480 a defunct_role_object error is raised.
481 </description>
482 </request>
483
484 <request name="get_toplevel">
485 <description summary="assign the xdg_toplevel surface role">
486 This creates an xdg_toplevel object for the given xdg_surface and gives
487 the associated wl_surface the xdg_toplevel role.
488
489 See the documentation of xdg_toplevel for more details about what an
490 xdg_toplevel is and how it is used.
491 </description>
492 <arg name="id" type="new_id" interface="xdg_toplevel"/>
493 </request>
494
495 <request name="get_popup">
496 <description summary="assign the xdg_popup surface role">
497 This creates an xdg_popup object for the given xdg_surface and gives
498 the associated wl_surface the xdg_popup role.
499
500 If null is passed as a parent, a parent surface must be specified using
501 some other protocol, before committing the initial state.
502
503 See the documentation of xdg_popup for more details about what an
504 xdg_popup is and how it is used.
505 </description>
506 <arg name="id" type="new_id" interface="xdg_popup"/>
507 <arg name="parent" type="object" interface="xdg_surface" allow-null="true"/>
508 <arg name="positioner" type="object" interface="xdg_positioner"/>
509 </request>
510
511 <request name="set_window_geometry">
512 <description summary="set the new window geometry">
513 The window geometry of a surface is its "visible bounds" from the
514 user's perspective. Client-side decorations often have invisible
515 portions like drop-shadows which should be ignored for the
516 purposes of aligning, placing and constraining windows.
517
518 The window geometry is double buffered, and will be applied at the
519 time wl_surface.commit of the corresponding wl_surface is called.
520
521 When maintaining a position, the compositor should treat the (x, y)
522 coordinate of the window geometry as the top left corner of the window.
523 A client changing the (x, y) window geometry coordinate should in
524 general not alter the position of the window.
525
526 Once the window geometry of the surface is set, it is not possible to
527 unset it, and it will remain the same until set_window_geometry is
528 called again, even if a new subsurface or buffer is attached.
529
530 If never set, the value is the full bounds of the surface,
531 including any subsurfaces. This updates dynamically on every
532 commit. This unset is meant for extremely simple clients.
533
534 The arguments are given in the surface-local coordinate space of
535 the wl_surface associated with this xdg_surface, and may extend outside
536 of the wl_surface itself to mark parts of the subsurface tree as part of
537 the window geometry.
538
539 When applied, the effective window geometry will be the set window
540 geometry clamped to the bounding rectangle of the combined
541 geometry of the surface of the xdg_surface and the associated
542 subsurfaces.
543
544 The effective geometry will not be recalculated unless a new call to
545 set_window_geometry is done and the new pending surface state is
546 subsequently applied.
547
548 The width and height of the effective window geometry must be
549 greater than zero. Setting an invalid size will raise an
550 invalid_size error.
551 </description>
552 <arg name="x" type="int"/>
553 <arg name="y" type="int"/>
554 <arg name="width" type="int"/>
555 <arg name="height" type="int"/>
556 </request>
557
558 <request name="ack_configure">
559 <description summary="ack a configure event">
560 When a configure event is received, if a client commits the
561 surface in response to the configure event, then the client
562 must make an ack_configure request sometime before the commit
563 request, passing along the serial of the configure event.
564
565 For instance, for toplevel surfaces the compositor might use this
566 information to move a surface to the top left only when the client has
567 drawn itself for the maximized or fullscreen state.
568
569 If the client receives multiple configure events before it
570 can respond to one, it only has to ack the last configure event.
571 Acking a configure event that was never sent raises an invalid_serial
572 error.
573
574 A client is not required to commit immediately after sending
575 an ack_configure request - it may even ack_configure several times
576 before its next surface commit.
577
578 A client may send multiple ack_configure requests before committing, but
579 only the last request sent before a commit indicates which configure
580 event the client really is responding to.
581
582 Sending an ack_configure request consumes the serial number sent with
583 the request, as well as serial numbers sent by all configure events
584 sent on this xdg_surface prior to the configure event referenced by
585 the committed serial.
586
587 It is an error to issue multiple ack_configure requests referencing a
588 serial from the same configure event, or to issue an ack_configure
589 request referencing a serial from a configure event issued before the
590 event identified by the last ack_configure request for the same
591 xdg_surface. Doing so will raise an invalid_serial error.
592 </description>
593 <arg name="serial" type="uint" summary="the serial from the configure event"/>
594 </request>
595
596 <event name="configure">
597 <description summary="suggest a surface change">
598 The configure event marks the end of a configure sequence. A configure
599 sequence is a set of one or more events configuring the state of the
600 xdg_surface, including the final xdg_surface.configure event.
601
602 Where applicable, xdg_surface surface roles will during a configure
603 sequence extend this event as a latched state sent as events before the
604 xdg_surface.configure event. Such events should be considered to make up
605 a set of atomically applied configuration states, where the
606 xdg_surface.configure commits the accumulated state.
607
608 Clients should arrange their surface for the new states, and then send
609 an ack_configure request with the serial sent in this configure event at
610 some point before committing the new surface.
611
612 If the client receives multiple configure events before it can respond
613 to one, it is free to discard all but the last event it received.
614 </description>
615 <arg name="serial" type="uint" summary="serial of the configure event"/>
616 </event>
617
618 </interface>
619
620 <interface name="xdg_toplevel" version="6">
621 <description summary="toplevel surface">
622 This interface defines an xdg_surface role which allows a surface to,
623 among other things, set window-like properties such as maximize,
624 fullscreen, and minimize, set application-specific metadata like title and
625 id, and well as trigger user interactive operations such as interactive
626 resize and move.
627
628 Unmapping an xdg_toplevel means that the surface cannot be shown
629 by the compositor until it is explicitly mapped again.
630 All active operations (e.g., move, resize) are canceled and all
631 attributes (e.g. title, state, stacking, ...) are discarded for
632 an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to
633 the state it had right after xdg_surface.get_toplevel. The client
634 can re-map the toplevel by perfoming a commit without any buffer
635 attached, waiting for a configure event and handling it as usual (see
636 xdg_surface description).
637
638 Attaching a null buffer to a toplevel unmaps the surface.
639 </description>
640
641 <request name="destroy" type="destructor">
642 <description summary="destroy the xdg_toplevel">
643 This request destroys the role surface and unmaps the surface;
644 see "Unmapping" behavior in interface section for details.
645 </description>
646 </request>
647
648 <enum name="error">
649 <entry name="invalid_resize_edge" value="0" summary="provided value is
650 not a valid variant of the resize_edge enum"/>
651 <entry name="invalid_parent" value="1"
652 summary="invalid parent toplevel"/>
653 <entry name="invalid_size" value="2"
654 summary="client provided an invalid min or max size"/>
655 </enum>
656
657 <request name="set_parent">
658 <description summary="set the parent of this surface">
659 Set the "parent" of this surface. This surface should be stacked
660 above the parent surface and all other ancestor surfaces.
661
662 Parent surfaces should be set on dialogs, toolboxes, or other
663 "auxiliary" surfaces, so that the parent is raised when the dialog
664 is raised.
665
666 Setting a null parent for a child surface unsets its parent. Setting
667 a null parent for a surface which currently has no parent is a no-op.
668
669 Only mapped surfaces can have child surfaces. Setting a parent which
670 is not mapped is equivalent to setting a null parent. If a surface
671 becomes unmapped, its children's parent is set to the parent of
672 the now-unmapped surface. If the now-unmapped surface has no parent,
673 its children's parent is unset. If the now-unmapped surface becomes
674 mapped again, its parent-child relationship is not restored.
675
676 The parent toplevel must not be one of the child toplevel's
677 descendants, and the parent must be different from the child toplevel,
678 otherwise the invalid_parent protocol error is raised.
679 </description>
680 <arg name="parent" type="object" interface="xdg_toplevel" allow-null="true"/>
681 </request>
682
683 <request name="set_title">
684 <description summary="set surface title">
685 Set a short title for the surface.
686
687 This string may be used to identify the surface in a task bar,
688 window list, or other user interface elements provided by the
689 compositor.
690
691 The string must be encoded in UTF-8.
692 </description>
693 <arg name="title" type="string"/>
694 </request>
695
696 <request name="set_app_id">
697 <description summary="set application ID">
698 Set an application identifier for the surface.
699
700 The app ID identifies the general class of applications to which
701 the surface belongs. The compositor can use this to group multiple
702 surfaces together, or to determine how to launch a new application.
703
704 For D-Bus activatable applications, the app ID is used as the D-Bus
705 service name.
706
707 The compositor shell will try to group application surfaces together
708 by their app ID. As a best practice, it is suggested to select app
709 ID's that match the basename of the application's .desktop file.
710 For example, "org.freedesktop.FooViewer" where the .desktop file is
711 "org.freedesktop.FooViewer.desktop".
712
713 Like other properties, a set_app_id request can be sent after the
714 xdg_toplevel has been mapped to update the property.
715
716 See the desktop-entry specification [0] for more details on
717 application identifiers and how they relate to well-known D-Bus
718 names and .desktop files.
719
720 [0] https://standards.freedesktop.org/desktop-entry-spec/
721 </description>
722 <arg name="app_id" type="string"/>
723 </request>
724
725 <request name="show_window_menu">
726 <description summary="show the window menu">
727 Clients implementing client-side decorations might want to show
728 a context menu when right-clicking on the decorations, giving the
729 user a menu that they can use to maximize or minimize the window.
730
731 This request asks the compositor to pop up such a window menu at
732 the given position, relative to the local surface coordinates of
733 the parent surface. There are no guarantees as to what menu items
734 the window menu contains, or even if a window menu will be drawn
735 at all.
736
737 This request must be used in response to some sort of user action
738 like a button press, key press, or touch down event.
739 </description>
740 <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
741 <arg name="serial" type="uint" summary="the serial of the user event"/>
742 <arg name="x" type="int" summary="the x position to pop up the window menu at"/>
743 <arg name="y" type="int" summary="the y position to pop up the window menu at"/>
744 </request>
745
746 <request name="move">
747 <description summary="start an interactive move">
748 Start an interactive, user-driven move of the surface.
749
750 This request must be used in response to some sort of user action
751 like a button press, key press, or touch down event. The passed
752 serial is used to determine the type of interactive move (touch,
753 pointer, etc).
754
755 The server may ignore move requests depending on the state of
756 the surface (e.g. fullscreen or maximized), or if the passed serial
757 is no longer valid.
758
759 If triggered, the surface will lose the focus of the device
760 (wl_pointer, wl_touch, etc) used for the move. It is up to the
761 compositor to visually indicate that the move is taking place, such as
762 updating a pointer cursor, during the move. There is no guarantee
763 that the device focus will return when the move is completed.
764 </description>
765 <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
766 <arg name="serial" type="uint" summary="the serial of the user event"/>
767 </request>
768
769 <enum name="resize_edge">
770 <description summary="edge values for resizing">
771 These values are used to indicate which edge of a surface
772 is being dragged in a resize operation.
773 </description>
774 <entry name="none" value="0"/>
775 <entry name="top" value="1"/>
776 <entry name="bottom" value="2"/>
777 <entry name="left" value="4"/>
778 <entry name="top_left" value="5"/>
779 <entry name="bottom_left" value="6"/>
780 <entry name="right" value="8"/>
781 <entry name="top_right" value="9"/>
782 <entry name="bottom_right" value="10"/>
783 </enum>
784
785 <request name="resize">
786 <description summary="start an interactive resize">
787 Start a user-driven, interactive resize of the surface.
788
789 This request must be used in response to some sort of user action
790 like a button press, key press, or touch down event. The passed
791 serial is used to determine the type of interactive resize (touch,
792 pointer, etc).
793
794 The server may ignore resize requests depending on the state of
795 the surface (e.g. fullscreen or maximized).
796
797 If triggered, the client will receive configure events with the
798 "resize" state enum value and the expected sizes. See the "resize"
799 enum value for more details about what is required. The client
800 must also acknowledge configure events using "ack_configure". After
801 the resize is completed, the client will receive another "configure"
802 event without the resize state.
803
804 If triggered, the surface also will lose the focus of the device
805 (wl_pointer, wl_touch, etc) used for the resize. It is up to the
806 compositor to visually indicate that the resize is taking place,
807 such as updating a pointer cursor, during the resize. There is no
808 guarantee that the device focus will return when the resize is
809 completed.
810
811 The edges parameter specifies how the surface should be resized, and
812 is one of the values of the resize_edge enum. Values not matching
813 a variant of the enum will cause the invalid_resize_edge protocol error.
814 The compositor may use this information to update the surface position
815 for example when dragging the top left corner. The compositor may also
816 use this information to adapt its behavior, e.g. choose an appropriate
817 cursor image.
818 </description>
819 <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
820 <arg name="serial" type="uint" summary="the serial of the user event"/>
821 <arg name="edges" type="uint" enum="resize_edge" summary="which edge or corner is being dragged"/>
822 </request>
823
824 <enum name="state">
825 <description summary="types of state on the surface">
826 The different state values used on the surface. This is designed for
827 state values like maximized, fullscreen. It is paired with the
828 configure event to ensure that both the client and the compositor
829 setting the state can be synchronized.
830
831 States set in this way are double-buffered. They will get applied on
832 the next commit.
833 </description>
834 <entry name="maximized" value="1" summary="the surface is maximized">
835 <description summary="the surface is maximized">
836 The surface is maximized. The window geometry specified in the configure
837 event must be obeyed by the client, or the xdg_wm_base.invalid_surface_state
838 error is raised.
839
840 The client should draw without shadow or other
841 decoration outside of the window geometry.
842 </description>
843 </entry>
844 <entry name="fullscreen" value="2" summary="the surface is fullscreen">
845 <description summary="the surface is fullscreen">
846 The surface is fullscreen. The window geometry specified in the
847 configure event is a maximum; the client cannot resize beyond it. For
848 a surface to cover the whole fullscreened area, the geometry
849 dimensions must be obeyed by the client. For more details, see
850 xdg_toplevel.set_fullscreen.
851 </description>
852 </entry>
853 <entry name="resizing" value="3" summary="the surface is being resized">
854 <description summary="the surface is being resized">
855 The surface is being resized. The window geometry specified in the
856 configure event is a maximum; the client cannot resize beyond it.
857 Clients that have aspect ratio or cell sizing configuration can use
858 a smaller size, however.
859 </description>
860 </entry>
861 <entry name="activated" value="4" summary="the surface is now activated">
862 <description summary="the surface is now activated">
863 Client window decorations should be painted as if the window is
864 active. Do not assume this means that the window actually has
865 keyboard or pointer focus.
866 </description>
867 </entry>
868 <entry name="tiled_left" value="5" since="2">
869 <description summary="the surface’s left edge is tiled">
870 The window is currently in a tiled layout and the left edge is
871 considered to be adjacent to another part of the tiling grid.
872 </description>
873 </entry>
874 <entry name="tiled_right" value="6" since="2">
875 <description summary="the surface’s right edge is tiled">
876 The window is currently in a tiled layout and the right edge is
877 considered to be adjacent to another part of the tiling grid.
878 </description>
879 </entry>
880 <entry name="tiled_top" value="7" since="2">
881 <description summary="the surface’s top edge is tiled">
882 The window is currently in a tiled layout and the top edge is
883 considered to be adjacent to another part of the tiling grid.
884 </description>
885 </entry>
886 <entry name="tiled_bottom" value="8" since="2">
887 <description summary="the surface’s bottom edge is tiled">
888 The window is currently in a tiled layout and the bottom edge is
889 considered to be adjacent to another part of the tiling grid.
890 </description>
891 </entry>
892 <entry name="suspended" value="9" since="6">
893 <description summary="surface repaint is suspended">
894 The surface is currently not ordinarily being repainted; for
895 example because its content is occluded by another window, or its
896 outputs are switched off due to screen locking.
897 </description>
898 </entry>
899 </enum>
900
901 <request name="set_max_size">
902 <description summary="set the maximum size">
903 Set a maximum size for the window.
904
905 The client can specify a maximum size so that the compositor does
906 not try to configure the window beyond this size.
907
908 The width and height arguments are in window geometry coordinates.
909 See xdg_surface.set_window_geometry.
910
911 Values set in this way are double-buffered. They will get applied
912 on the next commit.
913
914 The compositor can use this information to allow or disallow
915 different states like maximize or fullscreen and draw accurate
916 animations.
917
918 Similarly, a tiling window manager may use this information to
919 place and resize client windows in a more effective way.
920
921 The client should not rely on the compositor to obey the maximum
922 size. The compositor may decide to ignore the values set by the
923 client and request a larger size.
924
925 If never set, or a value of zero in the request, means that the
926 client has no expected maximum size in the given dimension.
927 As a result, a client wishing to reset the maximum size
928 to an unspecified state can use zero for width and height in the
929 request.
930
931 Requesting a maximum size to be smaller than the minimum size of
932 a surface is illegal and will result in an invalid_size error.
933
934 The width and height must be greater than or equal to zero. Using
935 strictly negative values for width or height will result in a
936 invalid_size error.
937 </description>
938 <arg name="width" type="int"/>
939 <arg name="height" type="int"/>
940 </request>
941
942 <request name="set_min_size">
943 <description summary="set the minimum size">
944 Set a minimum size for the window.
945
946 The client can specify a minimum size so that the compositor does
947 not try to configure the window below this size.
948
949 The width and height arguments are in window geometry coordinates.
950 See xdg_surface.set_window_geometry.
951
952 Values set in this way are double-buffered. They will get applied
953 on the next commit.
954
955 The compositor can use this information to allow or disallow
956 different states like maximize or fullscreen and draw accurate
957 animations.
958
959 Similarly, a tiling window manager may use this information to
960 place and resize client windows in a more effective way.
961
962 The client should not rely on the compositor to obey the minimum
963 size. The compositor may decide to ignore the values set by the
964 client and request a smaller size.
965
966 If never set, or a value of zero in the request, means that the
967 client has no expected minimum size in the given dimension.
968 As a result, a client wishing to reset the minimum size
969 to an unspecified state can use zero for width and height in the
970 request.
971
972 Requesting a minimum size to be larger than the maximum size of
973 a surface is illegal and will result in an invalid_size error.
974
975 The width and height must be greater than or equal to zero. Using
976 strictly negative values for width and height will result in a
977 invalid_size error.
978 </description>
979 <arg name="width" type="int"/>
980 <arg name="height" type="int"/>
981 </request>
982
983 <request name="set_maximized">
984 <description summary="maximize the window">
985 Maximize the surface.
986
987 After requesting that the surface should be maximized, the compositor
988 will respond by emitting a configure event. Whether this configure
989 actually sets the window maximized is subject to compositor policies.
990 The client must then update its content, drawing in the configured
991 state. The client must also acknowledge the configure when committing
992 the new content (see ack_configure).
993
994 It is up to the compositor to decide how and where to maximize the
995 surface, for example which output and what region of the screen should
996 be used.
997
998 If the surface was already maximized, the compositor will still emit
999 a configure event with the "maximized" state.
1000
1001 If the surface is in a fullscreen state, this request has no direct
1002 effect. It may alter the state the surface is returned to when
1003 unmaximized unless overridden by the compositor.
1004 </description>
1005 </request>
1006
1007 <request name="unset_maximized">
1008 <description summary="unmaximize the window">
1009 Unmaximize the surface.
1010
1011 After requesting that the surface should be unmaximized, the compositor
1012 will respond by emitting a configure event. Whether this actually
1013 un-maximizes the window is subject to compositor policies.
1014 If available and applicable, the compositor will include the window
1015 geometry dimensions the window had prior to being maximized in the
1016 configure event. The client must then update its content, drawing it in
1017 the configured state. The client must also acknowledge the configure
1018 when committing the new content (see ack_configure).
1019
1020 It is up to the compositor to position the surface after it was
1021 unmaximized; usually the position the surface had before maximizing, if
1022 applicable.
1023
1024 If the surface was already not maximized, the compositor will still
1025 emit a configure event without the "maximized" state.
1026
1027 If the surface is in a fullscreen state, this request has no direct
1028 effect. It may alter the state the surface is returned to when
1029 unmaximized unless overridden by the compositor.
1030 </description>
1031 </request>
1032
1033 <request name="set_fullscreen">
1034 <description summary="set the window as fullscreen on an output">
1035 Make the surface fullscreen.
1036
1037 After requesting that the surface should be fullscreened, the
1038 compositor will respond by emitting a configure event. Whether the
1039 client is actually put into a fullscreen state is subject to compositor
1040 policies. The client must also acknowledge the configure when
1041 committing the new content (see ack_configure).
1042
1043 The output passed by the request indicates the client's preference as
1044 to which display it should be set fullscreen on. If this value is NULL,
1045 it's up to the compositor to choose which display will be used to map
1046 this surface.
1047
1048 If the surface doesn't cover the whole output, the compositor will
1049 position the surface in the center of the output and compensate with
1050 with border fill covering the rest of the output. The content of the
1051 border fill is undefined, but should be assumed to be in some way that
1052 attempts to blend into the surrounding area (e.g. solid black).
1053
1054 If the fullscreened surface is not opaque, the compositor must make
1055 sure that other screen content not part of the same surface tree (made
1056 up of subsurfaces, popups or similarly coupled surfaces) are not
1057 visible below the fullscreened surface.
1058 </description>
1059 <arg name="output" type="object" interface="wl_output" allow-null="true"/>
1060 </request>
1061
1062 <request name="unset_fullscreen">
1063 <description summary="unset the window as fullscreen">
1064 Make the surface no longer fullscreen.
1065
1066 After requesting that the surface should be unfullscreened, the
1067 compositor will respond by emitting a configure event.
1068 Whether this actually removes the fullscreen state of the client is
1069 subject to compositor policies.
1070
1071 Making a surface unfullscreen sets states for the surface based on the following:
1072 * the state(s) it may have had before becoming fullscreen
1073 * any state(s) decided by the compositor
1074 * any state(s) requested by the client while the surface was fullscreen
1075
1076 The compositor may include the previous window geometry dimensions in
1077 the configure event, if applicable.
1078
1079 The client must also acknowledge the configure when committing the new
1080 content (see ack_configure).
1081 </description>
1082 </request>
1083
1084 <request name="set_minimized">
1085 <description summary="set the window as minimized">
1086 Request that the compositor minimize your surface. There is no
1087 way to know if the surface is currently minimized, nor is there
1088 any way to unset minimization on this surface.
1089
1090 If you are looking to throttle redrawing when minimized, please
1091 instead use the wl_surface.frame event for this, as this will
1092 also work with live previews on windows in Alt-Tab, Expose or
1093 similar compositor features.
1094 </description>
1095 </request>
1096
1097 <event name="configure">
1098 <description summary="suggest a surface change">
1099 This configure event asks the client to resize its toplevel surface or
1100 to change its state. The configured state should not be applied
1101 immediately. See xdg_surface.configure for details.
1102
1103 The width and height arguments specify a hint to the window
1104 about how its surface should be resized in window geometry
1105 coordinates. See set_window_geometry.
1106
1107 If the width or height arguments are zero, it means the client
1108 should decide its own window dimension. This may happen when the
1109 compositor needs to configure the state of the surface but doesn't
1110 have any information about any previous or expected dimension.
1111
1112 The states listed in the event specify how the width/height
1113 arguments should be interpreted, and possibly how it should be
1114 drawn.
1115
1116 Clients must send an ack_configure in response to this event. See
1117 xdg_surface.configure and xdg_surface.ack_configure for details.
1118 </description>
1119 <arg name="width" type="int"/>
1120 <arg name="height" type="int"/>
1121 <arg name="states" type="array"/>
1122 </event>
1123
1124 <event name="close">
1125 <description summary="surface wants to be closed">
1126 The close event is sent by the compositor when the user
1127 wants the surface to be closed. This should be equivalent to
1128 the user clicking the close button in client-side decorations,
1129 if your application has any.
1130
1131 This is only a request that the user intends to close the
1132 window. The client may choose to ignore this request, or show
1133 a dialog to ask the user to save their data, etc.
1134 </description>
1135 </event>
1136
1137 <!-- Version 4 additions -->
1138
1139 <event name="configure_bounds" since="4">
1140 <description summary="recommended window geometry bounds">
1141 The configure_bounds event may be sent prior to a xdg_toplevel.configure
1142 event to communicate the bounds a window geometry size is recommended
1143 to constrain to.
1144
1145 The passed width and height are in surface coordinate space. If width
1146 and height are 0, it means bounds is unknown and equivalent to as if no
1147 configure_bounds event was ever sent for this surface.
1148
1149 The bounds can for example correspond to the size of a monitor excluding
1150 any panels or other shell components, so that a surface isn't created in
1151 a way that it cannot fit.
1152
1153 The bounds may change at any point, and in such a case, a new
1154 xdg_toplevel.configure_bounds will be sent, followed by
1155 xdg_toplevel.configure and xdg_surface.configure.
1156 </description>
1157 <arg name="width" type="int"/>
1158 <arg name="height" type="int"/>
1159 </event>
1160
1161 <!-- Version 5 additions -->
1162
1163 <enum name="wm_capabilities" since="5">
1164 <entry name="window_menu" value="1" summary="show_window_menu is available"/>
1165 <entry name="maximize" value="2" summary="set_maximized and unset_maximized are available"/>
1166 <entry name="fullscreen" value="3" summary="set_fullscreen and unset_fullscreen are available"/>
1167 <entry name="minimize" value="4" summary="set_minimized is available"/>
1168 </enum>
1169
1170 <event name="wm_capabilities" since="5">
1171 <description summary="compositor capabilities">
1172 This event advertises the capabilities supported by the compositor. If
1173 a capability isn't supported, clients should hide or disable the UI
1174 elements that expose this functionality. For instance, if the
1175 compositor doesn't advertise support for minimized toplevels, a button
1176 triggering the set_minimized request should not be displayed.
1177
1178 The compositor will ignore requests it doesn't support. For instance,
1179 a compositor which doesn't advertise support for minimized will ignore
1180 set_minimized requests.
1181
1182 Compositors must send this event once before the first
1183 xdg_surface.configure event. When the capabilities change, compositors
1184 must send this event again and then send an xdg_surface.configure
1185 event.
1186
1187 The configured state should not be applied immediately. See
1188 xdg_surface.configure for details.
1189
1190 The capabilities are sent as an array of 32-bit unsigned integers in
1191 native endianness.
1192 </description>
1193 <arg name="capabilities" type="array" summary="array of 32-bit capabilities"/>
1194 </event>
1195 </interface>
1196
1197 <interface name="xdg_popup" version="6">
1198 <description summary="short-lived, popup surfaces for menus">
1199 A popup surface is a short-lived, temporary surface. It can be used to
1200 implement for example menus, popovers, tooltips and other similar user
1201 interface concepts.
1202
1203 A popup can be made to take an explicit grab. See xdg_popup.grab for
1204 details.
1205
1206 When the popup is dismissed, a popup_done event will be sent out, and at
1207 the same time the surface will be unmapped. See the xdg_popup.popup_done
1208 event for details.
1209
1210 Explicitly destroying the xdg_popup object will also dismiss the popup and
1211 unmap the surface. Clients that want to dismiss the popup when another
1212 surface of their own is clicked should dismiss the popup using the destroy
1213 request.
1214
1215 A newly created xdg_popup will be stacked on top of all previously created
1216 xdg_popup surfaces associated with the same xdg_toplevel.
1217
1218 The parent of an xdg_popup must be mapped (see the xdg_surface
1219 description) before the xdg_popup itself.
1220
1221 The client must call wl_surface.commit on the corresponding wl_surface
1222 for the xdg_popup state to take effect.
1223 </description>
1224
1225 <enum name="error">
1226 <entry name="invalid_grab" value="0"
1227 summary="tried to grab after being mapped"/>
1228 </enum>
1229
1230 <request name="destroy" type="destructor">
1231 <description summary="remove xdg_popup interface">
1232 This destroys the popup. Explicitly destroying the xdg_popup
1233 object will also dismiss the popup, and unmap the surface.
1234
1235 If this xdg_popup is not the "topmost" popup, the
1236 xdg_wm_base.not_the_topmost_popup protocol error will be sent.
1237 </description>
1238 </request>
1239
1240 <request name="grab">
1241 <description summary="make the popup take an explicit grab">
1242 This request makes the created popup take an explicit grab. An explicit
1243 grab will be dismissed when the user dismisses the popup, or when the
1244 client destroys the xdg_popup. This can be done by the user clicking
1245 outside the surface, using the keyboard, or even locking the screen
1246 through closing the lid or a timeout.
1247
1248 If the compositor denies the grab, the popup will be immediately
1249 dismissed.
1250
1251 This request must be used in response to some sort of user action like a
1252 button press, key press, or touch down event. The serial number of the
1253 event should be passed as 'serial'.
1254
1255 The parent of a grabbing popup must either be an xdg_toplevel surface or
1256 another xdg_popup with an explicit grab. If the parent is another
1257 xdg_popup it means that the popups are nested, with this popup now being
1258 the topmost popup.
1259
1260 Nested popups must be destroyed in the reverse order they were created
1261 in, e.g. the only popup you are allowed to destroy at all times is the
1262 topmost one.
1263
1264 When compositors choose to dismiss a popup, they may dismiss every
1265 nested grabbing popup as well. When a compositor dismisses popups, it
1266 will follow the same dismissing order as required from the client.
1267
1268 If the topmost grabbing popup is destroyed, the grab will be returned to
1269 the parent of the popup, if that parent previously had an explicit grab.
1270
1271 If the parent is a grabbing popup which has already been dismissed, this
1272 popup will be immediately dismissed. If the parent is a popup that did
1273 not take an explicit grab, an error will be raised.
1274
1275 During a popup grab, the client owning the grab will receive pointer
1276 and touch events for all their surfaces as normal (similar to an
1277 "owner-events" grab in X11 parlance), while the top most grabbing popup
1278 will always have keyboard focus.
1279 </description>
1280 <arg name="seat" type="object" interface="wl_seat"
1281 summary="the wl_seat of the user event"/>
1282 <arg name="serial" type="uint" summary="the serial of the user event"/>
1283 </request>
1284
1285 <event name="configure">
1286 <description summary="configure the popup surface">
1287 This event asks the popup surface to configure itself given the
1288 configuration. The configured state should not be applied immediately.
1289 See xdg_surface.configure for details.
1290
1291 The x and y arguments represent the position the popup was placed at
1292 given the xdg_positioner rule, relative to the upper left corner of the
1293 window geometry of the parent surface.
1294
1295 For version 2 or older, the configure event for an xdg_popup is only
1296 ever sent once for the initial configuration. Starting with version 3,
1297 it may be sent again if the popup is setup with an xdg_positioner with
1298 set_reactive requested, or in response to xdg_popup.reposition requests.
1299 </description>
1300 <arg name="x" type="int"
1301 summary="x position relative to parent surface window geometry"/>
1302 <arg name="y" type="int"
1303 summary="y position relative to parent surface window geometry"/>
1304 <arg name="width" type="int" summary="window geometry width"/>
1305 <arg name="height" type="int" summary="window geometry height"/>
1306 </event>
1307
1308 <event name="popup_done">
1309 <description summary="popup interaction is done">
1310 The popup_done event is sent out when a popup is dismissed by the
1311 compositor. The client should destroy the xdg_popup object at this
1312 point.
1313 </description>
1314 </event>
1315
1316 <!-- Version 3 additions -->
1317
1318 <request name="reposition" since="3">
1319 <description summary="recalculate the popup's location">
1320 Reposition an already-mapped popup. The popup will be placed given the
1321 details in the passed xdg_positioner object, and a
1322 xdg_popup.repositioned followed by xdg_popup.configure and
1323 xdg_surface.configure will be emitted in response. Any parameters set
1324 by the previous positioner will be discarded.
1325
1326 The passed token will be sent in the corresponding
1327 xdg_popup.repositioned event. The new popup position will not take
1328 effect until the corresponding configure event is acknowledged by the
1329 client. See xdg_popup.repositioned for details. The token itself is
1330 opaque, and has no other special meaning.
1331
1332 If multiple reposition requests are sent, the compositor may skip all
1333 but the last one.
1334
1335 If the popup is repositioned in response to a configure event for its
1336 parent, the client should send an xdg_positioner.set_parent_configure
1337 and possibly an xdg_positioner.set_parent_size request to allow the
1338 compositor to properly constrain the popup.
1339
1340 If the popup is repositioned together with a parent that is being
1341 resized, but not in response to a configure event, the client should
1342 send an xdg_positioner.set_parent_size request.
1343 </description>
1344 <arg name="positioner" type="object" interface="xdg_positioner"/>
1345 <arg name="token" type="uint" summary="reposition request token"/>
1346 </request>
1347
1348 <event name="repositioned" since="3">
1349 <description summary="signal the completion of a repositioned request">
1350 The repositioned event is sent as part of a popup configuration
1351 sequence, together with xdg_popup.configure and lastly
1352 xdg_surface.configure to notify the completion of a reposition request.
1353
1354 The repositioned event is to notify about the completion of a
1355 xdg_popup.reposition request. The token argument is the token passed
1356 in the xdg_popup.reposition request.
1357
1358 Immediately after this event is emitted, xdg_popup.configure and
1359 xdg_surface.configure will be sent with the updated size and position,
1360 as well as a new configure serial.
1361
1362 The client should optionally update the content of the popup, but must
1363 acknowledge the new popup configuration for the new position to take
1364 effect. See xdg_surface.ack_configure for details.
1365 </description>
1366 <arg name="token" type="uint" summary="reposition request token"/>
1367 </event>
1368
1369 </interface>
1370</protocol>

Generated with cgit - Back to sebastiano.tronto.net