1 /*
2 ** Copyright (c) 2013-2015 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a
5 ** copy of this software and/or associated documentation files (the
6 ** "Materials"), to deal in the Materials without restriction, including
7 ** without limitation the rights to use, copy, modify, merge, publish,
8 ** distribute, sublicense, and/or sell copies of the Materials, and to
9 ** permit persons to whom the Materials are furnished to do so, subject to
10 ** the following conditions:
11 **
12 ** The above copyright notice and this permission notice shall be included
13 ** in all copies or substantial portions of the Materials.
14 **
15 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22 */
23 
24 #include "Common/GL/GLExtensions/gl_common.h"
25 
26 #define GL_CONTEXT_LOST 0x0507
27 #define GL_NEGATIVE_ONE_TO_ONE 0x935E
28 #define GL_ZERO_TO_ONE 0x935F
29 #define GL_CLIP_ORIGIN 0x935C
30 #define GL_CLIP_DEPTH_MODE 0x935D
31 #define GL_QUERY_WAIT_INVERTED 0x8E17
32 #define GL_QUERY_NO_WAIT_INVERTED 0x8E18
33 #define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
34 #define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
35 #define GL_MAX_CULL_DISTANCES 0x82F9
36 #define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
37 #define GL_TEXTURE_TARGET 0x1006
38 #define GL_QUERY_TARGET 0x82EA
39 #define GL_GUILTY_CONTEXT_RESET 0x8253
40 #define GL_INNOCENT_CONTEXT_RESET 0x8254
41 #define GL_UNKNOWN_CONTEXT_RESET 0x8255
42 #define GL_RESET_NOTIFICATION_STRATEGY 0x8256
43 #define GL_LOSE_CONTEXT_ON_RESET 0x8252
44 #define GL_NO_RESET_NOTIFICATION 0x8261
45 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
46 #define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
47 #define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
48 
49 typedef void(APIENTRYP PFNDOLCLIPCONTROLPROC)(GLenum origin, GLenum depth);
50 typedef void(APIENTRYP PFNDOLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint* ids);
51 typedef void(APIENTRYP PFNDOLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index,
52                                                               GLuint buffer);
53 typedef void(APIENTRYP PFNDOLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index,
54                                                                GLuint buffer, GLintptr offset,
55                                                                GLsizeiptr size);
56 typedef void(APIENTRYP PFNDOLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint* param);
57 typedef void(APIENTRYP PFNDOLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index,
58                                                           GLint* param);
59 typedef void(APIENTRYP PFNDOLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index,
60                                                             GLint64* param);
61 typedef void(APIENTRYP PFNDOLCREATEBUFFERSPROC)(GLsizei n, GLuint* buffers);
62 typedef void(APIENTRYP PFNDOLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size,
63                                                      const void* data, GLbitfield flags);
64 typedef void(APIENTRYP PFNDOLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void* data,
65                                                   GLenum usage);
66 typedef void(APIENTRYP PFNDOLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
67                                                      GLsizeiptr size, const void* data);
68 typedef void(APIENTRYP PFNDOLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer,
69                                                          GLintptr readOffset, GLintptr writeOffset,
70                                                          GLsizeiptr size);
71 typedef void(APIENTRYP PFNDOLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat,
72                                                        GLenum format, GLenum type,
73                                                        const void* data);
74 typedef void(APIENTRYP PFNDOLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat,
75                                                           GLintptr offset, GLsizeiptr size,
76                                                           GLenum format, GLenum type,
77                                                           const void* data);
78 typedef void*(APIENTRYP PFNDOLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
79 typedef void*(APIENTRYP PFNDOLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset,
80                                                        GLsizeiptr length, GLbitfield access);
81 typedef GLboolean(APIENTRYP PFNDOLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
82 typedef void(APIENTRYP PFNDOLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset,
83                                                               GLsizeiptr length);
84 typedef void(APIENTRYP PFNDOLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname,
85                                                             GLint* params);
86 typedef void(APIENTRYP PFNDOLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname,
87                                                               GLint64* params);
88 typedef void(APIENTRYP PFNDOLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname,
89                                                          void** params);
90 typedef void(APIENTRYP PFNDOLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset,
91                                                         GLsizeiptr size, void* data);
92 typedef void(APIENTRYP PFNDOLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint* framebuffers);
93 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer,
94                                                                GLenum attachment,
95                                                                GLenum renderbuffertarget,
96                                                                GLuint renderbuffer);
97 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname,
98                                                              GLint param);
99 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment,
100                                                           GLuint texture, GLint level);
101 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer,
102                                                                GLenum attachment, GLuint texture,
103                                                                GLint level, GLint layer);
104 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
105 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n,
106                                                               const GLenum* bufs);
107 typedef void(APIENTRYP PFNDOLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
108 typedef void(APIENTRYP PFNDOLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer,
109                                                                  GLsizei numAttachments,
110                                                                  const GLenum* attachments);
111 typedef void(APIENTRYP PFNDOLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer,
112                                                                     GLsizei numAttachments,
113                                                                     const GLenum* attachments,
114                                                                     GLint x, GLint y, GLsizei width,
115                                                                     GLsizei height);
116 typedef void(APIENTRYP PFNDOLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer,
117                                                           GLint drawbuffer, const GLint* value);
118 typedef void(APIENTRYP PFNDOLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer,
119                                                            GLint drawbuffer, const GLuint* value);
120 typedef void(APIENTRYP PFNDOLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer,
121                                                           GLint drawbuffer, const GLfloat* value);
122 typedef void(APIENTRYP PFNDOLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer,
123                                                           const GLfloat depth, GLint stencil);
124 typedef void(APIENTRYP PFNDOLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer,
125                                                        GLuint drawFramebuffer, GLint srcX0,
126                                                        GLint srcY0, GLint srcX1, GLint srcY1,
127                                                        GLint dstX0, GLint dstY0, GLint dstX1,
128                                                        GLint dstY1, GLbitfield mask, GLenum filter);
129 typedef GLenum(APIENTRYP PFNDOLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target);
130 typedef void(APIENTRYP PFNDOLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname,
131                                                                  GLint* param);
132 typedef void(APIENTRYP PFNDOLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer,
133                                                                            GLenum attachment,
134                                                                            GLenum pname,
135                                                                            GLint* params);
136 typedef void(APIENTRYP PFNDOLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint* renderbuffers);
137 typedef void(APIENTRYP PFNDOLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer,
138                                                            GLenum internalformat, GLsizei width,
139                                                            GLsizei height);
140 typedef void(APIENTRYP PFNDOLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(
141     GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
142 typedef void(APIENTRYP PFNDOLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname,
143                                                                   GLint* params);
144 typedef void(APIENTRYP PFNDOLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint* textures);
145 typedef void(APIENTRYP PFNDOLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat,
146                                                 GLuint buffer);
147 typedef void(APIENTRYP PFNDOLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat,
148                                                      GLuint buffer, GLintptr offset,
149                                                      GLsizeiptr size);
150 typedef void(APIENTRYP PFNDOLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels,
151                                                    GLenum internalformat, GLsizei width);
152 typedef void(APIENTRYP PFNDOLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels,
153                                                    GLenum internalformat, GLsizei width,
154                                                    GLsizei height);
155 typedef void(APIENTRYP PFNDOLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels,
156                                                    GLenum internalformat, GLsizei width,
157                                                    GLsizei height, GLsizei depth);
158 typedef void(APIENTRYP PFNDOLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples,
159                                                               GLenum internalformat, GLsizei width,
160                                                               GLsizei height,
161                                                               GLboolean fixedsamplelocations);
162 typedef void(APIENTRYP PFNDOLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples,
163                                                               GLenum internalformat, GLsizei width,
164                                                               GLsizei height, GLsizei depth,
165                                                               GLboolean fixedsamplelocations);
166 typedef void(APIENTRYP PFNDOLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset,
167                                                     GLsizei width, GLenum format, GLenum type,
168                                                     const void* pixels);
169 typedef void(APIENTRYP PFNDOLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset,
170                                                     GLint yoffset, GLsizei width, GLsizei height,
171                                                     GLenum format, GLenum type, const void* pixels);
172 typedef void(APIENTRYP PFNDOLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset,
173                                                     GLint yoffset, GLint zoffset, GLsizei width,
174                                                     GLsizei height, GLsizei depth, GLenum format,
175                                                     GLenum type, const void* pixels);
176 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level,
177                                                               GLint xoffset, GLsizei width,
178                                                               GLenum format, GLsizei imageSize,
179                                                               const void* data);
180 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level,
181                                                               GLint xoffset, GLint yoffset,
182                                                               GLsizei width, GLsizei height,
183                                                               GLenum format, GLsizei imageSize,
184                                                               const void* data);
185 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(
186     GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width,
187     GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data);
188 typedef void(APIENTRYP PFNDOLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset,
189                                                         GLint x, GLint y, GLsizei width);
190 typedef void(APIENTRYP PFNDOLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset,
191                                                         GLint yoffset, GLint x, GLint y,
192                                                         GLsizei width, GLsizei height);
193 typedef void(APIENTRYP PFNDOLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset,
194                                                         GLint yoffset, GLint zoffset, GLint x,
195                                                         GLint y, GLsizei width, GLsizei height);
196 typedef void(APIENTRYP PFNDOLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
197 typedef void(APIENTRYP PFNDOLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname,
198                                                      const GLfloat* param);
199 typedef void(APIENTRYP PFNDOLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
200 typedef void(APIENTRYP PFNDOLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname,
201                                                       const GLint* params);
202 typedef void(APIENTRYP PFNDOLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname,
203                                                        const GLuint* params);
204 typedef void(APIENTRYP PFNDOLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname,
205                                                      const GLint* param);
206 typedef void(APIENTRYP PFNDOLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
207 typedef void(APIENTRYP PFNDOLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
208 typedef void(APIENTRYP PFNDOLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format,
209                                                   GLenum type, GLsizei bufSize, void* pixels);
210 typedef void(APIENTRYP PFNDOLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level,
211                                                             GLsizei bufSize, void* pixels);
212 typedef void(APIENTRYP PFNDOLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level,
213                                                              GLenum pname, GLfloat* params);
214 typedef void(APIENTRYP PFNDOLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level,
215                                                              GLenum pname, GLint* params);
216 typedef void(APIENTRYP PFNDOLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname,
217                                                         GLfloat* params);
218 typedef void(APIENTRYP PFNDOLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname,
219                                                          GLint* params);
220 typedef void(APIENTRYP PFNDOLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname,
221                                                           GLuint* params);
222 typedef void(APIENTRYP PFNDOLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname,
223                                                         GLint* params);
224 typedef void(APIENTRYP PFNDOLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint* arrays);
225 typedef void(APIENTRYP PFNDOLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
226 typedef void(APIENTRYP PFNDOLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
227 typedef void(APIENTRYP PFNDOLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
228 typedef void(APIENTRYP PFNDOLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex,
229                                                           GLuint buffer, GLintptr offset,
230                                                           GLsizei stride);
231 typedef void(APIENTRYP PFNDOLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first,
232                                                            GLsizei count, const GLuint* buffers,
233                                                            const GLintptr* offsets,
234                                                            const GLsizei* strides);
235 typedef void(APIENTRYP PFNDOLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex,
236                                                            GLuint bindingindex);
237 typedef void(APIENTRYP PFNDOLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex,
238                                                           GLint size, GLenum type,
239                                                           GLboolean normalized,
240                                                           GLuint relativeoffset);
241 typedef void(APIENTRYP PFNDOLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex,
242                                                            GLint size, GLenum type,
243                                                            GLuint relativeoffset);
244 typedef void(APIENTRYP PFNDOLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex,
245                                                            GLint size, GLenum type,
246                                                            GLuint relativeoffset);
247 typedef void(APIENTRYP PFNDOLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex,
248                                                             GLuint divisor);
249 typedef void(APIENTRYP PFNDOLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint* param);
250 typedef void(APIENTRYP PFNDOLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname,
251                                                           GLint* param);
252 typedef void(APIENTRYP PFNDOLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index,
253                                                             GLenum pname, GLint64* param);
254 typedef void(APIENTRYP PFNDOLCREATESAMPLERSPROC)(GLsizei n, GLuint* samplers);
255 typedef void(APIENTRYP PFNDOLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint* pipelines);
256 typedef void(APIENTRYP PFNDOLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint* ids);
257 typedef void(APIENTRYP PFNDOLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname,
258                                                            GLintptr offset);
259 typedef void(APIENTRYP PFNDOLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname,
260                                                          GLintptr offset);
261 typedef void(APIENTRYP PFNDOLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname,
262                                                             GLintptr offset);
263 typedef void(APIENTRYP PFNDOLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname,
264                                                           GLintptr offset);
265 typedef void(APIENTRYP PFNDOLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
266 typedef void(APIENTRYP PFNDOLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset,
267                                                      GLint yoffset, GLint zoffset, GLsizei width,
268                                                      GLsizei height, GLsizei depth, GLenum format,
269                                                      GLenum type, GLsizei bufSize, void* pixels);
270 typedef void(APIENTRYP PFNDOLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level,
271                                                                GLint xoffset, GLint yoffset,
272                                                                GLint zoffset, GLsizei width,
273                                                                GLsizei height, GLsizei depth,
274                                                                GLsizei bufSize, void* pixels);
275 typedef GLenum(APIENTRYP PFNDOLGETGRAPHICSRESETSTATUSPROC)(void);
276 typedef void(APIENTRYP PFNDOLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLsizei bufSize,
277                                                          void* pixels);
278 typedef void(APIENTRYP PFNDOLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format,
279                                                GLenum type, GLsizei bufSize, void* pixels);
280 typedef void(APIENTRYP PFNDOLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize,
281                                                 GLdouble* params);
282 typedef void(APIENTRYP PFNDOLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize,
283                                                 GLfloat* params);
284 typedef void(APIENTRYP PFNDOLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize,
285                                                 GLint* params);
286 typedef void(APIENTRYP PFNDOLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize,
287                                                  GLuint* params);
288 typedef void(APIENTRYP PFNDOLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height,
289                                               GLenum format, GLenum type, GLsizei bufSize,
290                                               void* data);
291 typedef void(APIENTRYP PFNDOLGETNMAPDVPROC)(GLenum target, GLenum query, GLsizei bufSize,
292                                             GLdouble* v);
293 typedef void(APIENTRYP PFNDOLGETNMAPFVPROC)(GLenum target, GLenum query, GLsizei bufSize,
294                                             GLfloat* v);
295 typedef void(APIENTRYP PFNDOLGETNMAPIVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint* v);
296 typedef void(APIENTRYP PFNDOLGETNPIXELMAPFVPROC)(GLenum map, GLsizei bufSize, GLfloat* values);
297 typedef void(APIENTRYP PFNDOLGETNPIXELMAPUIVPROC)(GLenum map, GLsizei bufSize, GLuint* values);
298 typedef void(APIENTRYP PFNDOLGETNPIXELMAPUSVPROC)(GLenum map, GLsizei bufSize, GLushort* values);
299 typedef void(APIENTRYP PFNDOLGETNPOLYGONSTIPPLEPROC)(GLsizei bufSize, GLubyte* pattern);
300 typedef void(APIENTRYP PFNDOLGETNCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type,
301                                                  GLsizei bufSize, void* table);
302 typedef void(APIENTRYP PFNDOLGETNCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type,
303                                                         GLsizei bufSize, void* image);
304 typedef void(APIENTRYP PFNDOLGETNSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type,
305                                                       GLsizei rowBufSize, void* row,
306                                                       GLsizei columnBufSize, void* column,
307                                                       void* span);
308 typedef void(APIENTRYP PFNDOLGETNHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format,
309                                                 GLenum type, GLsizei bufSize, void* values);
310 typedef void(APIENTRYP PFNDOLGETNMINMAXPROC)(GLenum target, GLboolean reset, GLenum format,
311                                              GLenum type, GLsizei bufSize, void* values);
312 typedef void(APIENTRYP PFNDOLTEXTUREBARRIERPROC)(void);
313 
314 extern PFNDOLCREATETRANSFORMFEEDBACKSPROC dolCreateTransformFeedbacks;
315 extern PFNDOLTRANSFORMFEEDBACKBUFFERBASEPROC dolTransformFeedbackBufferBase;
316 extern PFNDOLTRANSFORMFEEDBACKBUFFERRANGEPROC dolTransformFeedbackBufferRange;
317 extern PFNDOLGETTRANSFORMFEEDBACKIVPROC dolGetTransformFeedbackiv;
318 extern PFNDOLGETTRANSFORMFEEDBACKI_VPROC dolGetTransformFeedbacki_v;
319 extern PFNDOLGETTRANSFORMFEEDBACKI64_VPROC dolGetTransformFeedbacki64_v;
320 extern PFNDOLCREATEBUFFERSPROC dolCreateBuffers;
321 extern PFNDOLNAMEDBUFFERSTORAGEPROC dolNamedBufferStorage;
322 extern PFNDOLNAMEDBUFFERDATAPROC dolNamedBufferData;
323 extern PFNDOLNAMEDBUFFERSUBDATAPROC dolNamedBufferSubData;
324 extern PFNDOLCOPYNAMEDBUFFERSUBDATAPROC dolCopyNamedBufferSubData;
325 extern PFNDOLCLEARNAMEDBUFFERDATAPROC dolClearNamedBufferData;
326 extern PFNDOLCLEARNAMEDBUFFERSUBDATAPROC dolClearNamedBufferSubData;
327 extern PFNDOLMAPNAMEDBUFFERPROC dolMapNamedBuffer;
328 extern PFNDOLMAPNAMEDBUFFERRANGEPROC dolMapNamedBufferRange;
329 extern PFNDOLUNMAPNAMEDBUFFERPROC dolUnmapNamedBuffer;
330 extern PFNDOLFLUSHMAPPEDNAMEDBUFFERRANGEPROC dolFlushMappedNamedBufferRange;
331 extern PFNDOLGETNAMEDBUFFERPARAMETERIVPROC dolGetNamedBufferParameteriv;
332 extern PFNDOLGETNAMEDBUFFERPARAMETERI64VPROC dolGetNamedBufferParameteri64v;
333 extern PFNDOLGETNAMEDBUFFERPOINTERVPROC dolGetNamedBufferPointerv;
334 extern PFNDOLGETNAMEDBUFFERSUBDATAPROC dolGetNamedBufferSubData;
335 extern PFNDOLCREATEFRAMEBUFFERSPROC dolCreateFramebuffers;
336 extern PFNDOLNAMEDFRAMEBUFFERRENDERBUFFERPROC dolNamedFramebufferRenderbuffer;
337 extern PFNDOLNAMEDFRAMEBUFFERPARAMETERIPROC dolNamedFramebufferParameteri;
338 extern PFNDOLNAMEDFRAMEBUFFERTEXTUREPROC dolNamedFramebufferTexture;
339 extern PFNDOLNAMEDFRAMEBUFFERTEXTURELAYERPROC dolNamedFramebufferTextureLayer;
340 extern PFNDOLNAMEDFRAMEBUFFERDRAWBUFFERPROC dolNamedFramebufferDrawBuffer;
341 extern PFNDOLNAMEDFRAMEBUFFERDRAWBUFFERSPROC dolNamedFramebufferDrawBuffers;
342 extern PFNDOLNAMEDFRAMEBUFFERREADBUFFERPROC dolNamedFramebufferReadBuffer;
343 extern PFNDOLINVALIDATENAMEDFRAMEBUFFERDATAPROC dolInvalidateNamedFramebufferData;
344 extern PFNDOLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC dolInvalidateNamedFramebufferSubData;
345 extern PFNDOLCLEARNAMEDFRAMEBUFFERIVPROC dolClearNamedFramebufferiv;
346 extern PFNDOLCLEARNAMEDFRAMEBUFFERUIVPROC dolClearNamedFramebufferuiv;
347 extern PFNDOLCLEARNAMEDFRAMEBUFFERFVPROC dolClearNamedFramebufferfv;
348 extern PFNDOLCLEARNAMEDFRAMEBUFFERFIPROC dolClearNamedFramebufferfi;
349 extern PFNDOLBLITNAMEDFRAMEBUFFERPROC dolBlitNamedFramebuffer;
350 extern PFNDOLCHECKNAMEDFRAMEBUFFERSTATUSPROC dolCheckNamedFramebufferStatus;
351 extern PFNDOLGETNAMEDFRAMEBUFFERPARAMETERIVPROC dolGetNamedFramebufferParameteriv;
352 extern PFNDOLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC
353     dolGetNamedFramebufferAttachmentParameteriv;
354 extern PFNDOLCREATERENDERBUFFERSPROC dolCreateRenderbuffers;
355 extern PFNDOLNAMEDRENDERBUFFERSTORAGEPROC dolNamedRenderbufferStorage;
356 extern PFNDOLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC dolNamedRenderbufferStorageMultisample;
357 extern PFNDOLGETNAMEDRENDERBUFFERPARAMETERIVPROC dolGetNamedRenderbufferParameteriv;
358 extern PFNDOLCREATETEXTURESPROC dolCreateTextures;
359 extern PFNDOLTEXTUREBUFFERPROC dolTextureBuffer;
360 extern PFNDOLTEXTUREBUFFERRANGEPROC dolTextureBufferRange;
361 extern PFNDOLTEXTURESTORAGE1DPROC dolTextureStorage1D;
362 extern PFNDOLTEXTURESTORAGE2DPROC dolTextureStorage2D;
363 extern PFNDOLTEXTURESTORAGE3DPROC dolTextureStorage3D;
364 extern PFNDOLTEXTURESTORAGE2DMULTISAMPLEPROC dolTextureStorage2DMultisample;
365 extern PFNDOLTEXTURESTORAGE3DMULTISAMPLEPROC dolTextureStorage3DMultisample;
366 extern PFNDOLTEXTURESUBIMAGE1DPROC dolTextureSubImage1D;
367 extern PFNDOLTEXTURESUBIMAGE2DPROC dolTextureSubImage2D;
368 extern PFNDOLTEXTURESUBIMAGE3DPROC dolTextureSubImage3D;
369 extern PFNDOLCOMPRESSEDTEXTURESUBIMAGE1DPROC dolCompressedTextureSubImage1D;
370 extern PFNDOLCOMPRESSEDTEXTURESUBIMAGE2DPROC dolCompressedTextureSubImage2D;
371 extern PFNDOLCOMPRESSEDTEXTURESUBIMAGE3DPROC dolCompressedTextureSubImage3D;
372 extern PFNDOLCOPYTEXTURESUBIMAGE1DPROC dolCopyTextureSubImage1D;
373 extern PFNDOLCOPYTEXTURESUBIMAGE2DPROC dolCopyTextureSubImage2D;
374 extern PFNDOLCOPYTEXTURESUBIMAGE3DPROC dolCopyTextureSubImage3D;
375 extern PFNDOLTEXTUREPARAMETERFPROC dolTextureParameterf;
376 extern PFNDOLTEXTUREPARAMETERFVPROC dolTextureParameterfv;
377 extern PFNDOLTEXTUREPARAMETERIPROC dolTextureParameteri;
378 extern PFNDOLTEXTUREPARAMETERIIVPROC dolTextureParameterIiv;
379 extern PFNDOLTEXTUREPARAMETERIUIVPROC dolTextureParameterIuiv;
380 extern PFNDOLTEXTUREPARAMETERIVPROC dolTextureParameteriv;
381 extern PFNDOLGENERATETEXTUREMIPMAPPROC dolGenerateTextureMipmap;
382 extern PFNDOLBINDTEXTUREUNITPROC dolBindTextureUnit;
383 extern PFNDOLGETTEXTUREIMAGEPROC dolGetTextureImage;
384 extern PFNDOLGETCOMPRESSEDTEXTUREIMAGEPROC dolGetCompressedTextureImage;
385 extern PFNDOLGETTEXTURELEVELPARAMETERFVPROC dolGetTextureLevelParameterfv;
386 extern PFNDOLGETTEXTURELEVELPARAMETERIVPROC dolGetTextureLevelParameteriv;
387 extern PFNDOLGETTEXTUREPARAMETERFVPROC dolGetTextureParameterfv;
388 extern PFNDOLGETTEXTUREPARAMETERIIVPROC dolGetTextureParameterIiv;
389 extern PFNDOLGETTEXTUREPARAMETERIUIVPROC dolGetTextureParameterIuiv;
390 extern PFNDOLGETTEXTUREPARAMETERIVPROC dolGetTextureParameteriv;
391 extern PFNDOLCREATEVERTEXARRAYSPROC dolCreateVertexArrays;
392 extern PFNDOLDISABLEVERTEXARRAYATTRIBPROC dolDisableVertexArrayAttrib;
393 extern PFNDOLENABLEVERTEXARRAYATTRIBPROC dolEnableVertexArrayAttrib;
394 extern PFNDOLVERTEXARRAYELEMENTBUFFERPROC dolVertexArrayElementBuffer;
395 extern PFNDOLVERTEXARRAYVERTEXBUFFERPROC dolVertexArrayVertexBuffer;
396 extern PFNDOLVERTEXARRAYVERTEXBUFFERSPROC dolVertexArrayVertexBuffers;
397 extern PFNDOLVERTEXARRAYATTRIBBINDINGPROC dolVertexArrayAttribBinding;
398 extern PFNDOLVERTEXARRAYATTRIBFORMATPROC dolVertexArrayAttribFormat;
399 extern PFNDOLVERTEXARRAYATTRIBIFORMATPROC dolVertexArrayAttribIFormat;
400 extern PFNDOLVERTEXARRAYATTRIBLFORMATPROC dolVertexArrayAttribLFormat;
401 extern PFNDOLVERTEXARRAYBINDINGDIVISORPROC dolVertexArrayBindingDivisor;
402 extern PFNDOLGETVERTEXARRAYIVPROC dolGetVertexArrayiv;
403 extern PFNDOLGETVERTEXARRAYINDEXEDIVPROC dolGetVertexArrayIndexediv;
404 extern PFNDOLGETVERTEXARRAYINDEXED64IVPROC dolGetVertexArrayIndexed64iv;
405 extern PFNDOLCREATESAMPLERSPROC dolCreateSamplers;
406 extern PFNDOLCREATEPROGRAMPIPELINESPROC dolCreateProgramPipelines;
407 extern PFNDOLCREATEQUERIESPROC dolCreateQueries;
408 extern PFNDOLGETQUERYBUFFEROBJECTI64VPROC dolGetQueryBufferObjecti64v;
409 extern PFNDOLGETQUERYBUFFEROBJECTIVPROC dolGetQueryBufferObjectiv;
410 extern PFNDOLGETQUERYBUFFEROBJECTUI64VPROC dolGetQueryBufferObjectui64v;
411 extern PFNDOLGETQUERYBUFFEROBJECTUIVPROC dolGetQueryBufferObjectuiv;
412 extern PFNDOLMEMORYBARRIERBYREGIONPROC dolMemoryBarrierByRegion;
413 extern PFNDOLGETTEXTURESUBIMAGEPROC dolGetTextureSubImage;
414 extern PFNDOLGETCOMPRESSEDTEXTURESUBIMAGEPROC dolGetCompressedTextureSubImage;
415 extern PFNDOLGETGRAPHICSRESETSTATUSPROC dolGetGraphicsResetStatus;
416 extern PFNDOLGETNCOMPRESSEDTEXIMAGEPROC dolGetnCompressedTexImage;
417 extern PFNDOLGETNTEXIMAGEPROC dolGetnTexImage;
418 extern PFNDOLGETNUNIFORMDVPROC dolGetnUniformdv;
419 extern PFNDOLGETNUNIFORMFVPROC dolGetnUniformfv;
420 extern PFNDOLGETNUNIFORMIVPROC dolGetnUniformiv;
421 extern PFNDOLGETNUNIFORMUIVPROC dolGetnUniformuiv;
422 extern PFNDOLREADNPIXELSPROC dolReadnPixels;
423 extern PFNDOLGETNMAPDVPROC dolGetnMapdv;
424 extern PFNDOLGETNMAPFVPROC dolGetnMapfv;
425 extern PFNDOLGETNMAPIVPROC dolGetnMapiv;
426 extern PFNDOLGETNPIXELMAPFVPROC dolGetnPixelMapfv;
427 extern PFNDOLGETNPIXELMAPUIVPROC dolGetnPixelMapuiv;
428 extern PFNDOLGETNPIXELMAPUSVPROC dolGetnPixelMapusv;
429 extern PFNDOLGETNPOLYGONSTIPPLEPROC dolGetnPolygonStipple;
430 extern PFNDOLGETNCOLORTABLEPROC dolGetnColorTable;
431 extern PFNDOLGETNCONVOLUTIONFILTERPROC dolGetnConvolutionFilter;
432 extern PFNDOLGETNSEPARABLEFILTERPROC dolGetnSeparableFilter;
433 extern PFNDOLGETNHISTOGRAMPROC dolGetnHistogram;
434 extern PFNDOLGETNMINMAXPROC dolGetnMinmax;
435 extern PFNDOLTEXTUREBARRIERPROC dolTextureBarrier;
436 
437 #define glCreateTransformFeedbacks dolCreateTransformFeedbacks
438 #define glTransformFeedbackBufferBase dolTransformFeedbackBufferBase
439 #define glTransformFeedbackBufferRange dolTransformFeedbackBufferRange
440 #define glGetTransformFeedbackiv dolGetTransformFeedbackiv
441 #define glGetTransformFeedbacki_v dolGetTransformFeedbacki_v
442 #define glGetTransformFeedbacki64_v dolGetTransformFeedbacki64_v
443 #define glCreateBuffers dolCreateBuffers
444 #define glNamedBufferStorage dolNamedBufferStorage
445 #define glNamedBufferData dolNamedBufferData
446 #define glNamedBufferSubData dolNamedBufferSubData
447 #define glCopyNamedBufferSubData dolCopyNamedBufferSubData
448 #define glClearNamedBufferData dolClearNamedBufferData
449 #define glClearNamedBufferSubData dolClearNamedBufferSubData
450 #define glMapNamedBuffer dolMapNamedBuffer
451 #define glMapNamedBufferRange dolMapNamedBufferRange
452 #define glUnmapNamedBuffer dolUnmapNamedBuffer
453 #define glFlushMappedNamedBufferRange dolFlushMappedNamedBufferRange
454 #define glGetNamedBufferParameteriv dolGetNamedBufferParameteriv
455 #define glGetNamedBufferParameteri64v dolGetNamedBufferParameteri64v
456 #define glGetNamedBufferPointerv dolGetNamedBufferPointerv
457 #define glGetNamedBufferSubData dolGetNamedBufferSubData
458 #define glCreateFramebuffers dolCreateFramebuffers
459 #define glNamedFramebufferRenderbuffer dolNamedFramebufferRenderbuffer
460 #define glNamedFramebufferParameteri dolNamedFramebufferParameteri
461 #define glNamedFramebufferTexture dolNamedFramebufferTexture
462 #define glNamedFramebufferTextureLayer dolNamedFramebufferTextureLayer
463 #define glNamedFramebufferDrawBuffer dolNamedFramebufferDrawBuffer
464 #define glNamedFramebufferDrawBuffers dolNamedFramebufferDrawBuffers
465 #define glNamedFramebufferReadBuffer dolNamedFramebufferReadBuffer
466 #define glInvalidateNamedFramebufferData dolInvalidateNamedFramebufferData
467 #define glInvalidateNamedFramebufferSubData dolInvalidateNamedFramebufferSubData
468 #define glClearNamedFramebufferiv dolClearNamedFramebufferiv
469 #define glClearNamedFramebufferuiv dolClearNamedFramebufferuiv
470 #define glClearNamedFramebufferfv dolClearNamedFramebufferfv
471 #define glClearNamedFramebufferfi dolClearNamedFramebufferfi
472 #define glBlitNamedFramebuffer dolBlitNamedFramebuffer
473 #define glCheckNamedFramebufferStatus dolCheckNamedFramebufferStatus
474 #define glGetNamedFramebufferParameteriv dolGetNamedFramebufferParameteriv
475 #define glGetNamedFramebufferAttachmentParameteriv dolGetNamedFramebufferAttachmentParameteriv
476 #define glCreateRenderbuffers dolCreateRenderbuffers
477 #define glNamedRenderbufferStorage dolNamedRenderbufferStorage
478 #define glNamedRenderbufferStorageMultisample dolNamedRenderbufferStorageMultisample
479 #define glGetNamedRenderbufferParameteriv dolGetNamedRenderbufferParameteriv
480 #define glCreateTextures dolCreateTextures
481 #define glTextureBuffer dolTextureBuffer
482 #define glTextureBufferRange dolTextureBufferRange
483 #define glTextureStorage1D dolTextureStorage1D
484 #define glTextureStorage2D dolTextureStorage2D
485 #define glTextureStorage3D dolTextureStorage3D
486 #define glTextureStorage2DMultisample dolTextureStorage2DMultisample
487 #define glTextureStorage3DMultisample dolTextureStorage3DMultisample
488 #define glTextureSubImage1D dolTextureSubImage1D
489 #define glTextureSubImage2D dolTextureSubImage2D
490 #define glTextureSubImage3D dolTextureSubImage3D
491 #define glCompressedTextureSubImage1D dolCompressedTextureSubImage1D
492 #define glCompressedTextureSubImage2D dolCompressedTextureSubImage2D
493 #define glCompressedTextureSubImage3D dolCompressedTextureSubImage3D
494 #define glCopyTextureSubImage1D dolCopyTextureSubImage1D
495 #define glCopyTextureSubImage2D dolCopyTextureSubImage2D
496 #define glCopyTextureSubImage3D dolCopyTextureSubImage3D
497 #define glTextureParameterf dolTextureParameterf
498 #define glTextureParameterfv dolTextureParameterfv
499 #define glTextureParameteri dolTextureParameteri
500 #define glTextureParameterIiv dolTextureParameterIiv
501 #define glTextureParameterIuiv dolTextureParameterIuiv
502 #define glTextureParameteriv dolTextureParameteriv
503 #define glGenerateTextureMipmap dolGenerateTextureMipmap
504 #define glBindTextureUnit dolBindTextureUnit
505 #define glGetTextureImage dolGetTextureImage
506 #define glGetCompressedTextureImage dolGetCompressedTextureImage
507 #define glGetTextureLevelParameterfv dolGetTextureLevelParameterfv
508 #define glGetTextureLevelParameteriv dolGetTextureLevelParameteriv
509 #define glGetTextureParameterfv dolGetTextureParameterfv
510 #define glGetTextureParameterIiv dolGetTextureParameterIiv
511 #define glGetTextureParameterIuiv dolGetTextureParameterIuiv
512 #define glGetTextureParameteriv dolGetTextureParameteriv
513 #define glCreateVertexArrays dolCreateVertexArrays
514 #define glDisableVertexArrayAttrib dolDisableVertexArrayAttrib
515 #define glEnableVertexArrayAttrib dolEnableVertexArrayAttrib
516 #define glVertexArrayElementBuffer dolVertexArrayElementBuffer
517 #define glVertexArrayVertexBuffer dolVertexArrayVertexBuffer
518 #define glVertexArrayVertexBuffers dolVertexArrayVertexBuffers
519 #define glVertexArrayAttribBinding dolVertexArrayAttribBinding
520 #define glVertexArrayAttribFormat dolVertexArrayAttribFormat
521 #define glVertexArrayAttribIFormat dolVertexArrayAttribIFormat
522 #define glVertexArrayAttribLFormat dolVertexArrayAttribLFormat
523 #define glVertexArrayBindingDivisor dolVertexArrayBindingDivisor
524 #define glGetVertexArrayiv dolGetVertexArrayiv
525 #define glGetVertexArrayIndexediv dolGetVertexArrayIndexediv
526 #define glGetVertexArrayIndexed64iv dolGetVertexArrayIndexed64iv
527 #define glCreateSamplers dolCreateSamplers
528 #define glCreateProgramPipelines dolCreateProgramPipelines
529 #define glCreateQueries dolCreateQueries
530 #define glGetQueryBufferObjecti64v dolGetQueryBufferObjecti64v
531 #define glGetQueryBufferObjectiv dolGetQueryBufferObjectiv
532 #define glGetQueryBufferObjectui64v dolGetQueryBufferObjectui64v
533 #define glGetQueryBufferObjectuiv dolGetQueryBufferObjectuiv
534 #define glMemoryBarrierByRegion dolMemoryBarrierByRegion
535 #define glGetTextureSubImage dolGetTextureSubImage
536 #define glGetCompressedTextureSubImage dolGetCompressedTextureSubImage
537 #define glGetGraphicsResetStatus dolGetGraphicsResetStatus
538 #define glGetnCompressedTexImage dolGetnCompressedTexImage
539 #define glGetnTexImage dolGetnTexImage
540 #define glGetnUniformdv dolGetnUniformdv
541 #define glGetnUniformfv dolGetnUniformfv
542 #define glGetnUniformiv dolGetnUniformiv
543 #define glGetnUniformuiv dolGetnUniformuiv
544 #define glReadnPixels dolReadnPixels
545 #define glGetnMapdv dolGetnMapdv
546 #define glGetnMapfv dolGetnMapfv
547 #define glGetnMapiv dolGetnMapiv
548 #define glGetnPixelMapfv dolGetnPixelMapfv
549 #define glGetnPixelMapuiv dolGetnPixelMapuiv
550 #define glGetnPixelMapusv dolGetnPixelMapusv
551 #define glGetnPolygonStipple dolGetnPolygonStipple
552 #define glGetnColorTable dolGetnColorTable
553 #define glGetnConvolutionFilter dolGetnConvolutionFilter
554 #define glGetnSeparableFilter dolGetnSeparableFilter
555 #define glGetnHistogram dolGetnHistogram
556 #define glGetnMinmax dolGetnMinmax
557 #define glTextureBarrier dolTextureBarrier
558