Caffe2 - C++ API
A deep learning, cross platform ML framework
gl3stub.c
1 
2 // clang-format off
3 
4 #include <EGL/egl.h>
5 #include "gl3stub.h"
6 
7 GLboolean gl3stubInit() {
8  #define FIND_PROC(s) s = (void*)eglGetProcAddress(#s)
9  FIND_PROC(glReadBuffer);
10  FIND_PROC(glDrawRangeElements);
11  FIND_PROC(glTexImage3D);
12  FIND_PROC(glTexSubImage3D);
13  FIND_PROC(glCopyTexSubImage3D);
14  FIND_PROC(glCompressedTexImage3D);
15  FIND_PROC(glCompressedTexSubImage3D);
16  FIND_PROC(glGenQueries);
17  FIND_PROC(glDeleteQueries);
18  FIND_PROC(glIsQuery);
19  FIND_PROC(glBeginQuery);
20  FIND_PROC(glEndQuery);
21  FIND_PROC(glGetQueryiv);
22  FIND_PROC(glGetQueryObjectuiv);
23  FIND_PROC(glUnmapBuffer);
24  FIND_PROC(glGetBufferPointerv);
25  FIND_PROC(glDrawBuffers);
26  FIND_PROC(glUniformMatrix2x3fv);
27  FIND_PROC(glUniformMatrix3x2fv);
28  FIND_PROC(glUniformMatrix2x4fv);
29  FIND_PROC(glUniformMatrix4x2fv);
30  FIND_PROC(glUniformMatrix3x4fv);
31  FIND_PROC(glUniformMatrix4x3fv);
32  FIND_PROC(glBlitFramebuffer);
33  FIND_PROC(glRenderbufferStorageMultisample);
34  FIND_PROC(glFramebufferTextureLayer);
35  FIND_PROC(glMapBufferRange);
36  FIND_PROC(glFlushMappedBufferRange);
37  FIND_PROC(glBindVertexArray);
38  FIND_PROC(glDeleteVertexArrays);
39  FIND_PROC(glGenVertexArrays);
40  FIND_PROC(glIsVertexArray);
41  FIND_PROC(glGetIntegeri_v);
42  FIND_PROC(glBeginTransformFeedback);
43  FIND_PROC(glEndTransformFeedback);
44  FIND_PROC(glBindBufferRange);
45  FIND_PROC(glBindBufferBase);
46  FIND_PROC(glTransformFeedbackVaryings);
47  FIND_PROC(glGetTransformFeedbackVarying);
48  FIND_PROC(glVertexAttribIPointer);
49  FIND_PROC(glGetVertexAttribIiv);
50  FIND_PROC(glGetVertexAttribIuiv);
51  FIND_PROC(glVertexAttribI4i);
52  FIND_PROC(glVertexAttribI4ui);
53  FIND_PROC(glVertexAttribI4iv);
54  FIND_PROC(glVertexAttribI4uiv);
55  FIND_PROC(glGetUniformuiv);
56  FIND_PROC(glGetFragDataLocation);
57  FIND_PROC(glUniform1ui);
58  FIND_PROC(glUniform2ui);
59  FIND_PROC(glUniform3ui);
60  FIND_PROC(glUniform4ui);
61  FIND_PROC(glUniform1uiv);
62  FIND_PROC(glUniform2uiv);
63  FIND_PROC(glUniform3uiv);
64  FIND_PROC(glUniform4uiv);
65  FIND_PROC(glClearBufferiv);
66  FIND_PROC(glClearBufferuiv);
67  FIND_PROC(glClearBufferfv);
68  FIND_PROC(glClearBufferfi);
69  FIND_PROC(glGetStringi);
70  FIND_PROC(glCopyBufferSubData);
71  FIND_PROC(glGetUniformIndices);
72  FIND_PROC(glGetActiveUniformsiv);
73  FIND_PROC(glGetUniformBlockIndex);
74  FIND_PROC(glGetActiveUniformBlockiv);
75  FIND_PROC(glGetActiveUniformBlockName);
76  FIND_PROC(glUniformBlockBinding);
77  FIND_PROC(glDrawArraysInstanced);
78  FIND_PROC(glDrawElementsInstanced);
79  FIND_PROC(glFenceSync);
80  FIND_PROC(glIsSync);
81  FIND_PROC(glDeleteSync);
82  FIND_PROC(glClientWaitSync);
83  FIND_PROC(glWaitSync);
84  FIND_PROC(glGetInteger64v);
85  FIND_PROC(glGetSynciv);
86  FIND_PROC(glGetInteger64i_v);
87  FIND_PROC(glGetBufferParameteri64v);
88  FIND_PROC(glGenSamplers);
89  FIND_PROC(glDeleteSamplers);
90  FIND_PROC(glIsSampler);
91  FIND_PROC(glBindSampler);
92  FIND_PROC(glSamplerParameteri);
93  FIND_PROC(glSamplerParameteriv);
94  FIND_PROC(glSamplerParameterf);
95  FIND_PROC(glSamplerParameterfv);
96  FIND_PROC(glGetSamplerParameteriv);
97  FIND_PROC(glGetSamplerParameterfv);
98  FIND_PROC(glVertexAttribDivisor);
99  FIND_PROC(glBindTransformFeedback);
100  FIND_PROC(glDeleteTransformFeedbacks);
101  FIND_PROC(glGenTransformFeedbacks);
102  FIND_PROC(glIsTransformFeedback);
103  FIND_PROC(glPauseTransformFeedback);
104  FIND_PROC(glResumeTransformFeedback);
105  FIND_PROC(glGetProgramBinary);
106  FIND_PROC(glProgramBinary);
107  FIND_PROC(glProgramParameteri);
108  FIND_PROC(glInvalidateFramebuffer);
109  FIND_PROC(glInvalidateSubFramebuffer);
110  FIND_PROC(glTexStorage2D);
111  FIND_PROC(glTexStorage3D);
112  FIND_PROC(glGetInternalformativ);
113 
114  // Bind GL_EXT_texture_border_clamp
115 
116  FIND_PROC(glTexParameterIivEXT);
117  FIND_PROC(glTexParameterIuivEXT);
118  FIND_PROC(glGetTexParameterIivEXT);
119  FIND_PROC(glGetTexParameterIuivEXT);
120  FIND_PROC(glSamplerParameterIivEXT);
121  FIND_PROC(glSamplerParameterIuivEXT);
122  FIND_PROC(glGetSamplerParameterIivEXT);
123  FIND_PROC(glGetSamplerParameterIuivEXT);
124 
125  #undef FIND_PROC
126 
127  if (!glReadBuffer ||
128  !glDrawRangeElements ||
129  !glTexImage3D ||
130  !glTexSubImage3D ||
131  !glCopyTexSubImage3D ||
132  !glCompressedTexImage3D ||
133  !glCompressedTexSubImage3D ||
134  !glGenQueries ||
135  !glDeleteQueries ||
136  !glIsQuery ||
137  !glBeginQuery ||
138  !glEndQuery ||
139  !glGetQueryiv ||
140  !glGetQueryObjectuiv ||
141  !glUnmapBuffer ||
142  !glGetBufferPointerv ||
143  !glDrawBuffers ||
144  !glUniformMatrix2x3fv ||
145  !glUniformMatrix3x2fv ||
146  !glUniformMatrix2x4fv ||
147  !glUniformMatrix4x2fv ||
148  !glUniformMatrix3x4fv ||
149  !glUniformMatrix4x3fv ||
150  !glBlitFramebuffer ||
151  !glRenderbufferStorageMultisample ||
152  !glFramebufferTextureLayer ||
153  !glMapBufferRange ||
154  !glFlushMappedBufferRange ||
155  !glBindVertexArray ||
156  !glDeleteVertexArrays ||
157  !glGenVertexArrays ||
158  !glIsVertexArray ||
159  !glGetIntegeri_v ||
160  !glBeginTransformFeedback ||
161  !glEndTransformFeedback ||
162  !glBindBufferRange ||
163  !glBindBufferBase ||
164  !glTransformFeedbackVaryings ||
165  !glGetTransformFeedbackVarying ||
166  !glVertexAttribIPointer ||
167  !glGetVertexAttribIiv ||
168  !glGetVertexAttribIuiv ||
169  !glVertexAttribI4i ||
170  !glVertexAttribI4ui ||
171  !glVertexAttribI4iv ||
172  !glVertexAttribI4uiv ||
173  !glGetUniformuiv ||
174  !glGetFragDataLocation ||
175  !glUniform1ui ||
176  !glUniform2ui ||
177  !glUniform3ui ||
178  !glUniform4ui ||
179  !glUniform1uiv ||
180  !glUniform2uiv ||
181  !glUniform3uiv ||
182  !glUniform4uiv ||
183  !glClearBufferiv ||
184  !glClearBufferuiv ||
185  !glClearBufferfv ||
186  !glClearBufferfi ||
187  !glGetStringi ||
188  !glCopyBufferSubData ||
189  !glGetUniformIndices ||
190  !glGetActiveUniformsiv ||
191  !glGetUniformBlockIndex ||
192  !glGetActiveUniformBlockiv ||
193  !glGetActiveUniformBlockName ||
194  !glUniformBlockBinding ||
195  !glDrawArraysInstanced ||
196  !glDrawElementsInstanced ||
197  !glFenceSync ||
198  !glIsSync ||
199  !glDeleteSync ||
200  !glClientWaitSync ||
201  !glWaitSync ||
202  !glGetInteger64v ||
203  !glGetSynciv ||
204  !glGetInteger64i_v ||
205  !glGetBufferParameteri64v ||
206  !glGenSamplers ||
207  !glDeleteSamplers ||
208  !glIsSampler ||
209  !glBindSampler ||
210  !glSamplerParameteri ||
211  !glSamplerParameteriv ||
212  !glSamplerParameterf ||
213  !glSamplerParameterfv ||
214  !glGetSamplerParameteriv ||
215  !glGetSamplerParameterfv ||
216  !glVertexAttribDivisor ||
217  !glBindTransformFeedback ||
218  !glDeleteTransformFeedbacks ||
219  !glGenTransformFeedbacks ||
220  !glIsTransformFeedback ||
221  !glPauseTransformFeedback ||
222  !glResumeTransformFeedback ||
223  !glGetProgramBinary ||
224  !glProgramBinary ||
225  !glProgramParameteri ||
226  !glInvalidateFramebuffer ||
227  !glInvalidateSubFramebuffer ||
228  !glTexStorage2D ||
229  !glTexStorage3D ||
230  !glGetInternalformativ)
231  {
232  return GL_FALSE;
233  }
234 
235  return GL_TRUE;
236 }
237 
238 /* Function pointer definitions */
239 GL_APICALL void (* GL_APIENTRY glReadBuffer) (GLenum mode);
240 GL_APICALL void (* GL_APIENTRY glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
241 GL_APICALL void (* GL_APIENTRY glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
242 GL_APICALL void (* GL_APIENTRY glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
243 GL_APICALL void (* GL_APIENTRY glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
244 GL_APICALL void (* GL_APIENTRY glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
245 GL_APICALL void (* GL_APIENTRY glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
246 GL_APICALL void (* GL_APIENTRY glGenQueries) (GLsizei n, GLuint* ids);
247 GL_APICALL void (* GL_APIENTRY glDeleteQueries) (GLsizei n, const GLuint* ids);
248 GL_APICALL GLboolean (* GL_APIENTRY glIsQuery) (GLuint id);
249 GL_APICALL void (* GL_APIENTRY glBeginQuery) (GLenum target, GLuint id);
250 GL_APICALL void (* GL_APIENTRY glEndQuery) (GLenum target);
251 GL_APICALL void (* GL_APIENTRY glGetQueryiv) (GLenum target, GLenum pname, GLint* params);
252 GL_APICALL void (* GL_APIENTRY glGetQueryObjectuiv) (GLuint id, GLenum pname, GLuint* params);
253 GL_APICALL GLboolean (* GL_APIENTRY glUnmapBuffer) (GLenum target);
254 GL_APICALL void (* GL_APIENTRY glGetBufferPointerv) (GLenum target, GLenum pname, GLvoid** params);
255 GL_APICALL void (* GL_APIENTRY glDrawBuffers) (GLsizei n, const GLenum* bufs);
256 GL_APICALL void (* GL_APIENTRY glUniformMatrix2x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
257 GL_APICALL void (* GL_APIENTRY glUniformMatrix3x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
258 GL_APICALL void (* GL_APIENTRY glUniformMatrix2x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
259 GL_APICALL void (* GL_APIENTRY glUniformMatrix4x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
260 GL_APICALL void (* GL_APIENTRY glUniformMatrix3x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
261 GL_APICALL void (* GL_APIENTRY glUniformMatrix4x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
262 GL_APICALL void (* GL_APIENTRY glBlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
263 GL_APICALL void (* GL_APIENTRY glRenderbufferStorageMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
264 GL_APICALL void (* GL_APIENTRY glFramebufferTextureLayer) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
265 GL_APICALL GLvoid* (* GL_APIENTRY glMapBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
266 GL_APICALL void (* GL_APIENTRY glFlushMappedBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length);
267 GL_APICALL void (* GL_APIENTRY glBindVertexArray) (GLuint array);
268 GL_APICALL void (* GL_APIENTRY glDeleteVertexArrays) (GLsizei n, const GLuint* arrays);
269 GL_APICALL void (* GL_APIENTRY glGenVertexArrays) (GLsizei n, GLuint* arrays);
270 GL_APICALL GLboolean (* GL_APIENTRY glIsVertexArray) (GLuint array);
271 GL_APICALL void (* GL_APIENTRY glGetIntegeri_v) (GLenum target, GLuint index, GLint* data);
272 GL_APICALL void (* GL_APIENTRY glBeginTransformFeedback) (GLenum primitiveMode);
273 GL_APICALL void (* GL_APIENTRY glEndTransformFeedback) (void);
274 GL_APICALL void (* GL_APIENTRY glBindBufferRange) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
275 GL_APICALL void (* GL_APIENTRY glBindBufferBase) (GLenum target, GLuint index, GLuint buffer);
276 GL_APICALL void (* GL_APIENTRY glTransformFeedbackVaryings) (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode);
277 GL_APICALL void (* GL_APIENTRY glGetTransformFeedbackVarying) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
278 GL_APICALL void (* GL_APIENTRY glVertexAttribIPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
279 GL_APICALL void (* GL_APIENTRY glGetVertexAttribIiv) (GLuint index, GLenum pname, GLint* params);
280 GL_APICALL void (* GL_APIENTRY glGetVertexAttribIuiv) (GLuint index, GLenum pname, GLuint* params);
281 GL_APICALL void (* GL_APIENTRY glVertexAttribI4i) (GLuint index, GLint x, GLint y, GLint z, GLint w);
282 GL_APICALL void (* GL_APIENTRY glVertexAttribI4ui) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
283 GL_APICALL void (* GL_APIENTRY glVertexAttribI4iv) (GLuint index, const GLint* v);
284 GL_APICALL void (* GL_APIENTRY glVertexAttribI4uiv) (GLuint index, const GLuint* v);
285 GL_APICALL void (* GL_APIENTRY glGetUniformuiv) (GLuint program, GLint location, GLuint* params);
286 GL_APICALL GLint (* GL_APIENTRY glGetFragDataLocation) (GLuint program, const GLchar *name);
287 GL_APICALL void (* GL_APIENTRY glUniform1ui) (GLint location, GLuint v0);
288 GL_APICALL void (* GL_APIENTRY glUniform2ui) (GLint location, GLuint v0, GLuint v1);
289 GL_APICALL void (* GL_APIENTRY glUniform3ui) (GLint location, GLuint v0, GLuint v1, GLuint v2);
290 GL_APICALL void (* GL_APIENTRY glUniform4ui) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
291 GL_APICALL void (* GL_APIENTRY glUniform1uiv) (GLint location, GLsizei count, const GLuint* value);
292 GL_APICALL void (* GL_APIENTRY glUniform2uiv) (GLint location, GLsizei count, const GLuint* value);
293 GL_APICALL void (* GL_APIENTRY glUniform3uiv) (GLint location, GLsizei count, const GLuint* value);
294 GL_APICALL void (* GL_APIENTRY glUniform4uiv) (GLint location, GLsizei count, const GLuint* value);
295 GL_APICALL void (* GL_APIENTRY glClearBufferiv) (GLenum buffer, GLint drawbuffer, const GLint* value);
296 GL_APICALL void (* GL_APIENTRY glClearBufferuiv) (GLenum buffer, GLint drawbuffer, const GLuint* value);
297 GL_APICALL void (* GL_APIENTRY glClearBufferfv) (GLenum buffer, GLint drawbuffer, const GLfloat* value);
298 GL_APICALL void (* GL_APIENTRY glClearBufferfi) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
299 GL_APICALL const GLubyte* (* GL_APIENTRY glGetStringi) (GLenum name, GLuint index);
300 GL_APICALL void (* GL_APIENTRY glCopyBufferSubData) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
301 GL_APICALL void (* GL_APIENTRY glGetUniformIndices) (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices);
302 GL_APICALL void (* GL_APIENTRY glGetActiveUniformsiv) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
303 GL_APICALL GLuint (* GL_APIENTRY glGetUniformBlockIndex) (GLuint program, const GLchar* uniformBlockName);
304 GL_APICALL void (* GL_APIENTRY glGetActiveUniformBlockiv) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
305 GL_APICALL void (* GL_APIENTRY glGetActiveUniformBlockName) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
306 GL_APICALL void (* GL_APIENTRY glUniformBlockBinding) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
307 GL_APICALL void (* GL_APIENTRY glDrawArraysInstanced) (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
308 GL_APICALL void (* GL_APIENTRY glDrawElementsInstanced) (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount);
309 GL_APICALL GLsync (* GL_APIENTRY glFenceSync) (GLenum condition, GLbitfield flags);
310 GL_APICALL GLboolean (* GL_APIENTRY glIsSync) (GLsync sync);
311 GL_APICALL void (* GL_APIENTRY glDeleteSync) (GLsync sync);
312 GL_APICALL GLenum (* GL_APIENTRY glClientWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout);
313 GL_APICALL void (* GL_APIENTRY glWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout);
314 GL_APICALL void (* GL_APIENTRY glGetInteger64v) (GLenum pname, GLint64* params);
315 GL_APICALL void (* GL_APIENTRY glGetSynciv) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
316 GL_APICALL void (* GL_APIENTRY glGetInteger64i_v) (GLenum target, GLuint index, GLint64* data);
317 GL_APICALL void (* GL_APIENTRY glGetBufferParameteri64v) (GLenum target, GLenum pname, GLint64* params);
318 GL_APICALL void (* GL_APIENTRY glGenSamplers) (GLsizei count, GLuint* samplers);
319 GL_APICALL void (* GL_APIENTRY glDeleteSamplers) (GLsizei count, const GLuint* samplers);
320 GL_APICALL GLboolean (* GL_APIENTRY glIsSampler) (GLuint sampler);
321 GL_APICALL void (* GL_APIENTRY glBindSampler) (GLuint unit, GLuint sampler);
322 GL_APICALL void (* GL_APIENTRY glSamplerParameteri) (GLuint sampler, GLenum pname, GLint param);
323 GL_APICALL void (* GL_APIENTRY glSamplerParameteriv) (GLuint sampler, GLenum pname, const GLint* param);
324 GL_APICALL void (* GL_APIENTRY glSamplerParameterf) (GLuint sampler, GLenum pname, GLfloat param);
325 GL_APICALL void (* GL_APIENTRY glSamplerParameterfv) (GLuint sampler, GLenum pname, const GLfloat* param);
326 GL_APICALL void (* GL_APIENTRY glGetSamplerParameteriv) (GLuint sampler, GLenum pname, GLint* params);
327 GL_APICALL void (* GL_APIENTRY glGetSamplerParameterfv) (GLuint sampler, GLenum pname, GLfloat* params);
328 GL_APICALL void (* GL_APIENTRY glVertexAttribDivisor) (GLuint index, GLuint divisor);
329 GL_APICALL void (* GL_APIENTRY glBindTransformFeedback) (GLenum target, GLuint id);
330 GL_APICALL void (* GL_APIENTRY glDeleteTransformFeedbacks) (GLsizei n, const GLuint* ids);
331 GL_APICALL void (* GL_APIENTRY glGenTransformFeedbacks) (GLsizei n, GLuint* ids);
332 GL_APICALL GLboolean (* GL_APIENTRY glIsTransformFeedback) (GLuint id);
333 GL_APICALL void (* GL_APIENTRY glPauseTransformFeedback) (void);
334 GL_APICALL void (* GL_APIENTRY glResumeTransformFeedback) (void);
335 GL_APICALL void (* GL_APIENTRY glGetProgramBinary) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
336 GL_APICALL void (* GL_APIENTRY glProgramBinary) (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
337 GL_APICALL void (* GL_APIENTRY glProgramParameteri) (GLuint program, GLenum pname, GLint value);
338 GL_APICALL void (* GL_APIENTRY glInvalidateFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum* attachments);
339 GL_APICALL void (* GL_APIENTRY glInvalidateSubFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
340 GL_APICALL void (* GL_APIENTRY glTexStorage2D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
341 GL_APICALL void (* GL_APIENTRY glTexStorage3D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
342 GL_APICALL void (* GL_APIENTRY glGetInternalformativ) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
343 
344 // GL_EXT_texture_border_clamp
345 
346 GL_APICALL void (* GL_APIENTRY glTexParameterIivEXT) (GLenum target, GLenum pname, const GLint *params);
347 GL_APICALL void (* GL_APIENTRY glTexParameterIuivEXT) (GLenum target, GLenum pname, const GLuint *params);
348 GL_APICALL void (* GL_APIENTRY glGetTexParameterIivEXT) (GLenum target, GLenum pname, GLint *params);
349 GL_APICALL void (* GL_APIENTRY glGetTexParameterIuivEXT) (GLenum target, GLenum pname, GLuint *params);
350 GL_APICALL void (* GL_APIENTRY glSamplerParameterIivEXT) (GLuint sampler, GLenum pname, const GLint *param);
351 GL_APICALL void (* GL_APIENTRY glSamplerParameterIuivEXT) (GLuint sampler, GLenum pname, const GLuint *param);
352 GL_APICALL void (* GL_APIENTRY glGetSamplerParameterIivEXT) (GLuint sampler, GLenum pname, GLint *params);
353 GL_APICALL void (* GL_APIENTRY glGetSamplerParameterIuivEXT) (GLuint sampler, GLenum pname, GLuint *params);
354 
355 // End GL_EXT_texture_border_clamp
356 
357 // clang-format on